Tags
Creators
Details
v1.3.4-mc1.21plus+mod
Compatibility
Required content
Changes
1.3.4
This update focuses on a "distributed" bot thinking strategy, free ball rule for Snooker, and additional performance optimization and fixes.
Improvements
-
Assigned fixed UUIDs to helper entities and the pool-table marker to make entity selection slightly faster.
Helper entities
rhp1–rhp3:UUID:[I;797665,435737,0,4-6] # swPool, helper, 0, #4-#6 000c2be1-0006-a619-0000-00000000000[4-6]Pool-table marker:
UUID:[I;797665,82253,0,0] # swPool, table, 0, 0 000c2be1-0001-414d-0000-000000000000 -
Reduced the frequency of
OnGroundNBT checks to once every 4 ticks. -
Reduced entity position reads after movement by accumulating position from the previously stored position and movement speed instead. Full position reads are now performed once every 10 ticks.
-
For Minecraft 1.21+, reduced unnecessary calculations during spin rendering by normalizing quaternions less frequently, now once every 10 ticks.
These optimizations reduced active-gameplay MSPT by up to approximately 17% compared with v1.3.3 in a testing scenario outlined in README.
Changes / Additions
-
Dynamic pool-table scaling now supports ball radii above
1250, up to1500. Please use multiples of 250 for best results. -
If the ball-spinning feature is turned off, balls will no longer spin during the pocketing animation.
-
The bot can now distribute its thinking time across multiple ticks. This helps prevent short lag spikes, and the maximum number of simulation steps per tick can be configured based on the processing power of the client or server.
-
Fixed static ball-rendering issues when the bot is thinking.
-
Added a slight penalty for shots that are too straight, as they often make positioning for the next shot harder.
-
Added an [experimental] Snooker free ball mechanism
- After a foul, the datapack can detect whether the incoming player is snookered and award a free ball when applicable.
- The first ball hit is treated as the nominated free ball.
- If the nominated free ball is potted, it scores the same value as the original ball on.
- A free ball is not awarded when the incoming player already has ball in hand in the D-Zone.
-
Revised Chinese language terminology: ball in hand (cue ball replacement) is now referred to as 手中球 in all games, while a Snooker free ball is referred to as 自由球.
-
Shortened the name of release zip files and included version number.
Fixes
- Fixed a 9-ball rule issue where potting a lower-numbered ball after illegally hitting the next higher-numbered ball first was not correctly identified as a foul.
- Fixed a bug where players sometimes could not shoot when pressing Shift.
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:CcI1Giqt"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:mksguUIH:CcI1Giqt"
}

