This is a datastore (That works 100%) is there a way for the datastore to insert a model into the player like it does with leaderstats, and save the weapons that are inputted into starter gear while in game? There are 2 scripts to this ill put them both down. Value in main script is a bool value.
MainScript:
local DataStore = game:GetService("DataStoreService"):GetDataStore("MoneyStore") game.Players.PlayerAdded:connect(function(player) local leaderstats = Instance.new("Model", player) leaderstats.Name = "leaderstats" local money = Instance.new("IntValue", leaderstats) money.Name = "Points" money.Value = 50 if script.UseDataStore.Value == true then local key = "user_" ..player.userId local savedValues = DataStore:GetAsync(key) local valuesToSave = {money.Value} if savedValues then -- Save format: {money} money.Value = savedValues[1] else DataStore:SetAsync(key, valuesToSave) end game.Players.PlayerRemoving:connect(function(player) local money = player.leaderstats.Points local valuesToSave = {money.Value} local key = "user_" ..player.userId DataStore:SetAsync(key, valuesToSave) end) end end)
Script inside main script
if script.Parent.UseDataStore.Value == true then function pAdded(player) local leaderstats = player:FindFirstChild("leaderstats") while true do if leaderstats ~= nil and player.Character ~= nil then break end wait(1) end local msg = Instance.new("Message",player.Character) msg.Text = "Loading Data..." player:WaitForDataReady() local savedPoints local savedPoints2 local successFunc = pcall(function() savedPoints = player:LoadNumber("money") end) if not successFunc or savedPoints == nil or savedPoints2 == nil then msg.Text = "Failed to load." wait(5) msg:remove() else if player.leaderstats:FindFirstChild("Points") ~= nil then player.leaderstats.Points.Value = savedPoints end msg.Text = "Loaded" wait(5) msg:remove() end end game.Players.PlayerAdded:connect(pAdded) function pRemove(player) if player:FindFirstChild("leaderstats") ~= nil then if player.leaderstats:FindFirstChild("Points") ~= nil then if not pcall(function() player:SaveNumber("Points", player.leaderstats.Points.Value) end) then end end end end game.Players.PlayerRemoving:connect(function(player) pRemove(player) end) end
Value in main script is a bool value.