Lua Virtual Goods

This tutorial will demonstrate Virtual Goods purchases and viewing player records.

Purchase Request and Response

Create a function that will build and send the BuyVirtualGoodsRequest. We'll be buying the Gold_Coin we created in the previous tutorial. Set the quantity and currency type to 1 and set the Short Code to the name of the item.

The response will help you confirm the item that's been purchased and if any errors occurred:


local function buyVirtualGood()
--Build Request
local requestBuilder = gs.getRequestBuilder()
local buyVirtualGoodRequest = requestBuilder.createBuyVirtualGoodsRequest()

--Set values
--Enter Custom Currency Short Code
buyVirtualGoodRequest:setCurrencyShortCode(CURRENCY_1)
buyVirtualGoodRequest:setQuantity(1)
buyVirtualGoodRequest:setShortCode("Gold_Coin")

--Send Request
buyVirtualGoodRequest:send(function(response)
--Function that returns a table of things bought, we loop through and return ShortCode of virtual goods
 local vGoods = response:getBoughtItems()
 print("Items bought: ")
  for i, vGood in pairs(vGoods) do
   print(vGood:getShortCode())
   end
end)
end

If the player doesn't have the needed funds, the response will come back with a useful error message:

Account Details Request

Now you'll create a function which will retrieve your player's record. For this example, we're going to print the Achievements and Virtual Goods that that player owns.

Create a function that builds the AccountDetailsRequest and sends it:

local function accountInfo()
--Build Request
local requestBuilder = gs.getRequestBuilder()
local accountInfoRequest = requestBuilder.createAccountDetailsRequest()

--Send Request and process response
accountInfoRequest:send(function(response)
--Get achievements table, loop through it, and print the values in it
local achievements = response:getAchievements()
print("Achievements: ")
for i, achievement in pairs(achievements) do
print(achievement)
end
--Get virtual goods table, loop through it, and print the values in it
local vGoods = response:getVirtualGoods()
print("Virtual Goods: ")
for vGood, quantity in pairs(vGoods) do
print(vGood)
end
end)
end

Did this page help you? Please enter your feedback below. For questions about using this part of the platform, please contact support here