DiolezHitRegistry
A solution for ghost hit elimination and pvp desync fix.
DiolezHitRegistry
🎯 DiolezHitregistry — Ghost Hit Elimination & PvP Desync Fix
> Feel every swing land. No more ghost hits. No more rubber-band deaths. > Client-side combat prediction for Minecraft 1.21 (Fabric) — zero server-side dependencies.
---
❓ What Problem Does This Solve?
You've felt it before. You swing on a player, the hit animation plays, particles fly — and nothing happens. Their health doesn't move. You didn't deal damage. The server didn't agree.
That's a ghost hit — caused by the gap between what your client sees and what the server processes. It gets worse the higher your ping is.
DiolezHitregistry eliminates this feeling entirely.
---
✨ Features
⚔️ Ghost Hit Elimination
Every swing instantly applies a visual health reduction to your target. If the server confirms the hit — perfect, it already looks right. If the server rejects it due to lag or tick desync — the health bar smoothly fades back to the real value. No jarring snap. No confusion.
🧠 Combat Prediction & Reconciliation
The mod timestamps every attack the moment you swing and tracks a live round-trip time estimate from your current ping. It uses this to calibrate a tolerance window — giving the server enough time to respond before deciding a hit was a ghost. On 150ms+ connections, this window automatically widens to absorb lag spikes.
🔧 Utility Desync Fixes
All of these actions are predicted immediately and rolled back gracefully if the server disagrees:
- 🟣 Hotbar switching — arc and trajectory appear instantly on throw - 🏹 Hotbar switching — projectile predicted on release - 🍗 Hotbar switching — consume animation plays without waiting for server - 🧱 Hotbar switching — block appears in world before server acknowledgement - 🎒 Hotbar switching — slot change is instant, rolled back if server denies
📊 Live RTT Calibration
The mod continuously measures your actual ping and uses it to dynamically tune prediction windows — no manual configuration needed. It works well at 20ms and still feels great at 300ms+.
🐛 Debug Overlay (Optional)
Enable a developer HUD that shows in real-time: - Estimated RTT and tick-boundary crossing risk - Visual HP vs real HP on your current target - Prediction status (pending / confirmed / rolled back) - Entity position error (how far the server-side target is from what you see)
---
⚙️ Configuration
Config file is auto-created at: `.minecraft/config/hitregistry.json`
| Option | Default | Description | |---|---|---| | `enabled` | `true` | Master on/off toggle | | `combatPredictionEnabled` | `true` | Toggle hit prediction | | `utilityPredictionEnabled` | `true` | Toggle utility desync fixes | | `hitExpiryTicks` | `20` | How long to wait for server confirmation before treating as ghost hit | | `latencyCompensationTicks` | `2` | Extra ticks added to the window for high-ping servers | | `predictionStrength` | `0.85` | How aggressively visual damage is predicted (0.0–1.0) | | `rollbackLerpSpeed` | `0.3` | How fast visual HP snaps back on rollback | | `pearlPredictionEnabled` | `true` | Ender pearl desync fix | | `projectilePredictionEnabled` | `true` | Bow/crossbow desync fix | | `itemUsePredictionEnabled` | `true` | Food/potion desync fix | | `blockPlacementPredictionEnabled` | `true` | Block placement desync fix | | `utilityRollbackDelayMs` | `400` | ms to wait before rolling back an unconfirmed utility action | | `debugLogging` | `false` | Verbose console logging | | `debugOverlay` | `false` | Enable HUD debug panel |
🔴 High Ping (150ms+) Recommended Settings
```json { "hitExpiryTicks": 30, "latencyCompensationTicks": 5, "predictionStrength": 0.90, "utilityRollbackDelayMs": 600 } ```
🟢 Strict Server / Anti-Cheat Sensitive Settings
```json { "hitExpiryTicks": 12, "latencyCompensationTicks": 1, "predictionStrength": 0.70, "utilityRollbackDelayMs": 300 } ```
---
🛡️ Anti-Cheat Compatibility
This mod is designed from the ground up to be invisible to anti-cheat systems.
| What this mod does | Safe? | |---|---| | Apply visual health reduction before server confirms | ✅ Purely cosmetic — never touches the entity's real health value | | Lerp visual health back on rollback | ✅ Client-side rendering only | | Timestamp and track pending actions | ✅ No network interaction | | Inject into vanilla methods | ✅ Read-only, post-execution — never cancels anything | | Send extra attack packets | ❌ Never — would trigger hit-rate limiters | | Modify outgoing packet timing | ❌ Never — server-side manipulation = ban | | Alter entity positions | ❌ Never — position spoofing = instant Grim ban | | Cancel incoming server packets | ❌ Never — would desync the client |
purely visual All prediction logic is purely visual. The server always remains authoritative.
---
❓ FAQ
Q: Does this work on servers I don't own? A: Yes. It's 100% client-side. No server mod or plugin required.
Q: Will this get me banned? A: No. The mod never sends extra packets, never modifies outgoing attack packets, and never alters any authoritative server state. All changes are visual-only on your own client.
Q: Does it work in singleplayer? A: Yes, though at 0ms local latency, ghost hits don't occur naturally — so you won't see much difference there.
Q: Why does the health bar sometimes snap a little before correcting? A: That's the rollback lerp. When the server contradicts a prediction, the visual HP smoothly returns to the real value. You can adjust `rollbackLerpSpeed` in the config to make it faster or slower.
Q: Can I disable specific features? A: Yes. Every feature has its own toggle in `hitregistry.json`. You can run combat prediction only, utility prediction only, or mix and match.
Q: Is this the same as reach or kill-aura mods? A: Absolutely not. This mod does not extend your reach, automate attacks, or alter hitboxes. It only improves visual feedback and desync recovery for actions you take yourself.
---
📦 Installation
1. Install Fabric Loader for Minecraft 1.21 2. Install Fabric API 3. Drop `DiolezHitregistry-1.0.0.jar` into your `.minecraft/mods/` folder 4. Launch — config is created automatically on first run
---
⚠️ Known Limitations
True zero-latency PvP is physically impossible over a network. Here's what we simulate and why each limit exists:
- Invincibility frames (iFrames): After being hit, entities have a server-side 10-tick invincibility window. The client can't know exact iFrame state for other players, so some hits during this window may appear as ghost hits locally even when they're valid server-side.
- Bow draw power: Draw state is tracked server-side. Projectile velocity prediction may be slightly off if the bow wasn't fully drawn.
- Armour & enchantment precision: The damage estimator uses visible attributes only and applies a 10% conservative reduction. Actual server damage (post-armour toughness, Protection enchants) will differ slightly, causing a small visual correction when the server responds.
- Packet batching: Some server configs batch health sync packets, delaying rollback triggers by an extra tick or two.
---
🔗 Source Code
Full source code with architecture documentation and inline comments explaining every design decision is included in the project.
Built with: Fabric API · Fabric Mixins · Java 21 · Minecraft 1.21 Yarn Mappings
---
*Made by Diolez*