Not getting an error so i dunno what to do.
It's currently anchoring EVERY brick the very second 'e' is pressed, while I want the first one to reach past its bodyposition's position.Y to anchor and each brick subsequently. Problem probably lies in misuse of iterations.(which is beyond my knowledge)
EDIT: I solved it, but if anyone has a similar issue and wants a method, using a courotine helped a lot.
repeat wait(.1) until script.Parent.Name ~= "StarterCharacterScripts"
player = game.Players:FindFirstChild(script.Parent.Name)
mouse = player:GetMouse()
--E = Telekineses
--R = Pyromancy
--T = Shape
center = player.Character.Torso
objects = game.Workspace:GetChildren()
--
power = 1000
--
current = 0
total = 1+(power/10)
--
floating = false
mouse.KeyDown:connect(function(key)
if key == "e" then
for i = 1, #objects do
if objects[i].ClassName == "Part" then
if objects[i].Anchored == false then
local magnitude = (center.Position - objects[i].Position).magnitude
local range = 1+(power/2)
if magnitude < range then
current = current+1
if current < total then
local bodypos = Instance.new("BodyPosition")
bodypos.Name = "Force"
bodypos.MaxForce = Vector3.new(0,25000,0)
bodypos.P = 5000
bodypos.Position = Vector3.new(objects[i].Position.X, objects[i].Position.Y+15, objects[i].Position.Z)
bodypos.D = 1000
bodypos.Parent = objects[i]
floating = true
if (objects[i].Force.Position.Y-1 / objects[i].Position.Y) >= 1 then
objects[i+1].Anchored = true
end
end
end
end
end
end
end
end)

1 comment
That first line is unnecessary. Scripts don't run inside of StarterCharacterScripts. On the second like you can write game.Players:GetPlayerFromCharacter(script.Parent) instead, or just not define the player since you only ever use it to access the character which you're already using to get the player.