SN2 Mod Installer - Subnautica 2 Tool
Python tooling, Tkinter UI, local workflow automation, Windows desktop UX
- Problem
- Testing Subnautica 2 LogicMods meant repeatedly copying packaged Unreal chunk files and renaming them into the game's LogicMods folder.
- Work
- Built a small desktop installer that remembers local paths, installs pak/ucas/utoc files in one action, and keeps the repeated test loop simple.
- Tech
- Python, Tkinter, Windows launchers, Steam library path detection, local ignored settings
- Result
- Local mod testing becomes a one-click install step instead of a manual file-management task.
Links
- GitHub repository: SN2 Mod Installer
Screenshot

Overview
SN2 Mod Installer is a small desktop helper I made for my Subnautica 2 modding workflow.
When packaging a LogicMod from Unreal, the output files are chunk files such as pakchunk15-Windows.pak, pakchunk15-Windows.ucas, and pakchunk15-Windows.utoc. For local testing, those files need to be copied into the game’s LogicMods folder and renamed to the mod name.
That is not a hard task, but it is exactly the kind of repeated step that becomes annoying when testing the same mod many times.
This tool turns that install step into a small UI.
What It Does
- copies the packaged
pak,ucas, andutocfiles in one action - renames them to the selected mod name
- installs them into
Subnautica2/Content/Paks/LogicMods/<ModName> - remembers the source folder, target folder, mod name, chunk id, and launch preference
- restores window placement between sessions
- prevents duplicate tool windows
- can launch Subnautica 2 after installing
- tries to detect common Steam library locations and the adjacent Unreal package output folder
Why This Was Worth Doing
The value here is not that the tool is complex. The value is that it removes friction from the iteration loop.
When working on a mod, every extra manual step between packaging and testing makes iteration slower and more error-prone. This tool keeps that loop focused: package in Unreal, press install, launch or return to the game.
It is also a useful example of the kind of small internal tooling I like building: not a large framework, but a practical tool that supports the actual work.
Implementation Summary
The app is built in Python with Tkinter and packaged as a simple Windows-friendly repo.
The root folder contains a single launcher, while the implementation lives under app/. Local settings are saved to an ignored JSON file so machine-specific paths do not get committed.
The installer validates the mod name and chunk id, checks that the expected source files exist, creates the target mod folder, then copies and renames all required files.
The app also includes a small single-instance lock so opening the launcher twice does not create duplicate windows.
Scope
This was built for my own Subnautica 2 modding setup, but it should be reusable for other local LogicMods testing workflows if they use the same packaged chunk naming pattern.
If the auto-detected paths do not match another machine, they can be selected manually through the Browse buttons and saved locally.
Result
The final result is a narrow but useful modding tool: it replaces a repetitive file-copying task with a predictable install action and keeps the local test loop cleaner.