I am trying to make the classic superball lag less when it moves. Since it's not anchored and it needs to bounce, the current script is using missile.velocity to make it move. Would a body force or a body velocity actually make it move smoother? This is because for large places with lots of players the missile freezes. This is the code:
Tool = script.Parent
function fire(v)
Tool.Handle.Boing:play()
local vCharacter = Tool.Parent
local vPlayer = game.Players:playerFromCharacter(vCharacter)
local missile = Instance.new("Part")
local spawnPos = vCharacter.PrimaryPart.Position
spawnPos = spawnPos + (v * 5)
missile.Position = spawnPos
missile.Size = Vector3.new(2,2,2)
missile.Velocity = v * 200
missile.BrickColor = BrickColor.random() -- BrickColor.new(26)
missile.Shape = 0
missile.BottomSurface = 0
missile.TopSurface = 0
missile.Name = "Cannon Shot"
missile.Elasticity = 1
missile.Reflectance = .2
missile.Friction = 0
Tool.Handle.Boing:clone().Parent = missile
local new_script = script.Parent.CannonBall:clone()
new_script.Disabled = false
new_script.Parent = missile
local creator_tag = Instance.new("ObjectValue")
creator_tag.Value = vPlayer
creator_tag.Name = "creator"
creator_tag.Parent = missile
missile.Parent = game.Workspace
end
Tool.Enabled = true
function onActivated()
if not Tool.Enabled then
return
end
Tool.Enabled = false
local character = Tool.Parent;
local humanoid = character.Humanoid
if humanoid == nil then
print("Humanoid not found")
return
end
local targetPos = humanoid.TargetPoint
local lookAt = (targetPos - character.Head.Position).unit
fire(lookAt)
wait(2)
Tool.Enabled = true
end
script.Parent.Activated:connect(onActivated)

3 comments
can you show you script as well (edit question and press lua button and put your code inbetween the ~~ )
I've added the code. Note that this code was written by ROBLOX 11 years ago.
Yes. Bodyforces are the way to go, instead of making a while wait(0.000000001) do loop to get the same effect.