Automatic splits for Timberborn speedruns in LiveSplit.
Timberborn provides no way for external tools to observe what is happening in an active game — there are no exported stats, no live API, and the autosave files are only written periodically. This makes it impossible for a tool like LiveSplit to know when you built a Forester, researched a technology, or activated a Wonder.
This project solves that with two components:
mod/ — Timberborn game mod
A small mod that hooks into Timberborn's own systems and exports live game state to a JSON file on your machine every 0.5 seconds. It tracks population, log counts, which buildings have been completed, which technologies have been researched, and whether the Wonder has been activated. It also generates a unique run ID each time you start a new game, which is what LiveSplit uses to detect that a new run has begun.
autosplitter/ — LiveSplit ASL script
A script for LiveSplit's Scriptable Auto Splitter component that reads the JSON file produced by the mod. It watches for changes to the run ID to start the timer, then monitors the building and research state to fire splits at the right moments. Each split is individually toggleable so you can adapt the layout to different categories.
The mod is called Autosplitter State Export, you can find it through the in-game mod browser. A direct link here: Steam - Autosplitter State Export.
For manual installation, drop Code.dll and manifest.json into:
%USERPROFILE%\Documents\Timberborn\Mods\AutosplitterStateExport\
The mod writes a file to:
%APPDATA%\..\LocalLow\Mechanistry\Timberborn\autosplitter_state.json
This updates every 0.5 seconds while a game is running.
- Right-click LiveSplit → Edit Splits.
- Set Game Name to
Timberbornand Run Category toWonder. - LiveSplit will prompt you to activate the auto splitter — click Activate.
- Load a splits file (see below) or add your own segment names manually.
LiveSplit downloads and manages the autosplitter script automatically — no files to configure.
Pre-made splits files are available in the splits/ folder:
| File | Download | Description |
|---|---|---|
timberborn_blank.lss |
Download | All segments, no times — good starting point for new runners |
timberborn_wr.lss |
Download | World record reference times |
Open the downloaded file via right-click LiveSplit → Open Splits.
All splits are toggleable in the LiveSplit auto splitter settings panel.
| Split | Trigger |
|---|---|
| Forester | Forester's Hut finished |
| Gear Workshop | Gear Workshop finished |
| Tapper's Shack | Tapper's Shack finished |
| Observatory | Observatory finished |
| Smelter + Wood Workshop | Both finished (either order) |
| Research Earth Recultivator | Science unlocked |
| Earth Recultivator (Launch) | Wonder activated |
Splits fire once per run and work for both Folktails and Iron Teeth.
The timer starts automatically when a new game is detected (new gameId in the state file).
Advanced users and tool developers can read the JSON directly:
{
"mapName": "Canyon",
"faction": "Folktails",
"day": 14,
"logs": 42,
"adults": 12,
"children": 3,
"finishedBuildings": ["Forester.Folktails", "GearWorkshop.Folktails"],
"earthRecultivatorResearched": false,
"wonderActivated": false,
"gameId": "a3f2c1d0"
}gameId is a random 8-character hex string, regenerated each time a new game starts.
Requires .NET SDK and a Timberborn install.
- Clone this repo.
- Open
mod/TimberbornAutosplitter.csprojand updateGameRootto your install path if it differs from the Steam default:<GameRoot>C:\Program Files (x86)\Steam\steamapps\common\Timberborn</GameRoot>
- Build the project — it will automatically deploy to your mods folder and copy the ASL to
Documents\Timberborn\.
autosplitter/generate_layout.py generates a timberborn.lsl pre-configured with the correct ASL path for your machine:
python autosplitter/generate_layout.py
Open the resulting timberborn.lsl in LiveSplit via Open Layout.