datastores roblox tutorial code example
Example 1: roblox datastores 2 tutorial
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local ServerScriptService = game:GetService("ServerScriptService")
local DataStore2 = require(ServerScriptService.DataStore2)
DataStore2.Combine("DATA", "coins")
Players.PlayerAdded:Connect(function(player)
local coinStore = DataStore2("coins", player)
local function callRemote(value)
ReplicatedStorage.CoinAmount:FireClient(player, value)
end
callRemote(coinStore:Get(100))
coinStore:OnUpdate(callRemote)
end)
local Products = require(ReplicatedStorage.Products)
ReplicatedStorage.BuyProduct.OnServerEvent:connect(function(player, productName)
if not Products[productName] then return end
local coinStore = DataStore2("coins", player)
local productPrice = Products[productName].price
if coinStore:Get(100) >= productPrice then
print("Buying product", productName)
coinStore:Increment(-productPrice)
end
end)
Example 2: Roblox DataStore
local DataStoreService = game:GetService("DataStoreService")
DataStore = DataStoreService:GetDataStore('DataStore')
local RunService = game:GetService("RunService")
game.Players.PlayerAdded:Connect(function(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local stage = Instance.new("IntValue")
stage.Name = "Stage"
stage.Value = DataStore:GetAsync(player.UserId) or 1
stage.Parent = leaderstats
end)
game.Players.PlayerRemoving:Connect(function(player)
local stage = player.leaderstats:WaitForChild("Stage")
warn("Stage Value Changed")
DataStore:SetAsync(player.UserId, stage.Value)
print("Saved ".. stage.Value .. " Stage For " .. player.Name)
end)
game:BindToClose(function()
if RunService:IsStudio() then
wait(7)
end
end)