Releases: Realistic-Farming/FS25_NPCFavor
Release list
v1.2.7.1 — favor fix, money authority, core-service bridges, read API
This release ships under 1.2.7.1.
Favors
- Fixed favors never completing (#62): every favor step within 30m of its target called a method that did not exist, throwing a Lua error on each check so no favor could progress. The borrow-tractor favor, for example, handed over the keys and then did nothing at the field marker. Step completion now flashes on the favor HUD and favors finish normally.
Money handling (server-authoritative)
- Favors now pay the farm that accepted them, stamped at accept time and applied at every money site, so the correct farm is paid even on a dedicated server and clients never apply money locally.
- Favor completion, loan repayment, and gifts all route through the mod's own server-authoritative event.
- Idempotency flags (persisted) so a reload can no longer double-pay a favor, and a live double-payout in the favor management dialog is fixed.
Ecosystem
- Bridges onto the four core services when installed (StateLedger, NetworkSync, MasterHUD, SettingsHub), with the mod's own paths kept as the standalone fallback.
- A read-only relationship and favor API for Dairy Core and Pro Staff.
Install over your existing version.
v1.2.7.0 - AI field work: on-demand equipment, harvest & spectator-cost fixes
Farmer NPCs now do real, game-AI-driven field work with their own equipment, matched to what each field actually needs.
NPC field work (NEW)
- Real base-game AI tillage: an NPC's tractor + implement runs a genuine AIJobFieldWork and tills the ground. Because the AI helper needs the job's farm to own the field (and NPC farms do not own land), the field's farmland is temporarily borrowed by the local player's farm for the duration of the job, then restored. A save-hook safeguard restores every borrow before any save, so a temporary ownership can never persist.
- Full job-to-field matching: each farmer NPC gets a job role and the matching equipment: till (tractor + plow/cultivator), sow (tractor + seeder, seeded), or harvest (self-propelled combine + header). An NPC only runs the AI job when the field's current state matches its role.
- Crop safety: NPCs read the field's real crop and growth state and never plow or cut a growing crop. A harvester is only assigned to a field that is actually ripe.
- Fallbacks: when the game AI cannot run (no implement, hire limit reached), the NPC drives its combo with base-game GoTo pathfinding, or a kinematic visual pass, so it always looks busy without errors.
On-demand equipment (architecture)
- Equipment is now spawned on demand: an NPC's tractor/combine + implement is created at the field edge the moment they start working, matched to the field's current need, and despawned again when they stop. Previously equipment was decided once at spawn from a snapshot of the field, so it could go stale (a plow left on a field that had since grown a crop). Deciding at work time removes that mismatch entirely; a growing field simply gets no equipment and the NPC visits on foot.
- If an NPC leaves work while their vehicle is still loading, the load is cancelled before the implement is spawned, so no equipment is created just to be deleted.
Fixes
- Fixed a VehicleCharacter crash from a wrong loadCharacter argument order (was calling a table), and 5 no-op vehicle deletions (g_currentMission:removeVehicle does not exist; use Vehicle:delete).
- Eliminated a map-marker overlay render flood ("Unknown entity id ...") by sharing one never-freed overlay across all NPC markers.
- Fixed harvester headers never attaching: the New Holland combo pointed at a header file as its "combine", so two headers were being paired. It now uses the real combine (chSeries), and the header attaches and harvests.
- Silenced the "Can't change money of spectator farm" log spam from every angle: NPC AI job cost is zeroed, NPC vehicles keep their fuel topped so the base game never auto-bills the spectator farm for a refuel, and (when installed) Worker Costs also drops any charge aimed at the spectator farm.
AI behaviour, multiplayer, and edge cases
- Added the "loner" personality to the daily schedule so those NPCs keep to their own routine.
- Schedule-aware commute speed boost (previously only in the evening), so NPCs running late move quicker at any time of day.
- Group gatherings now show a speech bubble even when no direct social partner is found nearby.
- Reduced NPC-to-NPC social pairing distance to 50m so neighbours pair up more naturally.
- Split the movement-speed bookkeeping so an NPC's mood-based speed is preserved correctly across walk and run modes.
- Clear stale gathering data when an NPC goes to sleep, and delegate scheduled-activity lookups to a single source (removes a duplicate code path).
- Client-side orphan-vehicle detection in multiplayer, so a stranded NPC vehicle is cleaned up on clients too.
New console command
- npcDeleteVehicle [radius] -- delete the nearest vehicle/implement to you (cleanup for stranded units); never deletes the vehicle you are in.
v1.2.6.0 - Soil & Fertilizer FieldSentry integration
Soil & Fertilizer FieldSentry integration
If you run Soil & Fertilizer alongside NPCFavor, neighbour fields used to be a problem: nobody manages their soil, so under the simulation their yields would crater and an NPC harvest favor could become impossible to complete.
This release fixes that. NPCFavor now tells FieldSentry when a field is under an active favor, so that field is left out of the soil simulation while you work it — the harvest gets normal yields and the favor stays completable. The better your relationship with a neighbour, the more the integration trusts you: with a close friend the field stays in the simulation so you can actually prepare and benefit from managing it, while a hostile neighbour's field is simply masked for a plain vanilla harvest.
Works on host and single player, syncs to clients through Soil & Fertilizer, and NPCFavor runs exactly as before if you do not have Soil & Fertilizer installed. Pairs with Soil & Fertilizer v2.4.2.9 or newer.
v1.2.5.3 — HUD Edit Mode Vehicle Fix
What's New
- HUD edit mode key binding now works while in a vehicle (vehicle guard removed)
- RMB exits edit mode only — never used to enter (matches SoilFertilizer standard)
- Fixes edit mode being practically inaccessible since most play time is in vehicles
Download
Attach FS25_NPCFavor.zip to install.
v1.2.5.2 - Translation Hotfix
- Synced all translation files
- Updated the German translation (not native)
v1.2.5.1 — Keybinding Hotfix
⚠️ ACTION REQUIRED: You must now assign your own keybindings
All default keybindings (except NPC Interact) have been removed to prevent conflicts with other mods and with FS25 vanilla controls.
To set up your keys:
- Launch the game
- Go to Settings → Controls → Mods
- Find FS25 NPC Favor in the list
- Assign a key to each action you want to use
This is a one-time setup — your bindings are saved automatically.
What changed
- NPC Interact — keeps default key E (same as all other contextual interactions in FS25)
- Favor Menu, NPC List, NPC Settings, HUD Edit Mode — now unbound by default
Previous defaults (F5, F6, F7, right-mouse-button) conflicted with FS25 vanilla controls and with other mods in this suite. Removing defaults eliminates hard-locks and unexpected behaviour when multiple mods are installed.
Save compatibility
✅ No changes to save data — existing saves load normally.
v1.2.5.0 — Schedule board, gift tiers, backstory i18n
What's new in v1.2.5.0
This release covers everything since v1.2.2.5 — two major development cycles worth of work.
🗓️ NPC Schedule Board (new in 1.2.5.0)
Click Ask about work on any neighbor and you'll see what they're doing right now (marked ← NOW) plus their next two planned activities. Finally know when to catch Old MacDonald at the barn instead of hiking out there to find him gone.
🎁 Gift Selection — 3 tiers (new in 1.2.5.0)
Give Gift now opens a choice panel instead of silently spending $500:
- 🌱 Small Gift — $200 · +2 relationship
- 🎁 Standard Gift — $500 · +5 relationship
- 💐 Generous Gift — $1,000 · +10 relationship
Gifts now correctly deduct money from your farm account. (They were accidentally free before — that's fixed.)
⚙️ Custom Settings Panel — F5 (new in 1.2.4.0)
The NPC settings are no longer injected into the ESC menu. Press F5 to open a purpose-built settings panel with three full categories (Behavior, Display, Gameplay), section headers, descriptions for every setting, and an admin control panel. Much cleaner.
🧠 NPC Roles Now Actually Matter (new in 1.2.4.0)
Farmers, shopkeepers, and workers now follow different daily schedule templates and lean toward different types of favors. Role also feeds into weather-triggered behavior — farmers are the first ones to call for help during a storm.
🌧️ Weather Emergency Favors (new in 1.2.4.0)
When conditions get severe, an affected NPC can now reach out with an urgent favor request. The scheduler watches weather severity and fires contextual triggers when thresholds are crossed.
🤝 NPC Memory Shapes Every Interaction (new in 1.2.4.0)
NPCs now track your encounter history and use it. Complete several favors for a neighbor and they'll warm up to you in dialog. Ignore them repeatedly and they'll be cooler. The same memory score feeds into which favors they generate and how likely they are to ask at all.
🙋 Offer Help (Player-Initiated Favors) (new in 1.2.4.0)
You can now walk up to any neutral+ NPC and offer to help before they ask. Personality determines whether they accept — grumpy neighbors are skeptical, generous ones are grateful. Favors accepted this way give a 15% reward bonus.
🎲 Personality-Weighted Favor Generation (new in 1.2.4.0)
Each personality type now steers toward matching favor types when generating requests — hardworking NPCs tend toward field and equipment work, social ones toward deliveries and errands, etc. Less random, more believable.
🔧 Favor System Overhaul (new in 1.2.4.0)
Multiple stuck-favor conditions resolved:
watch_propertypatrol now closes correctly via dialog- Loan repayment step fires reliably
- Dialog-step guards prevent double-completion
- Cancel button properly abandons the favor with relationship penalty
- Favors were sometimes never appearing at all — fixed
💾 Auto-save + Save Schema Versioning (new in 1.2.4.0)
NPC data is now auto-saved every 5 real-world minutes on the server. A schema version constant and migration scaffolding are in place so future format changes won't silently corrupt saves.
🌍 Backstory Localization (new in 1.2.5.0)
Personality bios shown in the Relationship info panel are now translated across all 10 supported languages: EN, DE, FR, PL, ES, IT, CZ, BR, UK, RU.
🇫🇷 French Translation — native speaker pass (new in 1.2.4.0)
All French strings reviewed and corrected by a native speaker (merci Seb).
🐛 Bug fixes
- Relationship decay warning showed garbled format code (
%swhere a day-count%dwas expected) in all non-English languages — fixed across all 10 files setImageColornil state argument crash on FS25 v1.17 API change — fixed- Favors never appearing after favor cooldown redesign — fixed
- Cancel button was not properly abandoning favors — fixed
- NPCs were spawning tractor props as map hotspots, filling the minimap — fixed
Save compatibility: Full — no migration needed. Existing saves load as-is.
v1.2.4.0-pre1 — Memory, Favors, Migration
Pre-release test build
What's in this build
NPC memory influencing behavior
NPCs now remember your history. A memory score (-1 to +1) feeds into favor generation weights, NPC selection, and dialog tone. NPCs you've helped regularly say 'It's always good to see you' and trust you faster with new favors. NPCs you've ignored are cooler and less forthcoming.
Favor completion fixes
- Removed legacy transport-location tracking that left transport_goods stuck at 66%
- watch_property now uses isDialogStep: go to the property, then talk to NPC to close out
- loan_money correctly deducts money on arrival, repaid via dialog
- Favor button shows 'Collect Repayment ($X)' for active loan repay steps
- Removed progress < 100 guard that blocked completeFavor() from firing
Save file migration scaffolding
- SAVE_SCHEMA_VERSION constant separate from mod release version
- migrateSaveData() runs on load when save is older than current schema
- Legacy saves detected and flagged; settings file also writes/reads schema version
Testing focus
- Accept a loan_money favor: money should deduct on NPC farm arrival, repaid via dialog button
- Accept a watch_property favor: go to farm, button changes to Complete favor, click to finish
- Accept a transport_goods favor: should complete at market, not get stuck at 66%
- Talk to an NPC you have interacted with often: warm tone prefix expected
- Talk to an NPC you have ignored: cooler tone expected
v1.2.4.0
What's new in 1.2.4.0
Companion mod detection — NPCFavor now detects FS25_RandomWorldEvents and FS25_MarketDynamics when they are installed.
Context-aware NPC conversation topics — NPCs now reference the world around them during conversation:
- When an RWE event is active (market boom, crop failure, disease scare, etc.) NPCs bring it up naturally in conversation
- When MarketDynamics shows prices significantly above or below baseline, NPCs give market tips
- Event-aware topics are weighted more heavily so they appear often during active events
No save migration required.
v1.2.3.0 — mouseEvent eventUsed fix
What's fixed
- Right-click in a vehicle no longer triggers HUD edit mode — the handler now checks
eventUsedbefore acting, so events already consumed by the vehicle camera are ignored - Other mods now correctly receive
eventUsed = truewhen NPC Favor consumes a mouse event (e.g. right-click HUD toggle)
No save migration needed.