4,032 Commits over 1,127 Days - 0.15cph!
Changing long -> EntityId & ItemId but not completely done
Changed every network id & item uid from uint to long
Fixed ores counting as produced & smelted products counting as consumed
Log workbench entity instead of the workbench level
Log mixing table as normal crafting & set the workbench entity as the mixing table
Split crafting into two methods: item produced & material consumed
Add ingredients to item definitions
Fix compilation error from git missing half the commit?
Split recycler method into two methods & include the source + dest item when recycling (to group product of recycling per item recycled)
Fix damage being logged for scientists / npc but no player involved
Change damageType from int to string
Merge from main -> gameplay_metrics
Don't log the individual ingredients used for crafted (can use joins in db later)
Implement GetHashCode & IEquatable for all struct dictionary keys in analytics
Push aggregate items (inluding upkeep) every 60 minutes instead of every minute
Change "UploadPendingItems" from task to coroutine
Fix conditional compile causing unreachable code
Fixed ability to set process priority with IL2CPP on windows
Remove "Starting to aggregate players" spam
Log workbench level when the craft was started instead of when the craft ends
Ignore logging wipe ids of NPCs
Log stashes
Log entity manifest on startup
Fix barrels not being logged
Log keycard swipes
Log hackable crates start & end
Noclip violations requires HIghFrequencyStats
Push server info every hour instead of once at startup
Fix barrels not logging loot
Add isOcean when items are looted
Move biome to helper .cs
Log server tags
Log device id
Log player count directly
Log player who dropped item & log the player when it despawns
Team UI & Nametags will use steam nicknames instead of steam names / streamer names if you are friends with the player
Added 'use_steam_nicknames' convar to revert to previous behaviour
Log item definitions on startup
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>