Help us improve
Share bugs, ideas, or general feedback.
From fs25-modding
Sets up FS25 mods for development via symlinks to platform-specific mods folders, packages zips at root level for distribution, configures modDesc.xml with standards like descVersion 106.
npx claudepluginhub paint-a-farm/fs25-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/fs25-modding:fs25-mod-deployThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Handles the full lifecycle of deploying FS25 mods: dev links for live editing, correct zip packaging for distribution, and modDesc.xml standards.
Debugs FS25 mods by analyzing log.txt errors, fixing common Lua nil/XML issues, troubleshooting crashes, and using in-game console commands.
Guides Unity modding architectures: asset loading via Addressables/Bundles, Lua/MoonSharp scripting, Harmony patching, mod managers, Steam Workshop, extensible designs for community mods.
Implements XDG Base Directory Specification for storing config, data, cache, and state files in Python CLI tools, cross-platform apps, and Linux/Unix applications using platformdirs.
Share bugs, ideas, or general feedback.
Handles the full lifecycle of deploying FS25 mods: dev links for live editing, correct zip packaging for distribution, and modDesc.xml standards.
| Platform | Path |
|---|---|
| Windows | %USERPROFILE%\Documents\My Games\FarmingSimulator2025\mods\ |
| macOS | ~/Library/Application Support/FarmingSimulator2025/mods/ |
Game log is in the same parent directory as mods/, named log.txt.
Detect the platform and use the correct path automatically.
For active development, link the mod folder into the game's mods directory. Changes are picked up immediately without copying.
macOS:
ln -s /absolute/path/to/FS25_ModName "<MODS_FOLDER>/FS25_ModName"
Windows (requires admin or Developer Mode):
mklink /D "%USERPROFILE%\Documents\My Games\FarmingSimulator2025\mods\FS25_ModName" "C:\path\to\FS25_ModName"
Contents must be at the root level of the zip — no nested folder.
macOS:
cd /path/to/FS25_ModName && zip -r ../FS25_ModName.zip . -x "*.DS_Store"
Windows (PowerShell):
Compress-Archive -Path "C:\path\to\FS25_ModName\*" -DestinationPath "C:\path\to\FS25_ModName.zip"
| Correct | Wrong |
|---|---|
zip root contains modDesc.xml | zip root contains FS25_ModName/modDesc.xml |
Common mistake: Zipping the folder itself instead of its contents creates a nested structure. Always zip the contents, not the folder.
<modDesc descVersion="106">
<author>YOUR NAME HERE</author>
<!-- ... -->
</modDesc>
106 (current as of FS25 patch 1.5)| Task | macOS/Linux | Windows |
|---|---|---|
| Link mod | ln -s /path/to/mod "<MODS>/FS25_Name" | mklink /D "<MODS>\FS25_Name" "C:\path\to\mod" |
| Package zip | cd mod && zip -r ../FS25_Name.zip . -x "*.DS_Store" | Compress-Archive -Path "mod\*" -DestinationPath "FS25_Name.zip" |
| Verify zip | unzip -l FS25_Name.zip | head | Expand-Archive -Path FS25_Name.zip -ShowList (or 7zip) |
| Check log | tail -50 "<MODS>/../log.txt" | Get-Content "<MODS>\..\log.txt" -Tail 50 |
| Remove link | rm "<MODS>/FS25_Name" | rmdir "<MODS>\FS25_Name" |