3,110 Commits over 915 Days - 0.14cph!
Add 'stats_blacklist' convar to manually exclude events
Update analytics urls
Add 'pending_analytics' convar to get the amount of pending events
Add 'high_freq_stats' convar to disable common high frequency events
Enable saving for analytics convars
Merge from main -> gameplay_metrics
Added cpu_priority & cpu_affinity console commands
Merge from main -> cpu_affinity_test
Fix single wood door not using deploy whitelist
Merge from main -> door_deploy_fix
Fix crafting ingredients being marked as produced instead of consumed
Fix error when logging server performance
Check if AnalyticsSecret is empty rather than null
Using the staging api for server analytics
Remove redundant using statements causing compile errors
Merge from main -> gameplay_metrics
Store wipeid in json instead
Merge from sav_extra_json
Remove wipeid as an optional parameter
Add json string to .sav to store optional parameters
Merge from main -> gameplay_metrics
Fixed TCs showing "Open" as default option when in building priv but not authorized
Prevent opening turret inventory until authed on turret
Applied IAuthorizeEntity to codelocks & fixed authradius command to work with codelocks
Made the type in two places
Fixed a typo I couldn't find earlier & Vis.Entities has to check BaseEntity.isServer
Refactor after code review
Remove analytics DB, instead use a hash of steamId + serverWipeId to get playerWipeId
Refactor projectile tracking a bit
Log every projectile invalid
Log projectile updates in BasePlayer.FiredProjectile
Add ILootableEntity interface and add "LastLootedBy" to all lootable entities, use that instead of a Dictionary tracking lastLootedBy
Use Facepunch.Pool instead of manually pooling MemoryStream & List<EventRecord>
Iniital fixes after code review
Refactor aggregate methods
Log aggregate blueprint counts for online players every 1hr
Log aggregate entity count for server every 1hr
Log player positions every 1 min
Merge from main -> gameplay_metrics
Developers can use all skins outside of the editor with "client.unlock_all_skins"
Fix minicopter blocking building of walls & doors underneath by raiding building blocked volume by 0.3m
▅▌██▄ ▅▄▊▇█▍▉▆▅ ▆▇ ▅█▍▋▇▍▊▉ ▋▆ ▇▌▊▄▄ (▍▄▄, ▍▉█▍▇▌▅▋▍▆, ▊▅▉▊▊▌▄▌▉▅)
▄▇▄ "▄▅█▅_▊▄▋█▄▌_▅▌▅▇▆▍▍▄█" ▇▌▉▍▊▊▄█▇▇ ▆▄▆█▋ ▊▄ ▋▉▆▌▄ ▊▇▌▉█ ▊▌ ▍▅ ▋▍▊▍▆█ ▅▌ █▉▊▇▄▋▋▌▇▇ ▋▅▆█▌▊ ▇▆▅▅▄▆, █▊▇▆█▅ ▊▉▉▅▍▌ ▄▊▆▊▉ ▉▄▋▄▇▅▌▍ ▇▄ ▍▊▍ ▇▍▋▆▅ (▍▍▌▆▊▅▌_▋▉▆▇▇▆█▊) & ▊▊▅▇▆ ▅▉ ▉▇▅ ▅ ▋▌▊▋▍
▄▋▊▉▆▊ ▆▊▌▍ ▍██▄ █▌█▍_▌▆▌▍▄_▅▇▋▍▇/▉▌▊▌_█▍▉▇▅▆_▋▉▄ ▊▊ ▌▉▉ ▅▉▆ ▇▊▄▊ ▇▉▄▊▉ ▆▉ ▋▌ ▅▍▇▅
Log warning instead of exception incase it kicks people off the server as they connect
Add "authradius {radius} [user]" & deauthradius (same arguments) commands to auth onto tcs & turrets in a radius
Refactor List<PlayerNameId> to HashSet<ulong>
Add "IAuthorizeEntity" interface and apply to TC & Turret
Fixed computer station UI missing scaling component
Show the changeset in the server browser when on staging and the changeset doesnt match the client version
Add changeset to server tags "cs{changeset}"
Pool MemoryStream when serializing, only log json of events in the editor
Log when entities are repaired with a hammer, log the materials used in the repair bench
Move helper methods to seperate .cs file
Only submit stats from official servers
Change quarry to aggregate item amounts & add OnNPCVendor implementation
Use seperate interval for performance on server (1 min)
Merge from main -> gameplay_metrics
Test setting affinity manually for 7950x3d & set process priority to high
Fixed items being dropped in world instead of destroyed