Compatibility
Minecraft: Java Edition
1.20.1
Platforms
Supported environments
Creators
Details
Licensed LGPL-3.0-only
Published last month
Updated 6 days 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
PhysicsCreatorItem
to 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
getJoltBody
overloads to support direct access viabodyId
.
Fixes
- Separated client-only code to prevent
ClassNotFoundException
on 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
ClassCastException
when 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
VxBody
hierarchy. - Centralized physics pause logic into a global utility.
- Simplified object management by removing the
VxUpdateContext
. - Centralized seat registration via the
VxMountable
interface. - Switched the persistence logic from an event-based system to Minecraft hooks for improved reliability.
- Converted
VxClientMountingManager
to 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_TICK
in theVxTerrainTracker
to 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.
Files
Metadata
Release channel
BetaVersion number
0.3.1Loaders
Game versions
1.20.1Downloads
35Publication date
October 16, 2025 at 2:57 AMPublisher

xI-Mx-Ix
Member