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

Smooth server movement?

Asked by
drahsid5 250 Moderation Voter
8 years ago

I would like to resume working on my third person player script, and to do that, I'd like to fix the only real bug that currently exists, which is the player's movement appears laggey out of studio's run mode. CFrame, Velocity and Humanoid:MoveTo() don't work, I don't think using a body force would work, does anyone have any suggestions

My movement coroutine:

plrCnt = coroutine.wrap(function()
game:GetService("RunService").RenderStepped:connect(function()

local direction = cam.CoordinateFrame.lookVector

plr.Core.Velocity = Vector3.new(0,plr.Core.Velocity.y,0)

if ks[Enum.KeyCode.W] and ks[Enum.KeyCode.A] then

elseif ks[Enum.KeyCode.W] and ks[Enum.KeyCode.D] then

elseif ks[Enum.KeyCode.S] and ks[Enum.KeyCode.A] then

elseif ks[Enum.KeyCode.S] and ks[Enum.KeyCode.D] then

elseif ks[Enum.KeyCode.W] then
    local test = Vector3.new(plr.Core.Position.x + direction.x*speed,plr.Core.Position.y,plr.Core.Position.z + direction.z*speed)   
    plr:MoveTo(test)    
    plr.Core.CFrame = CFrame.new(plr.Core.Position, plr.Core.Position+Vector3.new(direction.X,0,direction.Z))*CFrame.new(0,0.1,0)
elseif ks[Enum.KeyCode.S] then
    local test = Vector3.new(plr.Core.Position.x + -direction.x*speed,plr.Core.Position.y,plr.Core.Position.z + -direction.z*speed) 
    plr:MoveTo(test)    
    plr.Core.CFrame = CFrame.new(plr.Core.Position, plr.Core.Position+Vector3.new(direction.X,0,direction.Z))*CFrame.new(0,0.1,0)   
elseif ks[Enum.KeyCode.A] then
    plr.Core.CFrame = CFrame.new(plr.Core.Position, plr.Core.Position+Vector3.new(direction.X,0,direction.Z))*CFrame.new(0,0.1,0)
    --plr.Core.Velocity = Vector3.new(direction.z*-speed,plr.Core.Velocity.y,direction.x*-speed)    
elseif ks[Enum.KeyCode.D] then
    plr.Core.CFrame = CFrame.new(plr.Core.Position, plr.Core.Position+Vector3.new(direction.X,0,direction.Z))*CFrame.new(0,0.1,0)
    --plr.Core.Velocity = Vector3.new(direction.z*speed,plr.Core.Velocity.y,direction.x*speed)

end
end)
end)

My whole script:

http://pastebin.com/cSb87ymG

Thanks!

1 answer

Log in to vote
0
Answered by 8 years ago

http://wiki.roblox.com/index.php?title=RemoteFunction_and_RemoteEvent_Tutorial

Take a look at that. Even if your game isn't FilteringEnabled, it will still reduce "lag".

Ad

Answer this question