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

Why are players stuttering?

Asked by 3 years ago
Edited 3 years ago

Basically, I've got a model that moves with players moving along with that model. If the player look at their own character on their screen, they're not stuttering in any way, however, if they look at a different player on their screen, they appear to stutter/judder, even though the different player themselves doesn't. I've got this script currently but it is a local script which may be causing this, so I need a server version of this script so what do I need to change?

``` while true do

local Players = game:GetService("Players")
local player = game.Players.LocalPlayer
local RunService = game:GetService('RunService')

local LastHit
local LastTrainCFrame

local Function
local Function2


local Whitelist = {workspace:WaitForChild('Map1', 20)}


Function = RunService.Heartbeat:Connect(function()
    local RootPart = player.Character.HumanoidRootPart
    local Ignore = player.Character
    local ray = Ray.new(RootPart.CFrame.p, Vector3.new(0,-200,0))
    local Hit, Position, Normal, Material
    if LastHit then
        Hit, Position, Normal, Material = workspace:FindPartOnRayWithWhitelist(ray,{LastHit})
        if not Hit then
            Hit, Position, Normal, Material = workspace:FindPartOnRayWithWhitelist(ray,Whitelist)
        end
    else
        Hit, Position, Normal, Material = workspace:FindPartOnRayWithWhitelist(ray,Whitelist)
    end
    if Hit then
        local Train = Hit
        if not LastTrainCFrame then
            LastTrainCFrame = Train.CFrame
        end
        local TrainCF
        if Train ~= LastHit and LastHit then
            TrainCF = LastHit.CFrame
        else
            TrainCF = Train.CFrame
        end
        local Rel = TrainCF * LastTrainCFrame:inverse()
        LastTrainCFrame = Train.CFrame
        RootPart.CFrame = Rel * RootPart.CFrame
        LastHit = Train
        if Train ~= LastHit then
            LastTrainCFrame = Train.CFrame
        end
    else
        LastTrainCFrame = nil
    end


    if not Function2 then
        Function2 = player.Character.Humanoid.Died:Connect(function()
            Function:Disconnect()
            Function2:Disconnect()

        end)
    end
end)
wait(140)

end

```

Answer this question