Converted from FS22_IncomeMod
Income Mod provides players with a simple, balanced way to receive passive income. Automatically earn money either hourly or daily, based on your chosen difficulty or a custom amount. Perfect for players who want steady cash flow without relying solely on missions or selling goods.
Features:
- Easy / Normal / Hard difficulty presets
- Custom income amount option
- In-game notifications
- Fully configurable via console commands or in the pause menu
- Settings saved automatically
- Works in singleplayer and multiplayer
- Lightweight and stable
Please be aware:
You need to have developer mode enabled in order for you to open the console.
This can be done in your FS game folder, then look for the "game.xml".
Change <development><controls> to "true"
Enjoy you farming experience with my Income Mod <3
=========================================================
Github: https://github.com/TheCodingDad-TisonK/FS25_IncomeMod
=========================================================
COPYRIGHT NOTICE:
All rights reserved. Unauthorized redistribution, copying,
or claiming this mod as your own is strictly prohibited.
Original author: TisonK
=========================================================
- The income panel can now be moved and resized to fit wherever you want it on screen. Right-click the panel to enter edit mode, drag it to a new position, drag a corner handle to scale it up or down, then right-click again to lock it in place. Your layout is saved between sessions.
- Colors updated to match FS25's native panel style (dark, clean,
no green border)
Toggle visibility still works the same way via the I key.
No save migration needed.
[Hotfix v2.0.0.5 — fix multiplier option skipping states in UI]
In UIHelper.createMultiOption, the cloned FS25 MultiTextOption widget
could retain the template's numTexts rather than adopting the count from
setTexts. Explicitly assign opt.numTexts = #options after setTexts to
guarantee the correct cycle count for all callers (payMode=2, difficulty=3,
multiplier=4).
Also move opt:setState() to after layout:addElement() so any FS25-internal
layout-pass re-init that might wipe element state has already completed
before we set the initial selection.
[Fix v2.0.0.5 — correct raiseCallback argument: element, not state index]
GuiElement:raiseCallback calls onClickCallback(self.target, element) where
element is the MultiTextOptionElement table. We were treating it as the
integer state, causing incomeMultiplier to be set to a table and crashing
setXMLInt with "Expected: Int, Actual: Table" on every click.
[v2.1.0.0]
Added four helpLines categories to modDesc.xml:
- Income Mod — Overview (2 pages: intro, how payments work)
- Income Mod — Settings (3 pages: basic, advanced, display/reset)
- Income Mod — Tips & Tricks (2 pages: HUD/report, income tips)
- About Income Mod (1 page: about + console commands)
All 50 l10n keys translated into 10 languages (en/de/fr/pl/es/it/cz/br/uk/ru).
- Fixed `MoneyType` crash (income never paid)
- Fixed mod not loading due to wrong ZIP building inside the build.sh
- HUD toggle desync fix
- Added missing showHUD field to the console settings
- Added explicit override that calls updateDisplay() on every open
- Removed stray double blank lines
- Replaced both notification calls (payment + startup) with the correct FS25 AP
* Added **seasonal income modifiers** (Spring 0.8x, Summer 1.0x, Autumn 1.2x, Winter 0.7x) with optional toggle in the settings UI
* Added **selectable income multipliers** (1x / 2x / 5x / 10x) in settings UI and via `IncomeSetMultiplier` console command
* Added **per-farm multiplayer support** — each active farm now earns independently
* Added **income state persistence** — `lastHour` and `lastDay` saved to `_state.xml` to prevent missed or duplicate payments after reload
* Added **payment history tracking** — `IncomeHistory` console command shows last 10 payments (day, hour, amount, seasonal modifier)
* Added **next payment timer** — `IncomeNext` console command displays time remaining until the next payout
* Added missing **`IncomeSetDebug` console command** for toggling debug mode
* Fixed critical **multiplayer duplicate payment bug** by adding a server-only guard in `giveMoney()`
* Fixed duplicate startup notification (was triggering from both IncomeManager and IncomeSystem)
* Fixed global namespace pollution from `getTextSafe` (moved to `UIHelper.getText()` module method)
* Fixed debug print leak in `UIHelper.lua`
* Fixed incorrect startup tip text (now shows: `Type 'income'`)
- Rewrote entire code
- Changed entire command list
- Added new settings tab in the pause menu
- Changed notification style
- Optimized current code
- Added support for: de, fr, pl, es, it, cz, br, uk, ru
- Fixed console error
[Critical Hotfix]
- Updated settings save & load function*
*In FS22 we store modSettings in user game path, in FS25 they want it to be stored in savegame folder.
I was not aware of that, this is now fixed :)