You are viewing a potentially older version of this package. View all versions.
GChallenge-GCValheimStats-2.1.20 icon

GCValheimStats

Comprehensive statistics tracking and analysis for Valheim with in-game overlay and Flask dashboard.

Date uploaded 9 hours ago
Version 2.1.20
Download link GChallenge-GCValheimStats-2.1.20.zip
Downloads 17
Dependency string GChallenge-GCValheimStats-2.1.20

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2333 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2333

README

GCValheimStats

Comprehensive statistics tracking and analysis for Valheim with in-game overlay and Flask dashboard.

Features

  • Kill Feed — on-screen kill counter with icons for all mobs
  • Trophy Tracking — tracks trophy drops per mob type
  • Play Time Timer — persistent play time counter
  • World Config — captures game mode, world modifiers, installed mods
  • Player Stats — health, stamina, skills, food, position
  • Element Detection — tracks damage elements (Fire, Frost, Poison, etc.)
  • Star Levels — tracks starred mob kills with breakdown
  • Web Dashboard — view statistics at https://gchallenge.ru
  • Encrypted Batches — AES-256-CBC + HMAC-SHA256 data protection

Requirements

Installation

  1. Install BepInExPack Valheim
  2. Download and extract GCValheimStats into BepInEx/plugins/
  3. Launch Valheim

Configuration

Edit BepInEx/config/com.gchallenger.valheimstats.cfg to enable/disable features.

Hotkeys

  • F7 — Toggle stats overlay
  • Ctrl+F8 — Reset stats

Privacy & Data

This mod collects gameplay statistics (kills, trophies, play time, installed mods) and sends them encrypted to the GCValheimStats server at https://gchallenge.ru.

The mod uses AES-256-CBC encryption with HMAC-SHA256 authentication to protect all data in transit. The encryption key is derived from your Steam ID and a hardware-specific identifier (machine name + processor ID). This ensures that data from different players cannot be decrypted by others.

The hardware identifier is used only to generate the encryption key and is never transmitted outside your machine. It consists of your computer name and processor ID, which are standard system properties read locally.

CHANGELOG

Changelog

2.1.19

  • Fixed death counter not persisting across sessions (RecordDeath now passes player instance to SavePersistentData)
  • Fixed death counter label showing "0" on respawn (label now initializes with current death count)
  • SavePersistentData/LoadPersistentData/GetKey now accept optional Player parameter for reliable persistence during death

2.1.18

  • KillFeed: fixed slide animation during game pause (ESC menu) — uses unscaledDeltaTime
  • KillFeed: removed cursor lock check — feed only shows on mouse hover near bottom or when "always visible" enabled

2.1.17

  • KillFeed: slides up when cursor is unlocked (works with both TAB and ESC)
  • Timer: text outline for readability on any background

2.1.16

  • KillFeed: setting in F7 → Settings to show feed always visible or hide (slide animation)

2.1.15

  • KillFeed: custom death icon (Viking sitting character) replaces tombstone
  • KillFeed: death icon always visible in bottom-left corner, flipped vertically
  • KillFeed: kill feed panel slides up from bottom when cursor nears screen edge
  • KillFeed: full-width dark background behind feed (extends to screen bottom)
  • KillFeed: panel shifted 32px right to avoid overlap with death icon
  • KillFeed: timer text wrapping disabled (single-line display)

2.1.6

  • Fix: challenge tab restores after closing modifiers window
  • Fix: tab position no longer shifts on repeated open/close of modifiers
  • Fix: exiting challenge mode properly switches to tab0 in TabHandler
  • Fix: modifiers back button uses local _inChallengeMode flag (race condition fix with TabHandlerPatch)
  • Fix: batches now send on tab open — RefreshServerStatus triggers immediate flush if server online
  • Fix: replaced broken PingServer (nonexistent /ping endpoint) with CheckAuthStatus for server availability check
  • Fix: orphaned batches with stale HMAC key auto-deleted on load (prevents counter stuck at N)
  • Fix: batch creation skipped while Steam ID is 0 (prevents orphaned batches from wrong key)
  • Fix: BatchTriggers uses live key delegates instead of stale captured values (HMAC mismatch fix)
  • Removed PingServer method — no longer used anywhere
  • Removed MainMenuOverlay — server status check moved to ChallengeTab
  • Status bar: positioned above ScrollRect as sibling (always visible)
  • Status bar: hidden vanilla m_serverCount from ServerListGui clone
  • Status bar: pending count shown as "Не отправлено: N" (no size), "Всё отправлено" when empty, error on failure
  • Status bar: [x] clear button for pending batches (DeleteAllPending)
  • QueueStorage: added GetPendingSizeBytes() helper

