Repository navigation
Allow the script manager to extract scripts with empty or non-unique names - #179
Merged
Merged
Conversation
This way we can have filenames that contain slashes.
…with duplicate or empty names can be extracted
…lar_array_windows`
… manager to correspond with commit d9604fc
Collaborator
Author
|
GitHub Actions is experiencing another outage so it might take a while for CI to pass. |
Collaborator
Author
|
It seems the CI is cursed today, so I'm going to close and reopen this pull request to see if that triggers it. |
melody-rs
approved these changes
Aug 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Some games have multiple scripts with the same name or scripts with empty names. Previously, those could not be extracted correctly, so I've changed the script manager to extract scripts by prepending the script filename with the index of the script (e.g. "001:name.rb" instead of simply "name.rb"). I've also changed the script manager to URI-escape the extracted filenames to handle scripts whose names contain characters that are not allowed in filenames.
Testing
I was trying to use Luminol earlier to extract the script files from the free trial version of the game Shukyusho Gakuen Gaiden: The Legend of Hanpane Island because someone reported issues running this game in mkxp-z, but that game has two scripts with identical names and Luminol only extracts the second one, and so the game doesn't run anymore if you extract the scripts and then create the Scripts.rvdata from the extracted scripts (specifically it throws an exception as soon as you start a new game using the newly created Scripts.rvdata). It should be able to do round-trip extracting and creating of the Scripts.rvdata now without causing an exception when you start a new game.
Checklist
cargo fmt.cargo clippy. If applicable, add:--target wasm32-unknown-unknown -Z build-std=std,panic_abortcargo build --releasetrunk build --release