Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
1

Works in play solo, but not online mode?

Asked by
Dom2d2 35
10 years ago
player = script.Parent.Parent
thrust = game.ReplicatedStorage.BodyThrust
force = game.ReplicatedStorage.BodyForce
f = force:Clone()
f.Parent = player.Character.Head
while true do
    locationX = player.Character.Head.Position.X
locationY = player.Character.Head.Position.Y
locationZ = player.Character.Head.Position.Z
    m = Instance.new("Part")
    m.Shape = "Ball"
    m.Size = Vector3.new(1,1,1)
    m.CanCollide = false
    t = thrust:Clone()
    t.Parent = m
    m.Parent = game.Workspace
    m.BrickColor = BrickColor.new("Brown")
    m.CFrame = CFrame.new(locationX, locationY - 3 , locationZ)
    game:GetService("Debris"):AddItem(m, 5)
    wait(.05)
end

This is my script, the issue is, that it works entirely fine in play solo, but doesn't work at all in online mode. The error I get is: 11:41:29.475 - Players.Player1.PlayerGui.LocalScript:7: attempt to index field 'Character' (a nil value) 11:41:29.475 - Script 'Players.Player1.PlayerGui.LocalScript', Line 7

1 answer

Log in to vote
0
Answered by
duckwit 1404 Moderation Voter
10 years ago

Oftentimes the Player loads in such a way that the LocalScript in question will start running before the actual Workspace representation of the Character has loaded, so common practice when dealing with a LocalScript is to wait() for certain things to exist, like-so:

while not game.Players.LocalPlayer do wait() end
player = game.Players.LocalPlayer
while not player.Character do wait() end
character = player.Character
while not character.Head do wait() end
head = character.head

That way you won't be trying to index a field that doesn't exist yet. It took me a long while to figure out why my LocalScripts were breaking in Online mode, too!

Ad

Answer this question