Skip to content

A web-based tool or local application that allows players to upload their Dark Age of Camelot (DAoC) `chat.log` file and receive a detailed, visualized breakdown of their combat encounters. It would parse the log, identify individual fights, and present statistics like damage dealt, healing done, crowd control used, and other key metrics.

License

Notifications You must be signed in to change notification settings

southpawriter02/camelot-combat-reporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Camelot Combat Reporter

Master Your Combat. Dominate the Realm.

Version License: MIT .NET 9.0 Platform Tests


The ultimate combat analysis suite for Dark Age of Camelot players.

Parse your chat.log, visualize your performance, track personal bests, and receive real-time alerts — all in one powerful, cross-platform application.

Download Latest Release · View Roadmap · Report Bug


What's New in v1.9.x

Class Detection, Meta Builds & Plugin Ecosystem — January 2026

 CLASS DETECTION            META BUILD TEMPLATES       ENEMY DATABASE
┌─────────────────────┐   ┌─────────────────────┐   ┌─────────────────────┐
│  Styles Analyzed: 12│   │  Templates: 45+     │   │  Enemies: 128       │
│  Candidates: 3      │   │  Realms: All 3      │   │  Win Rate: 72%      │
│  Confidence: 92%    │   │  Roles: Tank/DPS/   │   │  Favorites: 8       │
│  Class: Infiltrator │   │    Healer/Support   │   │  Notes: 24          │
└─────────────────────┘   └─────────────────────┘   └─────────────────────┘

v1.9.0 – v1.9.4 Highlights:

  • Combat Style Class Detection — Identify enemy classes from combat style patterns with confidence scoring
  • Meta Build Templates — 45+ pre-built templates across all realms and roles
  • Enemy Encounter Database — Track, search, and analyze all enemy encounters with win rates and statistics
  • Discord Bot Integration — Webhook-based session summaries, PB announcements, and kill notifications
  • Damage Breakdown Charts — Interactive pie/bar visualizations with hierarchical drill-down
  • Enhanced Profile Export — Privacy controls, anonymization, and configurable export options

Feature Overview

Core Analysis

Feature Description
Log Parsing Regex-based extraction of all combat events
Damage Tracking Dealt/received with source attribution
Healing Analysis Done/received with effectiveness metrics
Player Statistics DPS, HPS, K/D ratios, and more
Timeline Charts Interactive LiveCharts2 visualizations

Combat Intelligence

Feature Version
Death Analysis v1.1.0
CC & DR Tracking v1.1.0
Realm Abilities v1.2.0
Buff/Debuff Tracking v1.2.0
Combat Alerts v1.3.0
Group Analysis v1.4.0
Keep/Siege Tracking v1.5.0
Relic & Battleground v1.5.0
Auto-Update System v1.6.0
Character Building v1.8.0
Class Detection v1.9.0
Enemy Database v1.9.1

Feature Highlights

Real-Time Combat Alerts — Get notified when it matters most

Alert Conditions

Condition Triggers When...
HealthBelow Health drops below threshold (e.g., 30%)
DamageInWindow Burst damage exceeds amount in time window
KillStreak Kill streak reaches milestone (3, 5, 10...)
EnemyClass Targeting specific class (Minstrel, Cleric...)
AbilityUsed Realm ability activated (self or enemy)
DebuffApplied Specific debuff detected (Disease, Poison...)

Notification Types

  • Sound — Priority-based audio alerts
  • Screen Flash — Visual notification with configurable color/duration
  • Text-to-Speech — Spoken alerts with message templates
  • Discord Webhook — Post alerts to your Discord channel

Configuration

Rule: "Low Health Warning"
├── Priority: Critical
├── Conditions: Health < 25% AND InCombat
├── Notifications: Sound + ScreenFlash + TTS
└── Cooldown: 10 seconds
Session Comparison & Analytics — Track your improvement over time

Delta Calculations

┌─────────────────────────────────────────────────────────┐
│                  SESSION COMPARISON                      │
├─────────────────────────────────────────────────────────┤
│  Metric              Base      Compare     Change       │
│  ─────────────────────────────────────────────────────  │
│  Damage Per Second   142.3     168.7       +18.5% ↑    │
│  Healing Per Second   45.2      48.1       + 6.4% ↑    │
│  Kill/Death Ratio     2.1       2.8        +33.3% ↑    │
│  Deaths               8         5          -37.5% ↑    │
│  Critical Hit Rate   24.3%     27.1%       + 2.8% ↑    │
└─────────────────────────────────────────────────────────┘

