Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local ServerScriptService = game:GetService("ServerScriptService")
- local Players = game:GetService("Players")
- local ProfileService = require(ServerScriptService.Libs.ProfileService)
- local DataStoreName = "PlayerProfiles"
- local ProfileTemplate = {
- Clicks = 0,
- Gems = 0,
- Rebirths = 0,
- }
- local Shared = {}
- local Local = {}
- Shared.Profiles = {}
- function Shared.OnStart()
- Players.PlayerAdded:Connect(Local.LoadProfile)
- Players.PlayerRemoving:Connect(Local.ReleaseProfile)
- task.spawn(function()
- while true do
- task.wait(300)
- Local.AutoSaveAllProfiles()
- end
- end)
- end
- function Local.LoadProfile(Player)
- local ProfileStore = ProfileService.GetProfileStore(DataStoreName, ProfileTemplate)
- local Profile = ProfileStore:LoadProfileAsync("Player_" .. Player.UserId)
- if not Profile then return end
- Profile:AddUserId(Player.UserId)
- Profile:Reconcile()
- Shared.Profiles[Player] = Profile
- Local.CreateLeaderstats(Player, Profile.Data)
- Profile:ListenToRelease(function()
- Local.ReleaseProfile(Player)
- end)
- end
- function Local.CreateLeaderstats(Player, Data)
- local leaderstats = Instance.new("Folder", Player)
- leaderstats.Name = "leaderstats"
- local Clicks = Instance.new("NumberValue", leaderstats)
- Clicks.Name = "Clicks"
- Clicks.Value = Data.Clicks
- local Gems = Instance.new("NumberValue", leaderstats)
- Gems.Name = "Gems"
- Gems.Value = Data.Gems
- local Rebirths = Instance.new("NumberValue", leaderstats)
- Rebirths.Name = "Rebirths"
- Rebirths.Value = Data.Rebirths
- end
- function Local.ReleaseProfile(Player)
- local Profile = Shared.Profiles[Player]
- if Profile then
- Profile:Save()
- Profile:Release()
- Shared.Profiles[Player] = nil
- end
- if Player:FindFirstChild("leaderstats") then
- Player.leaderstats:Destroy()
- end
- end
- function Local.AutoSaveAllProfiles()
- for Player, Profile in pairs(Shared.Profiles) do
- if Profile then
- Profile.Data.Clicks = Player.leaderstats.Clicks.Value
- Profile.Data.Gems = Player.leaderstats.Gems.Value
- Profile.Data.Rebirths = Player.leaderstats.Rebirths.Value
- Profile:Save()
- end
- end
- end
- return Shared
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement