Dev Mode QoL
Developer overlay quality of life: localized item and level names, search by any language or pinyin, free camera keeps the view direction, Escape closes the F3 menu.Dev Mode QoL
Quality of life fixes for SULFUR's developer overlay (F3). Developer mode only - without it the
mod stays inert.
The free camera keeps the view direction
Vanilla drops the view direction on both sides of the F3 transition, so the free camera starts facing wherever it was left and the player comes back facing wherever they left. Both hand-overs now work:
- Entering the free camera continues from the direction the player was looking at.
- Leaving the free camera after teleporting with
Tmakes the player look where the free camera was looking at the moment the overlay closed. - Leaving the free camera without a teleport changes nothing: the player returns to the original spot with the original view direction, because the free camera can be far away from it.
The teleport is remembered per free camera session and forgotten every time the overlay opens.
Escape leaves the overlay
Vanilla only closes the overlay with F3. Escape now backs out one layer at a time.
- Level select list open - the game's own cancel closes the list, as before.
- Spawn menu open - Escape closes the spawn menu.
- Free camera only - Escape closes the overlay, exactly like
F3.
Gamepad cancel behaviour is unchanged.
The game binds both Escape and Backspace to the same UI cancel, so Backspace used to close the
spawn menu, and one press in the search box threw away everything typed instead of deleting one
character. Backspace now never closes anything - that is Escape's job - and in the search box it
is plain text editing. The game's own handling is untouched, so Backspace still closes the level
select list as it always did.
Escape does reach a focused search box, which uses it to stop editing; only once the box has let
go does Escape start closing menus.
Every item is in the spawn menu
Some items the game ships simply cannot be found in the spawn menu - Dinner Jacket is one of them.
The overlay never asks the game which items exist: it collects the items tagged for the menu, then
drops every item whose data still says it is not part of the early access build. That flag is read
nowhere else in the entire game, so those items drop, sell and equip perfectly normally - only the
overlay refuses to list them. In v0.18.5 it hides 17 of them, twelve of which are oils and scrolls.
The list is now completed from the game's own item registry before the menu is built, and the filter is lifted while it is built. Items the game leaves out on purpose, such as weapons flagged as not usable by the player, stay out.
The overlay follows the game language
The game is fully localized; the developer overlay is not. It labels spawn menu buttons with the untranslated authoring name - even though it already sorts them by the translated one - and level buttons with the level's authoring identifier only.
- Spawn menu item buttons and the "selected" label now show the item name in the game's language, the same one the inventory shows.
- Level select buttons keep their identifier line (
Act_01_Caves 2: MakerSet_Caves_B) and gain a second line with the name the player sees in game (Caves II). - The search box now finds an item by its name in any language the game has loaded, as well as
by its internal asset name. Type
bandage,绷带orVerbandand the same button shows up. - Chinese names are also found by their pinyin, so there is no need to switch input method - see below.
- Everything is rebuilt when the language is switched.
The overlay also never had the game's font localization, so its labels use a latin-only font and a Chinese, Japanese, Korean or Cyrillic name draws blank. A label that cannot draw the text it was given is handed the font the game uses for the current language; a label that already copes keeps the overlay's original font, so an English game looks exactly as before.
Names come from the game's own localization terms, so they always agree with the rest of the game. Unit, attribute and mutation buttons, the category buttons and the overlay readouts carry no translation in the game's data and keep the game's own labels.
Pinyin search
Typing a Chinese name into the search box means switching input method for one word and switching back. The search accepts the latin spelling instead, typed the way a Chinese keyboard is typed.
Every one of these finds 手枪:
shouqiang full syllables
sq initials
shouq full syllable, then an initial
sqiang an initial, then a full syllable
shouqia a syllable left half-typed
shq zh / ch / sh typed in full
A character read several ways is found under any of them, and ü is spelled both ways:
xdq sdq both find 霰弹枪, because 霰 reads xian or san
zjq cjq both find 重机枪, because 重 reads zhong or chong
lvjian lujian both find 绿箭
A character with several readings matches on any of them, spaces and brackets in a name are stepped
over rather than typed, and qiang finds 手枪 as well - the match works anywhere in the name. Only
a query written in latin letters is treated as pinyin; a query that already contains Chinese goes
through plain text search.
Configuration
Settings live in BepInEx/config/ryuka.sulfur.dev_mode_qol.cfg.
InheritOrientationOnEnter
Entering the free camera keeps the direction the player was looking at.
[1 - Free Camera]
InheritOrientationOnEnter = true
InheritOrientationOnExit
Leaving the free camera hands the camera direction back to the player, but only when the player
was teleported with T during that session.
[1 - Free Camera]
InheritOrientationOnExit = true
CloseWithEscape
Escape closes the spawn menu and the developer overlay.
[2 - Menu]
CloseWithEscape = true
ShowEveryItem
The spawn menu lists every item in the game's item registry, including the ones vanilla hides behind its early access filter. The menu is built once per game session, so a change applies from the next session.
[2 - Menu]
ShowEveryItem = true
LocalizeItemNames
Spawn menu item buttons show the item name in the language the game is set to. Turn this off to see the authoring names instead.
[2 - Menu]
LocalizeItemNames = true
SearchEveryLanguage
The search box matches an item name in any language the game has loaded, as well as its internal asset name. Turn this off to search the visible names only.
[2 - Menu]
SearchEveryLanguage = true
PinyinSearch
The search box also matches Chinese names by how they are pronounced. Only applies to a query typed in latin letters.
[2 - Menu]
PinyinSearch = true
ShowLevelNames
Level select buttons get a second line with the level name the player sees in game.
[2 - Menu]
ShowLevelNames = true
VerboseLogging
Logs every camera hand-over, overlay close and localization pass. Diagnostics only, it does not change behaviour.
[3 - Diagnostics]
VerboseLogging = false
Compatibility
Only touches the developer overlay, so it does not interact with gameplay mods. It patches
DevToolsManager and the developer level list, reads the game's localization data, and adds
nothing to the normal game loop.
Credits
Pinyin readings are derived from the Unicode Han Database (Unicode License). The pinyin search behaviour follows Just Enough Characters.