Trend Analysis Features

  • Linear Regression — Detect performance trends (improving/declining)
  • Rolling Averages — Smoothed visualization over time
  • R² Coefficient — Measure trend reliability
  • Predictions — Extrapolate expected future performance

Goal Tracking

┌──────────────────────────────────────┐
│  Goal: Reach 200 DPS                 │
│  ████████████████░░░░  78%           │
│  Current: 156 DPS | Target: 200 DPS  │
│  Status: In Progress                 │
└──────────────────────────────────────┘
Death Analysis — Understand why you died and how to survive

Death Categories

Category Subcategory Description
Burst Alpha Strike Overwhelming damage in <3 seconds
Burst Coordinated Multiple attackers in quick succession
Burst CC Chain Death during crowd control chain
Attrition Healing Deficit Damage outpaced healing over time
Attrition Resource Exhaustion Out of power/endurance
Execution Low Health Finished while already wounded
Execution DoT Finish Killed by damage over time

Pre-Death Timeline

T-15.0s ─┬─ Mezmerized by Sorcerer
         │
T-12.2s ─┼─ Root applied
         │
T-10.0s ─┼─ 450 damage from Infiltrator (backstab)
         │
T-08.5s ─┼─ 380 damage from Infiltrator (critical)
         │
T-06.0s ─┼─ Stun applied (3s)
         │
T-03.0s ─┼─ 520 damage from Infiltrator (Purge)
         │
T-00.0s ─┴─ DEATH - Killing blow: Infiltrator (892 damage)

Category: Burst (CC Chain)
Recommendation: Consider Purge timing and positioning
Realm Ability Tracking — Master your RAs for maximum impact

Database Coverage

Realm Abilities Examples
Albion 35+ Purge, IP, SoS, Determination
Midgard 35+ Purge, IP, SoS, Raging Power
Hibernia 35+ Purge, IP, SoS, Thornweed Field
Universal 20+ MOC, BAoD, AoM, First Aid

Tracking Features

  • Activation Timeline — When and how often you use RAs
  • Cooldown Efficiency — Are you using abilities optimally?
  • Damage/Healing Attribution — Total impact per ability
  • Era Gating — Classic, SI, ToA, NF, Live ability filtering
Buff/Debuff Tracking — Maximize your uptime

Categories (40+ definitions)

  • Damage Buffs (STR/DEX buffs, damage adds)
  • Defensive Buffs (AF, ABS, resistances)
  • Speed Buffs (Sprint, Speed)
  • Healing Buffs (HoTs, heal procs)
  • Crowd Control Effects (Mez, Root, Stun)
  • Debuffs (Disease, Poison, Stat debuffs)

Uptime Analysis

┌─────────────────────────────────────────────────────────┐
│  BUFF UPTIME REPORT                                     │
├─────────────────────────────────────────────────────────┤
│  Damage Add          ████████████████████░  95.2%       │
│  AF Buff             ██████████████████░░░  87.3%       │
│  Haste               ████████████████░░░░░  78.1%       │
│  Resistance Buff     ██████████░░░░░░░░░░░  52.4%  ⚠️   │
└─────────────────────────────────────────────────────────┘
                       ⚠️ Critical gap detected!
Crowd Control Analysis — Track DR and optimize CC chains

Diminishing Returns System

DR Level Duration After
Full 100% First CC
Reduced 50% Second CC
Minimal 25% Third CC
Immune 0% Fourth+ CC

DR resets after 60 seconds without CC of that type

CC Chain Detection

Target: EnemyPlayer
├── [00:00.0] Mez (9.0s) ── DR: Full
├── [00:08.5] Stun (4.5s) ── DR: Full (different type)
├── [00:13.0] Mez (4.5s) ── DR: Reduced
└── [00:17.0] Mez (2.3s) ── DR: Minimal

Chain Duration: 19.3s | Efficiency: 87%
Keep/Siege & RvR Tracking — Dominate the frontier

Siege Tracking

  • Door/Structure Damage — Per-door damage aggregation with siege session detection
  • Siege Phases — Approach, Outer Siege, Inner Siege, Lord Fight, Capture
  • Contribution Scoring — Formula-based scoring: structure damage, player kills, healing, guard kills
  • Keep Statistics — Aggregated outcomes per keep with timeline visualization

Relic Tracking

  • Event Tracking — Pickup, drop, capture, and return events
  • Carrier Statistics — Delivery success rates and contribution scoring
  • Relic Database — All 6 realm relics with real-time status (Home, InTransit, Captured)

Battleground Statistics

  • Zone Detection — Thidranki, Molvik, Cathal Valley, Killaloe, Open RvR
  • Per-Session Stats — Kills, deaths, damage, healing, K/D ratio
  • Aggregated Analytics — Best performing BG, most played, total time, estimated realm points
