Tags
Creators
Details
Licensed MIT
Published 5 months ago
Updated last month
All versions
1.17.7
Release
RayTraceAntiXray (fork) 1.17.72 months ago 496
Compatibility
Minecraft: Java Edition
26.2
26.1.2
1.21.11
Platforms
Folia
Paper
Purpur
Changes
Added
- Paper 26.x compatibility & multi-version architecture (#4) — version-adaptive NMS layer (NmsCompat / NmsBridge) with dedicated runtime modules for Paper/Folia 1.21.11, 26.1.2 and 26.2, built from a single codebase.
- Paper Anti-Xray setup reminder (#7) — operators receive a clickable in-game notice (plus console warnings on startup) when Paper Anti-Xray is disabled or not using engine-mode: 1; can be dismissed or re-enabled via /raytraceantixray reminder, persisted in reminder.yml.
- CI now publishes build artifacts on every build (#7).
- Additional administrative commands and expanded documentation (#3).
- Dependabot — weekly automated dependency updates for Gradle and GitHub Actions (#9). Fixed
- Crash on Folia servers (#8) — IllegalStateException: Thread failed main thread check: Cannot asynchronously load chunks from the third-person camera ray trace (PlayerMoveEvent → getMaxZoom → Level.clip). Camera segments are now pre-checked against loaded chunks via lock-free getChunkIfLoaded; unloaded/unowned chunks fail soft (camera stays at eye level) instead of triggering an off-thread synchronous load. Hardened against NaN/Infinity camera data, extreme coordinates, and check/use races.
- Pending chunk lifecycle & Leaf target queues (#3) — fixed leaks/stale entries in pending chunk-block bookkeeping and Leaf async chunk-send target queues.
- Stale dirty state (#5) — chunk dirty flags are now acknowledged only after a completed ray trace pass, so freshly modified chunks are no longer skipped.
- Packaging (#9) — version-pinned shadowJar include rules silently dropped runtime classes after dependency bumps (NoClassDefFoundError at enable); includes are now wildcarded. Performance
- Dirty-chunk tracking (#5, design by TauCu) — the ray tracer only reprocesses chunks whose blocks actually changed instead of rescanning every registered chunk each tick, with per-location change detection to avoid redundant work. Dependencies / Build
- packetevents-spigot 2.12.1 → 2.13.0 (restores initialization on Folia/Paper 26.x)
- faststats metrics-bukkit 0.27.1 → 0.29.4
- Dev bundles: 26.2 build.56-alpha → build.119-stable, 26.1.2 build.65 → build.74-stable
- Gradle wrapper 9.5.0 → 9.7.1 · shadow 9.3.1 → 9.6.1 · run-paper 3.0.2 → 3.1.0 · paperweight userdev beta.21 → beta.22
- JUnit 5.11 → 6.1.3, Mockito 5.14.2 → 5.23.0 (test-only)
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:9eBJnGrb:qDB46o0Y"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:9eBJnGrb:qDB46o0Y"
}

