Tags
Creators
Details
0.4.0
Compatibility
Changes
โก 0.4.0 โ Engine Update
PRAXIC now thinks before it acts.
๐ง Engine
๐ VL Decay โ Violations fade over time. Every 5 seconds without a flag, VL drops by 1. Clean players recover naturally โ no manual resets, no unfair buildup.
โฉ๏ธ Setback โ New action type: teleport back to last safe position instead of kicking. Same protection, less disruption. Set any check to
"setback"in config.
๐ก Lag Compensation โ Thresholds scale with player ping automatically. High latency gets room to breathe, low ping is held tight. Capped at 500ms to prevent spoofing.
๐ก๏ธ New Checks
๐ JesusCheck โ Detects walking on water. Accounts for Frost Walker, lily pads, water exit, knockback and vehicles.
๐ฅ VelocityCheck โ Detects knockback cancellation. Records position on hit, checks displacement 5 ticks later. Conservative threshold covers walls and weak hits.
๐ง Admin Tools
๐ก๏ธ Whitelist โ
/praxic whitelist add/remove/listโ exclude trusted players from all checks. Persistent across restarts. Shows online/offline status.
๐ History โ
/praxic history <player>โ persistent violation log with timestamps, actions and details. Works offline. Keeps 50 entries per player, shows last 10.
โ๏ธ Technical Changes
LagCompensationutility: clamped linear scaling per check, capped at 500ms.WhitelistManager:Set<UUID>with JSON persistence inconfig/praxic-whitelist.json.HistoryManager: per-player violation log with 50-entry cap inconfig/praxic-history.json.CheckManager: VL decay every 100 ticks, whitelist bypass beforerunChecks.PlayerData: addedlastSafeX/Y/Z,prevHurtTime, knockback tracking fields.ViolationManager: records toHistoryManageron every flag, newsetbackcase.- Internal version bump to 0.4.0.
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:CNFXCX5H:j1kmJwjN"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:CNFXCX5H:j1kmJwjN"
}

