Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Players = game:GetService("Players")
- local ReplicatedStorage = game:GetService("ReplicatedStorage")
- local DataStoreService = game:GetService("DataStoreService")
- local RunService = game:GetService("RunService")
- local DataStore = DataStoreService:GetDataStore("MyDataStore1-")
- local Remotes = ReplicatedStorage.Remotes
- local PlayerData = {}
- local function PlayerAdded(Player: Player)
- local Leaderstats = Instance.new("Folder", Player)
- Leaderstats.Name = "leaderstats"
- local Gems = Instance.new("NumberValue", Leaderstats)
- Gems.Name = "Gems"
- Gems.Value = 0
- local UserId = Player.UserId
- local Key = "Player_"..UserId
- local Success, SavedData = pcall(function()
- return DataStore:GetAsync(Key)
- end)
- if Success then
- PlayerData[UserId] = {
- HasFavourited = SavedData == true
- }
- else
- warn("Failed To Load Data For Player")
- PlayerData[UserId] = {
- HasFavourited = false
- }
- end
- end
- local function PlayerRemoving(Player: Player)
- local UserId = Player.UserId
- local Key = "Player_"..UserId
- local SavedData = PlayerData[UserId]
- if SavedData then
- pcall(function()
- DataStore:SetAsync(Key, SavedData.HasFavourited)
- end)
- end
- PlayerData[UserId] = nil
- end
- local function BindToClose()
- for _, Player in Players:GetPlayers() do
- PlayerRemoving(Player)
- end
- end
- local function OnRemote(Player: Player)
- local UserId = Player.UserId
- local SavedData = PlayerData[UserId]
- if not SavedData or SavedData.HasFavourited then
- print("Already Claimed!")
- return
- end
- local Gems = Player:FindFirstChild("leaderstats") and Player.leaderstats:FindFirstChild("Gems")
- if Gems then
- Gems.Value += 10_000
- SavedData.HasFavourited = true
- print("Recieved Reward!")
- end
- end
- Players.PlayerAdded:Connect(PlayerAdded)
- Players.PlayerRemoving:Connect(PlayerRemoving)
- game:BindToClose(BindToClose)
- Remotes.GameFavourited.OnServerEvent:Connect(OnRemote)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement