Hello! I’m having an issue with a developer product thing! So basically if a player brought one of the pets then brought the other one it will give an extra one of the pets they previously brought! Here is my script! It is somehow duplicating or adding a new value!
MPS.ProcessReceipt = function(receiptInfo)
if receiptInfo.ProductId == 1163459505 then -- replace with your ID here
local debounce = false
if debounce == false then
debounce = true
local player = game.Players:GetPlayerByUserId(receiptInfo.PlayerId)
local petVal = Instance.new("StringValue",player.PetInventory)
petVal.Name = "Dark Unicorn"
local level = Instance.new("IntValue", petVal)
level.Name = "Level"
level.Value = 1
local exp = Instance.new("IntValue", level)
exp.Name = "Current"
exp.Value = 0
local maxExp = Instance.new("IntValue", level)
maxExp.Name = "Max"
maxExp.Value = 200
local rpname = Instance.new("StringValue",petVal)
rpname.Name = "rpname"
rpname.Value = "Dark Unicorn"
exp.Changed:Connect(function(val)
if exp.Value >= maxExp.Value then
-- Do stuff.
if level.Value < 6 then
level.Value = level.Value + 1
exp.Value = 0
maxExp.Value = maxExp.Value * 1.25
else
exp.Value = 0
level.Value = level.Value + 1
game.ReplicatedStorage.PetEvents.LevelUp:FireClient(player)
end
workspace.PetStorage:FindFirstChild(player.Name.."'s Pet").Obj.Head.Levels.Exterior.Label.Text = "Level "..petVal.Level.Value
workspace.PetStorage:FindFirstChild(player.Name.."'s Pet").Obj.Head.Levels.Exterior.Bar.Size = UDim2.new(petVal.Level.Current.Value/value.Level.Max.Value, 0, 1, 0)
end
end)
local BadgeService = game:GetService("BadgeService")
local BadgeID = 2124750994
BadgeService:AwardBadge(player.UserId, BadgeID)
game.ReplicatedStorage.Pets.AddPet:FireClient(player,"Dark Unicorn",petVal)
local Players = game:GetService("Players")
local PetStorage = workspace.PetStorage
local function RemovePetObj(Player)
for _,i in pairs (PetStorage:GetChildren()) do
if i.Name == Player.Name .. "'s Pet" then
i:Destroy()
end
end
end
require(script.Parent.Parent.Pets.PlayerJoined.RenderPetObj).RenderPetObj(Players:GetPlayerFromCharacter(player.Character), game.ReplicatedStorage.Pets["Dark Unicorn"])
player.Character["Humanoid"].Died:Connect(function()
RemovePetObj(player)
end)
Players.PlayerRemoving:Connect(function(Player)
RemovePetObj(Player)
end)
return Enum.ProductPurchaseDecision.PurchaseGranted
end
debounce = false
elseif receiptInfo.ProductId == 1182799326 then -- replace with your ID here
local debounce = false
if debounce == false then
debounce = true
local player = game.Players:GetPlayerByUserId(receiptInfo.PlayerId)
local petVal = Instance.new("StringValue",player.PetInventory)
petVal.Name = "Butterfly"
local level = Instance.new("IntValue", petVal)
level.Name = "Level"
level.Value = 1
local exp = Instance.new("IntValue", level)
exp.Name = "Current"
exp.Value = 0
local maxExp = Instance.new("IntValue", level)
maxExp.Name = "Max"
maxExp.Value = 150
local rpname = Instance.new("StringValue",petVal)
rpname.Name = "rpname"
rpname.Value = "Butterfly"
exp.Changed:Connect(function(val)
if exp.Value >= maxExp.Value then
-- Do stuff.
if level.Value < 6 then
level.Value = level.Value + 1
exp.Value = 0
maxExp.Value = maxExp.Value * 1.25
else
exp.Value = 0
level.Value = level.Value + 1
game.ReplicatedStorage.PetEvents.LevelUp:FireClient(player)
end
workspace.PetStorage:FindFirstChild(player.Name.."'s Pet").Obj.Head.Levels.Exterior.Label.Text = "Level "..petVal.Level.Value
workspace.PetStorage:FindFirstChild(player.Name.."'s Pet").Obj.Head.Levels.Exterior.Bar.Size = UDim2.new(petVal.Level.Current.Value/value.Level.Max.Value, 0, 1, 0)
end
end)
local BadgeService = game:GetService("BadgeService")
local BadgeID = 2124750994
BadgeService:AwardBadge(player.UserId, BadgeID)
game.ReplicatedStorage.Pets.AddPet:FireClient(player,"Butterfly",petVal)
local Players = game:GetService("Players")
local PetStorage = workspace.PetStorage
local function RemovePetObj(Player)
for _,i in pairs (PetStorage:GetChildren()) do
if i.Name == Player.Name .. "'s Pet" then
i:Destroy()
end
end
end
require(script.Parent.Parent.Pets.PlayerJoined.RenderPetObj).RenderPetObj(Players:GetPlayerFromCharacter(player.Character), game.ReplicatedStorage.Pets["Butterfly"])
player.Character["Humanoid"].Died:Connect(function()
RemovePetObj(player)
end)
Players.PlayerRemoving:Connect(function(Player)
RemovePetObj(Player)
end)
return Enum.ProductPurchaseDecision.PurchaseGranted
end
debounce = false
end
end
Thanks!