Gamepass not for sale! please help

Sometimes when you own a gamepass that happens, can you try on a friend joining?
Make sure to check if ID it’s right first obviously!

can you try testing the game? here is the game link: Starwars tycoon (BETA) - Roblox
give me a few seconds and ill tell you when the game is public for you to test it

ight its public you can test it out if want

In the studio there should be a “Game Explorer” window. Your gamepasses and stuff (with their ids) should be listed there:


I haven’t used dev products in a while so this may or may not help.

i dont have that window up yet i forgot what its called

try this, it seem to be working for me

image

you need a click detector for that as well
image

make sure to change the id

here’s the script:

function hit(Player)

game:GetService("MarketplaceService"):PromptPurchase(Player,1116626499)

end

script.Parent.ClickDetector.MouseClick:Connect(hit)

here is the purchase handler script : --[[
All configurations are located in the “Settings” Module script.
Please don’t edit this script unless you know what you’re doing.
–]]
local Objects = {}
local TeamColor = script.Parent.TeamColor.Value
local Settings = require(script.Parent.Parent.Parent.Settings)
local Money = script.Parent.CurrencyToCollect
local Debris = game:GetService(‘Debris’)
local Stealing = Settings.StealSettings
local CanSteal = true – don’t change or else you won’t be able to steal currency

script.Parent.Essentials.Spawn.TeamColor = TeamColor
script.Parent.Essentials.Spawn.BrickColor = TeamColor

function Sound(part,id)
	if part:FindFirstChild('Sound') then
		return
	else
		local Sound = Instance.new('Sound',part)
		Sound.SoundId = "rbxassetid://"..tostring(id)
		Sound:Play()
		delay(Sound.TimeLength, function()
			Sound:Destroy()
		end)
	end
end

--Parts that fall into the collector(s) get processed
for i,v in pairs(script.Parent.Essentials:GetChildren()) do
	if v.Name == "PartCollector" then
		v.Touched:connect(function(Part)
			if Part:FindFirstChild('Cash') then
				Money.Value = Money.Value + Part.Cash.Value
				Debris:AddItem(Part,0.1)
			end
		end)
	end
end

--Player Touched Collector processor
deb = false
script.Parent.Essentials.Giver.Touched:connect(function(hit)
	local player = game.Players:GetPlayerFromCharacter(hit.Parent)
	if player ~= nil then
		if script.Parent.Owner.Value == player then
			if hit.Parent:FindFirstChild("Humanoid") then
				if hit.Parent.Humanoid.Health > 0 then
					if deb == false then
						deb = true
						script.Parent.Essentials.Giver.BrickColor = BrickColor.new("Bright red")
						local Stats = game.ServerStorage.PlayerMoney:FindFirstChild(player.Name)
						if Stats ~= nil then 
						Sound(script.Parent.Essentials, Settings.Sounds.Collect)
						Stats.Value = Stats.Value + Money.Value
						Money.Value = 0
						wait(1)
						script.Parent.Essentials.Giver.BrickColor = BrickColor.new("Sea green")
						deb = false
						end
					end
				end
			end
		elseif Stealing.Stealing then -- if player isn't owner and stealing is on
			if CanSteal == true then
				CanSteal = false
				delay(Stealing.PlayerProtection, function()
					CanSteal = true
				end)
				if hit.Parent:FindFirstChild("Humanoid") then
					if hit.Parent.Humanoid.Health > 0 then
						local Stats = game.ServerStorage.PlayerMoney:FindFirstChild(player.Name)
						if Stats ~= nil then
							local Difference = math.floor(Money.Value * Stealing.StealPrecent)
							Sound(script.Parent.Essentials, Settings.Sounds.Collect)
							Stats.Value = Stats.Value + Difference
							Money.Value = Money.Value - Difference
						end
					end
				end
			else
				Sound(script.Parent.Essentials, Settings.Sounds.Error)
			end
		end
	end
end)

