• v1.1.0 efaab8bd32

    v1.1.0 Stable

    ckoch released this 2026-07-21 16:42:00 -04:00 | 7 commits to main since this release

    Burglin' Gnomes — UltraWide Fix

    Confirmed working at 5120×1440 (32:9) on Proton.

    • Engine: Unity 6 (6000.0.62f1), Mono backend, URP + Cinemachine
    • Steam AppID: 3844970
    • Executable: Gnomium.exe
    • Method: BepInEx plugin (no DRM, no memory patching needed)

    What it fixes — and what it deliberately doesn't

    The camera is already correct. It's orthographic with a constant orthographicSize of 5.0, so a wider display genuinely shows more world (visible width 17.8 → 35.6 going 16:9 → 32:9). That's textbook Hor+, and this fix does not touch it. fieldOfView reads 60 at every resolution simply because orthographic cameras don't use it — a red herring if you go looking.

    The problem is entirely UI, in two separate places needing two different levers:

    Canvas Problem Lever
    HUD (ScreenSpaceOverlay + ScaleWithScreenSize) Ships matchWidthOrHeight = 0.453 (width-biased). At 5120px that yields scaleFactor 1.948 — a ballooned HUD with overlapping bottom/centre text. match = 1 (scale by height) + raise referenceResolution.y, shrinking the HUD and giving the layout more logical room
    In-world labels (WorldSpace, e.g. NamePlate) At 32:9 you see twice as much world, so far more labels are on screen and can collide Canvas transform.localScale

    Gotcha: CanvasScaler.scaleFactor does nothing on a WorldSpace canvas — CanvasScaler.HandleWorldCanvas() overwrites it with dynamicPixelsPerUnit every frame. Scaling the transform is the only thing that works.

    Install (Linux / Proton)

    ./install.sh BurglinGnomes
    

    Then required — Steam → Properties → Launch Options:

    WINEDLLOVERRIDES="winhttp=n,b" %command%
    

    Without it Proton ignores BepInEx's winhttp.dll loader and the plugin never runs.

    Install (Windows)

    Extract the release zip into the game folder (next to Gnomium.exe). No launch option needed.

    Tuning

    Config is generated on first launch:

    <game>/BepInEx/config/com.programmingpug.burglingnomes.ultrawidefix.cfg
    

    Edits apply live (~2s) — no restart. BepInEx doesn't reload config on its own, so the plugin watches the file's mtime and calls Config.Reload() itself.

    Setting Default Notes
    HudScale 0.8 HUD size. Lower = smaller HUD and more layout room (cures overlapping text)
    WorldLabelScale 0.8 In-world nameplate size
    MatchWidthOrHeight 1.0 Leave at 1. Lower re-introduces width scaling and cramps the layout vertically
    DesignHeight 1080 The game's design height; don't change
    Verbose false Log every canvas adjustment

    HudScale → resulting HUD scale at 5120×1440 (stock is 1.333):

    HudScale 1.0 0.85 0.8 0.6
    scale 1.333 1.133 1.067 0.800

    Verifying it works

    <game>/BepInEx/LogOutput.log
    

    That's the plugin's log — not UnityExplorer's in-game Log window, which only shows Unity Debug.Log. You should see:

    Burglin' Gnomes UltraWide Fix 1.0.0 loaded.
    HUD 'Canvas' ref (1920.00, 1080.00) -> (1920.00, 1350.00) match=1 => scale=1.067
    World 'NamePlate' localScale (1.00, 1.00, 1.00) -> (0.80, 0.80, 0.80)
    

    If a line is absent, that adjustment didn't happen.

    Uninstall

    ./install.sh BurglinGnomes uninstall
    

    Removes the loader and plugin. BepInEx/ is left in place in case other mods use it.

    Building the plugin from source

    Prebuilt BurglinGnomes.UltraWideFix.dll ships here, so this is only needed if you change it:

    cd plugin
    dotnet build -c Release -p:GameDir="/path/to/Burglin' Gnomes"
    

    Requires the .NET SDK; it references the game's own assemblies and redistributes none of them.

    Downloads