2.1.5

  • Кнопка «ИСПЫТАНИЯ» в главном меню — быстрый доступ к челленджам без выбора персонажа
  • Вкладка «ИСПЫТАНИЯ» в панели выбора мира — те же позиция и размер, что и «Начать игру»
  • Брендинг GChallenge в челлендж-режиме — вертикальная надпись «GChallenge.RU — {название挑战а}» в углу экрана
  • Шрифты: убраны предупреждения LiberationSans SDF, единый шрифт для всего UI
  • Удалена секция Mob Kills из окна статистики
  • Блокировка зума колесом мыши при открытом окне статистики

2.1.3

  • All UI converted from IMGUI to uGUI under game's CanvasScaler (1920x1080 reference resolution)
  • StatsDialog, KillFeed, TimerOverlay, DrawBranding — all render inside ScrollRect content
  • Cursor management: GameCameraPatch Harmony postfix for UpdateMouseCapture, InInventoryEtc, TakeInput
  • F7 hotkey uses ZInput.GetKeyDown (works during WASD movement)
  • ModLocalization shared class with EN/RU localization
  • KillFeed: death cell with tombstone icon and death counter, tooltip with CanvasGroup
  • KillFeed: runtime mob name cache from ZNetScene.instance.m_prefabs
  • DragHandler for TimerOverlay (IBeginDragHandler, IDragHandler, IEndDragHandler)
  • ShowMobKills config toggle
  • Icon fixes: Neck flipped + bottom-aligned, Boar scaled 75% + bottom-aligned
  • __Tombstone shifted up 2px, death counter shifted up 2px
  • Fuling Berserker, Neck trophy, __Tombstone base64 icons added
  • Alpha threshold 200 for transparent-background icon rendering

2.1.1

  • Fixed kill tracking for DoT weapons (fire club, poison, etc.)
    • Clone HitData via MemberwiseClone to prevent object pooling corruption
    • Cache key changed from ZDO UID to Character instance (NView invalid during OnDeath)
  • Ctrl+F8 now resets KillFeed icon counters to zero (icons remain visible)
  • Removed unused Ctrl+F9 and F10 hotkeys from config

2.1.0

  • Death tracking with causes from PlayerProfile stats (18 cause categories)
  • Damage breakdown by type (Slash, Pierce, Blunt, Chop, Pickaxe, Fire, Frost, Lightning, Poison, Spirit)
  • Enhanced equipment stats (equipped item names, armor value, food count, eitr regen)
  • Inventory snapshots every 10 minutes
  • Food consumption tracking (item name, type)
  • Pause/resume events on listen server
  • Per-character persistent stats via Player.m_customData (22 fields)
  • Kill tracking filtered to player-only kills (no mob-on-mob or environmental)
  • Mob name localization mapping (18 mobs with internal name resolution)
  • Kill feed tooltip with icon row on hover
  • Improved 3-minute respawn hang fix (Player null guard in Update)
  • Unified batch timer (5s flush + 60s stats + 30s ping)
  • Timer position persistence
  • Server availability check before batch sends
  • Gull counter removed (66 mobs, 51 trophies)

2.0.0

  • Initial release on Thunderstore
  • Kill feed with mob icons, star breakdown, and trophy tracking
  • Play time timer with persistent storage
  • World config collection (game mode, modifiers, installed mods)
  • Player stats tracking (health, stamina, skills, food, position)
  • Element damage detection (Fire, Frost, Poison, Lightning, Spirit)
  • Flask dashboard with real-time updates
  • Encrypted batch data transfer (AES-256-CBC + HMAC-SHA256)
  • In-game overlay with configurable hotkeys
  • Cross-session stat persistence via character data