I tried to do an instance new CFrame value to store the players position, but it didn't worked out, weird because I can save another value, when I see in the playerstats, there is no position value
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local DataStore = game:GetService("DataStoreService")
local PlayerSave1 = DataStore:GetDataStore("PlayerSave1")
local PositionSave = DataStore:GetDataStore("PositionSave")
local Save = ReplicatedStorage:WaitForChild("Save")
local spawnPlace = workspace.SpawnPos
game.Players.PlayerAdded:connect(function(player)
local PlayerStats = Instance.new("Folder", player)
PlayerStats.Name = "PlayerStats"
local HasJoinedBefore = Instance.new("BoolValue", PlayerStats)
HasJoinedBefore.Name = "HasJoinedBefore"
HasJoinedBefore.Value = PlayerSave1:GetAsync(player.UserId) or false
PlayerSave1:SetAsync(player.UserId, HasJoinedBefore.Value)
local Pos = Instance.new("CFrameValue", PlayerStats)
Pos.Name = "Position"
Pos.Value = PositionSave:GetAsync(player.UserId) or spawnPlace.CFrame
player.Character.HumanoidRootPart.CFrame = Pos.Value
PositionSave:SetAsync(player.UserId, Pos.Value)
HasJoinedBefore.Changed:connect(function()
PlayerSave1:SetAsync(player.UserId, HasJoinedBefore.Value)
end)
end)
game.Players.PlayerRemoving:connect(function(player)
PlayerSave1:SetAsync(player.UserId, player.PlayerStats.HasJoinedBefore.Value)
end)
local function save(player)
player.PlayerStats.HasJoinedBefore.Value = true
PlayerSave1:SetAsync(player.UserId, player.PlayerStats.HasJoinedBefore.Value)
end
Save.OnServerEvent:Connect(save)
