I have a tycoon game and a gamepass that spawns in a dropper when you buy it. But for some reason, it doesn't work. When you step on a button, the dropper spawns. Well when you already have the gamepass and you join in, it doesn't spawn the dropper in. I think it there's an error with scanning each tycoon to recognize which tycoon to give the dropper to, but I don't know how to fix it.

Here's my script:

local function getTycoonFromPlayer(player)
	for i,v in pairs(workspace.Tycoons:GetChildren()) do
		if v:IsA("Model") then
			if v.Owner.Value == player then
				return v
			end
		end
	end
	return nil
end
local marketplace = game:GetService("MarketplaceService")

game.Players.PlayerAdded:Connect(function(player)
	if marketplace:UserOwnsGamePassAsync(player.UserId, 6559657) then
		script.OwnsGamepass.Value = true
		local tycoon = getTycoonFromPlayer(player)
		if tycoon then
			local dropper = tycoon.Purchases:FindFirstChild("StarterDropper")
			if dropper then
				if tycoon.Owner.Value == nil then
					repeat wait() until tycoon.Owner.Value == player return
				else
					dropper.Parent = tycoon.PurchasedItems
				end
			end
		end
	end
end)

Any help is appreciated

1 comment

0

Screen shot output when running the script