V1.2.0.7
– Dedicated server crash: replaced streamWriteFloat64 (unavailable on dedi builds) with streamWriteInt32 (seconds) for contract delivery time
– Contract delivery double-counted: removed addFillLevelFromTool hook — standard selling stations call both hooks at the same stack level, bypassing the re-entrancy guard and inflating contract progress to 2×
– Too many events on Rare: lowered Rare frequency scale from 0.4 → 0.15; added per-check cap of 1 new event with shuffled ordering to prevent event storms
– Frequency setting change delayed: world event timer now resets immediately when eventFrequency or eventsEnabled changes in settings
V1.2.0.6
– Settings panel removed from ingame settings
– Custom settings panel integrated (NEEDS TO BE BINDED)
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.)
I took out a contract for pigs, (assuming 1L = 1pig) but when I delivered it to the animal trader nothing happened. Force completion worked but I’m assuming I did not do something I should have.
When I open the contract, even If press escape , I can’t get out of the menu
I’ve found a pretty major bug.
In contracts, when you force completion, it doesn’t deduct the grain I’m selling from my inventory. So I always get the contract money but still have the same inventory, which is basically like a money cheat with no real consequences.