Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
1

(FE) Why won't my developer product script show a prompt to buy it?

Asked by 6 years ago

LocalScript

for _,v in pairs(gui.gamepass.Frame.DeveloperProducts:children()) do
    v.MouseButton1Down:connect(function()
            gui.Button:play()
            local DevID = v.Name
            serverEvents.DevProducts:FireServer(DevID)
        end)
    end

Script in ServerScriptStorage

local serverEvents = game.ReplicatedStorage.ServerEvents


serverEvents.Gamepass.OnServerEvent:connect(function(Player,DevID)
        game:GetService("MarketplaceService"):PromptPurchase(Player, DevID)
        local MarketplaceService = game:GetService("MarketplaceService")
        MarketplaceService.ProcessReceipt = function(receiptInfo)
            if receiptInfo.ProductId == 85636706 then
                Player.leaderstats.Pounds.Value = Player.leaderstats.Pounds.Value+500
            elseif receiptInfo.ProductId == 85636706 then
                Player.leaderstats.Pounds.Value = Player.leaderstats.Pounds.Value+1000
            elseif receiptInfo.ProductId == 85636706 then
                Player.leaderstats.Pounds.Value = Player.leaderstats.Pounds.Value+2500
            elseif receiptInfo.ProductId == 85636706 then
                Player.leaderstats.Pounds.Value = Player.leaderstats.Pounds.Value+5000
            end
        end 
    return Enum.ProductPurchaseDecision.PurchaseGranted 
end)

1 answer

Log in to vote
0
Answered by
arshad145 392 Moderation Voter
6 years ago

Hello,

I made some assumptions because I am not sure what you are trying to do.

Hierarchical order : Rbx Studio

1.You made a mistake at Line 4 : ServerEventsHandler script.

2.Check the hierarchical order if you cannot determine my assumptions.

Localscript inside of Textbutton :

local player = game.Players.LocalPlayer
wait(5)
local gui = player.PlayerGui
local v = script.Parent
local serverEvents = game.ReplicatedStorage.ServerEvents

for _,v in pairs(gui.gamepass.Frame.DeveloperProducts:GetChildren()) do -- Mistake you made here was that you were doing the wrong procedure to get a table.Proper way is ":GetChildren" not ":children()"
    v.MouseButton1Down:connect(function()
           -- gui.Button:play() -- I don't know what this is for.
            local DevID = v.Name -- ProductId assumed.
            serverEvents.DevProducts:FireServer(DevID) -- Fires with paramete DevID(ProductID)
        end)
    end

Script in ServerScriptService :

local serverEvents = game.ReplicatedStorage.ServerEvents --Assumed.


serverEvents.DevProducts.OnServerEvent:connect(function(Player,DevID) -- I don't know if you are doing loops of serverEvents, but I assumed that you made a mistake.

--Mistake was doing a wrong OnServerEvent with a different "RemoteEvent".
--Corrected by making it to "DevProducts.OnServerEvent" instead of "Gamepass.OnServerEvent."

        game:GetService("MarketplaceService"):PromptPurchase(Player, DevID) -- Prompts.
        local MarketplaceService = game:GetService("MarketplaceService") 
        MarketplaceService.ProcessReceipt = function(receiptInfo)
            if receiptInfo.ProductId == 327070513 then --Change ID.
               print(Player.Name.." has "..DevID) --Prints the player and ProductID.
--I am not doing for the rest.
            --[[ elseif receiptInfo.ProductId == 85636706 then
                Player.leaderstats.Pounds.Value = Player.leaderstats.Pounds.Value+1000
            elseif receiptInfo.ProductId == 85636706 then
                Player.leaderstats.Pounds.Value = Player.leaderstats.Pounds.Value+2500
            elseif receiptInfo.ProductId == 85636706 then
                Player.leaderstats.Pounds.Value = Player.leaderstats.Pounds.Value+5000
            end ]]--
           end 
    return Enum.ProductPurchaseDecision.PurchaseGranted -- If all is good , purchased!
    end
end)

What I did was :

The player clicks the button, the client take the button's Name ( ProductID ) and sends it to the server. Server handles whatever operations. Client gets a prompt to purchase or confirm that they already have the Product.

I am still learning RbxLua.

Thank you for reading.

Ad

Answer this question