branchrust_reboot/main/gameplay_metricscancel
79 Commits over 28 Days - 0.12cph!
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
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
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
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
Merge from main -> gameplay_metrics
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
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
Logged missions, underwater crates, buying vehicles & horses, gambling
Enable server performance metrics
Log projectile hits as well as misses
Move AzureWebInterface to new .cs file
Merge from main -> gameplay_analytics
Finish implementation of sending total aggregate of entities & items across server
Give each event its own guid
Typo on indexes & added damage_type to damage log
Add indexes to sqlite table for user wipe ids
Log dropped items, picked up, demolish, dropped explosives, codelocks picked up & fixes
Log monument of all gathered items with an entity, label junkpile & water junkpile spawngroup categories, fix growableentity not logging