Compatibility
Minecraft: Java Edition
1.21.1
1.20.1
Platforms
Supported environments
Creators
Details
Licensed LGPL-3.0-only
Published 4 months ago
Updated 2 weeks ago
Changelog
Changelog – Version 0.3.0
Features
- Implemented a precise, VoxelShape-based greedy meshing system for terrain.
- Added a performant two-phase buoyancy system for objects in water.
- Implemented a dedicated renderer system for physics bodies.
- Enabled Continuous Collision Detection (CCD) for cars and bikes to improve high-speed collision accuracy.
- Implemented robust data corruption resistance for saving and loading.
- Improved physics body synchronization through a revamped chunk tracking system.
- Differentiated driver and passenger seat debug hitboxes by color for better visibility.
- Added the ability for the
PhysicsCreatorItemto spawn bodies in an active state directly. - Added explicit player tracking to better manage interactions.
- Added overloads for creating bodies with a definable initial activation state.
- Added a hook that is triggered on sync data updates.
- Added
getJoltBodyoverloads to support direct access viabodyId.
Fixes
- Separated client-only code to prevent
ClassNotFoundExceptionon dedicated servers. - Refined buoyancy calculation by averaging fluid surface height for smoother object movement.
- Improved buoyancy broadphase accuracy by iterating over all AABB blocks instead of sampling.
- Fixed a rare
ClassCastExceptionwhen growing EMotionType arrays in JNI-bound code. - Corrected force application to ensure buoyancy acts relative to the center of mass.
- Applied linear drag at the center of buoyancy, improving torque behavior and rotation stability.
- Corrected the view vector calculation while riding physics vehicles.
- Resolved clipping issues by ensuring atomic body updates.
- Fixed various deadlocks related to persistence, terrain interactions, and body activation.
- Resolved race conditions and large coordinate packing errors.
- Prevented a server crash caused by mishandling client-only fields.
- Ensured that inactive bodies correctly synchronize their initial state.
- Bodies and constraints are now correctly persisted during a world save.
- Sleeping bodies are now correctly activated for buoyancy forces.
- Prevented the immediate activation of newly created bodies for more consistent behavior.
- Fixed an issue that caused arm swinging when using the
PhysicsCreatorItem. - Removed the malfunctioning
PhysicsRemover. - Downgraded verbose info logs to the debug level to reduce console clutter.
- Prevented a crash on body removal by safely calculating cluster bounds.
- Made minor corrections to field names, encoding issues, and JavaDoc formatting.
- Updated acknowledgments with the correct JoltJNI link and naming conventions.
Refactors & Architecture
- Overhauled the mounting system, consolidated Mixins, and improved the overall code structure.
- Unified client and server physics bodies into a single
VxBodyhierarchy. - Centralized physics pause logic into a global utility.
- Simplified object management by removing the
VxUpdateContext. - Centralized seat registration via the
VxMountableinterface. - Switched the persistence logic from an event-based system to Minecraft hooks for improved reliability.
- Converted
VxClientMountingManagerto an enum singleton to improve code structure. - Overhauled the buoyancy pipeline for more stable and realistic flotation behavior.
- Ensured clean separation between client and server logic to maintain compatibility and prevent runtime issues.
Performance
- Refactored to a data-oriented design for improved performance and lower garbage collector load.
- Implemented a grid-based clustering system for massively scalable large-scale terrain tracking.
- I/O tasks for bodies and constraints are now bundled to reduce disk activity.
- Implemented caching for
BoxShapeSettings, terrain shapes, and AABBs in the data store to accelerate terrain tracking. - Refactored the buoyancy system using Structure of Arrays (SoA) and double buffering for better data locality and parallelism.
- Cached body motion types in the data store to eliminate redundant JNI calls per tick.
Tuning
- Increased position and velocity iteration counts for a more stable physics simulation.
- Increased
OBJECTS_PER_TICKin theVxTerrainTrackerto 512 for higher throughput.
Miscellaneous
- Polished internal naming and consistency across buoyancy and physics systems.
- Updated documentation and numerous JavaDocs for clarity and completeness.
- Added English names for the "Box Thrower" and "Magnetizer."
- Cleaned up unnecessary code and renamed mixins to match the new project structure.
- Added author and license headers to relevant files.
Dependencies
Files
Metadata
Release channel
BetaVersion number
0.3.0Loaders
Game versions
1.20.1Environment
Client and server, required on both
Downloads
53Publication date
October 14, 2025 at 8:59 AMPublisher

xI-Mx-Ix
Member



