Corpsebound Beta-0.2.0
Curse Maven Snippet
What's new
Corpsebound Changelog
beta-0.2.0
For Minecraft 1.20.1 with Forge 47.4.20. This release supersedes alpha-0.1.1.
Beta 0.2.0 focuses on long-term corpse decay, responsive impact audio, safer loot storage, and substantially lower server and client overhead when many corpses exist.
Highlights
100-hour skeletal decay
- An exposed corpse that remains present now turns directly into skeletal remains after
7,200,000server game ticks by default (100 hours at 20 TPS). There is no gradual texture fade. - Skeletonization changes the appearance in place. The corpse keeps its ragdoll pose and physics, position, inventory, equipped and held items, burial state, and detached-head state.
- Upright bodies use Minecraft's vanilla skeleton model and texture, driven by Corpsebound's existing ragdoll joints. Quadruped, axial, and compact rigs use original profile-appropriate bone layouts instead of being forced into a humanoid shape.
- Creatures that already use a skeletal appearance are left unchanged.
- An uncollected severed player head now weathers with its corpse. Before skeletonization it yields the profiled player head; afterward it yields one collectible skeleton skull. The existing one-claim safeguard still prevents duplication.
Immediate positional body-impact audio
- Added a server-authoritative body-impact sound for death falls, airborne drops, and carried-corpse releases.
- The sound is triggered on the first valid body contact during the same server physics tick, rather than waiting for the corpse's later sleep transition.
- Audio originates at the actual impact point. The server selects one pitch per landing from
0.70xto1.30x(±30%), so every nearby player hears the same event. - The new sound has been trimmed to a fast onset and is preloaded to keep the audible impact close to the visual landing.
Burial decay changes
- The default decay time for a fully buried corpse has changed from 1 hour to 100 hours, counted from the moment burial is completed.
- Once decay completes, the lightweight grave record keeps every original item and adds, by default:
- 1–3 rotten flesh
- 2–5 bones
- 0–2 bone meal
- 1 skeleton skull
- The Alpha behavior of hiding a fully buried corpse and stopping its ragdoll simulation immediately is retained. Breaking the burial block releases the preserved contents only once.
- The old 15% skeleton-skull roll has been replaced by a configurable skull count, defaulting to one.
Performance and animation
- Server-side corpses now share one block-collision cache during each manager tick instead of rebuilding the same collision data independently.
- Sleeping support checks, NPC player-distance checks, and hidden-grave audits are deterministically spread across multiple ticks to avoid periodic CPU spikes.
- Surface and buried decay use deadline queues instead of scanning every corpse record for expiry each tick.
- Persistent data now caches each serialized corpse or grave and rebuilds only records that actually changed.
- Each player receives only corpses within a server-controlled interest range, measured against both the body and any uncollected detached head. A 32-block leave margin prevents repeated loading and unloading at the boundary.
- Leaving the interest range releases that corpse's client model, equipment, pose, and physics state. Re-entering restores a complete current snapshot, including skeleton, head, burial, carry, equipment, and pose data.
- The body and detached head are frustum-culled independently. Invisible geometry is skipped, while lighting, pose transforms, bone transforms, and render positions are cached for the current tick or pose.
- Nearby moving corpses retain full 20 Hz updates. Normal one-tick motion uses continuous linear interpolation; only delayed multi-tick updates receive mild smoothing, reducing visible stutter without adding lag to ordinary motion.
Corpse inventory and Curios overhaul
- Replaced Alpha's fixed 48-slot general-loot area and separate 36-slot Curios area with a dynamic inventory made from complete nine-slot rows.
- Containers now use only the rows they need. Exact 9, 18, or 27 stack counts no longer create an unnecessary extra row.
- The previous 48-slot general-loot limit has been removed. Inventories larger than six rows use vanilla-styled pages instead of dropping excess stacks or creating an incomplete row.
- General loot and empty spaces are randomized exactly once when death drops are finalized. Reopening the corpse, adding items, or reloading the world no longer rearranges existing contents.
- Curios still pass through their final drop, keep, destroy, Soulbound, and Vanishing Curse rules, but accepted drops now join the general paged inventory instead of using a separate custom panel.
- Upright bodies retain dedicated armor and hand slots whose contents directly control the rendered equipment. Non-upright bodies no longer expose irrelevant equipment slots; unusual modded equipment is preserved as general loot.
- Page transitions wait for the server-confirmed page snapshot, and dynamically expanded menus refresh all current viewers safely at the tick boundary.
Carrying, interaction, and compatibility improvements
- Unified carried-corpse placement and the raised two-hand pose across normal third person, first person, remote players, and Epic Fight.
- Improved carried limb stability. Attached points retain one third of their motion per tick, and upright heads now obey the same physical 30-degree cone used by rendering.
- A released corpse now searches for a safe whole-body placement, reducing wall separation and invalid joint positions.
- FirstPerson Model and Epic Fight no longer produce duplicate first-person arms while carrying.
- Attack, pick-block, block, entity, and item interactions are blocked consistently until the carried corpse is released.
- Epic Fight death rendering can no longer bypass Corpsebound's model capture, while non-Epic high-fidelity model capture remains available.
Fixed
- Fixed some corpses being impossible to pick up again after they had been carried and placed down once.
- Fixed carried bodies being pushed apart by walls or blocked by ordinary block interaction.
- Fixed rejected burial clicks showing a false local swing during the shovel cooldown. The successful burial-step interval is now 1.6 seconds.
- Fixed corpse contents changing positions when the menu was reopened or updated.
- Fixed excess loot being forced onto the ground by the old 48-slot limit.
- Fixed stale items appearing briefly during page changes under network latency.
- Fixed unsafe menu replacement when a corpse inventory grew while one or more players were viewing it.
- Fixed armor slots accepting the wrong item type or a full stack on the client.
- Fixed Curios ownership being claimed before the final outer death-drop event, avoiding duplication and conflicts when another mod cancels or rewrites drops.
- Fixed non-upright corpses hiding unusual equipment inside inaccessible slots.
- Fixed carried upright heads exceeding their configured physical displacement limit.
- Fixed final-priority death protection leaving both a living equipped entity and an already-created corpse copy.
Upgrade notes
- Back up the world before upgrading. Existing Alpha corpse inventories are migrated automatically: general slots
0–47, equipment slots48–53, and Curios slots54–89are preserved. Legacy Curios contents become accessible as general loot. - Beta writes inventory format version 2. After a world has been saved with
beta-0.2.0, do not downgrade to an older Corpsebound JAR; an older build cannot read the new dynamic inventory and may overwrite those contents as empty. - Old corpses and complete graves that do not yet have a decay timestamp receive a fresh 100-hour timer when first loaded by this Beta, rather than skeletonizing immediately.
- The network protocol changes from
17to20. The server and every connecting client must useCorpsebound_beta-0.2.0.jar; mismatched versions are rejected safely. - Surface decay defaults to
corpseDecay.surfaceSkeletonTicks = 7200000. - Buried decay now uses
corpseBurial.skeletalDecayTicks = 7200000. This new key intentionally replaces Alpha's one-hourcorpseBurial.decayTickssetting so the old value cannot silently carry into the upgrade. - Curios and Epic Fight remain optional. Corpse Curios Compat is not required because Corpsebound includes its own Curios integration.
- Avoid running another corpse or gravestone mod that clears the same death drops unless explicit compatibility is provided.
Metadata
- Release file:
Corpsebound_beta-0.2.0.jar - Internal Forge version:
beta-0.2.0 - Author:
Simon Vaerion
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include
This mod has no related projects

