Tags
Creators
Details
2.0+1.21.11
Compatibility
Required content
Changes
Changelog
All notable changes to SafePearl are documented here.
[2.0] ā Minecraft 1.21.11
A near-complete rewrite. The original prediction was inaccurate and broke in common situations; v2.0 rebuilds it from verified game physics and adds a full safety toolkit.
šÆ Trajectory ā now accurate
- Re-implemented the ender-pearl flight to exactly match Minecraft 1.21.11 physics (verified against the game's own code): correct tick order (gravity ā drag ā move), spawn at eye-height ā 0.1, throw power 1.5.
- Fixed throwing while moving / falling ā the pearl now inherits your velocity, so predictions line up when running, sprinting, or mid-air.
- Fixed throwing from water ā water drag (0.8) vs air drag (0.99) is applied per tick.
- Added entity collision ā predicts when the pearl will strike a mob.
š”ļø Safety assessment
- Blocks deadly throws ā if a throw is predicted to kill you (lethal fall, lava, or the void), SafePearl cancels it client-side before the pearl leaves your hand: no pearl spent, no cooldown. Hold sneak to override, with an optional warning sound. Fully toggleable.
- Colour-coded verdict: SAFE / RISKY / DEADLY.
- DEADLY uses your real health + absorption ā warns when a throw would actually kill you.
- Void / abyss throws are correctly flagged DEADLY even when the pearl never hits a block.
- Lava and the void are treated as certain death.
ā¤ļø Damage prediction ā fully modeled
Predicted damage (in hearts) accounts for:
- The flat 5-damage teleport tax + the vanilla fall-damage formula.
- Slow Falling, Jump Boost, Resistance status effects.
- Feather Falling + Protection enchantments on worn armor.
- Landing surface: water / slime / cobweb / sweet-berry bush / powder snow / scaffolding / ladder (no damage), hay & honey (Ć0.2), beds (Ć0.5).
- Creative / Spectator correctly shows 0 damage.
⨠Visuals
- Gradient trajectory trail with optional fade and configurable line width.
- Landing block outline + oriented impact ring on the exact face hit.
- Landing silhouette box at the precise spot you'll stand, with a drop-line for any fall.
- Compact HUD readout under the crosshair: status, damage, distance.
- Entity-hit callout: when the pearl is predicted to strike a mob or player (teleporting you to it rather than where you aimed), the HUD names the target.
āļø Configuration
- In-game Mod Menu settings screen (scrolling ā never overflows).
- All colours editable via palette buttons; toggles, line width, simulation length, and risky / danger fall-distance sliders (the two stay ordered automatically).
- Reset to defaults button.
- Toggles for the deadly-throw guard, sneak-override, warning sound, and a "hide HUD when safe" option to keep the crosshair clean.
- Toggle keybind (unbound by default) with an action-bar notification.
- Off-hand pearl support; settings persist in
config/safepearl.json.
š§ Technical
- Minecraft 1.21.11, Fabric Loader 0.19.3, Fabric API 0.141.4+1.21.11, Yarn 1.21.11+build.6, Mod Menu 17.0.0.
- Toolchain: Fabric Loom 1.17.12, Gradle 9.6.0, Java 21.
- Performance: one simulation per frame, shared with the HUD; a single entity query over the whole path.
- Migrated off the deprecated
HudRenderCallbackto the newHudElement/HudElementRegistryAPI (drawn right after the crosshair layer) ā zero deprecation warnings in the build. - Throw guard cancels client-side via
UseItemCallbackāActionResult.FAIL(never sends a packet, never spends a pearl). All prediction is wrapped so a fault can never block a throw or crash the world render. Added a bundledLICENSEand fixed a Gradle 9 build break.
š Known limitations
- Pearl camera (picture-in-picture) was investigated but not shipped: 1.21.11's rewritten render pipeline makes a true second-camera view unsafe to build.
- Damage prediction does not currently model armor points (in vanilla they don't reduce fall or ender-pearl damage anyway) and may slightly over-estimate if enchantments can't be read client-side ā it always errs on the safe (higher-damage) side.
[1.0] ā Minecraft 1.21
- Initial release: basic ender-pearl trajectory line and landing-block highlight.
Optional dependencies
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:mB6HAeMg:3LBvwAC8"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:mB6HAeMg:3LBvwAC8"
}

