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 Blackwith 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
- explicit client state machine (
- 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
Toolstab:- 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.EnableBuiltInSyncLogDebug.SyncLogToBepInExDebug.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:
NoirVapor
- Added built-in quick presets:
CleanCinematicDreamscapeNoirNeon VaporStormfrontRetro 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.
- Thunderstore metadata no longer hard-requires
- 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:
LullabyFloatDeep 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:
HypnosisEnabledHypnosisPresetHypnosisIntensityHypnosisSpeedHypnosisWarpAmountHypnosisSpiralAmountHypnosisColorBlend
- 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/HypnosisCompositefirst, 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.