This file decides how trading feels on your server – whether prices move, how fast shelves refill and whether traders ever run out of money. It also lets you pin down individual goods and their prices.
EconomyOverride.json consists of two very different parts.
At the top there are 21 global keys. They apply to the whole server and decide the character of the economy. They are manageable, and they are what you actually adjust.
Below sits traders with 36 traders, each with a list of goods. Out of the box almost all lists are empty – which does not mean those traders stock nothing, but that nothing is overridden for them. An entry here is an exception to the game's own rule, not a catalogue.
Unlike the ServerSettings.ini, all values here are strings: "2.0", not 2.0. The game reads the number out of the text. Stick to it – mixed notation is a common source of errors.
And as everywhere in this configuration, -1 means “use the game default”. A -1 is not a switched-off value but an unset one.
Of the 21 keys, four noticeably change how the game feels; the rest is fine tuning:
prices-subject-to-delta – do prices move at all? Off means a fixed catalogue.traders-unlimited-funds – can you sell without limit? On means money stops being scarce.traders-unlimited-stock – does anything ever run out? On means rarity no longer exists.fully-restock-tradeable-hours – how fast is the shelf full again? The most important dial for whether trading requires patience.Set all three switches to unlimited and you have a server without an economy. That is a valid choice – you should just know you made it.
There are 36 traders: nine kinds across four sectors. The kinds are Armory, Barber, BoatShop, Hospital, Hunter, Master_Hunter, Mechanic, Saloon and Trader; the sectors are A_0, B_4, C_2 and Z_3. Combined they give names like A_0_Armory.
There is a trap here: the template built into the server program writes the master hunter as A_0_MasterHunter, while the file your server actually creates writes A_0_Master_Hunter. What counts is always the file your own server produced – not one copied from a forum. A trader name the game does not know is silently ignored.
A goods line consists of seven fields. tradeable-code is the item's internal name; everything else is prices, requirements and switches, each sitting at -1 or default for “do not touch”.
Only set what you really want to change and leave the rest at the default. A list of 300 lines that all contain nothing but -1 is a lot of file for no effect – and every one of them has to be re-checked after an update.
We check the 21 global keys for notation, range and contradictions, plus the structure of the goods lists: unknown trader names, duplicate item codes, unknown fields in a goods line, impossible prices.
We do not check whether an item code exists in the game. That would need the game's complete item catalogue – a project of its own, and it is on the list.
| Field | Default | Required | What does this setting do? |
|---|---|---|---|
economy-reset-time-hoursReset the economy | -1.0Stunden | no | After how many hours the economy is put back to the start: prices, stock and trader funds. -1 means never – the economy then keeps developing over the server's whole lifetime. |
prices-randomization-time-hoursRe-randomise prices | -1.0Stunden | no | After how many hours prices are randomised again. -1 keeps the game default. Short intervals make trading unpredictable – anyone comparing prices finds different ones every time. |
tradeable-rotation-time-ingame-hours-minGoods rotation: at the earliest | 48.0Spielstunden | no | The minimum number of in-game hours between two rotations of the goods on offer. The server draws a value between this and the maximum. |
tradeable-rotation-time-ingame-hours-maxGoods rotation: at the latest | 96.0Spielstunden | no | The upper end of the same span. Has to be larger than the minimum. |
tradeable-rotation-time-of-day-minGoods rotation: earliest hour of day | 8.0Stunde des Spieltags | no | The earliest hour of the in-game day at which a rotation happens. 8.0 is eight in the morning. |
tradeable-rotation-time-of-day-maxGoods rotation: latest hour of day | 16.0Stunde des Spieltags | no | The latest hour of day for a rotation. Together with the minimum this makes the offer change during the day rather than at three in the morning. |
fully-restock-tradeable-hoursTime to a full shelf again | 2.0Stunden | no | How long it takes until a sold-out item is fully available again. Small values mean money is the only obstacle. Large values make rare goods genuinely rare. |
trader-funds-change-rate-per-hour-multiplierHow fast traders get money back | 1.0Faktor | no | A multiplier on how fast a trader's funds recover. 0.5 halves the pace – sell a lot and you have to wait until the trader can pay again. |
prices-subject-to-deltaPrices follow supply and demand | 1 | no | With this on, the price of a heavily bought item rises and that of a heavily sold one falls. This is the core of the economy – switched off it becomes a catalogue with fixed prices. |
prices-subject-to-player-countPrices depend on the player count | 0 | no | Scales prices with the number of players on the server. Meant so that on small servers a handful of players do not clear the market at once. |
gold-price-subject-to-global-multiplierGold price follows the global multiplier | 1 | no | Whether the gold rate follows the server-wide multiplier or stays independent. |
gold-base-priceBase price for gold | -1 | no | The starting price of a unit of gold. -1 keeps the game default. Gold is the game's second currency – changing this shifts the value of every gold price at once. |
gold-sale-price-modifierDiscount when selling gold | -1.0 | no | How much less you get for selling gold than for buying it. -1 keeps the game default. |
gold-price-change-percentage-stepGold rate: step size in percent | -1.0 | no | By how many percent the gold rate moves per step. -1 keeps the game default. |
gold-price-change-per-stepGold rate: movement per step | -1.0 | no | The absolute movement of the gold rate per step. -1 keeps the game default. |
economy-loggingWrite a trade log | 1 | no | Logs every purchase and sale: who, what, how much, at which trader. It is the only trace you have when someone claims something went missing – leave it on. |
traders-unlimited-fundsTraders have unlimited funds | 0 | no | With this on, every trader can buy any amount at any time. Convenient, but it removes every limit from selling: anyone with a good source turns it into money without waiting. |
traders-unlimited-stockTraders have unlimited stock | 0 | no | With this on, nothing ever sells out. Rare items lose their appeal – with enough money you get everything, always. |
global-only-after-player-sale-tradeable-availability-enabledGoods only after a player sold one | 0 | no | With this on, traders only stock an item once a player has sold them one. That turns the economy around: the market then lives off the players, not off the game's supply. |
tradeable-rotation-enabledRotate the offer at all | 1 | no | The master switch for goods rotation. Off means every trader keeps the same range forever, and the four timing values above stop doing anything. |
enable-fame-point-requirementFame points as a requirement | 1 | no | Whether goods that require fame points really require them. Off means anyone buys anything as soon as they have the money. |
| Field | Default | What does this setting do? |
|---|---|---|
tradeable-codeItem code | | The item's internal name, for example Weapon_AK47 or Frag_Grenade. It is the only way the trader finds the item. |
base-purchase-pricePurchase price | -1 | What the player pays. -1 keeps the game's own price. |
base-sell-priceSell price | -1 | What the trader pays when a player sells the item. -1 keeps the game's own price. |
delta-pricePrice movement | -1.0 | How strongly this one item's price reacts to supply and demand. Only effective if price movement is switched on globally. |
can-be-purchasedPurchasable at all | default | default keeps the default, otherwise 1 for purchasable and 0 for not. This is how you block single items without removing them from the game. |
required-famepointsRequired fame points | -1 | How much fame someone needs to buy this item. -1 means no own requirement. |
available-after-sale-onlyOnly after a player sale | default | Like the global switch, but for this one item only. |
A_0_ArmoryA_0_BarberA_0_BoatShopA_0_HospitalA_0_HunterA_0_Master_HunterA_0_MechanicA_0_SaloonA_0_TraderB_4_ArmoryB_4_BarberB_4_BoatShopB_4_HospitalB_4_HunterB_4_Master_HunterB_4_MechanicB_4_SaloonB_4_TraderC_2_ArmoryC_2_BarberC_2_BoatShopC_2_HospitalC_2_HunterC_2_Master_HunterC_2_MechanicC_2_SaloonC_2_TraderZ_3_ArmoryZ_3_BarberZ_3_BoatShopZ_3_HospitalZ_3_HunterZ_3_Master_HunterZ_3_MechanicZ_3_SaloonZ_3_Trader{
"economy-override": {
"traders-unlimited-funds": "0",
"fully-restock-tradeable-hours": "6.0",
"traders": {
"A_0_Armory": [
{
"tradeable-code": "Weapon_AK47",
"base-purchase-price": "4500",
"base-sell-price": "900",
"delta-price": "-1.0",
"can-be-purchased": "default",
"required-famepoints": "-1",
"available-after-sale-only": "default"
}
]
}
}
}Drag it into the configurator – on its own or with the whole folder. Checking happens in your browser, nothing is uploaded.
To the configurator →