SULFUR
Install

Details

Last Updated
First Uploaded
Downloads
101
Likes
0
Size
87KB
Dependency string
ryuka_labs-Dev_Mode_QoL-1.2.0
Dependants

Categories

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 T makes 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.

  1. Level select list open - the game's own cancel closes the list, as before.
  2. Spawn menu open - Escape closes the spawn menu.
  3. 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, 绷带 or Verband and 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.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.