mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-26 07:28:45 -07:00
feat: Rec Royale night mode (ClientMod) + admin switch to give baked RRO rooms a data blob
ClientMod (2023-03-21): opt-in Rec Royale night mode. RRO scenes never
enable the room mood engine (no data blob → SceneMoodSettings.isEnabled
stays false, CurrentMood null, the per-frame update returns at once), so
the mod replays the room-data loader's bring-up, registers a shipped
night MoodSetting (Night_Calm_Outdoor_Mood by default) as the scene's
default mood, supplies a skybox material on the Custom/SkyBox shader
(MoodConfig.SkyBoxMaterial is not loaded outside custom rooms), assigns
the scene's directional light as RenderSettings.sun, matches the key
light to the engine-driven sun, darkens via the mood's post-exposure and
sun/ambient intensities, forces post-processing on, keeps or disables
fog, hides the daytime cloud meshes, unlocks weapon flashlights, and
restores everything on hotkey-off / scene change. All knobs live in
dorknet-clientmod.json (RecRoyaleNight*), written by install-melon.ps1.
Server/admin: baked Rec Room Originals are seeded with an empty
DataBlobName, which the 2023 client reads as "no room data" — no Maker
Pen, no CV2 room-settings chips, no saves, and for Rec Royale no game at
all (its game-rule chip RecRoyaleSolos_GameRuleWrapperCircuit ships in
the blob, not the scene). New admin actions on the Sub-rooms tab:
POST rooms/{id}/subrooms/{sub}/blob/enable stamps the synthetic default
blob name (which CdnController already answers with the RRO-editable
blob) and blob/reset clears it back to scene-only. IsRRO is derived from
IsAGRoom, so the client keeps loading the baked map.
Docs: README section, docs/admin.md procedure, docs/recroom-2023-room-save.md,
new docs/recroom-2023-scene-moods.md with the ISIL offsets behind all of it.
Tests: RroRoomBlobTests.
This commit is contained in:
@@ -447,6 +447,35 @@ $cfg = [ordered]@{
|
||||
DesktopScreenShareRaisePhotonRate = $true
|
||||
DesktopScreenShareResolution = 0
|
||||
DesktopScreenShareQuality = 0
|
||||
# Rec Royale night mode (client-side visual). Applies one of the game's
|
||||
# shipped night MoodSetting assets (sky dome, sun, fog, colour grading)
|
||||
# to the Rec Royale map and unlocks weapon flashlights. Moods:
|
||||
# Night_Calm_Outdoor_Mood, Night_Spooky_Outdoor_Mood,
|
||||
# Night_Wild_Outdoor_Mood, Night_StuntRunner_Outdoor_Mood, OuterSpace_Mood.
|
||||
# ToggleKey is an optional UnityEngine.KeyCode name (e.g. 'N') to flip it
|
||||
# in-game; it also arms the feature when NightMode is $false.
|
||||
RecRoyaleNightMode = $false
|
||||
RecRoyaleNightMood = 'Night_Calm_Outdoor_Mood'
|
||||
RecRoyaleNightScenes = @('RecRoyale')
|
||||
RecRoyaleNightFlashlights = $true
|
||||
RecRoyaleNightFog = $false # $true = also apply the mood's fog
|
||||
# Darkening: EV offset added to the mood's post-exposure (dims baked
|
||||
# lightmaps too), and multipliers on the mood's sun / ambient intensity.
|
||||
RecRoyaleNightExposure = -3.5
|
||||
RecRoyaleNightSunScale = 0.15
|
||||
RecRoyaleNightAmbientScale = 0.2
|
||||
# Post-exposure needs the scene Volume on and camera post-processing
|
||||
# enabled; force both while night mode is active.
|
||||
RecRoyaleNightForcePostProcessing = $true
|
||||
# The engine only drives RenderSettings.sun; match every other
|
||||
# directional light's rotation/colour to it and scale its intensity.
|
||||
RecRoyaleNightMatchSunLights = $true
|
||||
# Fog off entirely while night is on, and renderers whose object or
|
||||
# material name contains any of these are hidden (Frontier's daytime
|
||||
# cloud meshes). Empty array = hide nothing.
|
||||
RecRoyaleNightDisableFog = $false
|
||||
RecRoyaleNightHideObjects = @('Cloud')
|
||||
RecRoyaleNightToggleKey = ''
|
||||
}
|
||||
Write-Step "Writing mod config -> $cfgPath"
|
||||
[System.IO.File]::WriteAllText($cfgPath, ($cfg | ConvertTo-Json -Depth 4))
|
||||
|
||||
Reference in New Issue
Block a user