Tags
Creators
Details
1.4.9
Compatibility
Changes
Fixed hover, click, and cursor movement sometimes stopping after next-menu. Fixed delayed cleanup from an old menu removing the newly opened menu’s state. Added menu-key and session validation to delayed creation and cleanup tasks. Cursor updates now use the active menu in currentPlayerMenus instead of scanning the camera world. Cursor movement is calculated relative to the menu camera’s yaw and pitch rather than the player’s absolute rotation. Added a PlayerMoveEvent fallback for rotation updates missed by Paper 26.1.2. Enabled same-camera refresh when menus share a camera position. Before refreshing, CMP verifies that the camera exists, remains valid, and still carries the player. Fixed black screens and flickering when next-menu and stop-menu.enabled are both enabled. Same-camera transitions now preserve the camera and replace only menu text, items, and interactions for a seamless result.
Added interactive menu text features: hover text and cursor styles, animated click icons, MiniMessage chat actions, and permission-based text. Added a built-in CMP tutorial with Chinese, English, and Russian language switching. OP players can use /cmenu tutorial to receive the tutorial link. If unavailable, configure the URL (for example, http://127.0.0.1:8169/) or open CMP.html from the plugin folder. Added configurable HTTP server port, bind address, and public URL. Settings and the service can be reloaded. Fixed Maven resource filtering corrupting tutorial JavaScript. Replaced unsupported clickable file: links on Paper 26.1 with the built-in HTTP service.

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:XvRamTiN:LJFyH0A4"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:XvRamTiN:LJFyH0A4"
}

