Rust Combat Log Analyzer
Paste the table that the combatlog command prints. See damage, hits, range and bursts by opponent and weapon. Your log stays in your browser.
Paste your combat log
Press F1 in game, type combatlog and press Enter. Copy the table the game prints and paste it here. The combatlog_outgoing table works too.
Runs in your browser. Nothing you paste is sent or stored, and you do not need an account.
No log yet
Run combatlog in the F1 console, copy the table and paste it above. Or load the example to see what the page shows.
What each column means
- time
- Seconds since the event, counted back from the moment you ran the command. The oldest event has the biggest number.
- attacker
- Who dealt the hit. You are shown as you. Other players show as player_ and a number: a network id that only means something inside this log. Anything that is not a player shows its internal name. N/A means the game recorded no attacker.
- target
- Who took the hit, shown the same way. Walls, doors and other objects show their internal name.
- weapon
- The weapon that made the hit, as the game names it. N/A when the game recorded none.
- ammo
- The projectile the weapon fired. N/A for melee and other attacks that fire nothing. Some ammo types share a projectile name, so the column cannot always tell them apart.
- area
- Where the hit landed: head, chest, stomach, arm, hand, leg or foot. generic means the target has no body areas, such as a wall or a door. none means the server refused the attack before any hit was recorded.
- distance
- Meters from the shooter to the hit. This page only uses the distance of rows that have ammo.
- old_hp
- The target's health before the hit. A refused attack shows 0.0.
- new_hp
- The target's health after the hit. A player who is downed gets fresh health, so this can be higher than old_hp.
- info
- Empty for a normal hit. killed means the hit killed the target. wounded means it downed a player. Anything else is the reason the server refused the attack or the hit. "you died first (...)" wraps the value when the attacker was dead or downed at that moment.
- hits
- How many things the projectile had already hit before this row. 0 is the first.
- integrity
- How much of the projectile's strength was left before this hit. 1.00 is a fresh projectile. It drops as the projectile passes through things.
- travel
- How long the projectile had been in flight when it hit, in seconds, as the client reported it.
- mismatch
- How far the path the client reported drifted from the path the server simulated, in meters. 0.00 means no drift.
- desync
- The gap between the server's and the client's flight time for the projectile, in milliseconds.
- id
- The network id of the attacker and of the target. Only the tables that admins pull have these two columns.
- Your log only holds hits where you were the attacker or the target. Damage other players do to your base is not in it.
- Other players show as player_ and a network id. The log has no names and no Steam IDs.
- By default the game keeps the last 30 events for each player and shows an event 10 seconds after it happens. Server owners can change both.
Methodology
The page adds up the rows you paste. It adds nothing that is not in the log.
- Damage is old_hp minus new_hp on each row. A refused attack adds none. A hit that downs a player shows the fresh health the game gives them, so it can read low.
- Each row is one projectile, so every pellet of a shotgun blast counts as a hit.
- Headshot rate is head hits divided by hits on a body area: head, chest, stomach, arm, hand, leg or foot. Hits on walls and other objects have no body area and are left out.
- Range only counts rows that have ammo. Melee and other rows have no projectile range.
- A burst is a run of two or more hits with less than the chosen gap between one and the next.
- Log size and delay are the defaults on the current version of Rust.