Character Building & Profiles — Plan and track your builds

Character Profile System

  • Profile Management — Create, import/export, and share character profiles
  • Build Snapshots — Immutable build versions with rollback history
  • Session Attachment — Link combat sessions to profiles for performance correlation

Specialization Templates (48 Classes)

  • Complete spec line templates for all Albion, Midgard, and Hibernia classes
  • DAoC point formulas: (level × 2) + (level / 2) + 1 = 126 points at 50
  • Spec multiplier support for hybrid classes

Build Comparison & Progression

┌─────────────────────────────────────────────────────────┐
│  BUILD COMPARISON                                       │
├─────────────────────────────────────────────────────────┤
│  Spec Line          Build A     Build B     Delta       │
│  ─────────────────────────────────────────────────────  │
│  Sword               50          39         -11  ↓     │
│  Shield              42          50         + 8  ↑     │
│  Parry               28          35         + 7  ↑     │
└─────────────────────────────────────────────────────────┘
  • Realm Rank Progression — RR1–RR14 milestone tracking with estimated time to next rank
  • Performance Trends — DPS and K/D trend analysis across sessions
Enemy Encounter Database — Know your enemies

Encounter Tracking

  • Automatic Classification — Players, Mobs, and NPCs detected via naming heuristics
  • Per-Enemy Statistics — Damage dealt/taken, kills/deaths, win rate, average DPS
  • Damage Breakdown — Ability-type analysis per enemy
  • User Notes & Favorites — Annotate enemies and mark key targets

Browser Interface

  • Search & Filter — Find enemies by name, type, or realm
  • Sort — By win rate, encounters, damage, or name
  • Color-Coded Badges — Red (Players), Green (Mobs), Blue (NPCs)
  • Export — JSON export of filtered enemy data
Class Detection & Meta Builds — Identify and optimize

Combat Style Class Detection

  • Analyze combat style patterns to identify enemy classes
  • Confidence scoring based on style frequency and uniqueness
  • Covers 45+ classes across all three realms

Meta Build Templates (45+)

  • 2–3 meta builds per class covering different playstyles
  • Includes spec lines, realm abilities, role, and author
  • Filter by realm and role (Tank, DPS, Healer, Support)
  • Load templates directly into the Build Editor

Installation

Download Pre-Built Releases

Download the latest release for your platform from Releases:

Platform Download Requirements
Windows CamelotCombatReporter-win-x64.zip Windows 10+
macOS (Intel) CamelotCombatReporter-osx-x64.zip macOS 11+
macOS (Apple Silicon) CamelotCombatReporter-osx-arm64.zip macOS 11+
Linux CamelotCombatReporter-linux-x64.zip Ubuntu 20.04+ or equivalent

Note: All releases are self-contained — no .NET runtime installation required.

Build from Source

# Clone the repository
git clone https://github.com/southpawriter02/camelot-combat-reporter.git
cd camelot-combat-reporter

# Build all projects
dotnet build

# Run tests
dotnet test

# Run the GUI application
dotnet run --project src/CamelotCombatReporter.Gui

Requirements: .NET 9.0 SDK or later


Quick Start

1. Launch the Application

# GUI (recommended)
dotnet run --project src/CamelotCombatReporter.Gui

# CLI
dotnet run --project src/CamelotCombatReporter.Cli -- <path_to_log_file>

2. Import Your Combat Log

  • Drag & Drop your chat.log file into the application
  • Or use File → Open to browse

3. Explore Your Data

Tab What You'll Find
Dashboard Overview statistics and timeline
Damage Dealt/received breakdown by source
Healing Healing analysis with effectiveness
Deaths Death analysis with recommendations
CC Analysis Crowd control and DR tracking
Realm Abilities RA usage statistics
Buff Tracking Buff uptime and gap analysis
Alerts Configure real-time notifications
Session Comparison Compare sessions and track trends
Group Analysis Composition analysis and role coverage
Siege Tracking Keep siege sessions, phases, and contributions
Relic Tracking Relic raid history and carrier statistics
Battlegrounds BG performance by type with K/D charts
Character Building Profiles, builds, spec templates, and progression
Enemy Browser Encounter database with search, filter, and stats

Project Architecture

