Market Dynamics v1.2.0.1

Real-world inspired dynamic crop pricing for Farming Simulator 25.

V1.2.0.1
Swapped out the ▲/▼ indicators since FS25 does not like it
Fixed nill error from missing l10n string
Updated all translation files (new keys have been added)

V1.2.0.0
Click the Crop, Price, or Change column header in the Prices tab to sort the list — click again to flip the order. A small ▲/▼ arrow shows which column is active.

MDM now correctly uses base prices set by the Realistic Economy mod. If you have both installed, MDM’s price swings and world events will layer on top of REM’s real-world prices instead of ignoring them.

V1.1.9.5
Dedicated server admins were unable to add or remove custom fill types from
world events — changes appeared to work but silently reverted every time. This
update fixes that, and also makes it much easier to find crop names on servers
running lots of crop mods.

What’s fixed / What’s new:
Custom fill types now save correctly for dedicated server admins — no more
changes disappearing after closing the dialog
Removing a fill type from an event list now actually sticks (closes #77)
“Browse Fill Types” dialog has a new real-time search bar — type part of a
crop name to instantly filter the list instead of scrolling through 100+ entries
All existing languages updated with the new search label

No save migration needed — existing savegames load normally.

V1.1.9.4
Market Dynamics now reacts to what’s happening in the world. If Random World
Events fires a market crash, prices will reflect it. If your fields are under
widespread crop stress, supply pressure nudges prices upward.

What’s new / fixed:
Random World Events integration: active economic and field events now
directly shift crop prices (market boom +12%, crash -13%, export
opportunity +18%, economic crisis -20%, and more)
Seasonal Crop Stress integration: when many of your fields are under
critical stress, a mild supply-pressure price increase kicks in
Delivery time unit (real days vs. in-game days) is now a single global
setting in ESC > Settings > Market Dynamics instead of a per-contract
choice — existing contracts are not affected
New contract HUD showing your active contracts at a glance
Event alerts redesigned with cleaner notifications
Fixed contracts not completing correctly at selling points
Fixed delivery start time not being saved correctly across reloads
Fixed a time-scale warning that could trigger incorrectly during fast-forward
Browse Fill Types dialog for easier event configuration
Immediate contract delivery now available
Event settings sync properly in multiplayer

Saves: No migration needed. Existing contracts carry over.

V1.1.9.3
Added a new HUD for when there is a active contract
Added a dialog that shows up when a event has started
Added new strings to all 25 translation files
Fixed a issue where contracts made could not be fullfilled while unloading at selling station
Added missing strings across all translation files

V1.1.9.2
Added missing deliveryStartTime and bcManaged fields to MarketSerializer and network sync (#64)
Fixed BCIntegration deadline offset to use daysPerPeriod (#64)
Added UPIntegration hooks and fixed modifier removal keys (#64)
Added onLoad and getExtraData fallbacks to all stateless events for save load safety (#64)
Fixed TradeDisruptionEvent duplicate extra filltype application (#64)
Added session start grace period to MarketDynamics to prevent immediate contract defaults on server restart (#63, #60)
Implemented MDMMarketSyncEvent to sync server prices and active events to clients, fixing desyncs (#62)
Added deterministic oldest-first contract fulfillment logic
Registered missing dialogs and added nil guards across core systems

V1.1.9.1
Browse Types (extended) — You can now add individual fill types directly to events via the browser UI
Commodity handling expanded — events now support all fill types, not just crops
Multiplayer / dedicated server event settings improved for better consistency and reliability
Contract completion issue that could prevent contracts from finishing correctly

V1.1.9.0
Created MDMSettingsSyncEvent.lua: A new network event that handles synchronizing all settings (Price toggles, Event Frequency, Volatility, Disabled Events, and Custom Fruit Types) between the server and all connected clients.
Sync on Join: When a new player joins the server, they now automatically receive the full current settings from the server so they see exactly what the host sees.
Real-time Updates: Whenever any player (with permission) changes a setting in the Settings UI or the Event Settings dialogs, that change is now instantly broadcasted to the server and all other clients.
Server-Side Persistence: Because the server now receives these updates in real-time, it will correctly include your custom fruit types the next time the game is saved.

V1.1.8.0
Contracts now sync correctly to all clients on a dedicated server
Fixed a loading failure caused by incorrect file paths inside the mod zip
Time unit toggle (hours/days) moved into the contract dialog where it belongs
Contract input popup restyled and repositioned — no more clipped text field
Removed a leftover settings panel that was causing tab conflicts in multiplayer
Event Settings is now a footer button (alongside New Contract), easier to find

V1.1.5.1
What’s Fixed
Custom input dialog — text field now positions correctly inside its container on all resolutions; was clipping outside the visible area in previous build
Time unit toggle — moved into the contract dialog itself for a cleaner workflow
Admin commands — reworked for improved reliability and cleaner console output

Saves
No save migration needed.

V1.1.5
What’s New
Custom contract amounts — instead of picking from preset quantities, you can now enter any amount (liters or units) using the new custom input dialog. Same for delivery windows — type in any number of in-game or real-world days.

MDM Settings Panel — a new settings tab is available in the server settings screen, giving admins easy access to all Market Dynamics options in-game.
Bug Fixes

Save path fix — the save file is no longer created inside a subfolder within your savegame directory. This fixes an issue where dedicated servers rejected uploaded savegames. Existing saves from v1.1.4.x are automatically migrated on first load — no action needed.

Dialog button layout — the quantity preset buttons in the futures contract dialog no longer overflow outside the dialog boundary.

Custom input dialog — the hint text at the bottom of the custom input dialog is now fully visible (was being clipped in the previous layout).

Save Compatibility
Saves from v1.1.4.x are fully compatible — data migrates automatically.

V1.1.4.0
FS25_FuturesMission has been updated

The Market Dynamics tab was overwriting the SERVER SETTINGS tab when playing on a multiplayer server. MDM’s tab now always inserts after all existing game tabs (including the MP-only SERVER SETTINGS tab), and recovers automatically if anything shifts tab positions.

V1.1.3.0
3 new events added!
ColdSnapEvent.lua — mixed-direction frost event; grain/oilseeds up, forage down; full save/load persistence via getExtraData/onLoad
FinancialPanicEvent.lua — black-swan macro shock; suppresses all crops simultaneously; rare, high intensity floor
ProteinPremiumEvent.lua — demand-pull protein trend; boosts soybean/canola and milling wheat/barley at different rates
Translation keys mdm_event_cold_snap, mdm_event_financial_panic, mdm_event_protein_premium added to all 26 language files

V1.1.2.0
Futures contracts no longer immediately default on the first reload after signing
Full multiplayer support for futures contracts. All contract actions (create, complete, cancel, delete) are now sent to the server for authoritative execution and synced back to all connected clients.

V1.1.1.0
This update brings a full integration with FS25_FuturesMission (by Mmtrx), fixes several contract and pricing bugs that slipped through since launch, and cleans up confusing in-game messages so you always know where to go.

What’s new / fixed:
FuturesMission integration — when FS25_FuturesMission is installed, futures contracts are created through the BetterContracts mission flow and MDM handles the pricing side automatically
Savegame migration — existing MDM contracts are handed off to FuturesMission cleanly on first load; no manual steps needed
Fixed prices occasionally showing $0 in the market screen
Fixed contract list not responding to clicks in some situations
Fixed a game freeze that could occur when pressing New Contract with BetterContracts active
Fixed contract deadlines and event timers drifting out of sync over long play sessions
In-game messages now correctly name FS25_FuturesMission and tell you where to get it if you don’t have it

No save migration needed — your existing save works as-is.

V1.0.0.1
Futures contracts now correctly track crop deliveries. Previously, contracts were stuck at 0% filled regardless of how much was delivered. (PriceHook.lua — use fillDelta instead of sellFillType return value, which is not the accepted liter count in FS25.)

Prices fluctuate daily and intraday based on world events, supply, demand, and seasonal drift. This is the first public release covering all core systems.

What’s included:
Dynamic pricing engine — every tracked crop has a live price built from a base price, a volatility factor, and an event modifier stack.
Prices drift intraday every in-game minute and shift daily with mean-reversion toward the base. They clamp between 50% and 200% of base so things stay volatile but never absurd.

Seven world events — Regional Drought, Bumper Harvest, Trade Disruption, Geopolitical Crisis, Biofuel Initiative, Livestock Feed Boom, and Root Crop Blight. Each fires probabilistically with per-type cooldowns and randomised intensity so markets feel alive without becoming noise.

Futures contracts — lock in a sell price today for delivery up to 120 in-game days from now. Fulfill on time for the full locked-price payout; miss the deadline and you take a 15% penalty on the unfulfilled portion. If you have FS25_UsedPlus installed your credit score scales that penalty between 10% and 20%.

Market screen (F10) — a full InGameMenu page with three tabs: live prices with % change and a session trend chart, active world events with intensity and time remaining, and your contract history. Press N or click New Contract to open the contract dialog from anywhere on the screen.

Mod integrations — FS25_BetterContracts: completing a harvest contract applies a short-lived supply-spike to that crop. FS25_UsedPlus: contract outcomes feed your credit score and your score scales the default penalty. Both integrations activate automatically on detection.

Translations — all 25 Farming Simulator 25 languages included.
Settings — enable/disable dynamic prices, enable/disable events, event frequency, volatility scale, and debug logging, all accessible in-game under ESC > Settings > Market Dynamics.

Known limitations
Multiplayer is singleplayer only in this release. Price state, events, and contracts are not synced across clients. Dedicated server hosting works but only the server player sees live MDM prices. Multiplayer sync is planned for a future release.

Save data is stored in savegame/modSettings/FS25_MarketDynamics.xml. Removing the mod mid-save is safe — the file is simply ignored on next load.

Requires: Better Contracts

Rate this post
Author:
tisonK LeGrizzly




You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *