A tool for converting Stardew Valley Mods from the Content Patcher framework to the Alternative Textures framework. For more information on the Content Patcher framework, see here. For more information on the Alternative Textures framework, see here.
This script relies on comparing the asset provided by the mod to the vanilla asset from the game. All vanilla Stardew Valley assets can be unpacked from the game using StardewXnbHack, and belong to ConcernedApe.
Currently, this script supports the conversion of:
- TileSheets/Craftables.png
- Fences
- TileSheets/Furniture.png
- Farm Buildings
- Fruit Trees & Trees
- Animals
For a better guide (with screenshots!) on how to install Python and run a Python script from command line, see Elizabeth's guides for Windows here and Mac here
- Install Python between versions 3.8 and 3.10 (see the download page for Python 3.8 here).
- Install the Python requirements
- NOTE: For this converter, you can run
pip install -r requirements.txt
, but for issues, the required packages arejson5
,pillow
, andnumpy
.
- NOTE: For this converter, you can run
- Download and extract the latest GitHub release.
- Place the entire mod folder into
CP2AT/
folder so the folders look like this:
CP2AT/
├─ MOD_FOLDER_NAME/
│ ├─ assets/
│ ├─ manifest.json
│ ├─ content.json
- Change the
config.json
to indicate the name of your mod folder (e.g.[CP] YourModHere
) and any keywords that you wish to include.
{
"mod_folder_path": "[CP] Mi's and Magimatica Country Furniture",
"keywords": ["furniture", "Mi's and Magimatica"]
}
- Open a Command Prompt or Terminal window in the
CP2AT
folder.- For Windows, open the folder in your file browser and type
cmd
into the address bar at the top. - For Mac/Linux, right click and select "Open folder in Terminal"
- For Windows, open the folder in your file browser and type
- Execute the
main.py
script by typingpy main.py
(or if that doesn't work,python main.py
orpython3 main.py
) into the terminal and then pushing theEnter
key. - Find your textures in the new
[AT]
folder!
- Furniture conversion will not fully work if the CP's
content.json
changes more than one row of furniture sprites at a time. Will maybe be fixed in future update. -
- Craftables conversions will also not fully work in the same scenario. Will work on this.
furnitureFront
conversion is not currently thoroughly tested, please check those textures carefully after the script is done.
- Extend script to function for springobjects, etc.
- Add argument flags for indicating Object Type when no content.json is available to scrape from (e.g. XNB conversions or PNGs from Naver)