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

Clones but does not go to CFrame?

I made a script that waits a random time between .5 and 3 seconds then clones a model. My problem is my script clones the model (I already set the primary part) but it does not change CFrame and only clones once. Anyway to fix this? Thanks. (There are parts in the workspace named G#Number)

while wait(math.random(.5,3)) do
	local Wrecker = game.ServerStorage.Wrecking:Clone()
	Wrecker.Parent = workspace
	Wrecker:SetPrimaryPartCFrame(Wrecker.PrimaryPart.CFrame * CFrame.new(math.random(workspace.G1.CFrame.X, workspace.G2.CFrame.X, workspace.G3.CFrame.X, workspace.G4.CFrame.X, workspace.G5.CFrame.X, workspace.G6.CFrame.X,workspace.G7.CFrame.X, workspace.G8.CFrame.X),0,0))
end

Its a default script in the ServerScriptService

2 answers

✓ Accepted answer

You're using math.random wrong for what you want to do. It only accepts a maximum of two arguments but you're giving it way more than two arguments.

I would suggest using string concatenation with math.random to choose a part with G at the start with any random number between one and eight and then continue from there.

Also, math.random will only return a random integer, which means that no decimals will be returned, only whole numbers.


while wait(math.random(3)) do --Math random only returns integers and won't return decimals, only whole numbers.
	local Wrecker = game.ServerStorage.Wrecking:Clone()
	Wrecker.Parent = workspace
	local GPart = workspace["G"..math.random(8)] --Choose a random G part with a random number between 1 and 8.
	Wrecker:SetPrimaryPartCFrame(Wrecker.PrimaryPart.CFrame * CFrame.new(GPart.CFrame.X,0,0)) --Use the X property of GPart's CFrame.
end

I hope my answer helped you. If it did, be sure to accept it.

math.random only takes two arguments, min and max, and will only return an integer.

If you wish to get a decimal, you'll have to divide a random integer, like so:

local dec=math.random(5,30)/10
wait(dec)

Also you have to fit all those G#Number inside two integers. You could either store them in a table or do:

workspace["G"..math.random(1,8)

1 comment

0

Nice answer but since it is already answered I can't accept thanks anyway.

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