Skip to content
RF DataData reference
RU

Items and economy

Cash shop

Cash shop goods and national prices

Total 32 Known 27 Derived 2 Unused 3

Overview

The cash shop sells goods for the in-game cash currency. A product is one row with one number in four files: the server Script\CashShop.dat (product, showcase, discount) and CashShop_str.dat (prices for 9 countries, 11 in GU), the client DataTable\ItemCash.edf (the same record with packed codes) and <language>\NDItemCash.edf (the price for the client language). Rental goods are additionally described in TimerItem.dat.

How it works

  • The server takes one column of CashShop_str.dat — the country from WorldInfo.ini (NationCode); the client takes the price from NDItemCash.edf of its language folder. The client sends the price in the purchase request, and the server rejects the purchase when the prices differ: the server country's price must equal the price in every language folder distributed to players.
  • The fields m_nCsPrice in CashShop.dat and Price in ItemCash.edf do not affect purchases.
  • Only items from 13 tables can be sold, with m_bIsCash = 1 on the server and IsCash ≠ 0 in the client Item.edf; without the client flag the product does not appear in the window.
  • m_strCode is the link key CashShop.dat ↔ CashShop_str.dat: on a duplicate the first row found supplies the price. Hidden goods (m_bView = 0) pass the same loading checks; a placeholder without a price breaks loading of the whole shop.
  • Promotions (cash_discount*.ini, condistional_event.ini) are server ini files, not yet part of the editor; on Sirin the price must be ≥ 1 and the sum of percentage discounts < 100.

What matters when editing

  • A new row is appended to the end of all four files in sync (checked in game: there is no 1000-row limit).
  • The row count of ItemCash.edf equals the row count of NDItemCash.edf in every language folder.

Files of the category

4 in the registry
FileSideFormatLevelCorporaRecordDigestNote
script\CashShop.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 240, GU 240, Sirin 240cashshop.mdcashshop.md §2
script\CashShop_str.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 104, GU 112, Sirin 104cashshop.mdnot names but national prices; cashshop.md §3
DataTable\<language>\NDItemCash.edfclientedfderivedAoP ✓ (en-ph, ru-ru), GU ✓ (en-gb, ru-ru), Sirin ✓ (en-gb, ru-ru)AoP 4, GU 4, Sirin 4cashshop.mdDerived from: CashShop_str.dat (m_nrus_Price).
DataTable\itemcash.edfclientedfderivedAoP ✓, GU ✓, Sirin ✓AoP 64, GU 64, Sirin 64cashshop.mdDerived from: CashShop.dat. cashshop.md §5.1; the GU client also has ItemCash.edf next to it

“ready for full” — the format is understood and the fields are described; “derived” — the file is assembled from another; “opaque” — the format is not fully known; “postponed” and “out of scope” — the studio does not edit the file.

Sections of the category

The files of the category are split into groups; every group and subgroup has its own page with the fields of its files only.

Client: ItemCash.edf

DataTable\<language>\NDItemCash.edf; DataTable\itemcash.edf

Total 11 Known 9 Derived 2 Unused 0

Unused parameters

Fields that neither the server nor the client reads. For each: why it was decided so and where that was established. The editor keeps their bytes as they are.

script\CashShop.dat server file

OffsetFieldWhy unusedData
+0x08Cm_strItemPart
not read in loading or purchase
cashshop.md §2: digest — “+0x8C | m_strItemPart (cstr64) | showcase tags ne/be/hi/gm/li | not read in loading or purchase”; does not go to the client file (itemcash.edf is mapped, cashshop.md §5)
10 values; most often ne/0/0/0/0 (52%)

script\CashShop_str.dat server file

OffsetFieldWhy unusedData
+0x068m_nspa_Price
national price (GU column); the field is absent in AoP; the studio writes 0
cashshop.md §4: the server takes one column by NationCode; the project server starts only with RU → m_nrus_Price; the extra GU columns are unused [user decision, 29.10.2026]
97 values; most often 0 (16%)
+0x06Cm_ntha_Price
national price (GU column); the field is absent in AoP; the studio writes 0
cashshop.md §4: the server takes one column by NationCode; the project server starts only with RU → m_nrus_Price; the extra GU columns are unused [user decision, 29.10.2026]
97 values; most often 0 (16%)
RF Online is a trademark of its owners. The reference is compiled from research for content development. Built 01.11.2026 · field catalog dated 29.10.2026 · Adagio UI 0.5.0