Skip to content

Releases: TheCodingDad-TisonK/FS25_RandomWorldEvents

v2.1.3.0 — Localisation Fix & RMB Fix

01 Apr 19:55
450864c

Choose a tag to compare

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

29 Mar 08:40
82512fd

Choose a tag to compare

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

27 Mar 08:59

Choose a tag to compare

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 damageapplyVehicleDamage now uses a spec_wearable fallback and removes a dead getDamageVisualization call that caused log warnings.

Full Changelog since v2.0.0.6

  • feat v2.1.0.0 — custom HUD, grouped settings UX, effect delivery system
  • feat Add mission.randomWorldEvents cross-mod bridge for FarmTablet
  • fix Save HUD layout on game save, not only on session end
  • fix applyVehicleDamage — spec_wearable fallback, remove dead code
  • art FS25 textured icon background; compress to DXT1
  • chore Bump version to 2.1.1.0

v2.1.0.0 — Custom HUD & Settings UX

21 Mar 09:09
4e7187b

Choose a tag to compare

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 setImageColor on plain TextElement — 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.appendedFunction hook 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.addDamageAmount warning to info — not a real error in FS25 v1.17

Internal

  • notifyEvent() unified notification router (HUD flash + ingame notification)
  • FSBaseMission.draw and .mouseEvent hooks wired for HUD render and drag-resize
  • showHUD / hudScale settings persisted to savegame XML

v2.0.0.6 — Subsystem APIs + bug fixes

05 Mar 05:35

Choose a tag to compare

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

  • EffectHooksgetPricePerLiter hook now captures fillTypeIndex and applies per-crop price modifiers from RWEEconomicAPI:setPriceModifier(); expired entries are lazily pruned
  • EconomicAPIcustomPriceModifiers are automatically cleared on event end so indefinite modifiers don't leak past their event
  • Settings UI — reopening ESC → Settings no longer showed stale values; updateSettingsUI now runs on every open, not just the first
  • PhysicsUtilsshowPhysicsInfo setting now actually logs; previously required debugMode to also be enabled before any output appeared
  • Coresubsystems table is now per-instance (isolated across mission reloads)
  • All APIsregisterTickHandler no 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 API
  • g_RandomWorldEvents:getSubsystem(name) — query a subsystem by category name

v2.0.0.5 — helpLines hotfix

01 Mar 12:42

Choose a tag to compare

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, and price_fixing (which grants a temporary sell-price bonus) were missing
  • Economic negative count: Corrected to 4 (was 7) — price_fixing moved to positives; the actual negative events are market_crash, sudden_expense, loan_interest, and economic_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

01 Mar 11:19

Choose a tag to compare

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_STATE flags 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.

v2.0.0.3 — Hotfix: economicTickHandler + PhysicsUtils double-init

28 Feb 18:04

Choose a tag to compare

Bug Fixes

economicEvents.lua — Tick handler was never registered (Lua scoping bug)

economicTickHandler was declared after registerEconomicEvents in the source file. In Lua, a local variable is only visible to code that appears after its declaration — so the reference inside registerEconomicEvents resolved to nil at runtime. The call g_RandomWorldEvents:registerTickHandler("economicEvents", nil) was a silent no-op: the handler was never stored and never executed. Moved the function definition above registerEconomicEvents so it is a valid upvalue.

RandomWorldEvents.lua — PhysicsUtils initialised twice on every load

loadEventModules() drained the pendingRegistrations queue (which already runs PhysicsUtils = PhysicsUtils:new()), then immediately called PhysicsUtils = PhysicsUtils:new() a second time. Both calls succeeded but the second silently discarded the first instance and emitted a duplicate log line, making it look like two separate PhysicsUtils objects were alive. Removed the redundant explicit call; PhysicsUtils self-manages initialisation through the pending registration mechanism.


What this does NOT fix

Events that set EVENT_STATE flags (marketBonus, seedDiscount, yieldBonus, etc.) still do not alter actual FS25 prices or yields — those flags are not yet wired to the game's economy and field APIs. Events that directly call addMoney (subsidies, expenses, vet bills, etc.) continue to work as before. Full price/yield API integration is planned for a future update.

v2.0.0.2 — Settings moved to ESC > Settings menu

27 Feb 19:37

Choose a tag to compare

What's Changed

Settings UI Overhaul

Settings are no longer in a custom pop-up screen. They are now integrated directly into the game's built-in ESC > Settings menu, under a dedicated Random World Events section at the bottom of the Game Settings page.

This matches how other FS25 mods surface their settings and fixes a crash that occurred when opening the settings screen via F3 or the rweSettings console command.

Accessing Settings

  • Press ESC → click Settings → scroll down to Random World Events
  • All event and physics settings are available there

F3 Key

F3 now shows an on-screen reminder pointing you to ESC > Settings instead of trying to open the old screen.

Console Command

rweSettings now prints a text hint rather than crashing.


Controls (unchanged)

Action Key / Command
Force trigger event F9 or rweTest
Show status rweStatus
End active event rweEnd
Toggle debug rweDebug on|off
List events rweList [category]

Installation

Drop FS25_RandomWorldEvents.zip into your mods folder. No save changes required.

v2.0.0.0 — Full FS25 Rewrite

27 Feb 10:43

Choose a tag to compare

Random World Events v2.0.0.0

Full ground-up rewrite for Farming Simulator 25.

What's New

  • 43+ events across 5 categories: Economic (15), Vehicle (8), Field (10), Special (10), Wildlife (10)
  • Wildlife events — fully implemented: bird flocks, stampedes, bee swarms, predator alerts, disease scares, vet visits, hunting season, and more
  • Physics overhaul — terrain-aware wheel grip (asphalt, dirt, field, grass, snow), suspension stiffness multiplier applied per-frame
  • In-game settings screen — tabbed GUI with Events tab and Physics/Debug tab
  • Per-savegame persistence — each farm saves its own configuration
  • In-game Help pages — 4 categories, 8 pages accessible from Pause → Help
  • F3 keybind — opens the settings screen from anywhere in-game (rebindable in keybindings menu)
  • F9 keybind — force-triggers a random event (useful for testing)

Console Commands

Command Description
rwe Show help
rweStatus Current state (active event, cooldown)
rweTest Force-trigger a random event
rweEnd Stop the active event
rweSettings Open the settings screen
rweDebug on|off Toggle verbose logging
rweList [category] List all registered events

Installation

  1. Download FS25_RandomWorldEvents.zip
  2. Place in Documents\My Games\FarmingSimulator2025\mods\
  3. Enable in the mod selection screen when starting a savegame

Upgrading from FS22

Settings do not transfer from FS22 — configure fresh in each savegame.