Displays softly glowing ribbon walls along the boundaries of your owned and contracted farmlands in the 3D world of Farming Simulator 25.
- Two render modes: Persistent 3D ribbon walls (mesh) or debug-line overlay
- Customizable appearance: Choose border color, height above terrain, and render mode
- Display scope: Show borders for owned farmlands only, owned + contracted, or all farmlands
- Contract awareness: Optionally highlights borders of farmlands where you have active contracts, using a distinct color
- Colorblind mode: Automatically switches to colorblind-safe default colors when FS25's colorblind setting is enabled
- Multiplayer compatible: Settings are synced across all connected clients
- Fully translatable: Ships with English and German; drop in a
l10n/l10n_XX.xmlfile for any other language (see template) - Lightweight: Borders are scanned once per farmland and cached; mesh mode has near-zero per-frame cost
| Action | Default Binding | Description |
|---|---|---|
| Toggle borders | RAlt + L |
Show / hide border ribbons |
Binding can be changed in-game via Settings → Controls.
- Go to the Releases page.
- Download
FS25_FarmlandBorderSurvey.zipfrom the latest release (or a pre-release for alpha/beta builds). - Place the zip (do not extract it) into your FS25 mods directory:
- Windows:
%USERPROFILE%\Documents\My Games\FarmingSimulator2025\mods\ - macOS:
~/Library/Application Support/FarmingSimulator2025/mods/
- Windows:
- Enable the mod in the in-game mod manager.
Official stable releases are also published to the GIANTS ModHub. Search for Farmland Border Survey and install directly from the in-game ModHub browser.
- Clone this repository.
- Run
./build.sh build(Linux/macOS) or.\build.ps1 build(Windows) to produce the zip indist/. - Copy the zip into your mods directory as above.
# Linux / macOS
./build.sh build # builds for latest FS version detected
./build.sh build --fs_ver 25 # builds FS25_FarmlandBorderSurvey.zip
./build.sh build --fs_ver 28 # builds FS28_FarmlandBorderSurvey.zip
# Windows (PowerShell)
.\build.ps1 build # builds for latest FS version detected
.\build.ps1 build --fs_ver 25 # builds FS25_FarmlandBorderSurvey.zip
.\build.ps1 build --fs_ver 28 # builds FS28_FarmlandBorderSurvey.zipNote: build always produces a single zip. To build multiple versions, run it once per version or use release which builds all specified versions.
# Linux / macOS
./build.sh release 1.0.0.0 # stable, latest FS version
./build.sh release 1.0.0.0 --fs_ver 25 # stable, FS25 only
./build.sh release 1.0.0.0 --fs_ver 25,28 # stable, both FS25 and FS28
./build.sh release 1.0.0.0-alpha.1 --fs_ver 25 # alpha pre-release, FS25 only
./build.sh release 1.0.0.0-beta.1 --fs_ver 25 # beta pre-release, FS25 only
# Windows (PowerShell)
.\build.ps1 release 1.0.0.0 # stable, latest FS version
.\build.ps1 release 1.0.0.0 --fs_ver 25 # stable, FS25 only
.\build.ps1 release 1.0.0.0 --fs_ver 25,28 # stable, both FS25 and FS28
.\build.ps1 release 1.0.0.0-alpha.1 --fs_ver 25 # alpha pre-release, FS25 only
.\build.ps1 release 1.0.0.0-beta.1 --fs_ver 25 # beta pre-release, FS25 onlyThis updates fs_versions.json, commits it, creates a release/X.Y.Z.W tag, and pushes — which triggers CI to build the artifact(s) and publish a GitHub Release.
If --fs_ver is omitted, the scripts auto-detect the highest-numbered FS*_Src directory.
FS_FarmlandBorderSurvey/ — Repo root
├── README.md — This file
├── build.sh — Build / release script (bash)
├── build.ps1 — Build / release script (PowerShell)
├── docs/
│ ├── CONTRIBUTING.md — Contributing guidelines
│ └── ORIGINAL-IMPLEMENTATION-PLAN.md — Technical design document
├── .github/
│ └── workflows/
│ └── release.yml — CI: build + GitHub Release on release tags
├── dist/ — Build output (git-ignored)
│ └── FS25_FarmlandBorderSurvey.zip
└── FS25_Src/ — FS25 mod source
├── modDesc.xml
├── icon_FarmlandBorderSurvey.dds
├── i3d/
│ └── glowMaterial.i3d
├── l10n/
│ ├── l10n_en.xml
│ ├── l10n_de.xml
│ └── l10n_template.xml
└── scripts/
├── PropertyBorders.lua
├── BorderScanner.lua
├── BorderRendererMesh.lua
├── BorderRendererDebug.lua
├── PropertyBordersSettingsDialog.lua
└── events/
├── PropertyBordersSettingsEvent.lua
└── PropertyBordersSettingsInitialEvent.lua
Borders appear as semi-transparent vertical ribbons (default 0.3 m tall) that follow the terrain contour, topped by a bright glowing edge. In mesh mode, the ribbons are real 3D geometry with an additive glow shader; in debug mode, they are approximated with layered horizontal lines that fade from dim at ground level to bright at the top.
- Scanning —
BorderScannerreads the farmland density bitmap (infoLayer_farmlands.grle) pixel by pixel within each farmland's bounding box. Where adjacent pixels have different IDs, a border edge is recorded. - Chaining — Edge segments are connected into continuous polylines via endpoint matching.
- Simplification — Douglas-Peucker reduces vertex count (~90% reduction) while preserving shape.
- Rendering — Polylines are drawn as either terrain-following vertical ribbon walls with a glowing top edge (mesh mode) or immediate-mode debug lines with a ribbon-like horizontal fill (debug mode).
| Setting | Default | Colorblind Default |
|---|---|---|
| Owned border color | Cyan (0.2, 0.8, 1.0, 0.4) |
Bright Yellow (1.0, 1.0, 0.0, 0.5) |
| Contract border color | Orange (1.0, 0.6, 0.1, 0.5) |
Bright Magenta (1.0, 0.0, 1.0, 0.5) |
| Height | 0.3 m above terrain | — |
| Render mode | Debug Lines | — |
| Display scope | Owned Only | — |
- Copy
FS25_Src/l10n/l10n_template.xml→FS25_Src/l10n/l10n_XX.xml(see template header for language codes). - Fill in every
text=""value. Preserve%dand%splaceholders exactly. - Number formatting (decimal/thousands separators) is handled automatically by the engine — no need to worry about locale-specific number formats.
- Place the file in
FS25_Src/l10n/and restart the game.
Settings (color, height, render mode, visibility) are synced from server to all clients via custom network events. When a client changes settings, the server rebroadcasts to other clients. Newly connecting clients receive the current state automatically.
- Mesh-mode ribbon walls are vertical quads and may not perfectly follow steep terrain. Increase the height offset on hilly maps.
- Border scanning on first load may take a few seconds if you own many farmlands.
- The glow material (
glowMaterial.i3d) may need tuning in GIANTS Editor for different visual preferences.
- Farming Simulator 25 (PC)
- GIANTS Engine 10+
- Original Implementation Plan — Technical design document from initial development
- Contributing Guidelines
If you encounter a bug, please open a Bug Report. Include:
- Your mod version and FS version
- Whether you're in single-player or multiplayer
- Steps to reproduce the issue
- Any relevant lines from
log.txt(found in your FS25 user directory)
See CONTRIBUTING.md for guidelines on submitting bug fixes, translations, and feature requests.
All rights reserved. This mod is provided for personal use. See LICENSE file if present for details.
Heavy Metal Gaming