script.Parent:WaitForChild("Buttons")
for i,v in pairs(script.Parent.Buttons:GetChildren()) do
	spawn(function()
	if v:FindFirstChild("Head") then
		
		local ThingMade = script.Parent.Purchases:WaitForChild(v.Object.Value)
		if ThingMade ~= nil then
			Objects[ThingMade.Name] = ThingMade:Clone()
			ThingMade:Destroy()
		else
			--//Button doesn't have object, remove it
			error('Object missing for button: '..v.Name..', button has been removed')
			v.Head.CanCollide = false
			v.Head.Transparency = 1
		end
								
		if v:FindFirstChild("Dependency") then --// if button needs something unlocked before it pops up
			v.Head.CanCollide = false
			v.Head.Transparency = 1
			coroutine.resume(coroutine.create(function()
				if script.Parent.PurchasedObjects:WaitForChild(v.Dependency.Value) then
					if Settings['ButtonsFadeIn'] then
						for i=1,20 do
							wait(Settings['FadeInTime']/20)
							v.Head.Transparency = v.Head.Transparency - 0.05
						end
					end
					v.Head.CanCollide = true
					v.Head.Transparency = 0
				end
			end))
		end
		
		v.Head.Touched:connect(function(hit)
			local player = game.Players:GetPlayerFromCharacter(hit.Parent)
			if v.Head.CanCollide == true then
				if player ~= nil then
					if script.Parent.Owner.Value == player then
						if hit.Parent:FindFirstChild("Humanoid") then
							if hit.Parent.Humanoid.Health > 0 then
								local PlayerStats = game.ServerStorage.PlayerMoney:FindFirstChild(player.Name)
								if PlayerStats ~= nil then
									if (v:FindFirstChild('Gamepass')) and (v.Gamepass.Value >= 1) then
										if game:GetService("MarketplaceService"):PlayerOwnsAsset(player,v.Gamepass.Value) then
											Purchase({[1] = v.Price.Value,[2] = v,[3] = PlayerStats})
										else
											game:GetService('MarketplaceService'):PromptPurchase(player,v.Gamepass.Value)
										end
									elseif (v:FindFirstChild('DevProduct')) and (v.DevProduct.Value >= 1) then
										game:GetService('MarketplaceService'):PromptProductPurchase(player,v.DevProduct.Value)
									elseif PlayerStats.Value >= v.Price.Value then
										Purchase({[1] = v.Price.Value,[2] = v,[3] = PlayerStats})
										Sound(v, Settings.Sounds.Purchase)
									else
										Sound(v, Settings.Sounds.ErrorBuy)
									end
								end
							end
						end
					end
				end
			end
		end)
		end
	end)
end

function Purchase(tbl)
	local cost = tbl[1]
	local item = tbl[2]
	local stats = tbl[3]
	stats.Value = stats.Value - cost
	Objects[item.Object.Value].Parent = script.Parent.PurchasedObjects
	if Settings['ButtonsFadeOut'] then
		item.Head.CanCollide = false
		coroutine.resume(coroutine.create(function()
			for i=1,20 do
				wait(Settings['FadeOutTime']/20)
				item.Head.Transparency = item.Head.Transparency + 0.05
			end
		end))
	else
		item.Head.CanCollide = false
		item.Head.Transparency = 1
	end
end

function Create(tab)
	local x = Instance.new('Model')
	Instance.new('NumberValue',x).Value = tab[1]
	x.Value.Name = "Cost"
	Instance.new('ObjectValue',x).Value = tab[2]
	x.Value.Name = "Button"
	local Obj = Instance.new('ObjectValue',x)
	Obj.Name = "Stats"
	Obj.Value = tab[3]
	x.Parent = script.Parent.BuyObject
end

--// This was very rushed and is inefficent; if you plan on making something like this don't use a child added listener.
script.Parent:WaitForChild('BuyObject').ChildAdded:connect(function(child)
	local tab = {}
	tab[1] = child.Cost.Value
	tab[2] = child.Button.Value
	tab[3] = child.Stats.Value
	Purchase(tab)
	wait(10)
	child:Destroy()
end)

The issue most likely is not the product ID. This issue might be arising from what @CapnFry said. Roblox changed the API on prompting purchases and I don’t know if Zed’s kit was last updated after that change.

Edit: Nevermind, since he posted the script’s code. I guess make sure you’re putting the ID in the right place.

1 Like

so do i either make my own tycoon which is kinda hard cause i barely know scripting or who’s tycoon kit do i take?

Like I was typing in my edit, the code with the purchasing prompt is actually correct, are you putting the gamepass ID in the right location in whatever they are trying to buy.

my bad didn’t read the replies, but you might have to make a new gamepass, that could be a solution

i think so yea cause i am putting the id here: Desktop 2020-07-27 3-26-56 PM-898

Are you putting it inside the Value of the gamepass?

1 Like

yes! (the rest of this text is cause i need to type 30 letters)

You can try what @mohmmed9999 said and try making a different gamepass and see if it works.

ok ill try but thats will be annoying but i will do it

Is AllowThirdPartySales enabled in Workspace properties? If it is not the case then enable it and test it again.

nope it still dont work! (i hate putting atleast 30 letters in)

how long do i have to wait till roblox verifies the gmae pass?

there isn’t a specific time you have to wait, it depends on their system, but its about 10 min max