« Back to search

Mod

DeathStats

by SaKeL · score 354.2 · license: LGPL-2.1-or-later

DeathStats

Download latest release

Cinematic death screen with ragdoll corpses, death cause tracking, grave epitaphs, lifetime stats dossier, and a live multiplayer scoreboard HUD.

gui hud

DeathStats

A cinematic death screen, ragdoll physics, and player statistics mod for Luanti.

When you die in Luanti, DeathStats turns what used to be an instant respawn prompt into a cinematic moment. An orbiting camera circles your fallen character as ragdoll physics take over, custom banners and screen splatters react to how you met your end, and an on-screen dossier tallies everything you did during that life.


Key Features

  • Cinematic Death Presentation:

    • Themed "YOU DIED" banners and fullscreen screen splatters adapt to the cause of death (lava, fire, drowning, combat, and hazards).
    • Smooth 360° camera orbit around the fallen corpse with raycast obstacle avoidance to prevent wall clipping.
    • Photo Mode: hide all UI with an on-screen button or /stats photo for clean screenshots.
    • Natural CC0 vocal death groans and hurt sounds on impact.
  • Procedural Ragdoll Physics:

    • Knockback and tumbling scaled to the fatal hit (explosions launch bodies, falls pancake on impact, and poison/starvation slump in place).
    • Terrain awareness: corpses roll down steep hills, match stair inclines, and settle into organic resting poses (prone, supine, lateral side-recovery, or sitting propped against a wall).
    • Appearance sync: accurately inherits your skin, equipped armor, wielded item, and custom meshes across popular skin frameworks (skinsdb, 3d_armor, clothing, player_api, mcl_skins, etc.).
    • Bones mod compatible: docks cleanly onto placed bones blocks when bones_mode = "bones" is active so inventory drops stay fully functional.
  • Persistent Corpses & Grave Epitaphs:

    • Corpses remain resting in the world for a few minutes (default: 3 minutes) before dissolving into a puff of smoke.
    • Other players can right-click any corpse to view an epitaph plaque with survival time, death cause, killer name, and humorous epitaph notes.
    • Strictly capped to 1 corpse per player to keep servers tidy.
  • Death Attribution & Nemesis Revenge:

    • Tracks killers, weapons, and ranged projectile attacks (x_bows arrows, spells).
    • Environmental detection for falls, drowning, fire, lava, suffocation, void, and hunger/thirst frameworks (hbhunger, stamina, thirsty, unified_stamina).
    • Slaying your nemesis in your next life triggers a server-wide revenge announcement and awards the [RVNG] Avenger title badge.
  • Lifetime Dossier (/stats):

    • Summary of active life achievements: survival time, mined ores, combat damage dealt/taken, kills, crafted items, and distance traveled.
    • Interactive dashboard with tabs for Overview, Ores Breakdown, Combat & Mobs, and Server Hall of Fame.
  • Tactical Multiplayer Scoreboard:

    • Hold Sneak + Aux1 (or Zoom) to display a live HUD overlay showing player names, kills, deaths, K/D, damage, mined blocks, survival time, armor, health, ping, and AFK status.
    • Full scrollable roster dialog accessible anytime via /scores.
    • Pluggable column API: other mods can register custom metrics with deathstats.register_scoreboard_column.

Scoreboard Extension API

Other mods can register custom columns with deathstats.register_scoreboard_column:

deathstats.register_scoreboard_column("coins", {
    order = 65,
    title = "COINS",
    title_small = "C",
    pct = 0.08,
    min_w = 45,
    icon = "deathstats_icon_star.png",
    tooltip = "Gold Coins",
    get_value = function(player, item, is_small)
        return tostring(my_economy.get_coins(item.name) or 0)
    end,
    get_color = function(player, item)
        return 0xFFD700
    end,
})

For the complete, exhaustive developer API reference including all class definitions, type aliases, method signatures, parameter tables, and return types, see API.md.


Multiplayer Performance

  • Throttled flailing updates (10 Hz in flight, 5 Hz on ground slides).
  • Dirty-delta bone rotation filtering skips packets for micro-movements under 2.8°.
  • Zero-cost settled state: resting corpses sleep with zero tick calculations.
  • Non-loading node queries keep chunk loading light.