Items and crafting recipes for The Escapists 1 & 2, on one filterable page. Available at craft-n-escape.com.
Because everyone loves it when a plan comes together
Note: Only The Escapists 1 is fully supported at this moment. The Escapists 2 support is ongoing.
- List of all available items with all their attributes
- Can be filtered in many ways (is craftable, is illegal, etc)
- Crafting recipes
- Links to The Escapists wiki
- Items image
- Given a list of items you own, you can get the list of items you can craft
- (Internal) Crafting recipes editor (used to convert The Escapists 1 crafting recipes format to the Craft N' Escape one)
- (Internal) Items images extractor
- Should work on any Python 3.x version. Feel free to test with another Python version and give me feedback
- (Optional, but recommended) A uWSGI-capable web server
- (Optional) The Escapists 1 and/or 2, if you need to extract the items data or images
- Clone this repo somewhere
- Copy
.env.local
to.env
pip install -r requirements-dev.txt
Copy the config.example.py
file to config.py
and fill in the configuration parameters.
Available configuration parameters are:
SECRET_KEY
Set this to a complex random value
More informations on the one above can be found here.
I'll let you search yourself about how to configure a web server along uWSGI.
- Standalone
Run the internal web server, which will be accessible at http://localhost:8080
:
flask run
Edit this file and change the interface/port as needed.
- uWSGI
The uWSGI file you'll have to set in your uWSGI configuration is uwsgi.py
. The callable is app
.
- Others
You'll probably have to hack with this application to make it work with one of the solutions described here. Send me a pull request if you make it work.
The Flask command flask te1-extract-items-data
is used to regenerate the items listing file, i.e when the game has been
updated.
This command only works on Windows, and requires the game to be installed.
set FLASK_APP=cne.py
flask te1-extract-items-data --gamedir="{path to the game root directory}"
TODO
The Flask command flask te1-extract-items-image
is used to extract items images from the game itself.
This command only works on Windows, and requires the game to be already running in any map without any internal game window opened. The game's window must be visible at all times, and must not be moved or resized.
pip install -r requirements-dev.txt
set FLASK_APP=cne.py
flask te1-extract-items-image
TODO
This project is mainly powered by Flask (Python) for the backend and Vue.js 2 for the frontend.
Data is stored in JSON files. Why? And why not an SQLite database or some kind of embedded relational database? Because JSON files are easy to read using every programming languages, even Javascript on the client-side. In addition I didn't want to mess with the SQLite => JSON processing, so instead we directly use JSON as the data storage format.
data/1/items.json
is built by theflask te1-extract-items-data
command by parsing the game's files (theData/items_*.dat
ones). It contains all items information.data/1/recipes.json
contains all crafting recipes of the items contained in the file above. A recipes editor (only available locally athttp://localhost:8080/recipes-editor
) is used to convert The Escapists 1 crafting recipes format (simple, unformatted, non-machine friendly text) to the Craft N' Escape one (relation to items IDs).
Items images are extracted using, huh, a brutal solution. Basically, the flask te1-extract-items-image
command edit the game's
process memory for each existing items by assigning them in your weapon slot. A screenshot of the current weapon is then
taken, the background is converted to a transparent one and the final image saved at static/images/items/1/{item ID}.png
.
TODO
For more information, I suggest you do dive into the code starting with the cne.py
file.
- Logo by Matthew McClintock (Design Science License)
- All The Escapists / The Escapists 2 assets © 2015 - 2018 Mouldy Toof Studios / Team17 Digital
- This project is not affiliated with Mouldy Toof Studios / Team17 Digital
If you have questions or problems, you can either:
- Submit an issue here on GitHub
- Post a message in this Steam topic