Description
### Short description
A standalone engine that gives humanoid entities **precise oriented-bounding-box (OBB) hitboxes per body part** — head, torso, arms, legs — that follow the **actual rendered pose** (standing, sneaking, swimming, crawling, elytra, sleeping, riding, attacking, and the transitions between them). Hits are resolved by ray/slab test against those boxes, so what you see is what you hit. By itself it provides the hitbox geometry, a debug wireframe, and tuning tools; other mods build part-based damage on top of it.
### Features
- **Per-part OBB hitboxes** for humanoids (players, zombies/skeletons, and tagged custom humanoids), reproduced from vanilla pose math.
- **Render-accurate** — captures the real rendered part matrices; for animations the server can't reproduce (e.g. player-animation mods), the observing client streams a part snapshot so hit detection still matches ("favor-the-shooter").
- **Per-entity uniform scale** config for oversized mobs (e.g. giants) — hitbox scales with the rendered model.
- **Developer hooks** (`DoxPoseHooks`): inject upper-body twist/roll (leaning), arm overrides (weapon poses), crawl flags, and stream predicates — pure functions over server-synced state.
- **Non-humanoid parts** — cows, chickens, spiders, golems and other non-biped mobs get per-part hit boxes captured from their rendered model (no per-entity config, no distance limit).
- **Melee, arrow & bullet resolution** — the engine owns all non-gun part judgment too: melee and arrows resolve a part via `DoxAttackJudge`; with TACZ installed, bullet hits resolve here as well (shot-authoritative, empty-space aim = pass-through).
- **Weapon-blade melee** — with Better Combat, a swing's part is decided by the actual weapon (sword/axe) blade position captured from its rendered model — each weapon uses its own blade tip/length, no hardcoding.
- **Debug tools**: `/doxhitbox debug` wireframe overlay, and a posable invulnerable dummy (`/doxhitbox dummy <stand|crouch|swim|elytra|sleep|…>`) for alignment tuning. Config hot-reloads.
### Requirements
- Forge 1.20.1. No other mods required. (TACZ / Better Combat are optional — auto-integrated when present.)
### For modders
- `DoxObbHit.resolveHit(target, p0, p1)` → part id or `"MISS"`; `resolveHitContact` (never MISS, snaps nearest); `hasObbHitbox(target)`, `clipStanding/clipProne`.
- `DoxAttackJudge.resolvePart(damageSource, victim)` — the melee/arrow part entry point (consumer mods read the part string and apply multipliers / limb HP).
- `DoxClaimBus` — register a handler to apply damage for shot-authoritative claims (judgment here, damage in your mod).
- `DoxGenericParts` — server-side stash of client-resolved parts (favor-the-shooter melee & generic mobs).
- `DoxPoseHooks` — `armOverride`, `upperBodyTwist`, `upperBodyRoll`, `extraCrawl`, `poseSyncPredicate`.
- Tag `doxhitbox:obb_humanoid` (entity_types) to opt an entity into humanoid OBB hitboxes.
***All projects were produced using AI.***
