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

Stage 1 glitch- local sided ----- No output error?

Asked by 4 years ago

Hello, I really don't have much information on this issue other than the fact that sometimes when players load in, on their screen it saying they are on stage one, while on everyone else's screen it's the stage the player is actually on.

My script for saving stages

local datastore = game:GetService("DataStoreService"):GetDataStore("GameStore")

game.Players.PlayerAdded:connect(function(player)
    local leaderstats = Instance.new("IntValue")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player

    local level = Instance.new("IntValue")
    level.Name = "Stage"
    level.Parent = leaderstats
    level.Value = 1

    local key = "user-" .. player.userId

    local storeditems = datastore:GetAsync(key)
    if storeditems then
        level.Value = storeditems[1]
    else
        local items = {level.Value}
        datastore:SetAsync(key, items)
    end
    local spawn = game.Workspace:WaitForChild(player.leaderstats.Stage.Value)
    if player and spawn then
        player.Character:MoveTo(spawn.Position + Vector3.new(0, 3, 0))
    end
end)

game.Players.PlayerRemoving:connect(function(player)
    local items = {player.leaderstats.Stage.Value}
    local key = "user-" .. player.userId
    datastore:SetAsync(key, items)
end)

game.Workspace.ChildAdded:connect(function(obj)
    local player = game.Players:GetPlayerFromCharacter(obj)
    if player then
        local leaderstats = player:FindFirstChild("leaderstats")
        local stage = leaderstats:FindFirstChild("Stage")
        local respawn = game.Workspace:WaitForChild(stage.Value)
        obj.Torso.CFrame = obj.Torso.CFrame + Vector3.new(0,3,0)
        wait(0.1)
        obj.Torso.CFrame = respawn.CFrame + Vector3.new(0,3,0)
    end
end)

Answer this question