Cakey3101

Data Script EP 20

May 23rd, 2025 (edited)
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.67 KB | Source Code | 0 0
  1. local Players = game:GetService("Players")
  2. local DataStoreService = game:GetService("DataStoreService")
  3.  
  4. local DataStore = DataStoreService:GetDataStore("MyDataStore")
  5.  
  6. local function PlayerAdded(Player: Player)
  7.     local Leaderstats = Instance.new("Folder", Player)
  8.     Leaderstats.Name = "leaderstats"
  9.  
  10.     local RedeemedCodes = Instance.new("Folder", Player)
  11.     RedeemedCodes.Name = "RedeemedCodes"
  12.  
  13.     local Rings = Instance.new("NumberValue", Leaderstats)
  14.     Rings.Name = "Rings"
  15.     Rings.Value = 0
  16.  
  17.     local Level = Instance.new("NumberValue", Leaderstats)
  18.     Level.Name = "Level"
  19.     Level.Value = 1
  20.  
  21.     local Rebirth = Instance.new("NumberValue", Leaderstats)
  22.     Rebirth.Name = "Rebirth"
  23.     Rebirth.Value = 0
  24.  
  25.     local XP = Instance.new("NumberValue", Player)
  26.     XP.Name = "XP"
  27.     XP.Value = 0
  28.  
  29.     local RedStarRings = Instance.new("NumberValue", Player)
  30.     RedStarRings.Name = "Red Star Rings"
  31.     RedStarRings.Value = 0
  32.  
  33.     local RaceTickets = Instance.new("NumberValue", Player)
  34.     RaceTickets.Name = "RaceTickets"
  35.     RaceTickets.Value = 0
  36.  
  37.     local DailyReward = Instance.new("NumberValue", Player)
  38.     DailyReward.Name = "DailyReward"
  39.     DailyReward.Value = 1
  40.  
  41.     local LastCollectTime = Instance.new("NumberValue", Player)
  42.     LastCollectTime.Name = "LastCollectTime"
  43.     LastCollectTime.Value = 0
  44.  
  45.     local Success, SavedData = pcall(function()
  46.         return DataStore:GetAsync(Player.UserId)
  47.     end)
  48.  
  49.     if Success and SavedData then
  50.         Rings.Value = SavedData.Rings or 0
  51.         Level.Value = SavedData.Level or 1
  52.         Rebirth.Value = SavedData.Rebirth or 0
  53.         XP.Value = SavedData.XP or 0
  54.         RedStarRings.Value = SavedData.RedStarRings or 0
  55.         RaceTickets.Value = SavedData.RaceTickets or 0
  56.         DailyReward.Value = SavedData.DailyReward or 1
  57.         LastCollectTime.Value = SavedData.LastCollectTime or 0
  58.  
  59.         if SavedData.RedeemedCodes then
  60.             for _, Code in ipairs(SavedData.RedeemedCodes) do
  61.                 local CodeInstance = Instance.new("StringValue", RedeemedCodes)
  62.                 CodeInstance.Name = Code
  63.             end
  64.         end
  65.     else
  66.         Rings.Value = 0
  67.         Level.Value = 1
  68.         Rebirth.Value = 0
  69.         XP.Value = 0
  70.         RedStarRings.Value = 0
  71.         RaceTickets.Value = 0
  72.         DailyReward.Value = 1
  73.         LastCollectTime.Value = 0
  74.     end
  75. end
  76.  
  77. local function PlayerRemoving(Player: Player)
  78.     local Leaderstats = Player:FindFirstChild("leaderstats")
  79.  
  80.     if Leaderstats then
  81.         local RingsValue = Leaderstats:FindFirstChild("Rings")
  82.         local LevelValue = Leaderstats:FindFirstChild("Level")
  83.         local RebirthValue = Leaderstats:FindFirstChild("Rebirth")
  84.         local XPValue = Player:FindFirstChild("XP")
  85.         local RedStarRingsValue = Player:FindFirstChild("Red Star Rings")
  86.         local RaceTicketsValue = Player:FindFirstChild("RaceTickets")
  87.         local DailyRewardValue = Player:FindFirstChild("DailyReward")
  88.         local LastCollectTimeValue = Player:FindFirstChild("LastCollectTime")
  89.  
  90.         local SaveData = {
  91.             Rings = RingsValue.Value,
  92.             Level = LevelValue.Value,
  93.             Rebirth = RebirthValue.Value,
  94.             XP = XPValue.Value,
  95.             RedStarRings = RedStarRingsValue.Value,
  96.             RaceTickets = RaceTicketsValue.Value,
  97.             DailyReward = DailyRewardValue.Value,
  98.             LastCollectTime = LastCollectTimeValue.Value,
  99.             RedeemedCodes = {}
  100.         }
  101.        
  102.         for _, CodeInstance in ipairs(Player.RedeemedCodes:GetChildren()) do
  103.             table.insert(SaveData.RedeemedCodes, CodeInstance.Name)
  104.         end
  105.        
  106.         local Success, Error = pcall(function()
  107.             DataStore:SetAsync(Player.UserId, SaveData)
  108.         end)
  109.        
  110.         if not Success then
  111.             warn(`Couldn't Save Data For {Player.Name}, Error: {Error}`)
  112.         end
  113.     end
  114. end
  115.  
  116. local function ServerShutdown()
  117.     for _, Player in Players:GetPlayers() do
  118.         PlayerRemoving(Player)
  119.     end
  120. end
  121.  
  122. Players.PlayerAdded:Connect(PlayerAdded)
  123. Players.PlayerRemoving:Connect(PlayerRemoving)
  124. game:BindToClose(ServerShutdown)
Tags: robloxstudio
Advertisement
Add Comment
Please, Sign In to add comment