Advertisement
Guest User

Credits Script

a guest
Jun 26th, 2019
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.45 KB | None | 0 0
  1. --// Leaderstats \\--
  2.  
  3. StatName = 'Credits'
  4. AmountPerMinute = 50
  5.  
  6. local UpdateStat = function(Stat,UserId,Amount)
  7. if not Stat then error('Stat not found') return end
  8. if not UserId or not game.Players.GetNameFromUserIdAsync(game.Players,UserId) then error('Invalid UserId') return end
  9. if not Amount then error('Invalid Amount to give to '..game.Players.GetNameFromUserIdAsync(game.Players,UserId)) return end
  10. local DataStore = game:GetService('DataStoreService'):GetDataStore(UserId,'Stats')
  11. local leaderstats;
  12. local IntValue;
  13. if game.Players.GetPlayerByUserId(game.Players,UserId) then
  14. local Player = game.Players.GetPlayerByUserId(game.Players,UserId)
  15. if not Player.FindFirstChild(Player,'leaderstats') then
  16. leaderstats = Instance.new('Folder',Player)
  17. leaderstats.Name = 'leaderstats'
  18. else
  19. leaderstats = Player.FindFirstChild(Player,'leaderstats')
  20. end
  21. if not Player.leaderstats.FindFirstChild(Player.leaderstats,Stat) then
  22. IntValue = Instance.new('IntValue',leaderstats)
  23. IntValue.Name = Stat
  24. else
  25. IntValue = Player.leaderstats.FindFirstChild(Player.leaderstats,Stat)
  26. end
  27. end
  28. DataStore:UpdateAsync(Stat,function(OldAmount)
  29. if leaderstats and IntValue then
  30. if OldAmount == nil then
  31. IntValue.Value = 0 + Amount
  32. else
  33. IntValue.Value = OldAmount + Amount
  34. end
  35. end
  36. if OldAmount == nil then
  37. return 0 + Amount
  38. end
  39. return OldAmount + Amount
  40. end)
  41. warn('Updated '..Stat..' for '..game.Players.GetNameFromUserIdAsync(game.Players,UserId))
  42. end
  43.  
  44. --// Make Global Function
  45.  
  46. _G['UpdateStat'] = UpdateStat
  47.  
  48.  
  49. game.Players.PlayerAdded.Connect(game.Players.PlayerAdded,function(Player)
  50.  
  51. local LeaderStats = Instance.new('Folder',Player)
  52. LeaderStats.Name = 'leaderstats'
  53.  
  54. local Points = Instance.new('IntValue',LeaderStats)
  55. Points.Name = StatName
  56. Points.Value = game:GetService('DataStoreService'):GetDataStore(Player.UserId,'Stats'):GetAsync(StatName)
  57.  
  58. while Player ~= nil and Player:FindFirstChild('leaderstats') do
  59.  
  60. wait(60)
  61.  
  62. UpdateStat(StatName,Player.UserId,AmountPerMinute)
  63. Player.leaderstats[StatName].Value = game:GetService('DataStoreService'):GetDataStore(Player.UserId,'Stats'):GetAsync(StatName)
  64.  
  65. end
  66. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement