-
Notifications
You must be signed in to change notification settings - Fork 6
File Structure
Anthony Samms edited this page Jun 2, 2026
·
1 revision
A skin lives in its own folder inside the Skins/ directory. The active skin is set in the game's config file via the skin path entry.
Skins/
└── YourSkinName/
├── Graphics/
│ ├── skin_config.json
│ └── <screen>/
│ ├── <element>/
│ │ ├── texture.json
│ │ ├── image.png
│ │ └── <animated_element>/
│ │ ├── 0.png
│ │ ├── 1.png
│ │ └── ...
│ └── animation.json
├── Scripts/
│ └── background/
│ ├── background.lua
│ └── bg_objects/
├── Sounds/
│ └── hit_sounds/
│ └── neiro_list.txt
└── .skin-repo (optional, URL pointing to the skin's repository)
Graphics are organized by screen. Each screen is a subdirectory under Graphics/.
A skin can extend another skin by declaring a "parent" key in skin_config.json:
{
"parent": "BaseSkinName",
"screen": { "width": 1280, "height": 720 }
}Assets present in the child skin override the parent's assets. Assets only present in the parent are inherited automatically. Coordinates are scaled to account for resolution differences between the two skins.
Building
libs
- animation
- audio
- config
- filesystem
- global_data
- input
- logging
- ray
- scores
- screen
- script
- song_parser
- text
- texture
- video
- webcam
libs/parsers
objects
objects/game
- player
- background
- gauge
- judgment
- combo
- branch_indicator
- ending_animations
- gogo_time
- fireworks
- song_info
- transition
- result_transition
- judge_counter
- score_counter
- score_counter_animation
- balloon_counter
- drumroll_counter
- kusudama_counter
- drum_hit_effect
- lane_hit_effect
- gauge_hit_effect
- combo_announce
- note_arc
objects/global
objects/title
objects/entry
objects/settings
objects/result
objects/song_select
- player
- navigator
- box_base
- box_song
- box_folder
- neiro
- modifier
- ura_switch
- diff_sort
- search_box
- dan_transition
- genre_bg
- score_history
- song_select_script
scenes