* move yaml (still need to fix header path) * fix header * change kart to karts and add migration * fix include * Update migration.py * fix common_texture_debug_font extraction * Update torch * update torch and header * unduplicate texture for tumble * Update torch * Update migration.py * put the sort by default * fix replace_segmented_textures_with_o2r_textures * Update torch * fix yamls * add manual_segments in data of course * comment out replace_segmented_textures_with_o2r_textures and segment 3 * remove segment 5 * (wip) remove segment 6 still plenty of thing to do * more vtx * more change * Update torch * small fix * Update BansheeBoardwalk.cpp * fix blockFort * Delete test.yaml * fix bowser castle and simplify track sections * fix choco mountain * clean banshee * fix dk jungle * fix double deck * fix macos * fix error * fix macos ci * Update torch * Update torch * fix frappe snowland * fix kalimari desert * fix koopa troopa beach * fix luigi raceway * fix mario raceway and simplify thing * fix moo moo farm * fix rainbow road * Update torch * Update torch * hopefully fix windows error * fix a small error * fix royal raceway (and podium in theory) * fix sherbet_land * fix skyscraper * fix toads turnpike * fix wario stadium * fix yoshi valley * update torch * more clang tidy rules * REMOVE totally SEGMENT (sorry for the PR) * remove unused field in course and props and unused packed asset * fix kart texture * fix particle * fix track section and transparency * try fix mode extra * fix macos build and render * fix collision in extra * small change and try fix windows error * a little of clean * more cleanup * forget header and more clean up * Update Makefile * fix credits * fix kart texture offset * remove LoadTextures and add Unload * fix definitevely mirror mode * add unload but it's not perfect * revert a bad fix * clean no longer used python script * fix crash with player * being able to load the same course twice * add a comment on DrawWater * fix render of transparent object * better hack * add a proper migration instruction * fix number * add basic modsmanager * add meta/mods.toml * Update EditorMath.h * Update ModsManager.cpp * basic modManager (maybe I should rename it ModLoader) * use range on dependencies * add information about mods.toml * fix coment * some rename around * Delete beta-to-v1.md * Update migrations.md * Update textures-pack.md * Update modding.md * Update modding.md * clean yamls_old * move to mods in engine * rename ModsManger to ModManager * move init and unload at the top * rename ModsMetadata to ModMetadata * fix header * Update ModManager.cpp * put core mods at top
6.9 KiB
Migration: Beta to v1.0
This guide explains how to migrate your existing resource packs and mods from the Beta version to the future first stable release (v1.0) of SpaghettiKart.
Overview
With the v1.0 release approaching, the YAML structure and resource paths have been reorganized to be more logical and maintainable. If you have existing mods or texture packs created for the Beta version, you will need to update them to work with v1.0 and later versions.
Migration Script
A Python migration script (migration.py) is provided at the root of the repository to help automate the migration process. You can customize the folder variable to point to your mod folder.
Usage
- Download the migration.py script
- Edit
migration.pyand set thefoldervariable to your mod folder name - Run the script:
python migration.py
- The migrated mod will be created in a new folder with
_Migratedsuffix
Generated Files
The migration script will automatically generate a mods.toml file at the root of your migrated mod. This file is required for SpaghettiKart to properly recognize and load your mod. See mods.toml documentation for more details about this file.
Path Changes
Textures
The main change is that textures are now organized into a textures/ subfolder with proper categorization.
Track Textures
| Old Path | New Path |
|---|---|
banshee_boardwalk_data/ |
textures/tracks/banshee_boardwalk/banshee_boardwalk_data/ |
bowsers_castle_data/ |
textures/tracks/bowsers_castle/bowsers_castle_data/ |
choco_mountain_data/ |
textures/tracks/choco_mountain/choco_mountain_data/ |
dks_jungle_parkway_data/ |
textures/tracks/dks_jungle_parkway/dks_jungle_parkway_data/ |
frappe_snowland_data/ |
textures/tracks/frappe_snowland/frappe_snowland_data/ |
kalimari_desert_data/ |
textures/tracks/kalimari_desert/kalimari_desert_data/ |
koopa_troopa_beach_data/ |
textures/tracks/koopa_troopa_beach/koopa_troopa_beach_data/ |
luigi_raceway_data/ |
textures/tracks/luigi_raceway/luigi_raceway_data/ |
mario_raceway_data/ |
textures/tracks/mario_raceway/mario_raceway_data/ |
moo_moo_farm_data/ |
textures/tracks/moo_moo_farm/moo_moo_farm_data/ |
rainbow_road_data/ |
textures/tracks/rainbow_road/rainbow_road_data/ |
royal_raceway_data/ |
textures/tracks/royal_raceway/royal_raceway_data/ |
sherbet_land_data/ |
textures/tracks/sherbet_land/sherbet_land_data/ |
toads_turnpike_data/ |
textures/tracks/toads_turnpike/toads_turnpike_data/ |
wario_stadium_data/ |
textures/tracks/wario_stadium/wario_stadium_data/ |
yoshis_valley_data/ |
textures/tracks/yoshis_valley/yoshis_valley_data/ |
Kart Textures
| Old Path | New Path |
|---|---|
bowser_kart/ |
textures/karts/bowser_kart/ |
donkeykong_kart/ |
textures/karts/donkeykong_kart/ |
luigi_kart/ |
textures/karts/luigi_kart/ |
mario_kart/ |
textures/karts/mario_kart/ |
peach_kart/ |
textures/karts/peach_kart/ |
toad_kart/ |
textures/karts/toad_kart/ |
wario_kart/ |
textures/karts/wario_kart/ |
yoshi_kart/ |
textures/karts/yoshi_kart/ |
Other Textures
| Old Path | New Path |
|---|---|
boo_frames/ |
textures/boo_frames/ |
ceremony_data/ |
textures/ceremony_data/ |
common_data/ |
textures/common_data/ |
other_textures/ |
textures/other_textures/ |
player_selection/ |
textures/player_selection/ |
startup_logo/ |
textures/startup_logo/ |
texture_data_2/ |
textures/texture_data_2/ |
texture_tkmk00/ |
textures/texture_tkmk00/ |
Kart Frame Textures
Kart textures have been split into separate wheel textures. Each kart frame now has 4 associated wheel textures. That makes them possible to spin.
Old Structure
mario_kart_frame001.png
New Structure
mario_kart_frame001_wheel0.png
mario_kart_frame001_wheel1.png
mario_kart_frame001_wheel2.png
mario_kart_frame001_wheel3.png
This applies to all 289 frames (frame000 to frame288) for each kart:
bowser_kartdonkeykong_kartluigi_kartmario_kartpeach_karttoad_kartwario_kartyoshi_kart
The migration script automatically duplicates your original kart frame texture to all 4 wheel variants.
New Folder Structure
The new YAML and resource structure is organized as follows:
yamls/us/
├── models/
│ ├── ceremony_data.yml
│ ├── common_data.yml
│ ├── data_800E8700.yml
│ ├── data_segment2.yml
│ ├── startup_logo.yml
│ └── tracks/
│ ├── banshee_boardwalk/
│ ├── big_donut/
│ ├── block_fort/
│ ├── bowsers_castle/
│ ├── choco_mountain/
│ └── ...
├── other/
│ ├── ceremony_data.yml
│ ├── common_data.yml
│ ├── startup_logo.yml
│ └── tracks/
│ └── ...
├── sound/
│ ├── banks.yml
│ ├── root.yml
│ ├── samples.yml
│ └── sequences.yml
└── textures/
├── boo_frames.yml
├── ceremony_data.yml
├── common_data.yml
├── data_800E45C0.yml
├── other_textures.yml
├── player_selection.yml
├── some_data.yml
├── startup_logo.yml
├── texture_data_2.yml
├── texture_tkmk00.yml
├── karts/
│ ├── bowser_kart.yml
│ ├── donkeykong_kart.yml
│ ├── luigi_kart.yml
│ ├── mario_kart.yml
│ ├── peach_kart.yml
│ ├── toad_kart.yml
│ ├── wario_kart.yml
│ └── yoshi_kart.yml
└── tracks/
├── banshee_boardwalk/
├── bowsers_castle/
├── choco_mountain/
└── ...
Manual Migration
If you prefer to migrate manually:
- Create the new folder structure in your mod
- Move texture files according to the path mapping tables above
- For kart textures, duplicate each frame texture to the 4 wheel variants
- Create a
mods.tomlfile at the root of your mod (see mods.toml documentation) - Test your mod with the new version of SpaghettiKart
Troubleshooting
- Textures not loading: Verify that your paths match exactly with the new structure
- Missing wheel textures: Make sure all 4 wheel variants exist for each kart frame
- Wrong track textures: Double-check the track name in the path (e.g.,
yoshi_valleyvsyoshis_valley)
See Also
- mods.toml File Structure - Required metadata file for mods
- Texture Pack Guide - How to create texture packs
- Modding Guide - General modding information