


This mod is ONLY required for the host in multiplayer games. Other players do not need to install this mod for it to work properly.
Clients can install it to see the same synced economy UI as the host
A full-featured dynamic economy mod for R.E.P.O.
On every level (starting from level 2 configurable), the game can roll (with 50% chance) one of 104 unique economy events like Inflation, Chaos, or Treasure Rush — each with different effects on valuable value. The chance is fully configurable.
Valuable prices are no longer fixed. Instead, each item dynamically rolls a value based on the current economy type and level scaling. with (custom config settings).
The result? A fresh, unpredictable economy every run!
📘 New to REPOConomy? Check out the How It Works section below! 📘
⚠️ Highly Recommended: Read Before Playing ⚠️
Pretty simple — here's a detailed explanation:
At the start of each level (only levels — not shop!), the host and all players (if they also have this mod installed) see the UI with the current economy:
💡 Example of the interface screenshot:
The UI consists of 4 lines:
StableLevelScale) are usedDeflation — an event that affects valuable prices, and so on...Example: –5% to +10%
+3.7% or –2.1% — randomly pickedExample: Level 4 (–3% - +3%)
This shows how much level scaling affects the economy:
LevelScaleMin and LevelScaleMax are set in the config (default: 1%)RangeRange was –5% ~ +10%, then on level 4 it becomes:–8% ~ +13%Example:
Stable → Economy by defaultDeflation → Market CrashEach valuable gets a unique price modification percentage.
Here's how it works:
The current Range is used, for example:
–5% min — +10% max
The mod picks a random value within this range.
Example:
+1.43%–2.41%This means:
These values are independent and unique for each valuable
The logic is fully randomized, but limited by the Range
🖼 Screenshot showing how the mod changes valuable prices:
So each level creates a new economic situation where some valuables become more valuable, while others become less valuable.
Events begin appearing from level 2, with a 50% chance.
Events modify the value Range for valuables.
Examples:
🟢 Inflation:
+0% to the min value+10% to the max value–5% → –5%, +10% → +20%🔻 Deflation:
–10%–5%–5% → –15%, +10% → +5%Each event affects how much valuables can rise or fall in value, making the game more interesting, harder, or more profitable.
EventsStartLevel (default: 2), and appear with a 50% chance..cfg or via the REPOConfig GUI.We hope now you understand how REPOConomy works — and how it makes every run unique!
A complete beginner's guide on how to create and configure your custom events in the REPOConomy mod. Includes examples, templates, and an explanation of each field.
JSON does not need to be sent to friends if you are the host, as data is transmitted even for custom events to clients, so they do not need JSON.
Each file must be a valid JSON containing an array of CustomEconomyData objects:
[
{ /* Event 1 */ },
{ /* Event 2 */ }
]
| Field | Type | Description |
|---|---|---|
| id | string | Unique identifier (no spaces). Example: soft_inflation |
| name_en | string | Display name in English. |
| name_ru | string | Display name in Russian. (Not necessarily to add) |
| desc_en | string | Flavor/description text in English. |
| desc_ru | string | Flavor/description text in Russian. (Not necessarily to add) |
| color | array | UI color RGB [0–255]. Example: [255,200,100]. |
| min | float | Percent offset for min. Positive or negative. |
| max | float | Percent offset for max. Positive or negative. |
| useDelta | bool | true = add offsets to base+level values; false = apply to range without changing current Min-Max. |
[
{
"id": "soft_inflation",
"name_en": "Soft Inflation",
"name_ru": "Мягкая инфляция", // Optional: remove this if you don’t want Russian name
"desc_en": "Slight price increase for a gentle economy shift.",
"desc_ru": "Небольшой рост цен для плавного изменения экономики.", // Optional: remove this if you don’t want Russian description
"min": -2.0, // Attention: To add to a negative value, simply place a "-" before the numbers | example: -2.0 |
"max": 5.0, // Attention: To add to a positive value, simply leave the value without signs: minus or plus example: 5.0
"color": [255,200,100],
"useDelta": true
},
{
"id": "hard_deflation",
"name_en": "Hard Deflation",
"name_ru": "Жесткая дефляция", // Optional: remove this if you don’t want Russian name
"desc_en": "Sharp drop in prices for a tough challenge.",
"desc_ru": "Резкое падение цен для серьёзного испытания.", // Optional: remove this if you don’t want Russian description
"min": 15.0, // Attention: To reduce a negative value, simply leave the value without signs: minus or plus example: 15.0
"max": -5.0, // Attention: To reduce a positive value, simply add a "-" before the numbers example: -5.0
"color": [100,150,255],
"useDelta": true
}
]
⚠️ Warning: Remove everything related to // in the JSON file. If you don't, there will be an error during loading. ⚠️
If you want to add a third event and beyond, simply copy the first event from { to } and don't forget to put a comma , at the end of }. Example: },
BepInEx/config/CustomEvents.my_events.json file or any other name without spaces.💡 Tip: Validate your JSON syntax at jsonlint before saving.
Полное руководство для новичков о том, как создать и настроить свои кастомные ивенты в моде REPOConomy. Включает примеры, шаблоны и объяснение каждого поля.
JSON с кастомными ивентами не нужно отправлять друзьям, если вы являетесь хостом, так как данные передаются даже для кастомных ивентов клиентам, поэтому им не нужен JSON.
Файл должен содержать массив объектов CustomEconomyData:
[
{ /* Ивент 1 */ },
{ /* Ивент 2 */ }
]
| Поле | Тип | Описание |
|---|---|---|
| id | string | Уникальный идентификатор без пробелов. Пример: hard_deflation |
| name_en | string | Название на английском. (Не обьязательно добавлять) |
| name_ru | string | Название на русском. |
| desc_en | string | Описание/флейвор на английском. (Не обьязательно добавлять) |
| desc_ru | string | Описание/флейвор на русском. |
| color | array | Цвет UI в формате RGB [0–255]. Пример: [100,150,255]. |
| min | float | Процент смещения для min. Положительный или отрицательный. |
| max | float | Процент смещения для max. Положительный или отрицательный. |
| useDelta | bool | true = добавить к базовым+уровневым; false = применить к диапазону без изменения текущего Min-Max. |
[
{
"id": "soft_inflation",
"name_en": "Soft Inflation", // Внимание: данную строку не обьязательно добавлять если вы не хотите имя для английского языка
"name_ru": "Мягкая инфляция",
"desc_en": "A slight increase in prices for a smooth economic adjustment.", // Внимание: данную строку не обьязательно добавлять если вы не хотите описание для английского языка
"desc_ru": "Небольшой рост цен для плавного изменения экономики.",
"min": -2.0, // Внимание: Чтобы прибавить к минусовому значению просто добавьте перед цифрами - |пример: -2.0|
"max": 5.0, // Внимание: Чтобы прибавить к плюсовому значению просто оставьте значение без знаков: минуса - плюса |пример: 5.0|
"color": [255,200,100],
"useDelta": true
},
{
"id": "hard_deflation",
"name_en": "Hard Deflation", // Внимание: данную строку не обьязательно добавлять если вы не хотите имя для английского языка
"name_ru": "Жесткая дефляция",
"desc_en": "A sharp decline in prices for a serious challenge.", // Внимание: данную строку не обьязательно добавлять если вы не хотите описание для английского языка
"desc_ru": "Резкое падение цен для серьёзного испытания.",
"min": 15.0, // Внимание: Чтобы уменьшить минусовое значение просто оставьте значение без знаков: минуса - плюса |пример: 15.0|
"max": -5.0, // Внимание: Чтобы уменьшить плюсовое значение просто добавьте перед цифрами: - |пример: -5.0|
"color": [100,150,255],
"useDelta": true
}
]
⚠️ Внимание: удалите все что связанное с // в Json файле, если не удалите то будет ошибка с загрузкой ⚠️
Если хотите добавить 3 ивент и так далее просто скопируйте первый ивент с { до } и не забудьте в конце } поставить , Пример: }, и измените поля под свой вкус.
BepInEx/config/CustomEvents.my_events.json файл, или любое другое название Без Пробелов.💡 Совет: Проверьте синтаксис на jsonlint перед сохранением файла.
REPOConomy.dll into your BepInEx/plugins folder💡 Recommended: Install the REPOConfig mod to change these settings directly in-game via a GUI.
Located in:
BepInEx/config/PxntxrezStudio.REPOConomy.cfg
Below are all available configuration options.
| Setting | Description | Default |
|---|---|---|
| DefaultBaseMin | Base minimum multiplier applied before level scaling | 5.0 |
| DefaultBaseMax | Base maximum multiplier applied before level scaling | 10.0 |
| UseTwoStepPercentRoll | Separate negative and positive percent rolls | false |
| PercentRollMode | Determines weighed percentage RNG: Random = Uniform (Flat), Stable = Near center (Bell curve), Volatile = Near Min/Max (Inverse bell curve), Dynamic (Changes per level) | Random |
| Setting | Description | Default |
|---|---|---|
| LevelScaleMin | Percent increase added to minimum per level | 1 |
| LevelScaleMax | Percent increase added to maximum per level | 1 |
| Setting | Description | Default |
|---|---|---|
| ClampMinLimit | Lowest allowed percent (e.g. –100% reduction) | 100.0 |
| ClampMaxLimit | Highest allowed percent (e.g. +1000% increase) | 1000.0 |
| Setting | Description | Default |
|---|---|---|
| EventsStartLevel | Level at which economy events can begin | 2 |
| NoEvents | Force all runs to use Stable economy (disable events) | false |
| DisableVanillaEvents | If true, disables all built-in vanilla events. Only custom events will be used, if EnableCustomEvents enabled. | false |
| EnableCustomEvents | Enable loading of custom economy events from JSON files to appear in-game. | true |
| Setting | Description | Default |
|---|---|---|
| UseEventsChance | Enable the event drop system based on chance. | true |
| EventChance | Chance (1–100) for an event to occur instead of a stable economy | 50 |
| Setting | Description | Default |
|---|---|---|
| UseCustomEventChance | Enable a separate chance check for custom events (only applies if UseEventsChance is true). If this feature is disabled, there will be a 50/50 chance of either a vanilla event or a custom event occurring. | true |
| CustomEventChance | Chance (1–100%) for custom events to occur instead of vanilla events if UseCustomEventChance is enabled. | 50 |
| Setting | Description | Default |
|---|---|---|
| ShowTotalMapValue | Log (In console) total dollar value of all valuables on the map | false |
| Setting | Description | Default |
|---|---|---|
| UI Language | Language used for the economy UI | English |
Below are all available Events and their effects.
More events will be added with every updates!
| Event (EconomyType) | Effect on baseMin / baseMax |
In-Game Description |
|---|---|---|
| Stable | No change (Uses the values from the config) | Economy by default |
| Deflation | –10% min, –5% max | Market Crash |
| Inflation | +0% min, +10% max | Moment to Get Rich! |
| Chaos | –10% min, +10% max | Financial chaos... |
| FreezeMarket | 0% min, 0% max | Economy frozen :( |
| BlackMarketSurge | –10% min, +20% max | Values have become more expensive... |
| Overload | –100% min, +100% max | 50/50 |
| RareBoom | +5% min, +30% max | Values are suddenly in price! |
| CommonCrash | –30% min, –10% max | Values are devalued! |
| LegendaryOnlyMatters | –20% min, +5% max | Only the best makes sense... |
| EchoMarket | –25%→0% min, 0%→+25% max (random) | Prices are jumping like crazy... |
| ReverseInflation | –15% min, –5% max | Budget is better than wealth... |
| LuxuryHunt | +10% min, +40% max | Values are much more expensive! |
| DumpsterDive | +5% min, +60% max | Everything has become expensive! |
| ExtraProfit | +0% min, +50% max | Today you can sell more profitably! |
| ScamSeason | –30% min, –10% max | Prices are falling... :( |
| SuddenDrop | –50% min, –20% max | Almost everything has depreciated! |
| TreasureRush | +100% min, +200% max | Every value is — treasure! |
| ZeroGravity | –50% min, +150% max | Everything is unstable... |
| Turbulence | ±30% equally to min & max (random) | Prices behave unpredictably... |
| BubbleBurst | –40% min, –5% max | The market was booming... until it wasn’t |
| CollectorsFrenzy | +30% min, +80% max | Everything is worth more than it should be |
| PanicSale | –40% min, –20% max | Players are panic-selling everything for pennies! |
| EconomicTwister | Ignores min/max — 0%→200% per valuable | Every valuable gets a completely random value. |
| TaxAudit | –15% min, –15% max | The Tax Department has reviewed your valuables. |
| Crash & Burn | –90% min, 0% max | The market is collapsing — brace for losses. |
| GoldenHour | +20% min, +50% max | A perfect time to sell — prices are booming! |
| CrystalBubble | +50% min, +100% max | Market euphoria! Prices are sky-high… for now |
| CoinDecay | –20% min, –60% max | Everything feels worthless. Time to sell or hold? |
| EchoCrash | ±50% equally to min & max (random) | Residual shockwaves shake the market unpredictably |
| SpeculationBubble | –20% min, +100% max | Prices are inflating without logic... Bubble may burst any time! |
| ColdStorage | –10% min, –10% max | Nothing sells well. Prices are frozen under market value |
| PriceWhirlwind | –60%→0% min, 0%→+60% max (random) | An unstable market surge throws prices into a whirlwind! |
| ExperimentalPricing | –20% min, +40% max | Prices fluctuate wildly due to market experiments |
| ShadowMarket | –60% min, +5% max | A secret market drains value from most valuables |
| AuctionFever | +10% min, +80% max | A bidding war is driving prices through the roof! |
| MemoryMarket | ±5% random offset to current range | Prices mirror the past — but with a twist |
| LoopbackSpike | Doubles current min/max range | History repeats with extreme volatility |
| GlitchedGoldrush | Sets min/max to +20% / +100% | Something’s broken… but you’re getting rich |
| MarketEclipse | –5% min, +5% max | An economic blackout... almost no movement |
| JackpotMirage | Random –50% to +150% | Everything looks like gold... but some of it’s fool’s gold |
| CollectorsVoid | –90% min, –50% max | All value is lost — nothing is collectible anymore |
| VolatileExperiment | –100% min, +250% max | A dangerous economic experiment — chaos reigns |
| CleanSweep | +0% min, +5% max | A calm period — nothing to fear, nothing to gain |
| ValueVortex | –100% → +100% (per valuable, random) | A swirling mess of prices — unpredictable and wild |
| TemporalSurge | –20% min, +60% max | Prices shift with a pulse of time itself. |
| EchoOfWealth | Keeps previous range | Prices mimic those from two levels ago. |
| ArtifactBloat | +50% min, +100% max | Old junk is now gold. |
| MarketDrain | –60% min, –30% max | All prices slowly drain into the void. |
| InversionProtocol | Flips positive/negative | Low-value becomes high-value. High-value drops. |
| SyntheticDemand | Random +0% to +80% max increase | Artificial demand spikes at random. |
| TaxFrenzy | –50% min, –20% max | Tax rates hit hard! Prices plummet. |
| AssetDump | –80% min, +20% max | Everyone’s dumping assets! |
| SmugglersSurge | Custom (based on item value) | Expensive items skyrocket, cheap ones tank |
| CollectorsCraze | +200% for rare, –10~–30% for others | Rare collectibles soar — the rest is junk |
| MarketKraken | 30% of items get ×4, others = $0 | The market goes wild. 30% of valuables get ×4 boost! |
| MarketBoom | +20% min, +50% max | Prices surge across the entire market! |
| PriceLockdown | –5% min, +5% max | All prices are frozen by decree |
| WildSpeculation | –50%→+100% min & max (random) | Speculators drive prices wildly up and down! |
| SilentAuction | +0% min, +30% max | Auctions run in silence, prices unclear |
| FlashCrash | –50% min, –20% max | Instant crash wiping out asset values! |
| CryptoSurge | +10% min, +100% max | Cryptocurrencies push the market sky-high! |
| ResourceRush | +5% min, +25% max | Resource scarcity drives prices up |
| DemandSpike | +0% min, +60% max | Explosive demand floods the market! |
| SupplyShortage | –20% min, –5% max | Severe supply shortages cripple prices |
| ConsumerConfidence | +5% min, +15% max | Consumers irrationally confident! |
| MarketMeltup | +50% min, +200% max | A melt-up as prices climb uncontrollably! |
| BargainHunt | –10% min, +10% max | Hunting bargains—some crash, others spike |
| MarketRebound | +10% min, +20% max | After a crash, the market swiftly rebounds! |
| PriceCascade | random –20%→0% min, 0%→+20% max | Prices cascade downward, but may bounce back |
| BullRun | +30% min, +60% max | A bull run—prices charge skyward! |
| BearTrap | –60% min, –30% max | A bear trap—brief gains before a fall… |
| PanicBuying | +50% min, +100% max | Players panic-buy—supplies vanish! |
| SupplyGlut | –50% min, +10% max | Oversupply—prices sink under glut |
| SpeculatorFrenzy | ±40% equally to min & max (random) | Speculators push prices to chaotic extremes! |
| ValueStabilizer | clamp to ±5% | Regulatory measures keep prices in check |
| MarketMirroring | repeat previous range | The market mirrors its previous level |
| InflationSpike | +15% min, +25% max | A sudden spike in inflation! |
| DeflationDip | –15% min, –25% max | Prices plunge into a deflationary dip |
| EconomicEquilibrium | 0% min, 0% max | A perfect balance of supply and demand |
| PriceSurge | +20% min, +40% max | Sudden price surge—everything jumps 20–40%! |
| BargainBlitz | –30% min, –10% max | Flash discounts—prices drop 30–10% instantly! |
| CollectorCarnival | if ≥50% → ×2; else –10% | Collectibles ×2, others −10%. |
| GhostPrices | ±25% equally to min & max (random) | Ghostly prices—random offset ±25%. |
| BarterBonanza | –20% min, +15% max | Barter bonanza—low items down, high items up. |
| SeasonalShift | +15% min, –5% max | Seasonal shift—min +15%, max −5%. |
| BlackoutSale | –50%→–30% equally to min & max (random) | Blackout sale—prices slashed −50…−30%. |
| InflationEbb | –20% min, –10% max | Inflation ebb—prices fall 10–20%. |
| FoolsGold | –10% base, +0→+50% offset (random) | Fool’s Gold—some +50%, others −10%. |
| HoardersHavoc | –40% min, +10% max | Hoarder’s Havoc—cheap −40%, expensive +10%. |
| PennyPinch | –60%→–40% equally to min & max (rand.) | Penny Pinch—prices slump −60…−40%. |
| Trendsetter | +30%→+60% equally to min & max (rand.) | Trendsetter—premium items surge +30…+60%! |
| Price Spike | +40% min, +80% max | Prices suddenly spike across the board! |
| Clearance | –60% min, –20% max | Massive clearance cuts values everywhere! |
| Boomerang Market | –20%→+10% min, +10%→+40% max | Values swing back—but unpredictably! |
| Silent Dip | –10% min, –5% max | Quiet dip... nothing sells well |
| Luxury Only | –40% min, +5% max | Only luxury items hold value now |
| Early Bubble | +30% min, +100% max | A bubble forms early—brace for boom |
| Late Deflation | –70% min, –10% max | Late-stage deflation drains the market |
| Price Slalom | ±30% equally (random) | A slalom of ups and downs |
| False Demand | +10% min, +40% max | Artificial demand inflates prices! |
| Underground Trade | –40% min, +5% max | Trade continues in the shadows |
| Crystal Crash | –100% min, –40% max | The bubble shatters into a crystal crash |
| Ghost Rush | +50% min, +150% max | Phantom value rushes sweep the market! |
All events roll each level (if level ≥ EventsStartLevel and chance roll succeeds) and are clamped between ClampMinLimit and ClampMaxLimit.
Report bugs, suggest features, or provide feedback:
| Discord Server | Channel | Post |
|---|---|---|
| R.E.P.O. Modding Server | #released-mods |
REPOConomy |