Cross-platform tool to track completion progress in the game Disillusion ST. Written in Python and PyQt6.
It allows you to track your progress by telling you what you need to do to trigger the next event in each event chain and keeps track of all the requirements for each chain and event. Simply click on the button describing the event once you trigger it in game, and the undo button next to it if you need to go back a step.
I strongly advise not using this tool on your first playthough of the game. The game is best enjoyed blind, and I recommend using this tool only after you're very familiar with the story and have gotten all the endings at least once. It can be useful for speedruns or for casual playthroughs when you're really stuck somewhere and you want to avoid that.
The code for the tracker is written by me (Anic) and is licensed under the GPLv3 software license.
The game Disillusion ST and all of its assets are property of the Disillusion Dev team and are used in this project under explicit permission (they are under the img/ directory).
Huge thanks to Altotas for their Events Compendium guide and Applesgosh for their progress tracking spreadsheets and continued help and knowledge about the game. Without these two this tracker wouldn't exist and all the credit for the events defined in chains.yml
goes to them.
- Download the archive appropriate for your system from the releases section on this repository.
- Extract the archive.
- Run the executable from the extracted folder (
dst_tracker.exe
for Windows,dst_tracker
for Linux).
If you don't want to run the precompiled binaries and have Python installed on your system, follow these instructions to run the script:
Prerequisites: git, python
- Open a terminal
- Clone the repository and go inside the cloned directory
git clone https://github.com/AnicJov/DST-Tracker && cd DST-Tracker
- Create a Python virtual environment
python -m venv venv
- Install dependencies
venv/bin/pip install -r requirements.txt
- Run the program
venv/bin/python dst_tracker.py
Prerequisites: Git, Python, Microsoft C++ Build Tools
- Open a Powershell window
- Clone the repository and go inside the cloned directory
git clone https://github.com/AnicJov/DST-Tracker && cd DST-Tracker
- Create a Python virtual environment and activate it
python -m venv venv && .\venv\Scripts\Activate.ps1
Note: It may be required to change the execution policy on your system in order to activate the virtual environment
PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
- Install dependencies
pip install -r requirements.txt
- Run the program
python dst_tracker.py
If you want to track different chains and events (e.g. for different endings) you can do so by modifying the chains.yml
file.
That is where all the events are defined and loaded on program startup.
The file uses YAML syntax and is structured as follows:
At the root is chains
which is a list of event chains in the game.
chains:
- ...
- ...
- ...
Each chain must have a result
and at least one event in its events
list, and can have other optional fields.
result: "My Chain #1"
requirement: "Some requirement"
events:
- ...
- ...
- ...
In the events
list of a chain individual events are defined. They must have a description
and trigger
and optionally location
list, image
, requirement
, and result
.
description: "Scene where two characters fight"
trigger: "Talk to SomeCharacter"
location: ["Vicsine", "Naraka"]
requirement: "Some item"
result: "Some other item"
image: "img/some_character.png"
Putting all of that together, a final chains.yml
file would look like:
chains:
- result: "My Chain #1"
requirement: "Some requirement"
events:
- description: "Scene where two characters fight"
trigger: "Talk to SomeCharacter"
location: ["Vicsine", "Naraka"]
requirement: "Some item"
result: "Some other item"
image: "img/some_character.png"
Hopefully you get the idea.
If you need any help with anything feel free to reach out to me on Discord at _anic
or the DST server.
If you want to contribute to this project feel free to submit issues or pull requests on this repository.
Keep in mind that the code was written very hastily and is not of good quality, but it does the job :^).