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#

FeatureHow
Kill Log windowWindow Menu (U) → Kill Log. The entry is only listed while the plugin is on
ListDeaths / Kills tabs, 20 rows per page, newest first
DetailsClick 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 recapA "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 OnPurpose
DataServerTable dbo.PvPKillLog. Run DataServer/SQL/DatabaseObjects/dbo.PvPKillLog.Table.sql once. Safe on a live database: it only creates the table when missing
MapManager.xmlGensBattle decides which maps count as Gens kills
Skill.txtSkill 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#

AttributeTypeDefaultEffect
Enabled0/110 = nothing recorded, the Window Menu entry and the toast are hidden

Settings#

AttributeTypeRangeDefaultEffect
DeathToast0/1-11 = show the death recap card to the victim
FightTimeoutSecint5-60020A fight ends after this many seconds with no player damage on the victim. A later death starts a new fight
KeepPerCharint1-50050Rows kept per character, per tab. Older rows leave that tab
MinTotalDamageint0+0Deaths 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.

AttributeKind of death
WorldOpen-world PK (anything not listed below)
DuelBoth players are in a duel with each other
EventBlood Castle, Devil Square, Chaos Castle, Illusion Temple, Silent map 40 (Custom Arena)
SiegeCastle Siege map while the siege is running
GuildWarGuild war / Battle Soccer between the two guilds
GensPlayers 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 FightTimeoutSec passes 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 KeepPerChar rows 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. Detail is 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>

Common Issues#

Last updated October 1, 2026