Skip to content

feat: add .rhs skin file drag-and-drop import - #198

Closed
Londopy wants to merge 1 commit into
Rhythia:indevfrom
Londopy:feat/rhs-import
Closed

Londopy wants to merge 1 commit into
Rhythia:indevfrom
Londopy:feat/rhs-import

Conversation

@Londopy

@Londopy Londopy commented Nov 7, 2026

Copy link
Copy Markdown

Summary

  • Adds native drag-and-drop support for .rhs skin files (the format used by the original Rhythia/Sound Space)
  • Extracts cursor, grid, note skin textures, colorset, hit sound, and composites multi-layer backgrounds automatically
  • New RhsImporter class handles all conversion from the .rhs zip format to the Client's skin folder layout

How it works

Drop any .rhs file onto the game window. The importer:

  1. Reads the JSON config and extracts skin assets (cursor, border/grid, note skin)
  2. Extracts colorset to colorsets/{skinName}.txt
  3. Composites background layers (with canvas color, position, scale, fit mode, tint) into a single game/background.png
  4. Extracts hit sound as hit.mp3
  5. Writes a config.toml with theme color, note colors, mesh type, and sets game_space = "void" for background display
  6. Registers the skin and switches to it immediately

Test plan

  • Drop a .rhs skin file onto the game window — skin should import and activate
  • Verify cursor, grid, colors, hit sound, and background all load correctly
  • Drop multiple .rhs files — each should import without conflicts
  • Drop a skin with the same name as an existing one — should overwrite cleanly

Import .rhs skin archives by dropping them onto the game window.
Extracts cursor, grid, colorset, hit sound, and composites background
layers into the Rhythia skin folder format, then activates the skin.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants