Releases: TheCodingDad-TisonK/FS25_RandomWorldEvents
v2.1.6.1
What's New & Fixed
- HUD overhaul — the event HUD is now drawn directly by the mod, more stable across maps and resolutions. HUD position saves when the game saves.
- Keybinding persistence — keybindings now correctly carry over between sessions. Version number and key hint in the HUD update dynamically.
- Cross-mod bridge — subsystem API lets other mods (like FarmTablet) hook into RWE events.
- Animal event fix — animal events no longer fail silently when farm ID can't be resolved.
- Startup crash fix — input hooks are now correctly registered on load.
- Translations — all HUD text is fully translated; no more hardcoded English strings.
- Settings integration fixes — various stability improvements to the settings panel.
Notes
No save migration needed. Existing saves load normally.
v2.1.6.0 - Hotfix
- Fixed issue with farmId call that was incorrect and caused error
- Fixed issue where HUD overlay would not save its position
- Reworked the settings from GUI into custom rendered panel
Please note that you need to rebind both keybindings....
v2.1.4.0
What's new in 2.1.4.0
Cross-mod integration bridge — Other mods (FarmTablet, Market Dynamics, Seasonal Crop Stress, Soil Fertilizer) can now detect RWE via the standard g_currentMission.randomWorldEvents property.
Subsystem API architecture — All category APIs (Economic, Field, Special, Vehicle, Wildlife) share a common RWEBaseAPI mixin with standardised start/end callbacks and tick handlers. Makes it easier for companion mods to respond to specific event types.
Event module improvements — Ambient messages, midpoint callbacks, and weighted random selection stabilised across all event categories.
No save migration required.
v2.1.3.0 — Localisation Fix & RMB Fix
Release Notes
🌍 Localization Fix — Event HUD Fully Translated
The World Events HUD overlay previously displayed hardcoded English text, regardless of the selected game language. This has now been resolved.
All HUD elements — including titles, status indicators, cooldown/timer labels, and hints — will correctly appear in your chosen language.
Supported languages:
German, French, Polish, Spanish, Italian, Czech, Brazilian Portuguese, Ukrainian, Russian
🖱️ RMB Interaction Fix — HUD Editing
Thanks to @sava4903-coder for providing the necessary fix 💯
Right Mouse Button (RMB) interaction now works correctly, allowing you to properly move and edit the HUD.
This issue mainly affected setups without additional HUD-related mods.
📦 Update — Fixed ZIP Package
The download archive has been updated to resolve an issue where the previous version caused console error spam. (#8)
No gameplay changes. Save files remain fully compatible
v2.1.2.0 — Hotfix
Bug Fix
- Fixed an issue where cash-deduction wildlife events (vet visit, stampede
damage) had no effect on certain modded maps. On maps like Judith Plains
Montana 4X, the player farm ID could not be read at event trigger time,
causing the money transaction to be silently discarded by the game with
no error or feedback. Money will now be correctly deducted as intended.
Affected events
- Emergency Veterinary Visit
- Wild Animal Stampede
- Animal product bonus/malus tick payments
Notes
This does not affect vanilla maps or maps where the issue was not present.
No save game changes required — just replace the mod zip.
v2.1.1.0 — FarmTablet Integration & HUD Persistence Fix
What's New in v2.1.1.0
FarmTablet Integration
Added mission.randomWorldEvents cross-mod bridge. The new Random World Events app in FS25_FarmTablet v2.1.4.0 shows enabled state, frequency/intensity settings, the currently active event, and total events triggered.
Bug Fixes
- HUD layout persistence — position and size are now saved on game save, not only when the session ends. Reloading a save no longer resets the HUD position.
- Vehicle damage —
applyVehicleDamagenow uses aspec_wearablefallback and removes a deadgetDamageVisualizationcall that caused log warnings.
Full Changelog since v2.0.0.6
featv2.1.0.0 — custom HUD, grouped settings UX, effect delivery systemfeatAddmission.randomWorldEventscross-mod bridge for FarmTabletfixSave HUD layout on game save, not only on session endfixapplyVehicleDamage — spec_wearable fallback, remove dead codeartFS25 textured icon background; compress to DXT1choreBump version to 2.1.1.0
v2.1.0.0 — Custom HUD & Settings UX
What's New
Custom Event HUD
- Drag-and-resize overlay panel showing the active event, category badge (ECO / VEH / FLD / WLD / SPL), time remaining, and cooldown countdown
- Flash notification queue with category-colored accent bar — pops up on every event trigger
- F3 toggles HUD visibility in-game
- HUD position and size persist per-savegame
Settings Page — Full Redesign
- Clean grouped layout with subsection headers: Event Timing, Notifications & HUD, Event Categories, Physics Override, Debug
- Cooldown options now show human-readable labels (5 min, 10 min… 240 min)
- New Show HUD Panel and HUD Scale controls (0.6x–1.8x, applied live)
Bug Fixes
- Fixed settings page crash when hovering controls (FS25 hover code called
setImageColoron plainTextElement— now stubbed) - Fixed Physics/Debug section header overlap and gray box artifact from previous BitmapElement wrapper approach
- Fixed F3 doing nothing — parameter shift in
Utils.appendedFunctionhook caused all key checks to fail - Fixed all 5 API subsystem files missing from deployed zip (
api/was absent from build script) - Downgraded spurious
Vehicle.addDamageAmountwarning to info — not a real error in FS25 v1.17
Internal
notifyEvent()unified notification router (HUD flash + ingame notification)FSBaseMission.drawand.mouseEventhooks wired for HUD render and drag-resizeshowHUD/hudScalesettings persisted to savegame XML
v2.0.0.6 — Subsystem APIs + bug fixes
What's New
Subsystem APIs (api/)
Five new public Lua globals for third-party mod integration:
| Global | Category | Extra Hook |
|---|---|---|
RWEEconomicAPI |
Economic | setPriceModifier(cropType, mult, durMin) |
RWEFieldAPI |
Field | modifyYield(fieldId, delta) |
RWEWildlifeAPI |
Wildlife | registerAnimalEffect(name, onStart, onEnd) |
RWEVehicleAPI |
Vehicle | applyVehicleModifier(vehicle|nil, modifierTable) |
RWESpecialAPI |
Special | registerSpecialTrigger(name, condition, func, opts?) |
All five share a common surface: registerEvent, getEventList, triggerEvent, isEventActive, getActiveEvent, registerTickHandler, getVersion, onEventStart, onEventEnd.
Third-party integration pattern:
```lua
-- In your mod's onMissionLoaded() or equivalent:
if RWEEconomicAPI and RWEEconomicAPI.registerEvent then
RWEEconomicAPI:registerEvent({
name = "myMod_corn_subsidy",
minIntensity = 1,
func = function(intensity)
g_currentMission:addMoney(intensity * 1000, ...)
return "Corn subsidy! +" .. intensity * 1000 .. "€"
end,
})
end
```
Bug Fixes
- EffectHooks —
getPricePerLiterhook now capturesfillTypeIndexand applies per-crop price modifiers fromRWEEconomicAPI:setPriceModifier(); expired entries are lazily pruned - EconomicAPI —
customPriceModifiersare automatically cleared on event end so indefinite modifiers don't leak past their event - Settings UI — reopening ESC → Settings no longer showed stale values;
updateSettingsUInow runs on every open, not just the first - PhysicsUtils —
showPhysicsInfosetting now actually logs; previously requireddebugModeto also be enabled before any output appeared - Core —
subsystemstable is now per-instance (isolated across mission reloads) - All APIs —
registerTickHandlerno longer double-registers handlers; deferred flush queue is cleared after drain; intensity clamped to integer
Core additions
g_RandomWorldEvents:registerSubsystem(name, apiTable)— called automatically by each APIg_RandomWorldEvents:getSubsystem(name)— query a subsystem by category name
v2.0.0.5 — helpLines hotfix
What's changed
Corrects inaccurate information in the in-game help pages (Pause → Help → Random World Events).
Fixes
- Event count: Overview page now correctly states 53 unique events (was "Over 43")
- Economic positive count: Updated to 11 (was 8) —
fuel_discount,farmer_donation, andprice_fixing(which grants a temporary sell-price bonus) were missing - Economic negative count: Corrected to 4 (was 7) —
price_fixingmoved to positives; the actual negative events aremarket_crash,sudden_expense,loan_interest, andeconomic_crisis - Version headers: Synced version string to 2.0.0.5 across all Lua files
No gameplay logic was changed.
v2.0.0.4 — Full event effect subsystems
What's new
This release implements the full event effect delivery layer — the major missing piece since the initial rewrite. Events now produce real, observable gameplay changes beyond just showing a notification.
Price effects (via EconomyManager hook)
A new utils/EffectHooks.lua module patches EconomyManager.getPricePerLiter at load time. The following events now affect actual sell prices whenever you sell crops, livestock products, or goods:
| Event | Effect |
|---|---|
| Market Boom | +10–35% sell price |
| Market Crash | −10–35% sell price |
| Price Fixing | fixed sell price multiplier |
| Export Opportunity | +25–40% sell price |
| Economic Crisis | sell price penalty |
| Crop Yield Bonus/Penalty | ±5–25% sell price |
| Harvest Bonus/Penalty | ±10–30% sell price |
| Field Sale Bonus/Penalty | ±5–25% sell price |
| Bonus Trade Prices | +10–30% sell price |
| Festival | +5–20% sell price |
| Bird Flock / Rabbit Infestation | sell price penalty |
| Bee Swarm | sell price bonus |
Durability effects (via Vehicle hook)
Vehicle.addDamageAmount is patched to scale incoming damage during active events:
- Equipment Durability Boost — reduces damage rate
- Equipment Durability Drop — increases damage rate
Ongoing per-minute cash effects (tick handlers)
Four tick handlers now fire every 60 in-game seconds to deliver cash:
- Economic discounts (seed, fertilizer, fuel, equipment) → €/min savings
- Economic crisis → loan penalty deducted per minute
- Money Bonus / Malus → direct €/min injection or deduction
- Festival → periodic income bonus
- Field fertilizer/seed events → savings/cost proxy per minute
- Wildlife animal product events → cash scaled by number of husbandries
- XP events → farm reputation points adjusted per minute
Other fixes
- All formerly boolean
EVENT_STATEflags converted to numeric values so they work as multipliers - Festival event was a stub — now sets both a market price bonus and a periodic income bonus
- Event selection now uses weighted random (weight=1 default, infrastructure ready for tuning)
- All per-minute tick timestamps cleared on event end to prevent cross-event bleed
Installation
Drop FS25_RandomWorldEvents.zip into your mods folder as-is — do not unzip.