Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Tags
Creators
Details
Accurate Projectile Trajectory Preview
Forked from Projectile Trajectory Preview by maDU59 (MIT License)
Ever wondered where your arrow, snowball, or potion will land? This mod provides a visual preview of projectile trajectories, similar to PTP, but with improved prediction accuracy and no multiplayer limitations.
🔎 Features
- Trajectory Visualization: Displays the expected path of your projectile before launching.
- Target Highlighting: Trajectory color indicates a higher likelihood of hitting a target.
⚠️ Limitations and Notes
- Minecraft projectile physics include random spread offsets, so the actual impact position may slightly differ from the preview.
- However, trajectory prediction is designed to be more precise than the original PTP implementation.
🔬 Technical Changes Compared to Original PTP
- This fork modifies both the simulation logic and multiplayer behavior:
Multiplayer behavior
-
Removed the server handshake check (serverHasMod)
-
Removed networking validation logic
-
Trajectory preview is now always available client-side (no server requirement)
Simulation changes
- Removed projectileInfo.order-based update system The original implementation updated motion using a configurable order array. This fork replaces it with a fixed per-tick update sequence:
-
position update
-
drag application
-
gravity application
This makes motion simulation consistent and closer to vanilla projectile behavior.
- Reworked entity collision handling
-
Reduced broad-phase AABB inflation from 1.0 to 0.3
-
Added distance-based spread-aware entity hit detection
-
Added a “guaranteed hit” detection flag when the ray intersects the true bounding box
- Improved spread simulation
- Added distance-based spread offset:
spreadOffset = normalizedVelocity * (distanceFromStart * maxSpreadFactor)
-
Adjusted spread multiplier from
* 3.0to* 2.0 -
Spread is now simulated dynamically per step instead of being approximated
- Refined water physics handling
-
More explicit switching between normal drag/gravity and underwater values
-
Applied consistently during simulation loop
- Minor stability improvements
-
Early velocity zero-check
(vel.lengthSqr() < 1e-8) -
Added
startPostracking for spread calculation
📦 Modpacks
Feel free to include this mod in your modpacks.


