=======================================================================================
 StixUngodlyLUSGraphics v1.1.0
 Ungodly Madly Vastly Enhanced Graphics + Lighting Quality + Post-FX plugin
 for "Lovecraft's Untold Stories" (lus.exe) + all DLC
 BepInEx 5 (x86) plugin  |  Author: StixsworldHD (StixsmasterHD4k)
=======================================================================================

WHAT THIS IS
------------
The complete graphics control panel this game never shipped, built directly against
the game's own rendering systems (verified line-by-line against a full decompilation
of the shipped build). Ten sections, 61 settings, an F2 solid-background in-game
panel with one-click presets, and a heavily documented config file where every
single setting lists its min/max range and exactly what it does to your gameplay.

 1) DISPLAY & FRAMERATE
    - Breaks the hardcoded 60 FPS lock the game applies to every PC at startup:
      cap anywhere from uncapped to 1000 FPS for high-refresh monitors (game logic
      is delta-timed - nothing plays faster, it only LOOKS smoother).
    - VSync override (Off / On / Half-refresh) on top of the game's own toggle,
      driver frame-queue control for input latency tuning, run-in-background, and
      a switch for the FPS counter that ships hidden inside every copy.

 2) CAMERA & VIEW
    - Pixel-perfect zoom ladder offset (-4..+4): zoom out for tactical awareness or
      in for claustrophobia, with sprites staying razor crisp.
    - Smooth FOV multiplier (0.60x-1.60x) for continuous framing on top of the
      ladder. 1.0 leaves the vanilla pixel-perfect math byte-identical.
    - Pixel-Perfect Camera Snap: quantizes the camera to the 32px/unit art grid
      after follow/shake/zoom run, killing diagonal-walk sprite shimmer.
    - Unlocks the developers' own live Numpad+/-/Enter zoom keys for normal play.
    - Camera follow speed and zoom transition speed multipliers.
    - Screen Shake 0-300%: the motion-sickness accessibility slider the game
      never had (0 = fully off), or triple it if you like your explosions felt.

 3) SF LIGHTING QUALITY  (the game's signature 2D soft-shadow renderer)
    - Light Map Scale and Shadow Map Scale divisors exposed (vanilla PC: 8 / 4).
      Drop them to 2-4 / 1.5-2 and torch glows + cast shadows go from soft blobs
      to crisply defined light - the single biggest visual upgrade available.
      Raise them to 16-32 and weak GPUs gain serious FPS (cost scales with the
      square of these numbers).
    - Master toggle for 2D soft shadows, light penetration into casters, shadow
      seam compensation, linear vs soft light blending.
    - Global Light Exposure: one dial that multiplies EVERY 2D light at once.
    - HDR Lighting force-on: switches the light map to a high-precision format
      and visibly reduces the banding rings around torches and glow effects.

 4) AMBIENT, MOOD & FOG
    - Ambient Brightness multiplier + Black Lift, applied live ON TOP of every
      room's hand-authored ambient color (the plugin re-applies on each room
      change through the game's own path, so per-room mood authorship survives).
    - Color Temperature and Green-Magenta Tint: full white-balance of the world.
    - Engine Ambient multiplier stacking on the vanilla Brightness slider.
    - THE DORMANT FOG LAYER: the game ships a complete 2D volumetric-style fog
      system (color, strength, LIGHT SCATTER glow, shadow-carved scatter) with
      its shader in every copy - the devs just never turned it on. This plugin
      does. Fog Strength 0.10-0.25 + Scatter 0.8 + Shadow Mix 0.7 makes torches
      bloom halos through drifting murk with shadow shafts cut through them.

 5) DYNAMIC LIGHTS (HIDDEN DEV FEATURE)
    - Unlocks the finished-but-disabled normal-map lighting system (the
      'p_normalMap' switch buried in the dev console): real engine point lights
      shade surfaces with genuine 3D depth as light moves past.
    - Intensity and range multipliers for those lights once unlocked.
    - PLAYER LIGHT Brightness and Radius multipliers: literally see further into
      the dark. Hooks the same pristine values the game's own sight-items scale,
      so item bonuses still stack on top exactly like vanilla.

 6) COLOR GRADING & POST FX  (shader-independent - can never pink-screen)
    - Brightness/Gamma: positive values use a soft screen-blend lift that
      brightens shadows without clipping whites; negative crushes to black.
    - Permanent cinematic Vignette (+corner blur, +blur spread) driven through
      the game's own high-quality vignette shader that vanilla only flashes
      during madness. The madness effect keeps 100% ownership of its pulse.
    - Baseline Chromatic Aberration for a constant anamorphic-lens fringe;
      Madness Aberration % scales (or fully disables, for accessibility) the
      sanity-break pulse itself.
    - Animated Film Grain (size 1-4 px), CRT Scanlines (thickness 1-4 px), and
      Cinematic letterbox Bars - all generated at runtime from tiny procedural
      textures + Unity's always-included blend shader. HUD draws above the bars.
    - When every post setting sits at neutral the whole pass self-removes from
      the camera: true zero-cost vanilla render path.

 7) TEXTURE & FILTERING
    - Sprite Filtering force: Point (razor retro pixels), Bilinear or Trilinear -
      applied live to every loaded texture with per-texture originals remembered
      (fonts excluded so text stays clean), fully reversible.
    - Texture Quality (Full/Half/Quarter/Eighth) for VRAM-starved machines,
      Anisotropic force, and MSAA 0/2/4/8 for rotated-sprite edges.

 8) EFFECTS & PARTICLES
    - Particle Density 10-300%: every blood spray, muzzle flash and gib count,
      scaled per-system with originals cached (100% restores vanilla exactly).
    - Particle Hard Cap: an emergency per-system ceiling so worst-case effect
      pileups can never tank your frame rate, even at 300%.
    - Soft Particles force, Particle Raycast Budget, Pixel Light Count.

