MapleThiefCompendium

Cash shop and revives

The original game sold ten products for real money through the App Store: eight in the cash shop, opened with the Cash button in the top right corner of the field, and two paid revives on the death popup. A purchase was granted only after a Nexon server confirmed the receipt. That server is gone, so on an original device today nothing can be bought.

Products

Each product has an App Store identifier, com.nexonmobile.maplestory.thief. followed by the suffix in the table. The game holds no prices: the App Store's own payment sheet showed them, and the tiles show none.

WhereProductWhat it grantsRefused when
Cash shop, tile 1InitializeSPone Initialize SPthe inventory is full
Cash shop, tile 2SPMarbleSP1Plusone SP Marble SP+1the inventory is full
Cash shop, tile 3mesopack322,000 mesothe hero would pass 100,000,000 meso
Cash shop, tile 4mesopack450,000 mesothe same
Cash shop, tile 5mesopack5120,000 mesothe same
Cash shop, tile 6mesopack6300,000 mesothe same
Cash shop, tile 7exppack140% of the EXP the current level needsthe hero is level 99
Cash shop, tile 8exppack280% of the EXP the current level needsthe hero is level 99
Death popuppowpackagea revive on the spot and 30 Power Elixirno room for the elixirs
Death popupComebackPackthe same, plus 40% of the EXP the level needsno room, or level 99

EXP from a pack carries into the next level the usual way (EXP and levelling). The 30 Power Elixirs of a revive are worth 39,000 meso at the 1,300 meso that Mr. Wang asks for one in El Nath Village (El Nath, chapters 2 and 3) and in Magatia Village (Magatia, chapter 3).

The cash shop does not open on the 16 maps where the game also refuses to save (the tutorial, the boss rooms, three climbs and the Monster Carnival rooms; see saving).

Example: a level 10 hero (need 200 EXP) with 150 EXP buys the 80% pack. 150 + 160 = 310 passes 200, so the hero reaches level 11 with 110 EXP.

Cash items no product grants

The item table has four cash items. Initialize SP and SP Marble SP+1 come from the tiles above; Level Up Marble Lv+1 and XP 20% Increase have no product, no drop and no shop, and are left over from the earlier phone version. The item table gives the four a meso value (Initialize SP and Level Up Marble 10,000, the other two 5,000), which only matters if one is sold. What each item does is on potions and scrolls.

How a purchase worked

  1. A tap on a tile or a revive button checked the refusals above, showed a waiting screen and asked the App Store for the product.
  2. After the payment, the App Store's receipt was kept in a receipt file on the device.
  3. The game connected to Nexon's server, sent the receipt, and granted the product named in the server's answer. Then it removed the receipt from its file and saved.

A receipt that was never confirmed stays in its file, and the game asks for it to be restored before the next purchase. On a device today that restore fails, which blocks the cash shop for good. Once granted, a purchase leaves no trace in the save: it is ordinary meso, EXP or items.

In the port

The port cancels every payment by default; the optional cash_shop = meso assist sells the six products that are not meso for the hero's own meso instead (the port's offline cash shop, ADR 0072).

Sources

The cash shop's keys and the death popup's revive buttons in CStateGame::OnKeyPressed 0x8D4C9; the shop panel from Shell_EnableCashShopKey 0x66A5; the App Store request in -[InAppPurchaseManager loadProductsInfo:] 0xBF695 and -productsRequest:didReceiveResponse: 0xBE559; the receipt in -completeTransaction: 0xBE6D9 and CStateGame::Paint 0x87501; the server exchange in CDataMgr::ConnectServer 0x37B55 and CDataMgr::OnServerPacket 0x3ED19 (the server was 50.17.236.149:20001); the grants through CHero::setMeso 0x618E1, CHero::setExp 0x6654D, CHero::addInven 0x64309 and the revive 0x6140D. The full analysis is the project's cash shop note.