All versions
1.2.1
Release
keranantixray 1.2.18 months ago 432
Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Bukkit
Folia
Paper
Spigot
Changes
KeranAntiXray (Folia / Paper 1.21+)
KeranAntiXray is a high-performance Anti-Xray and Anti-Freecam plugin designed specifically for Paper, Folia, and Canvas 1.21+. It provides advanced Nether Roof protection to prevent players from using Freecam to inspect areas above or below the bedrock layer.
Core Features
World-Based Anti-Xray
- Separate configuration for:
- Overworld
- Nether
- Hide blocks below a configurable Y-level
- Optimized for high-performance servers





Nether Roof Protection (Anti-Freecam)
When a player is below the bedrock roof:
- All blocks above the configured roof Y-level are sent as
AIR - Freecam cannot see bases or builds on the Nether roof When the player climbs above the bedrock roof:
- Full chunk data is restored automatically
- No interference with legitimate roof gameplay
-
⚡ Compatibility
- ✅ Paper 1.21+
- ✅ Folia
- ✅ Canvas
- ✅ Java 21+
- ❌ No ProtocolLib required
- ❌ No external AntiCheat required
⚙ Configuration Example
antixray:
overworld:
enabled: true
world: "world"
hide-below-y: 16
netherworld:
enabled: true
world: "world_nether"
hide-below-y: 16
nether-roof:
enabled: true
roof-y: 128
disable-when-player-above-roof: true
hide-roof-until-player-above-roof: true
Configuration Explanation:
roof-y→ Height of the Nether bedrock roofhide-roof-until-player-above-roof→ Sends AIR above roof until player climbs updisable-when-player-above-roof→ Disables restriction once player is above roof ---
Designed For
- Survival Servers
- SMP
- Anarchy
- Skyblock with Nether
- Folia / Canvas performance servers Prevents:
- Freecam roof base scouting
- Xray under bedrock
- Unauthorized structure inspection
Notes
- Operates at chunk data level (server-side)
- Does not modify actual blocks on the server
- Does not interfere with entities
- Fully region-thread safe for Folia
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:x4FBVZsb:wwnK5YQb"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:x4FBVZsb:wwnK5YQb"
}