INSTALLATION
------------
The game executable (lus.exe) is 32-bit, so you need the x86 build of BepInEx 5:

 1. Download "BepInEx_win_x86_5.4.23.3.zip" (or any 5.4.x x86 build) from
    https://github.com/BepInEx/BepInEx/releases
 2. Extract it directly into your game folder - the folder that contains lus.exe
    (e.g. ...\Steam\steamapps\common\Lovecraft's Untold Stories\).
    You should end up with a "BepInEx" folder and "winhttp.dll" next to lus.exe.
 3. Run the game once and quit - BepInEx creates its folder structure.
 4. From THIS zip, copy the "BepInEx" folder into the game folder (merge it).
    That places:
      BepInEx\plugins\StixUngodlyLUSGraphics\StixUngodlyLUSGraphics.dll
 5. Play. You'll see "StixUngodlyLUSGraphics v1.1.0 by StixsworldHD
    (StixsmasterHD4k) loaded. 15 Harmony patches active." in
    BepInEx\LogOutput.log.

IN-GAME PANEL
-------------
 * THE MOUSE IS NEVER HIDDEN WHILE THE PANEL IS OPEN. The game permanently hides
   the hardware cursor (it draws its own software pointer) and hard-LOCKS the
   mouse to screen center during keyboard gameplay - v1.1.0 snapshots that state
   the instant the panel opens, forces a real, free, visible pointer every frame
   it stays open (so a scene load, device hot-plug or game UI event can never
   steal it back mid-tuning), and on close hands the cursor back through the
   game's OWN input state machine so the correct lock/visibility for your
   current device and screen is restored exactly.
 * Press F2 (rebindable via "Toggle Key" in the cfg or right on the General tab -
   click the key button, press any key, Esc cancels) to open the panel.
 * Solid opaque window; tabs: General / Display / Camera / SF Lighting /
   Ambient & Fog / Dyn Lights / Post FX / Particles / Presets / Status. Every
   slider shows its value, allowed range and a plain-English gameplay explanation.
 * EVERYTHING applies instantly - lighting sharpness, fog, grading, particles,
   FPS cap, all of it, live, mid-run.
 * "Pause Game While GUI Open" (default ON) freezes time while you tune; turn it
   OFF to watch fog and grain in motion while you walk.
 * "Save Config" writes to disk (also auto-saved when you close the panel).
 * PRESETS tab - one-click looks you can then fine-tune:
     Pure Vanilla        - everything back to shipped defaults.
     Cinematic Horror    - cold scattering fog, crisp lights, vignette, grain,
                           subtle letterbox. The launch-trailer look.
     Crisp Retro CRT     - point-filtered pixels, grid-snapped camera, scanlines.
     Deep Dark Delve     - true darkness, bigger lantern, heavier shadows.
     Maximum Fidelity    - every quality dial to the wall + 240 FPS cap.
     Potato Rescue       - chunky maps, half textures, capped particles: FPS.
     Silky Competitive   - uncapped, VSync off, 1-frame queue, 40% shake, no film.
 * STATUS tab: live FPS/frame-time, resolution+refresh, current light/shadow map
   pixel sizes, exposure, fog state, room ambient base -> applied colors, HDR
   state, vignette ownership (vanilla idle / plugin baseline / MADNESS PULSE),
   normal-map unlock state, tracked particle systems / lights / filtered
   textures, and the Harmony patch count.

CONFIG FILE
-----------
 BepInEx\config\StixUngodlyLUSGraphics.cfg - 61 settings in 10 sections, every one
 with "Min / Max" bounds and a GAMEPLAY: line describing the real in-game effect.
 The shipped file contains all defaults (pure vanilla values: everything x1.0 /
 100%, fog off, post effects off, hidden features off, FPS Cap 60 = the vanilla
 lock, ready for you to break).

SUGGESTED STARTING RECIPES
--------------------------
 * "Just make it smoother":  FPS Cap 144 (or your panel's Hz), VSync Override 1,
   Max Queued Frames 1. Done - the game you had, minus the 60 FPS ceiling.
 * "Sharper everything":     Light Map Scale 4, Shadow Map Scale 2, HDR 1.
 * "Innsmouth at night":     Fog Strength 0.20, Fog RGB 0.50/0.62/0.75, Scatter
   0.9, Shadow Mix 0.7, Ambient x0.8, Temperature -20, Vignette 2.0, Grain 8.
 * "My eyes, the shaking":   Screen Shake 0, Madness Aberration 0. (Both fully
   off = the accessibility pass the game never shipped.)
 * "I can't see anything":   Ambient Black Lift 0.08, Player Light Radius 1.5.

PERFORMANCE NOTES
-----------------
 * Idle cost is effectively zero: no per-frame allocations, no polling. Registries
   refresh only on the game's own room-change call; a 1 Hz tick re-asserts a
   handful of engine values by comparison.
 * The post-FX pass detaches itself from the camera whenever brightness / grain /
   scanlines / bars are all neutral, restoring the untouched vanilla render path.
 * The heavy knobs are Light/Shadow Map Scale pushed toward 1 (cost rises with
   the square), MSAA 8, and Particle Density 300 in crowded fights - the Status
   tab's frame-time readout is right there while you experiment. Potato levers:
   map scales up, Texture Quality down, Particle Density down + Hard Cap.

COMPATIBILITY & COVERAGE
------------------------
 * BUILT AS THE COMPANION TO StixUngodlyLUSDirectors v1.0.0 - 100% compatible by
   construction: the Directors panel stays on F1, this one lives on F2; the two
   plugins share ZERO Harmony patch targets (verified: Directors patches the
   enemy/generation/damage pipeline, this patches only rendering, camera, and
   graphics-settings methods); Directors' pack-size hordes and this plugin's
   Particle Density / attack readability all coexist untouched. Run both.
 * Every hook was resolved against the real shipped assemblies by an automated
   72-point verification (all 15 patch targets + every reflected field) - not
   guessed from documentation.
 * All shader work uses only shaders guaranteed present in every copy: the
   SFSoftShadows set (the game's own lighting/fog), the vignette/aberration set
   (on the game camera), and Unity's always-included internal blend shader.
   Nothing here can ever pink-screen from a stripped shader.
 * Works with every DLC automatically: hooks target the universal camera,
   renderer, zone-manager and quality systems every zone flows through.
 * Saves are untouched: all changes are runtime-only. Every touched value is
   snapshotted first; Master Enable OFF (or removing the DLL) restores 100%
   vanilla instantly - including textures, particles, lights and the player
   lantern - and the vanilla options menu keeps full authority underneath.
 * Coexistence detail: both plugins can pause the game while their panel is open.
   If you somehow close both panels in the same frame the winner sets the clock;
   just reopen/close either panel and time resumes normally.

CHANGELOG
---------
 v1.1.0
  * The hardware mouse cursor is now forced VISIBLE and UNLOCKED for the entire
    time the F2 panel is open (previously the game's always-hidden cursor +
    gameplay pointer-lock could leave you with no usable pointer over the
    panel). State is snapshotted on open, enforced every frame in both Update
    and OnGUI so nothing the game does can re-hide or re-lock it mid-session,
    and on close control is handed back through GlobalInputManager's own state
    machine (with a snapshot fallback) - keyboard, gamepad and menu contexts
    all restore their exact vanilla cursor behaviour.
  * No other behaviour, setting, default or patch target changed. Config files
    from v1.0.0 are fully compatible as-is.
 v1.0.0
  * Initial release: 61 settings across 10 sections, F2 panel, 7 presets,
    15 Harmony patches, full snapshot/restore vanilla safety.

CREDITS
-------
 Design, reverse engineering, code, docs: StixsworldHD (StixsmasterHD4k)
 Game: "Lovecraft's Untold Stories" by LLC Blini Games. This mod ships no game
 assets and requires the game you already own.
=======================================================================================
