{"id":44821046,"url":"https://github.com/thecodingdad-tisonk/fs25_workercosts","last_synced_at":"2026-04-02T14:04:27.548Z","repository":{"id":335765178,"uuid":"1146962058","full_name":"TheCodingDad-TisonK/FS25_WorkerCosts","owner":"TheCodingDad-TisonK","description":"Adds hourly wages for workers with skill-based pricing and configurable rates.","archived":false,"fork":false,"pushed_at":"2026-02-23T20:02:04.000Z","size":480,"stargazers_count":5,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-24T01:33:49.210Z","etag":null,"topics":["fs25","lua","modding","wage","worker-costs"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheCodingDad-TisonK.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-01T00:41:35.000Z","updated_at":"2026-02-21T12:44:54.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/TheCodingDad-TisonK/FS25_WorkerCosts","commit_stats":null,"previous_names":["thecodingdad-tisonk/fs22_workercosts","thecodingdad-tisonk/fs25_workercosts"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/TheCodingDad-TisonK/FS25_WorkerCosts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheCodingDad-TisonK%2FFS25_WorkerCosts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheCodingDad-TisonK%2FFS25_WorkerCosts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheCodingDad-TisonK%2FFS25_WorkerCosts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheCodingDad-TisonK%2FFS25_WorkerCosts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheCodingDad-TisonK","download_url":"https://codeload.github.com/TheCodingDad-TisonK/FS25_WorkerCosts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheCodingDad-TisonK%2FFS25_WorkerCosts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29969243,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T11:43:06.159Z","status":"ssl_error","status_checked_at":"2026-03-01T11:43:03.887Z","response_time":124,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fs25","lua","modding","wage","worker-costs"],"created_at":"2026-02-16T20:27:33.976Z","updated_at":"2026-04-02T14:04:27.542Z","avatar_url":"https://github.com/TheCodingDad-TisonK.png","language":"Lua","funding_links":["https://paypal.me/TheCodingDad"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"icon.png\" alt=\"Realistic Worker Costs\" width=\"140\" /\u003e\n  \u003ch1\u003eRealistic Worker Costs\u003c/h1\u003e\n  \u003cp\u003e\u003cstrong\u003eYour workers aren't free. Now your game knows it.\u003c/strong\u003e\u003c/p\u003e\n\n  [![Version](https://img.shields.io/github/v/release/TheCodingDad-TisonK/FS25_WorkerCosts?style=for-the-badge\u0026color=4caf50\u0026label=VERSION)](https://github.com/TheCodingDad-TisonK/FS25_WorkerCosts/releases/latest)\n  [![Downloads](https://img.shields.io/github/downloads/TheCodingDad-TisonK/FS25_WorkerCosts/total?style=for-the-badge\u0026color=2196f3)](https://github.com/TheCodingDad-TisonK/FS25_WorkerCosts/releases)\n  [![License](https://img.shields.io/badge/LICENSE-MIT-blue?style=for-the-badge)](LICENSE)\n  [![FS25](https://img.shields.io/badge/Farming%20Simulator-25-brightgreen?style=for-the-badge)](#)\n  [![Multiplayer](https://img.shields.io/badge/Multiplayer-Supported-success?style=for-the-badge)](#)\n  [![Languages](https://img.shields.io/badge/Languages-10-orange?style=for-the-badge)](#languages)\n  \u003ca href=\"https://paypal.me/TheCodingDad\"\u003e\n    \u003cimg src=\"https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif\" alt=\"Donate via PayPal\" height=\"50\"\u003e\n  \u003c/a\u003e\n\n  \u003cbr/\u003e\n\n  [**Install**](#installation) · [**Configure**](#configuration) · [**Console Commands**](#console-commands) · [**Report a Bug**](https://github.com/TheCodingDad-TisonK/FS25_WorkerCosts/issues/new/choose) · [**Request a Feature**](https://github.com/TheCodingDad-TisonK/FS25_WorkerCosts/issues/new/choose)\n\n\u003c/div\u003e\n\n---\n\n## What This Mod Does\n\nIn vanilla FS25, hired AI workers cost nothing. That makes labor a free resource — which kills any incentive to manage your workforce strategically.\n\n**Realistic Worker Costs** fixes that. Every AI worker you hire accumulates wages in real time and bills your farm at regular intervals. You choose how you want to pay them — by the hour or by the hectare — and you set the rate. Cheap labor, fair wages, or premium crew: the choice has consequences.\n\nThe mod ships with a full **in-game manager UI** (accessible from the pause menu), integrates with the vanilla settings screen, and exposes everything via console commands.\n\n---\n\n## Features\n\n| | Feature | Detail |\n|---|---|---|\n| 💰 | **Two payment modes** | Hourly `$/h` or Per Hectare `$/ha` — switch at any time |\n| 📊 | **Three wage tiers** | Low · Medium · High — with a custom rate override |\n| 🧠 | **Skill-based multipliers** | Higher-skill workers earn 80 %–120 % of the base rate |\n| 🖥️ | **In-game manager** | Dedicated pause-menu tab with 4 pages: Dashboard, Wage Settings, Worker Stats, About |\n| ⚙️ | **Vanilla settings integration** | Controls also injected into the standard Settings screen |\n| 🔔 | **Payment notifications** | HUD popup on every payment cycle (toggleable) |\n| ⏱️ | **Real-time timing** | Wages scale with real elapsed time — not game speed |\n| 👷 | **Dismissed-worker payouts** | Workers fired mid-interval still get paid for time worked |\n| 🌐 | **10 languages** | EN · DE · FR · PL · ES · IT · CZ · PT · UK · RU |\n| 🤝 | **Multiplayer ready** | Full support for co-op and dedicated servers |\n| 💾 | **Per-savegame settings** | Each save has its own configuration |\n| 🎮 | **Console commands** | Full control via the in-game developer console |\n\n---\n\n## Screenshots\n\n\u003e *The built-in manager — accessible from the pause menu.*\n\n![Dashboard](https://github.com/TheCodingDad-TisonK/FS25_WorkerCosts/assets/dashboard-preview.png)\n\n\u003cdetails\u003e\n\u003csummary\u003eMore screenshots\u003c/summary\u003e\n\n\u003e *Wage Settings tab — configure cost mode, wage level, and see the live rate preview.*\n\n\u003e *Worker Stats tab — per-worker cost breakdown refreshed every 500 ms.*\n\n\u003c/details\u003e\n\n---\n\n## Installation\n\n### From a Release (recommended)\n\n1. Go to the [**Releases page**](https://github.com/TheCodingDad-TisonK/FS25_WorkerCosts/releases/latest)\n2. Download `FS25_WorkerCosts.zip`\n3. Drop the zip (do **not** extract) into your mods folder:\n\n   ```\n   Documents\\My Games\\FarmingSimulator2025\\mods\\\n   ```\n\n4. Launch FS25, enable the mod in the Mod Manager, and start your save\n\n\u003e **Steam users:** Right-click the game → Manage → Browse local files to find your mods path if it differs.\n\n### From Source\n\n```bash\ngit clone https://github.com/TheCodingDad-TisonK/FS25_WorkerCosts.git\ncd FS25_WorkerCosts\nbash build.sh --deploy\n```\n\n---\n\n## Configuration\n\n### In-Game Manager\n\nOpen the pause menu → click the **Realistic Worker Costs** tab (the worker icon).\n\n| Page | What's here |\n|------|-------------|\n| **Dashboard** | Live status: active workers, next payment countdown, farm balance |\n| **Wage Settings** | Cost mode, wage level, notifications, debug toggle, reset button |\n| **Worker Stats** | Per-worker cost breakdown, refreshed every 500 ms |\n| **About** | How the mod works, wage reference table, current version |\n\n### Vanilla Settings Screen\n\nThe mod also injects a **Worker Costs Mod** section into `Pause → Settings → Game` — useful if you prefer the native settings flow. A **Reset Settings** button is added to that screen's footer.\n\n### Settings Reference\n\n| Setting | Options | Default | Notes |\n|---------|---------|---------|-------|\n| **Mod Enabled** | On / Off | On | Master switch |\n| **Cost Mode** | Hourly / Per Hectare | Hourly | See [Wage System](#wage-system) |\n| **Wage Level** | Low / Medium / High | Medium | Ignored when Custom Rate \u003e 0 |\n| **Custom Rate** | Any number ≥ 0 | 0 | Set to 0 to use Wage Level |\n| **Notifications** | On / Off | On | HUD popup on each payment |\n| **Debug Mode** | On / Off | Off | Enables `[Worker Costs]` log lines |\n\n---\n\n## Wage System\n\n### Payment Cycle\n\nWorkers are paid every **5 real-world minutes**. The timer runs in real time regardless of your in-game time-speed setting — 4× speed does not charge you 4× more.\n\nWorkers dismissed mid-interval are automatically settled at the next payment tick — no unpaid labour.\n\n### Hourly Mode\n\n```\nwage = base_rate × hours_worked × skill_multiplier\n```\n\n| Tier | Base Rate | Min (skill 0%) | Standard (skill 50%) | Max (skill 100%) |\n|------|-----------|----------------|----------------------|-----------------|\n| Low | $15 /h | $12 /h | $15 /h | $18 /h |\n| Medium | $25 /h | $20 /h | $25 /h | $30 /h |\n| High | $40 /h | $32 /h | $40 /h | $48 /h |\n\n\u003e **Example:** 3 workers on Medium, running for the full 5-minute interval:\n\u003e `$25 × (5/60) hours × 1.0 skill × 3 workers = ~$6.25`\n\n### Per-Hectare Mode\n\n```\nwage = base_rate × hectares_worked × skill_multiplier\n```\n\nIdeal for large field operations — you pay for output, not clock time. Note: implements that don't expose worked area data will report 0 ha and incur no charge.\n\n### Custom Rate\n\nSet any positive number in **Custom Rate** to bypass the tier system entirely. Set it back to `0` to resume using the Wage Level setting.\n\n---\n\n## Console Commands\n\nOpen the console with the **`~`** key:\n\n| Command | Description |\n|---------|-------------|\n| `workerCosts` | List all available commands |\n| `workerCostsStatus` | Show current mod status and active rate |\n| `WorkerCostsEnable` | Enable the mod |\n| `WorkerCostsDisable` | Disable the mod |\n| `WorkerCostsSetWageLevel 1\\|2\\|3` | `1` = Low · `2` = Medium · `3` = High |\n| `WorkerCostsSetCostMode 1\\|2` | `1` = Hourly · `2` = Per Hectare |\n| `WorkerCostsSetNotifications true\\|false` | Toggle payment HUD popups |\n| `WorkerCostsSetCustomRate \u003camount\u003e` | Custom rate (`0` = use Wage Level) |\n| `WorkerCostsTestPayment` | Deduct a $100 test charge |\n| `WorkerCostsShowSettings` | Full settings dump |\n| `WorkerCostsResetSettings` | Reset everything to defaults |\n| `wcReloadGui` | Reload the mod GUI without restarting |\n\n---\n\n## Troubleshooting\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eWorkers aren't being charged\u003c/strong\u003e\u003c/summary\u003e\n\n1. Run `workerCostsStatus` — confirm `Enabled: true`\n2. Make sure AI workers are actually hired and active (not just vehicles parked)\n3. Turn on **Debug Mode** and watch `log.txt` for `[Worker Costs]` lines\n4. Run `WorkerCostsTestPayment` — if $100 is deducted, the payment system is working fine and the issue is worker detection\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eMod doesn't appear in the Settings screen\u003c/strong\u003e\u003c/summary\u003e\n\n1. Confirm the mod is enabled in the Mod Manager before loading the save\n2. Check `log.txt` for any load errors\n3. The mod section appears under **Pause → Settings → Game** — scroll down if needed\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eSettings aren't saving between sessions\u003c/strong\u003e\u003c/summary\u003e\n\nSettings are stored per-savegame at:\n```\nDocuments\\My Games\\FarmingSimulator2025\\saves\\savegame\u003cN\u003e\\FS25_WorkerCostsMod.xml\n```\nIf that file is missing or can't be written, the mod falls back to defaults each load. Check folder permissions.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003ePer-hectare mode charges nothing\u003c/strong\u003e\u003c/summary\u003e\n\nNot all implements expose worked-area data to the game's AI system. If the implement your worker is using doesn't report hectares, the mod has no area to bill — this is a limitation of the FS25 API, not a bug. Switch to Hourly mode for those workflows.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eWhere is the log file?\u003c/strong\u003e\u003c/summary\u003e\n\n```\nDocuments\\My Games\\FarmingSimulator2025\\log.txt\n```\nSearch for `[Worker Costs]` — all mod activity (when Debug Mode is on) and any errors are tagged with this prefix.\n\n\u003c/details\u003e\n\n---\n\n## Changelog\n\n### v1.0.4.0 — Audit \u0026 Polish\n- Fixed: per-hectare mode showed mode-name string as a cost value in Worker Stats tab\n- Fixed: worker cost rows showed a `+` prefix (implying income) — corrected to `-`\n- Fixed: `farmId == 0` guard in payment system (spectator slot in multiplayer)\n- Fixed: `WCAboutFrame` hardcoded fallback version — now reads live from `g_modManager`\n- Polish: `workerCostsStatus` and `ShowSettings` commands now show `/h` or `/ha` correctly\n- Polish: bare `print()` calls replaced with `Logging.info()` throughout\n- Polish: all file header version numbers brought in sync\n\n### v1.0.2.0 — Tabbed Manager UI\n- Added: full in-game manager accessible from the pause menu\n- Added: 4-tab inner UI — Dashboard, Wage Settings, Worker Stats, About\n- Added: custom tab icon spritesheet with per-tab pictograms\n- Added: per-page header icons\n- Fixed: `addMoney` hook narrowed to only suppress `MoneyType.WORKER_WAGES`\n\n### v1.0.1.x — Core Fixes\n- Fixed: replaced `environment.dayTime` with real-time `dt` — eliminated ~20× overcharge at high game speeds\n- Fixed: dismissed workers now receive a final payout at the next settlement tick\n- Fixed: `WorkerSettingsUI` local `getTextSafe` restored after refactor\n\n### v1.0.0.0 — Initial Release\n- Hourly and per-hectare payment modes\n- Three wage tiers with skill multipliers\n- Vanilla settings screen integration\n- Console commands\n- 10-language support\n\n---\n\n## Languages\n\n| Language | Code | Language | Code |\n|----------|------|----------|------|\n| English | `en` | Czech | `cz` |\n| German | `de` | Portuguese (BR) | `br` |\n| French | `fr` | Ukrainian | `uk` |\n| Polish | `pl` | Russian | `ru` |\n| Spanish | `es` | Italian | `it` |\n\n---\n\n## Contributing\n\nContributions are welcome! Please read [**CONTRIBUTING.md**](CONTRIBUTING.md) before opening a PR.\n\n- Branch off `development` — never commit directly to `main`\n- Test in-game before submitting\n- Use the [issue templates](https://github.com/TheCodingDad-TisonK/FS25_WorkerCosts/issues/new/choose) for bug reports and feature requests\n\n---\n\n## License\n\nThis project is licensed under the **MIT License** — see [LICENSE](LICENSE) for details.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003csub\u003eMade for the FS25 modding community · \u003ca href=\"https://github.com/TheCodingDad-TisonK/FS25_WorkerCosts/issues/new/choose\"\u003eReport an Issue\u003c/a\u003e\u003c/sub\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodingdad-tisonk%2Ffs25_workercosts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthecodingdad-tisonk%2Ffs25_workercosts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodingdad-tisonk%2Ffs25_workercosts/lists"}