yeah so uh this aint workin, it just plays the cant redeem sound, Twitter code script:
local DataStoreService = game:GetService("DataStoreService")
--[ CODES ]--
local TwitterCodes = {
Welcome = {"Coins", 100}, -- Code 1
Test = {"Coins", 10000}, -- Code 2
}
--[ FUNCTION ]--
game.ReplicatedStorage.RedeemCode.OnServerInvoke = function(Player, Code)
local TwitterCodeStore = DataStoreService:GetDataStore("TwitterCodeStore".. Code)
local PlayerRedeemedCode = TwitterCodeStore:GetAsync(Player.UserId)
if TwitterCodes[Code] and not PlayerRedeemedCode then -- Checking if its a code, and not redeemed yet.
-- Redeems Code.
local LeaderboardValueName = TwitterCodes[Code][1]
local AmountToGivePlayer = TwitterCodes[Code][2]
local LeaderboardValue = Player.leaderstats[LeaderboardValueName]
LeaderboardValue.Value = LeaderboardValue.Value + AmountToGivePlayer
TwitterCodeStore:SetAsync(Player.UserId, true) -- Settings Datastore to true.
return true -- Tells client successfully redeemed.
else
-- Tells Player Can't Redeem.
return false -- Tells client it was not redeemed.
end
end
leaderstats script:
local DataStoreService = game:GetService("DataStoreService")
local playerData = DataStoreService:GetDataStore("PlayerData")
local function onPlayerJoin(Player)
local leaderstats = Instance.new("Folder", Player)
leaderstats.Name = "leaderstats"
local val1 = Instance.new("StringValue",Player)
val1.Name = 'GotPet'
val1.Value = ''
local val2 = Instance.new("StringValue",Player)
val2.Name = 'OpenValue'
val2.Value = ''
local Gems = Instance.new("IntValue", leaderstats)
Gems.Name = "Gems"
Gems.Value = 0
local Rebirths = Instance.new("IntValue", leaderstats)
Rebirths.Name = "Rebirths"
Rebirths.Value = 0
local Coins = Instance.new("IntValue", leaderstats)
Coins.Name = "Coins"
Coins.Value = 0
local playerUserId = "Player_" .. Player.UserId --Gets player ID
local Success, Result = pcall(function()
return playerData:GetAsync(playerUserId)
end)
if Result then
print("Data found!")
Coins.Value = Result[1] -- // Since in the saving part, Coins are the one that is set as the first value of the table, we set Coins as [1]
Rebirths.Value = Result[2]
Gems.Value = Result[3]
else
print("DataStore working but No data found")
warn(Result)
end
end
local function onPlayerExit(player) --Runs when players exit
local success, Err = pcall(function()
print("Data Saved successfully")
local playerUserId = "Player_" .. player.UserId
playerData:SetAsync(playerUserId, {player.leaderstats.Coins.Value, player.leaderstats.Rebirths.Value, player.leaderstats.Gems.Value}) -- Now set as a table instead of individually
end)
if not success then
warn(Err)
warn('Could not save data!')
end
end
game.Players.PlayerAdded:Connect(onPlayerJoin)
game.Players.PlayerRemoving:Connect(onPlayerExit)
