Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

Why are all of these parts spawning in the same place?

Server script.

game.ReplicatedStorage.CreateEvent.OnServerEvent:Connect(function(player,location)
	print("Works!")
    for i = 1, (tonumber(9)) do
	wait(0.2)
game.Lighting.F9.Position = location
local deathPart = game.Lighting.F9
wait(0.2)
F9C = deathPart:Clone()
wait(0.2)
F9C.Parent = game.workspace
F9C.Position = location
end
end)

Local script.

script.Parent.MouseButton1Click:Connect(function()
xc = math.random(-590,-460)
yc = 57
zc = math.random(-170, 60)
	game.ReplicatedStorage.CreateEvent:FireServer(Vector3.new(xc,yc,zc))
end)

The parts' location will be random but they all spawn in the same random place. How do I make each of them spawn in a different place?

3 comments

0

Line 1 was cut off. line 1 is game.ReplicatedStorage.CreateEvent.OnServerEvent:Connect(function(player,location) 

0

math.random apparently uses an old randomization system, try doing math.randomseed(os.time()) at the beginning of your script (it sets the seed to the current time in seconds, shouldn't be the same two servers in a row)

0

^ No, not anymore, math.random uses the same random generation as the Random class.

1 answer

Well, one problem I see with what you're doing is that when you go to fire the event, you only pass in the Vector3 argument, but on the server you stipulate two arguments to the function. Therefore, the location's Vector3 value is being passed on to the server as "player" instead of "location."

Try this in the LocalScript on line 5 and see if it works. (Although, I'm not sure why you use the player argument at all)

game.ReplicatedStorage.CreateEvent:FireServer(game.Players.LocalPlayer, Vector3.new(xc,yc,zc))

This discussion is preserved as it was. New answers, comments, and votes are closed.