Tpf2 Mod Studio is a standalone desktop workbench for creating, inspecting, validating, editing and managing Transport Fever 2 mods on Windows and Linux.
Alpha software: The project is under active development. Keep backups of important mods and savegames. Release packages are currently unsigned.
Current source version: v0.1.0-alpha.13 — product status: PARTIAL
The installer commands below always download the newest published GitHub release. A prepared source version or tag can temporarily be newer than the available installer while its release workflow is still building.
Alpha.13 integrates a dependency-aware drag-and-drop Preset Builder directly into the existing Mod Library, preserves the TF2-visible order and keeps savegames read-only.
- Create minimal valid Transport Fever 2 mod projects.
- Open, scan and edit existing mod projects with the Monaco editor.
- Parse Lua statically without executing mod code.
- Validate
mod.lua, filenames, resource references and common modifier contracts. - Scan installed mods from local, staging, built-in and Steam Workshop sources.
- Group the mod library by source and display available preview images.
- Show traffic-light mod health with specific causes and suggested fixes.
- Import ZIP mods with path and extraction-size protection.
- Export clean project ZIP archives.
- Install validated projects with collision protection and backups.
- Analyze
stdout.txt, group related events, identify supported root causes and separate primary errors from follow-up failures. - Inspect supported Transport Fever 2 models in a 3D viewer with LOD selection, wireframe, bounding boxes, grid, axes, fit view, auto-rotation, part visibility and model dimensions.
- Read the mod list used by a savegame without modifying the save file.
- Open savegame mod lists and existing presets directly in the Mod Library.
- Build TF2 presets beside the existing full Mod Library using drag-and-drop or the card action, without replacing its previews, health lights or tools.
- Resolve standard and CommonAPI2 dependencies, add installed requirements automatically, preserve TF2-visible ordering and block unsafe preset output.
- Preserve
!priority and*Workshop references when editing presets. - Check GitHub Releases for updates at startup. Installation remains a user action.
No sample mods or fabricated log events are shown by the production interface. Test fixtures exist only in automated tests.
- Savegames are read-only. The application writes load-order presets instead of
changing compressed
.savfiles. - CommonAPI2 project mode exists, but complete version-aware CommonAPI2 API intelligence is not yet implemented.
- Lua validation is static and cannot prove every runtime behavior of the game engine or third-party scripts.
- Unknown native or engine errors may still require manual investigation.
- Windows and Linux packages are unsigned and still require broader clean-machine acceptance testing.
- The optional AI assistant has been removed. Mod content remains local.
See Supported features and known limits for the technical scope.
Open PowerShell and run:
irm https://raw.githubusercontent.com/CeberusOne/Tpf2-Mod-Studio/main/scripts/install-windows.ps1 | iexThe script downloads the newest published NSIS *-setup.exe, verifies the
published SHA-256 checksum and starts the installer.
curl -fsSL https://raw.githubusercontent.com/CeberusOne/Tpf2-Mod-Studio/main/scripts/install-linux.sh | bashThe script installs the newest published AppImage and creates the application launcher.
Packages can also be downloaded manually from the GitHub Releases page. See Installation for details.
- Tauri 2 desktop shell
- React 19 and Vite
- TypeScript validation and domain core
- Rust command boundary for privileged filesystem operations
- Monaco editor
- Three.js model viewer
- Vitest, Testing Library and Rust tests
The architecture decision and its boundaries are documented in ADR 0001.
npm ci
npm run dev
npm run verifyWith the documented Rust and platform prerequisites installed:
npm run desktop:dev
npm run desktop:buildnpm run dev renders the frontend for inspection. Native filesystem operations
are available only inside the Tauri application.
Further documentation:
- Transport Fever 2 base files are read-only.
- Writes are restricted to an explicitly opened project or selected mod target.
- Path traversal, absolute archive paths and NUL bytes are rejected.
- Existing installed mods are not overwritten without explicit user action; a backup is created first.
- Mod Lua is parsed statically and never executed for validation.
- ZIP imports have per-entry path validation plus entry-count and size limits.
- Savegame files are never modified.
- Game launch uses a direct process API rather than a shell.
- Telemetry is absent. The only routine outbound request is the startup GitHub release check. Mod content never leaves the machine.
See the Security model for details.
Development currently targets Transport Fever 2 only.
Transport Fever 1 support is a possible later compatibility target after the Transport Fever 2 workflow becomes stable. Transport Fever 3 support can only be evaluated after the game and its official modding interfaces are publicly available.
The locked native build is checked by GitHub Actions on Ubuntu 22.04 and Windows Server 2022. CI runs TypeScript checks, JavaScript and Rust tests, Rust formatting and Clippy, native bundle builds and desktop smoke tests.
Developed by Mike Hering.
Copyright © 2026 Mike Hering.
Tpf2 Mod Studio is licensed under the
GNU General Public License version 3, using the SPDX identifier
GPL-3.0-only. Distributed modified versions must remain available under the
same license terms. The license covers the Tpf2 Mod Studio source code and does
not grant rights to Transport Fever game files or third-party mod content.