Tags
Creators
Details
1.1.0
Compatibility
Changes
π What's New in 1.1.0
This release brings massive improvements to the built-in physics engine, introduces a zero-overhead packet factory, and expands the API with a wide range of zero-allocation wrappers.
𧬠Physics & Backtrack Engine Upgrades
The ClientStateTracker and PlayerState have been significantly deepened to provide a flawless backtrack and simulation experience:
- Dynamic Hitboxes (AABB):
MutableAABBnow dynamically adjusts its dimensions based on the player's state. It accurately simulates heights and widths for Sneaking (1.5h), Swimming/Crawling/Elytra (0.6h), Sitting, and Trident Spin Attacks. - Attribute Support: The tracker now reads the
GENERIC_SCALEattribute directly from the player to perfectly scale bounding boxes. - Ping-less Simulation (Transaction IDs): Added interception of
ServerboundPongPacket. The Ring Buffer now binds exacttransactionIds to eachTrackedFrame. This allows you to simulate backtrack based on explicit transaction confirmations rather than unpredictable network ping!
π SlipstreamFactory (0-Overhead Packet Creation)
Tired of ProtocolLib's heavy new PacketContainer(type) reflection?
- Introduced
SlipstreamFactorywhich utilizessun.misc.Unsafeand constant-foldedMethodHandlesto instantly instantiate NMS packets without calling their constructors. This means you can create and spam fake packets with absolute zero overhead. - New Player Extensions: Added
player.sendPacket(wrapper.handle)to send packets down the pipeline (triggering youronPacketOutlisteners) andplayer.receiveFakePacket(wrapper.handle)to simulate incoming client packets.
π¦ Extensive Zero-Allocation Wrappers
We expanded our @JvmInline value class wrapper coverage so you rarely have to use raw modifier() indexes.
New wrappers include:
WrapperPlayerCommandPacket(Sprint, Sneak, Elytra states)WrapperPlayerInputPacket(WASD, Jump, Shift)WrapperPongPacket(Transaction IDs)WrapperChatPacket&WrapperSystemChatPacketWrapperPlayerInfoUpdatePacket(TabList & Profiles)WrapperUpdateAttributesPacket&WrapperSetEntityDataPacket
π Fixes & Chores
- Migrated
ClientStateTrackerto use the new inline wrappers instead of rawmodifierreads. - Fixed internal registry bootstrapping (
Bootstrap.bootStrap()) for offline test environments. - Expanded test coverage for
MutableAABB,PlayerState, and the newSlipstreamFactory.
Full Changelog: https://github.com/ClCody/Slipstream/compare/v1.0.0...v1.1.0
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:OFTR3qou:Z7h7jIff"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:OFTR3qou:Z7h7jIff"
}

