You are viewing a potentially older version of this package. View all versions.
ryuka_labs-Dev_Mode_QoL-1.1.0 icon

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.

Date uploaded 2 weeks ago
Version 1.1.0
Download link ryuka_labs-Dev_Mode_QoL-1.1.0.zip
Downloads 18
Dependency string ryuka_labs-Dev_Mode_QoL-1.1.0

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2305 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2305

README

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.

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

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.

CHANGELOG

Changelog

1.2.0

  • The spawn menu now lists every item the game has. Vanilla builds the list from the items tagged for it and then drops any item whose data still says it is not part of the early access build, which hides 17 items that shipped long ago - Dinner Jacket among them. That flag is read nowhere else in the game, so those items work normally everywhere except in the overlay. The list is now completed from the game's own item registry and the filter is lifted while the menu is built. Items the game leaves out on purpose, such as weapons flagged as not usable by the player, stay out.
  • New setting ShowEveryItem (on by default) turns that back into the vanilla list.

1.1.0

  • The developer overlay now follows the game language.
    • Spawn menu item buttons and the selected entry label show the translated item name.
    • Level select buttons keep their identifier line and gain a second line with the level name the player sees in game.
    • Labels are rebuilt when the language is switched.
    • Labels whose own font cannot draw the translated name - the overlay ships a latin-only font, so Chinese, Japanese, Korean and Cyrillic names came out blank - are given the font the game uses for the current language. Labels that already cope are left alone.
  • The spawn menu search now finds an item by its name in any language the game has loaded, as well as by its internal asset name.
  • The search also finds Chinese names by their pinyin, typed the way a Chinese keyboard is typed: full syllables (shouqiang), initials (sq), the two mixed (shouq, sqiang), a syllable left half-typed (shouqia), and zh/ch/sh typed in full (shq). Characters read several ways match on any of them, so both xdq and sdq find 霰弹枪.
  • Fixed: Backspace closed the spawn menu, and one Backspace in the search box threw away everything typed instead of deleting one character. The game binds Backspace to the same UI cancel as Escape, and a text field reads a cancel as "stop editing and put back the text you started with". Backspace is now only ever text editing; closing a menu is Escape's job. The game's own handling is untouched, so Backspace still closes the level select list as before.

1.0.0

  • The developer free camera (F3) now continues from the direction the player was looking at.
  • After teleporting with T, leaving the free camera hands the camera direction back to the player. Without a teleport the player keeps the original view direction.
  • Escape closes the developer overlay, and closes the spawn menu first when it is open.