Tags
Creators
Details
v1.3.5-mc1.21plus+mod
Compatibility
Required content
Changes
v1.3.5
This update focuses on performance optimization and brings major improvements. IT RUNS MUCH MORE EFFICIENTLY!
For version-to-version comparison, an 8-ball break was tested in Minecraft 1.21.8 on a Ryzen 9 5900X processor in a clean singleplayer world, using a 6×10 table, default ball radius, 150% break power, 1 GB allocated RAM, PBO enabled, and no resource pack. Each version was tested five times, with load monitored over 10 seconds.
| Version | Peak MSPT Range | Mean MSPT Range |
|---|---|---|
| v1.0.0 | 38–39 | 09–10 |
| v1.1.0 | 37–38 | 09–10 |
| v1.2.0 | 51–56 | 10-10 |
| v1.3.1 | 39–44 | 06-06 |
| v1.3.2 | 33–38 | 06-06 |
| v1.3.3 | 28-28 | 06-06 |
| v1.3.4 | 23–25 | 05-05 |
| v1.3.5 | 08–11 | 03–04 |
Performance Improvements
- Heavily optimized math functions and physics-engine logic to reduce unnecessary calculations.
- Restricted player-ball-table interaction checks to players within 50 blocks of the table center.
- Added a directional check to the quick-sorting logic to discard ball pairs that are moving away from each other.
- Greatly reduces peak load in situations where many balls are close together.
- Normal shot processing can now run at as low as ~1 mspt.
- Bot simulation speed is significantly improved, reaching up to ~2× the previous speed.
- Recommended bot performance settings have been adjusted accordingly.
- To further reduce lag spikes, the number of simulation steps per tick is now adjusted dynamically based on the number of moving balls on the table during simulation.
- The setting controls the maximum value, which corresponds to the steps per tick when one ball is moving. During simulation, this value is internally reduced when more balls are moving, such as being halved when two balls are moving.
- Changed to lightweight item detection for various held items in Minecraft 1.20.5 and later.
Mechanism Changes
- Stopped balls no longer receive physics updates every tick.
- Previously, all stopped balls were still processed each tick. This allowed force to propagate through tightly packed balls within the same tick after an active ball collided with them.
- Now, a stopped ball begins receiving physics updates only after it is affected by a collision. As a result, force propagation through packed balls is more likely to take multiple ticks instead of occurring within a couple of ticks.
- This change substantially reduces the processing cost of normal shots and also contributes significantly to faster bot simulations.
- The practical impact is limited:
- Normal tightly packed situations (i.e., break shots) can be handled by the NN break system, which is unaffected by this change.
- In ordinary gameplay, the visual difference is very small.
Fixes
- Fixed an issue in UK 8-Ball where foul feedback could unintentionally appear after the break shot without any foul.
- Fixed an issue in practice mode where only one player is given cue ball.
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:mksguUIH:bvFk8ucc"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:mksguUIH:bvFk8ucc"
}

