A script mod that makes selling more realistic: each buyer has a finite monthly appetite. As you keep dumping the same crop at the same selling station, the price it pays gradually falls — flooding a market crashes its price. Spread sales across stations, across crops, or across months and you keep prices high.
Status: v1.0.0 — initial public release. Single-player only. Balancing values are first-pass; feedback very welcome.
Same crop, same moment, across every station — before and after flooding selling points with wheat. Grain River Silo's price collapses from €287 to €115 while the untouched stations hold steady:
| Before (fresh market) | After (flooded Grain River Silo) |
|---|---|
![]() |
![]() |
And at the point of sale, the penalty shows right in the income HUD — next to your harvest income, so you can see exactly what saturating the market cost you:
- 📉 Demand-based pricing — price drops continuously as you sell more of a fill type at a station within the month. No sudden cliffs, no hard "you can't sell" wall — just diminishing returns.
- 🏪 Per-station, per-crop — each selling point tracks each fill type independently. The dairy flooding wheat doesn't affect the biogas plant's price for silage.
- 🗓️ Monthly recovery — demand resets each in-game month, so prices bounce back. Patience pays.
- 💾 Persistent — demand is saved with your game and restored on load.
- 🔔 Point-of-sale feedback — a "Saturated market" line appears in the income HUD right next to your harvest income, showing exactly how much you left on the table by dumping into a flooded market. The penalty is visible, not hidden.
- 🧾 Transparent — everything it does is logged (prefix
[RealisticMarketDemand]), so you can see exactly what's happening.
Within a monthly period, each (station, fill type) pair accumulates the liters
you've sold. The price multiplier falls linearly from 1.0 toward a floor as
consumption approaches a threshold, then holds at the floor. Both the floor and
the threshold follow your economic difficulty (see Difficulty
below — e.g. Normal is a 0.50 floor reached at 150,000 L):
multiplier = 1 − (1 − floor) × min(litersSold / litersForFullDrop, 1)
Selling is never blocked — the price just gets progressively worse, exactly like saturating a real local market. A new month resets the counter and the price recovers.
This layers on top of the game's own dynamic pricing; it doesn't replace it.
Players
- Download the latest
FS25_RealisticMarketDemand.zipfrom the Releases page. - Drop the
.zip(do not unzip) into:Documents/My Games/FarmingSimulator2025/mods/ - Enable Realistic Market Demand in the mod list when starting or loading a single-player savegame.
From source (developers) — see CONTRIBUTING.md.
The strength of the effect follows your savegame's economic difficulty — no separate setting to manage, and it adjusts live if you change the difficulty in-game. Harder economy, harsher saturation:
| Economic difficulty | Price floor | Liters to reach the floor |
|---|---|---|
| Easy | 0.60 | 300,000 L |
| Normal | 0.50 | 150,000 L |
| Hard | 0.40 | 75,000 L |
floor = lowest fraction of normal price a fully-saturated market pays; the
liters column = how much of one crop at one station (within a month) drives the
price to that floor. Tweak the numbers at the top of scripts/DemandModel.lua
(PRESETS) if you want. To see per-sale math in the log, set
RMDLogging.debugEnabled = true in scripts/RMDLogging.lua.
- Farming Simulator 25 (PC).
- Single-player only. Multiplayer is not supported in this version (full MP support is planned for a later version).
- Coexists with the base game's dynamic pricing and "great demand" events.
- Should be compatible with most maps and selling stations, since it hooks the
standard
SellingStationclass rather than any specific map. Conflicts are most likely with other mods that overwriteSellingStation:sellFillTypeorSellingStation:getEffectiveFillTypePrice.
- Single-player only for now — inactive in multiplayer (see Compatibility).
- No custom in-game settings menu (difficulty follows the savegame's economic difficulty instead). No custom 3D assets.
Bug reports, balance feedback, and pull requests are welcome — see
CONTRIBUTING.md. Please include your FS25/mod versions and the
[RealisticMarketDemand] lines from log.txt when reporting issues.
Released under CC BY-NC-SA 4.0. You may share and adapt the mod with credit, for non-commercial use, under the same license. Please do not re-upload to sites that paywall or monetize mod downloads.
Farming Simulator 25 and the GIANTS Engine are property of GIANTS Software GmbH. This is an unofficial, fan-made mod, not affiliated with or endorsed by GIANTS Software. Use of the mod must also comply with the Farming Simulator EULA.


