Schedule I images to graffiti
A small tool to convert images to Schedule I graffiti format.
Features
- Show the optimal dimensions for a selected graffito
- Replace a selected graffito with an PNG-image
Installation & usage
- Create a graffito in-game and paint in two opposite corners (e.g. top-left and bottom-right)
- Install pillow using pip or your system's package manager
- Download the main script from Codeberg
- Get the Graffiti.json file from your saved game (usually located in C:\Users\username\AppData\LocalLow\TVGS\Schedule I\Saves or the corresponding directory in the wine prefix) and paste it in the same directory as the script
- Select the painted graffito's index (I recommend viewing your graffiti using this mod. Look at the saved graffiti and count from top to bottom, starting at zero. The numbers are your indices.)
- Put an image.png file with your image next to the script
- Run the script using the following pattern: python3 convert_to_graffito.py [index] (e.g.: python3 convert_to_graffito.py 5 to convert the 6th graffito from the list)
- Copy the generated Graffiti_new.json file and replace the Graffiti.json file in your save with it
- Run the game and find your graffito (You can also verify the graffito in the editor from above first.)
Getting the optimal image quality
There are multiple factors with an effect on the quality of the final result. To get the optimal result, you can try the following things.
Everything listed below has unique effects on the results and may not work well with every image.
Using the right input image size
- Run the script once with your target graffito selected. Terminate it, as soon as it tells you the optimal image dimensions.
- Create an image with the optimal dimensions and use it as input
Note that the optimal dimensions are different for each graffito and depending of the previously drawn image.
Using the right colours
Schedule I only supports the eight colours on
this palette. To get a better result, only use these colours in your input image.
The following colours are supported:
- #ffffff
- #000000
- #ff0000
- #00ff00
- #0000ff
- #ff6699
- #993333
- #ffff00
Disable antialiasing
When creating an image on a low resolution, it might be a good idea to disable antialiasing in your editor to get sharp edges which are much easier to convert to graffiti.
Enable dithering
For some images, it might be helpful to enable dithering during conversion. To do so, pass the extra argument
true after the graffito's index like this:
python3 convert_to_graffito.py [index] true
Due to the low amount of available colours, dithering can simulate a more colours but it also removes a good amount of detail and may introduce noise. A comparison is below.
Dithering is disabled by default.
Support
If you need help or want to suggest a change, please see the
issues page.
Screenshots