1MinuteRoblox

Making a Tycoon Save-Data Script V2 by 1MinuteRobloxTutorials

Apr 14th, 2024
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. local Players = game:GetService("Players")
  2. local dataStoreServices = game:GetService("DataStoreService")
  3. local dataStore = dataStoreServices:GetDataStore("Test1")
  4.  
  5. function saveData(player)
  6. local tycoon = player:FindFirstChild("TycoonOwned").Value
  7. local purchases = player:FindFirstChild("TycoonOwned").Value.Purchases
  8. local tycoonData = {}
  9.  
  10. spawn(function()
  11. local success, Error = pcall(function()
  12. dataStore:SetAsync(player.UserId.."-Cash", player.leaderstats.Cash.Value)
  13. end)
  14. if not success then
  15. warn(Error)
  16. end
  17. end)
  18.  
  19. for i, object in ipairs(purchases:GetChildren()) do
  20. table.insert(tycoonData, object.Name)
  21. end
  22.  
  23. local success, Error = pcall(function()
  24. dataStore:SetAsync(player.UserId, tycoonData)
  25. end)
  26. if not success then
  27. warn(Error)
  28. end
  29.  
  30. local newTycoon = game.ServerStorage:FindFirstChild(tycoon.Name):Clone()
  31. newTycoon.Parent = tycoon.Parent
  32. tycoon:Destroy()
  33.  
  34. end
  35.  
  36. local function Buttons(button)
  37. button.Button.CanCollide =false
  38. button.Button.Transparency = 1
  39. button.Button.BillboardGui.Enabled = false
  40. end
  41.  
  42. script.Parent.ClaimTycoon.Event:Connect(function(tycoon)
  43. local tycoonOwner = tycoon.Values.OwnerValue.Value
  44. local tycoonData
  45. local cashData
  46.  
  47. spawn(function()
  48. local success, Error = pcall(function()
  49. cashData = dataStore:GetAsync(tycoonOwner.UserId.."-Cash")
  50. end)
  51. if not success then
  52. warn(Error)
  53. end
  54. if success and cashData then
  55. tycoonOwner.leaderstats.Cash.Value = cashData
  56. end
  57. end)
  58.  
  59. local success, Error = pcall(function()
  60. tycoonData = dataStore:GetAsync(tycoonOwner.UserId)
  61. end)
  62. if not success then
  63. warn(Error)
  64. end
  65.  
  66. if success and tycoonData then
  67. local tycoonClone = game.ServerStorage:FindFirstChild(tycoon.Name):Clone()
  68. tycoonClone.Parent = tycoon.Parent
  69. tycoonClone.Values.OwnerValue.Value = tycoon.Values.OwnerValue.Value
  70. tycoonOwner.TycoonOwned.Value = tycoonClone
  71. tycoon:Destroy()
  72. tycoon = tycoonClone
  73.  
  74. local purchasesFolder = tycoonClone:FindFirstChild("Purchases")
  75. local purchasedItemsFolder = tycoonClone:FindFirstChild("PurchasedItems")
  76. local buttonsFolder = tycoonClone:FindFirstChild("Buttons")
  77.  
  78. for i, button in ipairs(buttonsFolder:GetChildren()) do
  79. if button:FindFirstChild("Object") then
  80. local object = purchasedItemsFolder:FindFirstChild(button.Object.Value)
  81. if object and table.find(tycoonData, object.Name) then
  82. object.Parent = purchasesFolder
  83. Buttons(button)
  84. end
  85. end
  86. end
  87. end
  88. end)
  89.  
  90. Players.PlayerRemoving:Connect(function(player)
  91. saveData(player)
  92. end)
  93.  
  94. game:BindToClose(function()
  95. for i, player in ipairs(game.Players:GetPlayers()) do
  96. saveData(player)
  97. end
  98. end)
Advertisement
Add Comment
Please, Sign In to add comment