YenRex-ShaderPlayground icon

ShaderPlayground

Standalone shader suite with strict host-verified sync handshake, tabbed UI, advanced color controls, world/water tuning, presets, and built-in sync diagnostics.

By YenRex

CHANGELOG

Release v0.5.2

  • Added new preset: Pitch Black with tuned low-light settings from captured profile screenshots.
  • Added strict host-verified ShaderPlayground sync handshake (host->client):
    • explicit client state machine (Disconnected, AwaitHelloAck, AwaitSnapshot, Synced, Stale)
    • v2 message flow (Hello, HelloAck, StateRequest, StateSnapshot)
    • nonce, session-epoch, revision, and state-hash validation
    • duplicate/stale/gap snapshot handling with automatic resync requests
  • Removed dependence on first-sender authority pinning for shader sync acceptance.
  • Added explicit host identity verification using lobby owner SteamID + player-panel sender mapping.
  • Added host migration/session change detection and forced re-handshake behavior.
  • Added built-in in-game handshake diagnostics in Tools tab:
    • live sync state + reason
    • expected host sender/steam IDs
    • active epoch + accepted revision/hash
    • rolling sync event log + clear/status actions
  • Added sync logging config controls:
    • Debug.EnableBuiltInSyncLog
    • Debug.SyncLogToBepInEx
    • Debug.SyncLogIncludeKeepalive
  • Updated automated tests for new sync policy behavior and cadence handling.
  • Synced package metadata/version fields to 0.5.2.

Release v0.5.0

  • Major ShaderPlayground revamp focused on standalone workflow:
    • retired active SessionVisualLab bridge publish/consume path
    • disabled VisualLab ownership handoff behavior in runtime apply logic
  • Reworked F10 UI into tabbed pages:
    • Core
    • Effects
    • World
    • Quality
    • Presets
    • Tools
  • Added new effect channels:
    • Noir
    • Vapor
  • Added built-in quick presets:
    • Clean
    • Cinematic
    • Dreamscape
    • Noir
    • Neon Vapor
    • Stormfront
    • Retro TV
  • Expanded synced state payload with Noir/Vapor fields for host profile sync.
  • Improved menu ergonomics:
    • drag window from anywhere
    • reset button always visible in footer
  • Updated package metadata and docs for the standalone model.

Release v0.4.1

  • Changed otAPI packaging to soft dependency behavior:
    • Thunderstore metadata no longer hard-requires officer_balls-otAPI-1.0.2
    • otAPI controls remain available when otAPI is installed and integration is enabled.
  • Updated README dependency wording to match runtime behavior.
  • Documentation correction pass to match current runtime behavior:
    • Fisheye/Breathing/Scan Lines active effect set and ranges
    • save/load/reset workflow
    • retired Dreamy Hypnosis runtime behavior.
  • Added explicit desktop pet mode suspension (OverlayManager.ResolutionMode == Desk) in scene-suspend guards.
  • Added compatibility hardening so visual hooks avoid non-game/aux render-texture camera targets.
  • Synced package and assembly version metadata for publish.

Release v0.4.0

  • Added Dreamy Hypnosis pack (procedural/no-asset):
    • DreamWarp
    • Soft Chromatic Drift
    • Hypno Vignette Spiral
  • Added Hypnosis controls and presets in F10 UI:
    • Lullaby
    • Float
    • Deep Hypnosis
    • plus per-parameter sliders for intensity/speed/warp/spiral/color blend.
  • Added no-flicker safety clamps for hypnosis motion speed and modulation ranges.
  • Added otAPI controls for full Dreamy Hypnosis section.
  • Extended synced profile payload with hypnosis fields:
    • HypnosisEnabled
    • HypnosisPreset
    • HypnosisIntensity
    • HypnosisSpeed
    • HypnosisWarpAmount
    • HypnosisSpiralAmount
    • HypnosisColorBlend
  • Added client capability handshake bit for hypnosis support, and host-side compatibility fallback so unsupported clients are not forced hypnosis-only fields.
  • Updated fullscreen shader lookup order to try Hidden/ShaderPlayground/HypnosisComposite first, with existing safe fallbacks unchanged.
  • Version bump to 0.4.0.

Release v0.3.0

  • Added "Pro pass" world overhaul controls:
    • Enhanced sky + lighting tuning.
    • Cloud layering and density control.
    • Weather mood system (Auto, Clear, Golden, Overcast, Storm, Dream) with daily auto rotation.
    • Realistic water override controls (clarity, wave strength, reflection boost).
  • Added AA and image quality presets:
    • Off / FXAA / SMAA / TAA / CAS-style mode.
    • CAS-style sharpening control.
  • Added runtime material/shader scanner:
    • Scene-level shader inventory.
    • Water/cloud/sky candidate discovery with quick logging.
  • Expanded profile sync payload and host-authoritative replication for new world + AA controls.
  • Added new presets:
    • Realistic Water
    • Storm Front
  • Updated otAPI controls to include sky/weather/water/AA settings.
  • Version bump to 0.3.0.

Release v0.2.0

  • Added a complete runtime profile stack with four effects:
    • CRT/VHS
    • Dream Bloom
    • Comic/Sketch
    • Heatwave/Refraction
  • Added URP-safe fullscreen shader-pass path with pooled command buffer usage.
  • Added hard fail-safe behavior: shader path auto-disables on runtime exception.
  • Added automatic volume-only fallback mode when shader pass is unsupported.
  • Added host-authoritative sync protocol with:
    • revisioned state
    • sender identity validation
    • payload size bounds checks
    • authority pinning on clients
  • Added client opt-out toggle (AcceptHostSync) while keeping sync enabled by default.
  • Added SessionVisualLab bridge hook (TryPublishSessionVisualStateFromHost) and bridge-sync toggles for clients without SessionVisualLab.
  • Added outbound bridge publish from ShaderPlayground host state into RejoinStateRecovery / SmartCheckinPrompts / FishingTackleboxJournal bridge channels.
  • Added preset operations in UI:
    • apply built-in preset
    • save slot
    • load slot
    • reset defaults
  • Added notification throttling to prevent slider spam.
  • Added otAPI control registration for core toggles and effect parameters.

Release v0.1.0

  • Initial ShaderPlayground release scaffold.