193,620 Commits over 4,079 Days - 1.98cph!
Updated a few help prompts with new videos
Tweaked NPC controller with improved idle to talk anim blending. Added angry state for implementation
Added button to reset tutorial in options menu
Change default flush interval from 1 min -> 5 min
Store session start timestamp (when demo recording started) in header
Use connection Guid instead of dictionary in player lookup (to avoid players reconnecting causing issues)
- change DemoPlayerInfo.SteamId -> Guid (ulong technically)
Change path to `server-demos/{serverid}/sessions/{sessionid}/{chunkid}.sdem` (to make it easier to navigate in azure)
Fix compressedSize in demo header being incorrect (FileStream.Length > FileStream.Position)
Switch from `demo_server_id` -> `server_id` convar
- save across restarts
- set server_id on startup if not set
Remove `upload_token` convar, rely on putting SAS token in upload endpoint for now (can polish later once we figure out how we want to refresh tokens)
Fix hardcoded "test" container and use the container from the SAS url
Added loading spinner to show that a 3D skin view is loading. Added a callback for skin set failure to hide the loading circle.
Fixed rug skins not showing up
Fixed more issues with skins not loading or loading incorrectly
Updated tutorial welcome prompt with video asset + slight formatting and layout changes
Merge from main -> full_server_demos
Refactor into multiple .cs files as the code has grown
IO entities snapping first pass
When deploying any electrical/industrial item, press left shift to align and snap to nearby entities
Merge from tutorial_island
Added debug.cleartutorialforplayer server convar
If a player gets stuck in the tutorial for any reason, this will delete the island and reset the player back to it's regular state on the mainland (will also kill the player if they are alive)
Cleaned up kill warnings when cleaning up the tutorial
Updated convars; fixed NaNs and NREs
Fix most skin viewing being broken
Updated Tool Cupboard mission wording
Fixed viewmodel lingering for several seconds when cinematic starts
Clear rendertexture assignment when SkinViewer is destroyed
Typo fix
Added ability to check existing inventory when a craft mission objective starts, will mark that step as completed if the player already has a target item in inventory
Applied new behaviour to craft campfire objective
Remove "Don't allow tutorial allowance to go down" log
Merge from /main/media_projects/deckard
Cinematic scene file tweak
Temporary Panel related fixes (OnRemove, SetParent)
Temporary Panel related fixes (OnRemove, SetParent)
Try using v4 actions for everything
Downgrade Linux/Mac to v3
Check for null in Panel.SetParent
Rollback download-artifact to v3 as well
Rollback download-artifact to v3 as well
Downgrade Linux/Mac to v3
Check for null in Panel.SetParent
Try using v4 actions for everything
▉▄▇▇▄ ▋▇_▍▊▋▍▋█▊▌▌▉▍▄▆
▇▄█▅▄▌▄ ▇▍▌▉█▉▌▍▆ ▍▊▊ ▋█▉▍█▋▇ ▇▇▉ ▊▇▌'▋ ▌▍▉▊ ▆▇ ▅▊▍ ▄▋▆▉▆▉▊▉▌
▌▆▇ ▌▋▄▍▇▋▉_▋▋▇▉ ▋▊▋▌▇▊▊▇█▄ █▉▅▆▆▄▋
▊▄▋█▊█▍▅ ▉▊▍ ▊▊▍▅ ▊▅▉▌▉▊ ▆▌▆▉▋▇▇ ▆▌▊▅▊▋ ▄▋▊▅ ▄▆ ▋▋▌▄▋▋▌▄
▇▍▄ ▋▇█▄ █▆█▍▌▅▉ ▍▊▍▋ ▍▍▍█▍▄█ ▊▌▍▇▌ █▌▍▆
▄▆▌▍▌ ▅▊▊▉_▆▆▆▄▆▋▆▄_▄▋_▌▅▌▍▍ ▇▊▊ ▄▄▇▍▄▌▌█ ▊▌▄▍▌▆ ▆▍▋▌▅▉▉▆▅
▋█▅ ▅▅▆▇ (▌▉▅, █▉▉ ▅▆▅█ ▆▋▄█▍▄▌▉) ▌▍▅▅ ▆▅ ▅▌ ▍▉-█▍▋▋▆ ▇▍▉ ▋▇▋▋ ▋▉ ▊▋▇▌ ▅▊▌▇▆▉▆▆. ▅▋▇▍▇ ▊▊▉▋▅▊█▉▋▉ █▇▉ ▌▅▅▊██▋ ▆▋▆▋ ▄▋▆▉▍▅ ▆▅ ▋▍▄ ▄▅▋█▄▌▇▇▅.
▇▄▊▋▄▅/▉▆▌▆ ▅▍▇ ▌▋██▍▉ ▊▇▆▉ ▊▋ ▄▍▍▍ █▍▍▇ ▅▇▍▄/██▌▊, ▍▆▉ ▌▄▋▇'▄ ▄▊▍▌▋ ▌▅▉▄. ▍▍▅ ▉▆ █▆▅▊. ▅▉ ▋█▍█ .▊▄▇ ▄▍▋▋▇ ▊▍▍ ▌▍▅ ▊▆ ▆█▄▉▉▋▄▊▌▆ ▊█▊▌ ▇▊▊▉▅▋█ ▄▊▆▅▊▉ ▊▇▊▇▄▄▌.
▆▆▇▇▍ "▍▍▋▅▊▄ ▆▋▋▉▇▅█ ▄▌▌▅▋'▋ ▇▌▅▇▇" ▅▍ ▊▇▋▉▄▆▆▊▅ ▋
▋▍▍ -▅▍▍▋ ▄▄ █▍▄▅▄▅█▊▍ ▄▋▉ ▇▄▋█▌▍, ▅▉ ▅▍▌ ▌▅▄
▆▌▉█▍ ▇▇▇▋ ▄▊▆▊█▉▊ ▆▉█ ▅▇▍▆▋▄▍ ▉▉ ▌▉▅▅▍▄, ▍▊▄▉▅▇▆▄▇ ▊▋ ▊▇▋▍█▊▆ █▄▊▇▉▌█▍▌ ▌█▅▌█▇▊ ▉▌ ▉▋█▄ ▌▇ ▉▊▍▇, ▊▌▉█ ▌▌ ▋▌█ ▊▅▅▄▅▉█ ▊▅▌▇▇▋
▆▅▍▍ ▌▇▆▇▋ ▍▍ ▄▆▍ -▆▄▆▄ ▊█▅ ▍▋▇▋▆█, ▇▊█ ▋▉▄▍ ▉██ ▍▄█▊▅▌▆ ▆▍▌ ▉▆▊▍
▋▊▍▉▇ █▉▆▉▍▌▋ ▆▅▇▄ ▇█▌▉▆▍▆ ▋▄ ▄█▅▋▇▌ ▅▍▉▄▍▅█ ▆▄▍▋ ▉█▌▇▊▅▍▌▉
!▅▇▅▊▌ █▅█▇▍██ ▅▄ ▋▋▋▄ █▍▍▅ ▌▉ ▉█▋▍▊█▆/
! ▆▌▌▋▌▋▌ ▆█▍▍▍▄▉▇▇ █▅▊▌▄█▍▊ ▄▉▉▅ ▇▊▆▋▌.▊▅▉▇▇▌▍▌
▌▍▍▍▆▋▄ ▅▅▇▌▄ ▉▆ ▋▍▅▋ ▆▆ ▋▌ ▌▊▅▄ ▇▇▋ ▍▅▆▊▍▅▉ ▍▊▋▋█▍
▆▆█▋▇ ██▊▆▊▊▋▅_▄▄▇▌▅
█▋█▅▆ ▉▇▉▄.▅▍▉▍▉▋▋▊▉▅█▊▌▌▅▋▉▊▍▌
▅█▊▌▉ ▆ ▋▉▄▄▌▇▋█▆ (▊ ▋▊▄▍▇/▇█▅ ▇▉▉), ▌▆▇▊▍█▋ ▌▊▇▊, ▇▆▄▆▉ (▉▆▄▍▇), ▉█▄▌▉ (▍▉▋▄█)
█▄▋▌▆▋ ▇▍▌▄▊▉.▇▄▇▋▍▄▌▍▌▆▉▆▇▌▇ ▌█▉▅ ▄▊▌▅ ▆▉▅▍▌
▅▇ ▆▌▊▍ ▄▄█ ▌▄ █▍▄▊▅
▉▉▉██ ▉█▇:▍▊▍█▌▄▆▋▅▄▌█▄▊▉▇
▋▆▇▊▉ ▊▄▊▆▍▋ ▄▊▉▇▊▌ ▌▍▄ ▄▉ ▅ ▇▉▆▇ (▌▆▅ ▅▌)
▄▆▋▅▅ ▌▌▆▉▆▆▌ ▇▅▅▊ ▊▅▉▆ ▊█▆▅ ▅▄▄▆▇▆▇▅ ▌▌▄█▋▆▉▄ ▄▋ ▉▌ ▇▆▄█▅▋▅▄ ▉▍▅▉
▍▉▍▅ ▌▉▍▇▍ ▄ ▄█▅▊▌ █▊▉▅▍▍ █▋▌▍▉ ▅▉▄▇▉▍▋ ██ ▆▆█▅█▌▅ ▍▆ ▆▉▇█ ▍▋█▍▋.
▆▊▉▋▅ "▅▆█▇▆▉█▅" ▋▊▆▉▅ ▆█ "▋▄▋▉▉▊_▇▆▊" ▊▆▍▊ ▅▉▌▌█
▅▆▌ ▄▉▍▇▋▅▌ ▋▆▇▉ ▅▉/▄▅▌▄ ▆█▋ ▍▌▊▍ ▊▌▍
▆▋ ▇▅▄ ▍▉▋ ▉▌ ▆▋▉▉▉▇ ▆▋ ▋▄▅ ▇▄▌▅▋▉▍▆ ▌▍▊▌▅▊_▍▍▆▉_▆▄ ▇▉▄▌▉▌▆██
!█▆▍▌▋ ▌▋▉_▍▇█▊/▉▋▍_▉▌▇▌▉█▄▅█▍, ▌▌▍▄▊▌ ▆█▋_█▊▊▄█▌▆▇▇▅
!▌█▌ ▋▅▆▊▉▇▌▍ ▇▄▉▌ ▍▍▋▉_▆█▅▅ ▋▇▆▍▌▍▄ ▇▄▋▄▊█▄▄ ▌▋ ▍▇▍▊▌▄▉▅
!▅▉▌█▌▄▋▊ ▇▄█▌▇▌▉▇ █▌▊▄ ▌█▍▍▍▋▆▅▆█▌▇▋▋▊█▅▌▆▊
!▆▍▅▍▊▍█▅ ▋▊▅▍▇█▇ ▋▉▍▉ ▅▌▉█▌▆▄:▅▉▅▅▅▊▊▄▋▌▆▍▆▄▇▅
!▇▊▇ ▌▍▆█ ▍▌▆▇▄▌▋▉ ▆▊▉▋ ▌▍▊▉▉▇ ▇▋██▊▊▉▋ ▊▆▌▉▇▅▍▄▆ ▇▌▇▉▆▄▇:▄▇▊▆█▆▋▅▋▉▉█▄▉▆
!▉▌▇ ▅▉▋▊▇█▋▋ ▊▇▊▆ ▋▅▊ ▅▇▇▍▆▆██ ▋▋▌▉█▄▋ ▄▆▉▆▄▉
!▊█▍ ▆█▋▉██▉▋ █▌▍▅ ▍▉▉_▄▋▄▍▌▉▌ (▇▋ ▍▆▇▊▉▄▄▉ ▍▇)
!▋▋▉ ▌▄▆▆▄▄▊ ▅▉▅▋ ▍▆▇▉▊▉█.▇▅▄▉▆▅▌▆█▋▇▆▉▌▌
!█▌▄▊▊ █▋▊▉█▄▊ ▋▆▊▉ ▌▇▌▇▉▉▇:▋▅▇▌▊▌▋▆▉
! ▌▄▋▉▉ ▍▍ ▄▉██▅▆█ ▅▍▋▅ ▉▌▋█▆▌▉▆:▉▇▉▅▋▌▅█▋▊█
!▅▄▍ █▌▋▄▅▅▉▋ ▅▍▍▋ ▆█▌▇▌▌▄:▇█▉▉█▋▊▍▋▋██▊▅▊▇
!▌▋▅ ▋▇▊▋▅▊▅▄ ▊▋▉▇ ▌▉▄▋█▍▇▆ ▇▉▆▋▍▋█ ▇▉▉▄▍▊▊ ▅▊▊▊█▍▆
!▊▄▅▆▇ ▊▌▉▇▅█▉ █▌▆▄ ▌▌_█▅▌█:▄▋▉▊▆█▇▄
!▌██ ▍▋█▅▉▊▅▊ ▋▆█▉ █▅▌▌▊▋ ▌▄▋█▅▄▇▋▊
▇▇▅▆ ▇▄▅█▄ ▋▍▇▆ ▆▉▄▆▉▆▅██▊▋▇▍█▊ ▉▊█ ▋▌▍▋ ▆▊ ▍▄▉▆▋▋ ▄▊ █▊ ▋ ▆▇▌ █▅▉▆▍▋▇
▍▇▉▉▍█ ▆▆▉_▇▉▇█▇█▋▌_▋▊▉▅▌▇▊.▇▆▋
▄▉▆▊▋█ ▇▍▊▍
▊▋▆▌ ▇▍▇▆▍▍▉▍█▊ █▇▆▅▅▄▌▅ ▊▋ ▆▋▆▊▋▍▄▇▌▋ ▆▍█▋▌▍▄█
!█▆▅▅▅▉▆ █▅▅▌ ▊▄▉▄▉▊ ▊▊▊█▄ ▌▆▅ ▊██▌▉▇▅▄
█▊█▉ ▄▉▋ ▇▇▋▌█▅▊▊▍ ▍▅▅▆▇ ▄██▍▄█▄▌▉▊▌ ▊▊▊▌▊▍▉ ▄▍▇▄ ▆▍▌▍▄▌▉▍
!█▅▍▊▇ ▅▍▊▄▅▊▉▌ ▄▄▋█ ▍▋▆▍▉▄▇▍▍ ▆█▅ ▄█▆▆▉▆▊▋▍▇▋▊▇
!█▍▇▌ ▆▅▍ ▄█▄▄▇▄ ▌▄▊ ▊█▍▉ ▉▄▊▇▆▆▌ █▄▉▊▄▉▊▄▅
!▄▅▊▄▉ ▄▉ █▆▍▉█▉▅ ▇▌▋▅ ▌█▆▍▉▄▇█▄▍▇▍▋▇▋▍▊█▋▍
!▍██▆▅ ▆▊█▌▌▅▌▇ ▇▋▊▍ ▄▉▊▊▄▍:▉▄▆▅▅▋▊▉▌▄/▋▆▇▍▍▋▇
!▇▍▊▅▋ ▉▊█▉▄▍▉▍ ▅▇▌█ ▍▅ ▍▄█▊▅▇▇▋▉▅ █▊▍▇▆▇▊█▌
!▋▉▊▋▉ ▊▊▄▍▍█ ▇▌▄▋▌▆▌ ▆█▋█▋ ▄▇▅█ ▄▅▊ ▌▊█▊ ▅▊▇▇▍▄
!▉▇█▋▅▋▊▊ ▅▉▍██▍▄▇▋ ▉██▆▊▌▆ ▅▌▌▅ ▌▅█▍▍▅▍█▍▄:▍▉▉▌▌▊▊▇▅▉
▊▌▌▋ ▍█▌▍▉▆▉ ▆▍ █▋▄ ▄▄▉▆▄▊█▋ ▊▌▌▇▋ ▆▉▌▊▇▉▄▇ ▋▄█▇▍▍▊, █▊▉ ▅▄▋▉ ▊▌▍█▄ ▇▅▄▄▉ █▅▆▊▋▉▊▍▋▋▇ ▍▄▍▄▋▋▆ ▍▇
!▋▇▍ ▋▍▍▋▌█▊▆ ▊▄▌▌ ▌▊▄▋▄▍▅▇▄ ▆▊▌▄█▇▊▌ ▅▋▌▅▅▉▊
!▋▌▌ █▅▉▊▍▅▄▆ ▄▋▉▍ ▇▊ ▄▍█▇▅▋█ ▅▍▇▉▇▄▋▊▄
!▇▍▆ ▄▋▆▉▉▊▊▍▅ ▆▍▇▅▇▆▄▆ ▄▇▊▄ █_▇▅▅▅▊▅▇
!▉▄▇▉▊ ▆▌▌▇▍▊▉▌ ▆▌▄▄ ▇▍▌▊▇/▍▄▇▅▊▇▄▇█▄█▉▉▆▉▋█▄▇▆
!▍▅▋▅▆ ▆▉▄▅▋▋▆▋▆▄ ▇▆▉▊▉▋▍█▊▄
▆▊▉ █▆▌▍▉/*.▇█▌ ▇▅ ▌█▌ ▄▆▋▇▆▌▇▆▆
!█▍█▋▉ ▍▊▄▄▄▉▍▉▌▌ ▋▋▇▋▆▄▄▋▅ ▊▊▋▋▇▌ ▇▆▇▆▋ ▍█▋▌▉▅▆▅▌▍
▍██▌▉ ██▊▍▅█ ▆▆▄ ▌▅▍▋▆▊▆ ▉▆▄ ▌▇▍▉▆▅▋▍▌▆ ▋▅ ▇▌▌▇ ▍▊▇▄▇
!▋▅▊'▍ ▇▅▉▌▅ ▊▇▅▇▍ ▅█ ▌▇▌▇ █▇▄ ▇▊▌ ▄▍▌▋▉▅▆
▋▅▅'▇ ▊▌▍▆▄▋ ▊█▍▍▍▊▌ ▄▆▉▊▌█▅▇▆ █▅▊▍█▄▅ ▍▊ ▌▄▅▆▉
▌▅▇▉▇▌ ▊▌▅▆▄▊▆ ▊▉▌▋ ▍▍▇▇▌▊ ▅▆▉▆ ▄▇▄▉▊▌▋▊
!▉▉▌▋█ ▊▊▍▇▍▌▋▉ █▋▅▄ ▆▌_▅▄█▆▇▌▊
!▊█▅'▋ ▇▌▉▍▍▇ ▌▅█_▋▋▌/▇▅█▌▊▊▉▌██ ▍▉▊▅▆▉▍▌
▍▅▌▊▉ ▄▆▊██▆ ▌▋▅█ ▅▄▄▌▄▍▄ ▌▆ ▆▍▌▄ ▇ ▌▄▇
!▆▊▋▊▄ ▋▊ █▊▄▅▅▉▉▊▋ ▄█▄▆▊▍▌▌
▆▊█▊▅▅▇ ▉█▍▊ ▄▇▌▅▇█ █▇▍▌ ▋▊▊▆▅ ▍▌▋▌▊▇
!▌▌▇▇▇ ▄▆█▊▊▊▊▍ ▊█▆▇ ▋▋▆▉▌▄ █▄▋▇▄▆█▌
▊▆▇▆ █▉▋▄ █▅▍▆▆ ▅▍▊▊▊▋▉▄▄
!█▋▍▌▌ ▇▉ ▊▆▆▆▋▄▇ ▊█▍▋ ▉▋▇▅▉▊▋▇▄▅▋▇█▍▋▉▌▉
▆▊▊ ▇▉▋▌▋▄ █▄ ▊▄▆▋ ▄▍▇ ▊▆▅▇ ▄▉ ▇█▍, ▍▋▆ ▄██▄ ▅▇▄▅▆▊ ▇▌▉ ▇▆
!█▄▉▉█ ▍█▌▊█▌▉ ▅▄▄▌ ▍▄▋.█▊▅▄▄█▍▌▅▄▍▇▋▋▆
!▍▇█▇▆ ▆▊▉▌▉▆▋▍▅ ▅▌▇▋▌▌▊ ▆▄█▅ ▉_▅▆▌▊▄▅▋▌▅▋▇▉▌▉::▌▄▇█▋▊▍
!▋▄▆▉▉▍▌ ▉▊▇▍▆▊▅▇▋▅ █▅▄▄▍▇█ ▋▍▇▄▊▍▉▋ █▉█▆ ▉▅▉ ▆▌▇███▇▅
!▇█▆▅▍▊▊ ▌▋▊▋▋▊▊▌▌▋ ▋▅▋▄▊ ▄▅▄▍ ▍▅ ▋▉ ▍▍█▌▍▉█▋ (▉▅▋ ▋▊▉▋ ▇▍▉▄█▊▊)
!▆▉▄ ▊▇▅▅▄▊▉▅▅▋▌▇▌▋ ▆█ ▍▆▄▍ ▇▄▉▇▊▄
!▇▄▆▌▇ ▊▌▋▆▅▇▊ ▉█▆▊ ▉▌▍▍▅▌▌▄ ▋█▆▉▊ ▊▌▋█▄▇ █▌▇ █▅▉▄_█▄▅▇▊
!▉▋▋█▋ ▇_▋▌▉▆▆▅▌█▆▄▉▇▉▅▉ ▅▋▌▅▇▌▇▄ ▇▋ ▌▇▋▋▌ ▍▅▅▇▋▅▋
▆▊▅▉ ▋▇ ▍▍▋▉ ▆▅▇▄▍▆▇ ▉▇▋▅█ ▇ ▋▅▊ ▇▅ ▇▅▆▇█▇ ▉▅ ▄▌▄▄▅
!█▄▇▅▊ ▇▌▄▌▋▋█▇ ▊▋▆█ █▄▍▌▉▉▇ ▌▊▄
!▉▋▆▉█ ▇▊▊█▄▉█▇ ▉▄▉█ █▍▄▋▋▍▉▇▄▄ ▆▍█▍▇▍▇▇
!▇▉▅▆▄▊▍▆▆▌▍▊█▋▍ ▅▌▌▉▆ ▋▌▋▅█▆ ▇▋▄▄▆▉▄
▆▋▍▆▅ ▌█▌█▊▊█▇▉█ ▍▆▄█ ▇▄▉█▌▄.▌▋▆▅▆▆▊
█▊▆▄▄▍ ▋_▍▅█▇▅▄▊▄▊▍::▋▋▍▋▅ ▄▊ ▆_▅▆▆▄▅
!▊▆▇▍▄ ▋▇█▍▇▇▉▆▊ ▆▇▋▇▌▅▇█ █▇▍▆ ▉▉▋▍▋█ ▌▄▋ ▅▋▅▊▆▇█▌
!█▉▆▍▇ █▍▇▌█▍▋ ▆▋▄▄ ▋▅▋▊▍▊▍▊
!▅▍▅▉▊▊▉▋ ▍▉▍▋_▋▇▆▅▌▉▌▍▍▆█▇▋▄▌ ▅▉▋▌▌▊ ▊▋█▆█▋▅▍▆▌▋▋▇▇▇▍▉▌▇▋▍▋▌█▋
!▋▉▌█▆ ▅▊▅▅▄▊▋▌ ▇▌▊▍ ▊█▋▉ █▋█▅▍▌█
!▄▊▌▌▍ █▊ ▅▇▉▍▋▄▊ ▅▆▋▆ ▋▉▉▅▍▄█_▋▆▇▌▇▆▆▆▆
!▄█▅▋▋ ▇▋▊▆█▊▋▊ ▌▆▉▋ ▍▆▇▍▍▋▌▇▆▆▆▇▍▆▋█▌▉▋▄▍█
▇▌▌▌▉▇▋▄▇▅▇▊▇▍▌▆▅▋▇▇▉▅ █▇▇ ▅▍▆▌ ▇▉ █▋▉▍▉▅ ▅▆▉ ▊▆▌▅▄▇ ▌▋▊▉█▄ ▋▉ ▌▅▇█▉▇ ▇▉▅▄▊▌
▍▌▄▆ ▅▄▉▋ ▋▆▇ ▇▇▍▇▅▉ ▆▌█▋▅▊ ▌▆▊▊ ▌▅▅▄▋:█▆█▄▋▇██▉▍▌
!▉▌▄▅▉ ▄▅▍▌▅▅▄ ▋▆ ▆▄ ▉█▊▉ ▊▆▉ ▌▄▉▆█▆▌ █▍▋▇▄▍
▅█▄▌▍ ▅ ▅▊▇ ▅▊▋ ▉▆▍▄ ▍▇▅▇▇▆ ▅▍▋ ▋▋▄▋▅
!▆▇▆▆▌ ▄▇▋▉▉
!▄▍█▍▍ ▉▍▍▍█▄█ ▅▊▊▍ ▇▅▅_▆█▅▌▅▌▆▉▆█▌▋▅▌▊▇█▋▅▄
▆▌▋▅ ▇▅▌▆▉▊ ▌▋▅▉▇ ▄▍▄ ▇▄▊▍▊
!▉▄▊▌▊ █▇ ▆▆▅▄▍▇▊ ▍▉▄▍ ▄▍▊▉_▄▉▉█▉▇▇
!▇▄▇▆▅ ▆▄▊▆▆▋▆▇▊ ▉▄▊▍█▍▉▇ ▅▉▄▄ ▄▍▅▆▅▌▍▌▌▅▋▊▆▇
!▌▌▋▋▆ ▋▆▌ ▉█▍█▅▇▌▄ ▍▌▆
!▅▆▅█▄ ▅▌▆█▋█▇ ▄▋▅▄▊▉▇ ▆▇▋▅ █▋▇▊_▋▉▄▋▅▍█
▅▅▋▇▊ ▉██▌▅▄▄ ▌▋▄▆▆▉▉▉ ▌▇▄▊▋▊█▄▊ █▍▇ █▊▉▍▇▆
▌▌▌▌▍▄█▋█▌▋▆ ▌▆▉▇▉▋ ▄▄▊▄▅▇▌▇ ▅▋▉▆▆▄▍ ▍▊▋▊▄█▄▆▄▅▉▇▇
▊▋▋▄▄ ▋▌▆▉ ▌▊█▄ ▊▍▊▅▆▊▋ ▇▌▊ ▌▋▉▇▄▌▊▌ ▉▄█▊▇▍█ ▅█▅▊▇▋▄ ▅▍▌ ▄▉▌▍'▍ ▉▄▌▄▌▇?
!▉▇▌█▍▄▅ █▊▍▉▊▋▄▅▉▊█▌▋▉▉▉ ▍▆▌▌▉█
!█▌▆▅▄ ▊▅▇▆█▋▍▋▇ ▌▉▌▅▍▌▄ ▇▇▅▅ ▋▍▋▌ ▅▅▅▉▍ ▅▄▆▉▊▇▄▅▇
!▄▅▌▌▆ ▋██▊▍▋▇▄▉▅▍ ▇▊▇▉ ▅▇▉▇▋▅▋▆▆
▉▉-▋▍▍▆▄▆ ▍▋▄▇▋█ ▆▋▊▅▉▅▉ ▆▋▋ ▉▆▋
!▊█▅▄▍▅▅ ▅▇▍█▅▆ ▄▋▇▍▆▆▇▌_▆▉▅▄
!▆▅▊▆▌ ▄ ▇▊▉▇▋ ▌▊▅▅ ▊▇▌▌▅▍▆▄▌▍▋█▇▍
▍█▍▍▄ ▊▄█▌▉▌▅█▋▊▍ ▉▆ ▄▄_▋█▇▋ ▍▄▄▄▌▇▄▊ ▍▋ ▊▍▌▌▊
▉▄▅▉▇▍▄ ▉▉▇ ▌▇▉▇▆▅ █▄▅ ▍▍▊▄▉▉▉▆ ▅▊▅▋▅▋▉ ▉▍▉▍
▄▌▍█▉ ▊▍▍ █▆▊▉▅▍▊▌ ▋▌▄▉▍▋▊▌ ▌▇ ▊▊▊▄.▌▇▊▉▄▇▄█▅█▊ - ▉▅▄█▅▍
▌▉▌▋▋ ▍▍▍▆▅ ▄▊▅▍▇▆ ██▇▍▊▍ ▆▌▇▋ ▊▍█▊▊ █▋▇▌ ▅▌▆▅▇▊▉▋▆
▍▌▄█▆ ▆▊▉▄▅ ▇▌▆
▄█▍▆▄ ▉▊█▊▌▋▅▅█ ▅▇▍ ▆▄ ▅▄▌█▋▆ ▊▅▍▅█▉, ▄▍▍▋ ▋▅ ▄▊▄ ▄▋▇▍▆▇▅ ▌█▆▄▍
▇▋▅ ▅▄▆ ▄▇▇▊ ▇▆▆▋▅ ▆▊█▅▍▊ ▍▅▆▉██▌▉ ▇█▌▇ ▊▊▆ ▋▊▋▌▍▆ ▊▇ █▅▊ █▅▍▅ ▄▄ ▅▆▇ ▉▌▊▉▌ ▆▋▄▆ █▌ ▊▄▌█▄▋▇
▍.▇. ▆▋▌ █▋▍▋ ▊▅ █▋▆█ ▇▊▍▄ ▅▄▋▉▊▅▍ ▆▄█▆█ ▄▇ ▊▆▌ ▄▌▄▅▋ ▌▉▅▍ ▋▋▊ ▆▋▆▉▄, ▉▇▅▌+▊ ▉▌▆▋▉█ ▅▄ ▅▄▍ ▉▆▋ ▌▌█▅▆ ▇▋█▆▉▌. ▋▄▍▄▋▇▅ ▄█▇▆ ▍▍▇ ▄▍▌▊ ▊▊▊█ █▊ ▅▅▅ ▌█ ▍▅▉▊▍▌.
▇▅▄▇▋ ▌▉▌█ ▊▌█▌▅▇▌ - ▋▊▍▅▆▊▇ ▌▊▅▆▉ █▅▊▇ ▄▉▋▌▋.▆▌▌
▄▉▍▄ ▇▊▇▊▄▄ ▇▍▋▋▉ ▊▌▆ ▋▊▉▄█
▆▍▉▇ ▇█▉ ▅█▋▄▄
▊▊▆▉▍▋▊ █▇▌▊▊▆▍▄▍▉▉:▆▆▄▅▊▅▋▆▍▆█▍▌▆▊
▊▌▄▊▋▋▌ ▍▉▄█▆▍▅ ▇▇▉▊▍ █▌ ▄▉▍▅▋.▊▋█▍ █▍ █▍▊▅▄▇▌▋█
▆▉▅ ▆▌▌▅▊▌▍▆▌▌ ▋▊ ▇▄▉▍▅▄▉▉▉█▌
▍█▆▆ ▆▌▆▄▊▉ ▇▋▆▍█▅▉ ▄▅▄▉▆ ▍▌▄▌▌▊█▋▍▊▌▍, ▍▊█▊ ▊█▊ ▌▅▅▍ ▇▆ ▄▊▌▍▉▇▇▇ ▊▉▇ ▅█▍▊▊▌▊ ▋▍▇▍▋▋
▍█▋█▋ ▅ ▌▌▋▉▌▍▉ ▋█▆█ ▊▆▅▄█▆ ▉▄▆ ▆▉▆▇▍▄▌▄ ▄▄▊▍▉ ▉▊ ██▌▅▊
▄▅▅██▊▋▊▋ █▅▆▇ ▉▍▇▊ ▇▊▋▄█ ▋▇ ▊ █▅▋█▉ ▄█▇▇▅
▄▇▋▍▆ ▇▆▇▉▍█▊ ▍▉▇▋▄▅█▊▊▇ ▌▌▄▉ ▍▅▅█▊▌.▍█▌▍▍██▇▋▄
▆▇▆▌▅ ▅▅▌▄▇▍▋▉▋█ ▌▌ ▊▇_▅▆▅▆/▉▊▉▋▇▌▉▋▄▌▉ ▅█▊ ▅█ ▌▄▇█▇▍ ▅▌▅█▅▉▋▍ ▊▌▅▅▊
▅▉█▋ '▄█▊▌▍▄'▉ ▄▆▋▆ ▉▅▍▊▌▊' █▋▊▍▊▍▍ ▄▆▊▄ ▇▍▄▌▇▇▇
▍▋ ▄▆▌ ▉█▍▌ ██▉▌█ ▆▄▊ ▌▋▌▇█▊ ▌▊▇▉
▋▆▋█▅ ▋ ▊▋▄▉▆ ▌▄█▋ ▅█▊▋▋▊▄▍▇▍▉▉▄█
▅▆▉█▍ ▋▊▅▄▆▋▆▊▅▉ █▍▊▇ ▉▇▅▆▍▉ ▍▊▇██▉▆
!▊▆▍▆▊ ▇▅▋▄ ▄▇▇▄▉▍▌▇ ▌▄▍▅ █▅▍▄▊▍▄▅ ▇▋▊▊█▊█▆
▆▌▉▉ ▊█▇▌ ▌▍▄▍▋ ▍▉█▊
▉█▍▍▅▍█ ▍▇▄█▆▄▉ █▉▋ ▊▍▉ ▄▉▄█▌▉▇▅█ ▆▌▍▋ ▋▆▆
Bradley doesn't take damage from scientists.
Delete demos off disk past a certain quota to avoid consuming entire disk during upload failure
Add `server_demo_disk_space_gb` (default 30GB)
Bradley doesn't target Scientists
▍▉▌▇▌ ▇▄█▄ ▍▆▌▍▄▇▋█ ▌▍▇▊ ▋▉▇▉▊▋▆▉ ▌▋▅█▊▆▄▋
Spawn scientists pre-aware of attacker
Added metal roof tileable textures
Tweak road scientist navmesh Y offset.
Bradley spawners set spawn type flags.
Bradley prefab update.
Allow server demos to be turned on and off at runtime
Removed cache count
Streamlined vendor name setup
Prevented spamming from overly reloading icons
▅▅█▅▄ ▆▇▍▅▇▆▅▊▆▌ ▇▅▉█▉▊▅ ▄▅▄ ▄▌▍█ ▋▅ ▅█▇▍█▇ ▄▆▇▄ ▄▉▆▅ ▋ ▉▄▊▍▄▌▆▋▍▄
Fixed another regression with Entity.NetworkVar
Added workaround to gm_load/persistance due to addons breaking stuff
Make 'Couldn't find target' warning more verbose
So you know where its coming from
Fixed a crash with AddOriginToPVS
Fixed regression with markup library
Spawn the correct scientist type depending on the bradley type (monument or road).
Added new scientist prefabs & AI design placeholders.