Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --// Leaderstats \\--
- StatName = 'Credits'
- AmountPerMinute = 50
- local UpdateStat = function(Stat,UserId,Amount)
- if not Stat then error('Stat not found') return end
- if not UserId or not game.Players.GetNameFromUserIdAsync(game.Players,UserId) then error('Invalid UserId') return end
- if not Amount then error('Invalid Amount to give to '..game.Players.GetNameFromUserIdAsync(game.Players,UserId)) return end
- local DataStore = game:GetService('DataStoreService'):GetDataStore(UserId,'Stats')
- local leaderstats;
- local IntValue;
- if game.Players.GetPlayerByUserId(game.Players,UserId) then
- local Player = game.Players.GetPlayerByUserId(game.Players,UserId)
- if not Player.FindFirstChild(Player,'leaderstats') then
- leaderstats = Instance.new('Folder',Player)
- leaderstats.Name = 'leaderstats'
- else
- leaderstats = Player.FindFirstChild(Player,'leaderstats')
- end
- if not Player.leaderstats.FindFirstChild(Player.leaderstats,Stat) then
- IntValue = Instance.new('IntValue',leaderstats)
- IntValue.Name = Stat
- else
- IntValue = Player.leaderstats.FindFirstChild(Player.leaderstats,Stat)
- end
- end
- DataStore:UpdateAsync(Stat,function(OldAmount)
- if leaderstats and IntValue then
- if OldAmount == nil then
- IntValue.Value = 0 + Amount
- else
- IntValue.Value = OldAmount + Amount
- end
- end
- if OldAmount == nil then
- return 0 + Amount
- end
- return OldAmount + Amount
- end)
- warn('Updated '..Stat..' for '..game.Players.GetNameFromUserIdAsync(game.Players,UserId))
- end
- --// Make Global Function
- _G['UpdateStat'] = UpdateStat
- game.Players.PlayerAdded.Connect(game.Players.PlayerAdded,function(Player)
- local LeaderStats = Instance.new('Folder',Player)
- LeaderStats.Name = 'leaderstats'
- local Points = Instance.new('IntValue',LeaderStats)
- Points.Name = StatName
- Points.Value = game:GetService('DataStoreService'):GetDataStore(Player.UserId,'Stats'):GetAsync(StatName)
- while Player ~= nil and Player:FindFirstChild('leaderstats') do
- wait(60)
- UpdateStat(StatName,Player.UserId,AmountPerMinute)
- Player.leaderstats[StatName].Value = game:GetService('DataStoreService'):GetDataStore(Player.UserId,'Stats'):GetAsync(StatName)
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement