I have this Perk Shop script:
local MarketplaceService = game:GetService("MarketplaceService")
local AddHealthID = 20433249 --ENTER
local AddSpeedID = 20438665 --PASS
local AddGearID = 21739855 --IDS
local AddGear2ID = 21739858 --IDS
local AddGear3ID = 21739864 --HERE
local PurchaseHistory = game:GetService("DataStoreService"):GetDataStore("PurchaseHistory")
MarketplaceService.ProcessReceipt = function(receiptInfo)
local playerProductKey = receiptInfo.PlayerId .. ":" .. receiptInfo.PurchaseId
if PurchaseHistory:GetAsync(playerProductKey) then
return Enum.ProductPurchaseDecision.PurchaseGranted
end
for i, player in ipairs(game.Players:GetPlayers()) do
if player.userId == receiptInfo.PlayerId then
if receiptInfo.ProductId == AddHealthID then
player.Character.Humanoid.MaxHealth = player.Character.Humanoid.MaxHealth + 50 --Adds 50 to their current health
player.Character.Humanoid.Health = player.Character.Humanoid.MaxHealth
end
if receiptInfo.ProductId == AddSpeedID then
player.Character.Humanoid.WalkSpeed = player.Character.Humanoid.WalkSpeed + 15 -- Adds 5 to their current Walkspeed
end
if receiptInfo.ProductId == AddGearID then
game.ReplicatedStorage.DualVenomshanks:Clone().Parent = player.Backpack -- put the gear in ReplicatedStorage then put the name of the gear in the GEARNAMEHERE
-- game.ReplicatedStorage.GEARNAMEHERE:Clone().Parent = player.StarterGear -- Add this back in if you want them to get this item till they leave the game, Like renting it
end
if receiptInfo.ProductId == AddGear2ID then
game.ReplicatedStorage.GravityCoil:Clone().Parent = player.Backpack -- put the gear in ReplicatedStorage then put the name of the gear in the GEARNAMEHERE
-- game.ReplicatedStorage.GEARNAMEHERE:Clone().Parent = player.StarterGear -- Add this back in if you want them to get this item till they leave the game, Like renting it
end
if receiptInfo.ProductId == AddGear3ID then
game.ReplicatedStorage.Jetpack:Clone().Parent = player.Backpack -- put the gear in ReplicatedStorage then put the name of the gear in the GEARNAMEHERE
-- game.ReplicatedStorage.GEARNAMEHERE:Clone().Parent = player.StarterGear -- Add this back in if you want them to get this item till they leave the game, Like renting it
end
end
end
PurchaseHistory:SetAsync(playerProductKey, true)
return Enum.ProductPurchaseDecision.PurchaseGranted
end
And then this in starterpack so that the cash perk will work:
local MarketplaceService = Game:GetService("MarketplaceService")
local ds = game:GetService("DataStoreService"):GetDataStore("PurchaseHistory")
CASHID = 00000000 -- Put the ID of the Developer Product here. Dont forget to erase the 0's.
MarketplaceService.ProcessReceipt = function(receiptInfo)
local playerProductKey = "player_" .. receiptInfo.PlayerId .. "_product_" .. receiptInfo.ProductId
local numberBought = ds:IncrementAsync(playerProductKey, 1)
for i,v in pairs (game.Players:GetChildren()) do
if v.userId == receiptInfo.PlayerId then
if receiptInfo.ProductId == CASHID then
lds = v:FindFirstChild("leaderstats")
if lds ~= nil then
cs = lds:FindFirstChild("Coins") --Change to your leaderstat that you want it to add to.
if cs ~= nil then
cs.Value = cs.Value + 1000 --Change to the amount of Coins you want to add.
end
end
end
end
end
return Enum.ProductPurchaseDecision.PurchaseGranted
end
-- Put this script in the Starter Pack when you are done editing it :)
There is one problem, the second script causes the top one not to work. Maybe because it is in starterpack. Help if you can because i dont know how to fix it....
