Kill Log
The Kill Log records every death where a player kills a player: who, guild, where, how long the fight took, how much damage each attacker did, which skills and who assisted. Players read it in game in two tabs: Deaths (who killed me) and Kills (who I killed). Rows are stored in the database, so the log survives logout and restarts.
Player Side#
| Feature | How |
|---|---|
| Kill Log window | Window Menu (U) → Kill Log. The entry is only listed while the plugin is on |
| List | Deaths / Kills tabs, 20 rows per page, newest first |
| Details | Click a row: per-attacker HP / SD damage and hits, per-skill totals (crits, excellent hits, biggest hit), and the last 32 hits of the fight |
| Death recap | A "Killed by ..." card shown to the victim: killer, guild, total damage, top skill and its share, number of assists |
File Location#
Data/Plugins/KillLog.xml
A missing file is not an error: the Kill Log runs enabled with the defaults below.
Dependencies#
| Depends On | Purpose |
|---|---|
| DataServer | Table dbo.PvPKillLog. Run DataServer/SQL/DatabaseObjects/dbo.PvPKillLog.Table.sql once. Safe on a live database: it only creates the table when missing |
| MapManager.xml | GensBattle decides which maps count as Gens kills |
| Skill.txt | Skill names shown in the details |
The stock KillLog table (Name1 / Name2 / KD1 ...) is not used and not touched.
Configuration Sections#
<KillLog Enabled="1">
<Settings DeathToast="1" FightTimeoutSec="20" KeepPerChar="50" MinTotalDamage="0"/>
<Types World="1" Duel="1" Siege="1" Event="1" Gens="1" GuildWar="1"/>
</KillLog>
KillLog#
| Attribute | Type | Default | Effect |
|---|---|---|---|
Enabled | 0/1 | 1 | 0 = nothing recorded, the Window Menu entry and the toast are hidden |
Settings#
| Attribute | Type | Range | Default | Effect |
|---|---|---|---|---|
DeathToast | 0/1 | - | 1 | 1 = show the death recap card to the victim |
FightTimeoutSec | int | 5-600 | 20 | A fight ends after this many seconds with no player damage on the victim. A later death starts a new fight |
KeepPerChar | int | 1-500 | 50 | Rows kept per character, per tab. Older rows leave that tab |
MinTotalDamage | int | 0+ | 0 | Deaths with less total damage (HP + SD, all attackers) are not recorded and get no toast. 0 = record all |
Out-of-range values are clamped to the nearest limit.
Types#
1 = record this kind of death, 0 = skip it (no row, no toast). All default to 1.
| Attribute | Kind of death |
|---|---|
World | Open-world PK (anything not listed below) |
Duel | Both players are in a duel with each other |
Event | Blood Castle, Devil Square, Chaos Castle, Illusion Temple, Silent map 40 (Custom Arena) |
Siege | Castle Siege map while the siege is running |
GuildWar | Guild war / Battle Soccer between the two guilds |
Gens | Players of different Gens families, on a map with GensBattle on |
A death gets the first type that matches, in this order: Duel, Event, Siege, GuildWar, Gens, World.
Important Behavior#
- What counts: only a player killed by a player. A kill by a summon counts as a kill by its owner. Monster kills and suicides are never recorded.
- Fight window: the plugin collects player damage on each character. If
FightTimeoutSecpasses with no new hit, the old fight is dropped. On death, everything since the fight started goes into the row. - Killer always listed: even if none of the killer's hits were seen, the killer is added to the attacker list.
- Limits per fight: 8 attackers (the rest merge into one "others" entry), 6 skills per attacker (the rest merge into "other skills"), the last 32 hits. Poison / bleed ticks and reflected damage get their own rows.
- Assists = number of attackers minus the killer.
- Two keep flags: each row is shown to the victim (Deaths) and to the killer (Kills). When a character passes
KeepPerCharrows in a tab, the oldest row leaves that tab only. The row is deleted once both players have dropped it. - Privacy: details can only be read by the killer or the victim of that row.
- Reload:
/reload plugins(or the GameServer Reload menu) re-reads the file. Players online get the new on/off state at once. - Rows are written through the DataServer write-ahead log, so a DataServer crash does not lose them.
- Header columns in
dbo.PvPKillLog(names, guilds, class, level, map, X/Y, fight time, total damage, top skill, assists,KillType) are plain columns, ready for a website or rankings.KillType: 0 world, 1 duel, 2 siege, 3 event, 4 gens, 5 guild war.Detailis an internal blob.
Examples#
<KillLog Enabled="1">
<Settings DeathToast="1" FightTimeoutSec="20" KeepPerChar="50" MinTotalDamage="0"/>
<Types World="1" Duel="1" Siege="1" Event="1" Gens="1" GuildWar="1"/>
</KillLog>
No rows for duels, events, siege, gens or guild war. Longer history.
<KillLog Enabled="1">
<Settings DeathToast="1" FightTimeoutSec="30" KeepPerChar="200" MinTotalDamage="0"/>
<Types World="1" Duel="0" Siege="0" Event="0" Gens="0" GuildWar="0"/>
</KillLog>
Log only, no recap card. Deaths under 5000 total damage are skipped.
<KillLog Enabled="1">
<Settings DeathToast="0" FightTimeoutSec="20" KeepPerChar="50" MinTotalDamage="5000"/>
<Types World="1" Duel="1" Siege="1" Event="1" Gens="1" GuildWar="1"/>
</KillLog>