camelot-combat-reporter/
├── src/
│   ├── CamelotCombatReporter.Core/     # Core parsing and analysis
│   │   ├── Parsing/                    # Log parser and event extraction
│   │   ├── Models/                     # Data models and events
│   │   ├── DeathAnalysis/              # Death categorization
│   │   ├── CrowdControlAnalysis/       # CC and DR tracking
│   │   ├── RealmAbilities/             # RA database and tracking
│   │   ├── BuffTracking/               # Buff/debuff monitoring
│   │   ├── Alerts/                     # Alert engine and conditions
│   │   ├── Comparison/                 # Session comparison services
│   │   ├── GroupAnalysis/              # Group composition analysis
│   │   ├── RvR/                        # Keep/siege, relic, BG tracking
│   │   ├── CharacterBuilding/          # Profiles, builds, spec templates
│   │   ├── Updates/                    # Auto-update system
│   │   ├── ChatFiltering/              # Chat message filtering
│   │   ├── ServerProfiles/             # Era-based server profiles
│   │   ├── InstanceTracking/           # Instance/dungeon tracking
│   │   ├── Caching/                    # Performance caching layer
│   │   └── Optimization/              # Performance optimizations
│   │
│   ├── CamelotCombatReporter.Gui/      # Avalonia UI application
│   │   ├── Views/                      # XAML views
│   │   ├── ViewModels/                 # MVVM view models
│   │   └── [Feature]/                  # Feature-specific GUI
│   │
│   ├── CamelotCombatReporter.Cli/      # Command-line interface
│   ├── CamelotCombatReporter.Plugins/  # Plugin host infrastructure
│   └── CamelotCombatReporter.PluginSdk/# Plugin development SDK
│
├── plugins/                            # Community plugins
│   ├── DamageBreakdownChart/           # Interactive damage visualizations
│   ├── DiscordIntegration/             # Discord webhook bot
│   └── EnemyEncounterDatabase/         # Enemy tracking database
│
├── tests/                              # Unit tests (410 tests)
├── benchmarks/                         # Performance benchmarks
├── installer/                          # Platform-specific installers
├── data/                               # Sample logs and resources
├── docs/                               # Documentation
└── roadmap/                            # Feature roadmap

Roadmap

Version Focus Status
v1.0.0 Core Parsing, GUI, Plugins, Loot Tracking ✅ Released
v1.1.0 Death Analysis, CC Tracking, Server Profiles ✅ Released
v1.2.0 Realm Abilities, Buff/Debuff Tracking ✅ Released
v1.3.0 Combat Alerts, Session Comparison, Trends ✅ Released
v1.4.0 Group Composition Analysis, Role Classification ✅ Released
v1.5.0 Keep/Siege Tracking, Relic Raids, Battlegrounds ✅ Released
v1.6.0 Installers (MSI, DMG, deb, rpm) & Auto-Update ✅ Released
v1.8.0 Character Building: Profiles, 48 Class Templates, RA Catalog ✅ Released
v1.9.0 Class Detection, Meta Builds, Enemy Database, Discord Plugin ✅ Released
v2.0.0 Combat Replay, Overlay HUD, ML Insights 📋 Planned

Progress: 21/24 major features complete

See the Full Roadmap for detailed feature specifications.


Plugin System

Extend Camelot Combat Reporter with custom plugins:

[Plugin("MyPlugin", "1.0.0", "Your Name")]
public class MyPlugin : PluginBase
{
    public override void OnSessionLoaded(SessionData session)
    {
        // React to session data
        var totalDamage = session.Events
            .OfType<DamageEvent>()
            .Sum(e => e.Amount);

        Logger.Info($"Total damage: {totalDamage}");
    }
}

Plugin Capabilities:

  • Access parsed combat data
  • Register custom UI panels
  • Export to custom formats
  • Integrate with external services

See Plugin Development Guide for full documentation.


Documentation

Document Description
Architecture System design, data flow, component interaction
Contributing Development setup, coding standards, PR process
Changelog Version history and detailed release notes
Roadmap Feature specifications and implementation status
Plugin Guide Build and distribute custom plugins

Testing

# Run all tests
dotnet test

# Run with coverage
dotnet test --collect:"XPlat Code Coverage"

# Run specific test project
dotnet test tests/CamelotCombatReporter.Core.Tests

Current Status: 410 tests passing (381 Core + 29 GUI)


Contributing

We welcome contributions! Please see our Contributing Guide for:

  • Setting up your development environment
  • Code style and conventions
  • Submitting pull requests
  • Reporting bugs and requesting features

License

This project is licensed under the MIT License — see the LICENSE file for details.


Built with

.NET Avalonia LiveCharts


Made for the DAoC community

"For Albion! For Midgard! For Hibernia!"

About

A web-based tool or local application that allows players to upload their Dark Age of Camelot (DAoC) `chat.log` file and receive a detailed, visualized breakdown of their combat encounters. It would parse the log, identify individual fights, and present statistics like damage dealt, healing done, crowd control used, and other key metrics.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages