КАК РАБОТАЕТ DATASTORE И КАК СОХРАНЯТЬ ДАТУ? ROBLOX STUDIO

Опубликовано: 15 Март 2026
на канале: clockus
11,309
456

Тикток:   / clockusluau  
Дискорд:   / discord  
Телеграм: t.me/clockus666

документация роблокса: https://create.roblox.com/docs/cloud-...

скрипт:
local DataStoreService = game:GetService("DataStoreService")

--PRODUCTION КОГДА ВЫПУСКАЕШЬ.
local OurDataStore = DataStoreService:GetDataStore("Test")

local Players = game:GetService("Players")

local function GiveLeaderstats(player: Player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"

local cash = Instance.new("NumberValue")
cash.Name = "Cash"

local exp = Instance.new("NumberValue")
exp.Name = "EXP"

local lvl = Instance.new("IntValue")
lvl.Name = "LVL"

cash.Parent = leaderstats
exp.Parent = leaderstats
lvl.Parent = leaderstats

leaderstats.Parent = player

local key = "Player_"..player.UserId

local yes, data = pcall(function()
return OurDataStore:GetAsync(key)
end)
print(data)
if yes then
cash.Value = data.Cash
exp.Value = data.EXP
lvl.Value = data.LVL
end

if not yes then
warn(data)
player:Kick("ошибка серверов, попробуй зайти позже.")
end

end

local function SaveData(player: Player)
local key = "Player_"..player.UserId

--[[local data = {
Cash = player.leaderstats.Cash.Value,
EXP = player.leaderstats.EXP.Value,
LVL = player.leaderstats.LVL.Value,
}

local success, err = pcall(function()
OurDataStore:SetAsync(key, data)
end)]]

local function callback()
local data = {
Cash = player.leaderstats.Cash.Value,
EXP = player.leaderstats.EXP.Value,
LVL = player.leaderstats.LVL.Value,
}
return data
end

local success, err = pcall(function()
OurDataStore:UpdateAsync(key, callback)
end)

if success then
print("data saved")
else
warn("error", err)
end

end

Players.PlayerAdded:Connect(GiveLeaderstats)
Players.PlayerRemoving:Connect(SaveData)