Skip to content

Repository files navigation

Realistic Market Demand — Farming Simulator 25

Version FS25 License: CC BY-NC-SA 4.0

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.

See it in action

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)
Baseline wheat prices Grain River Silo price dropped after flooding

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:

Saturated market penalty shown in the income HUD

Features

  • 📉 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.

How it works

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.

Installation

Players

  1. Download the latest FS25_RealisticMarketDemand.zip from the Releases page.
  2. Drop the .zip (do not unzip) into: Documents/My Games/FarmingSimulator2025/mods/
  3. Enable Realistic Market Demand in the mod list when starting or loading a single-player savegame.

From source (developers) — see CONTRIBUTING.md.

Difficulty

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.

Compatibility

  • 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 SellingStation class rather than any specific map. Conflicts are most likely with other mods that overwrite SellingStation:sellFillType or SellingStation:getEffectiveFillTypePrice.

Known limitations

  • 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.

Contributing

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.

License

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.

Disclaimer

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.

About

Demand-based selling prices for Farming Simulator 25 — flood a market and its price drops. Single-player, PC.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages