Changelog
Version History
⚡ 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.
⚡ PRAXIC 0.3.0 — Integrations & API
Server-side AntiCheat for Fabric 1.21.1 — No client installation required. This update adds server integrations, a public API for other mods, and a new stats command for server administrators.
🔔 Update Checker
Automatically checks Modrinth for new versions on every server start.
Notifies all online OP2+ players on join if a newer version is available.
The check is fully asynchronous — zero impact on server startup time.
Can be disabled in config/praxic.json.
| Config key | Default |
|---|---|
enableUpdateChecker |
true |
📡 Discord Webhook
Sends a rich embed alert to a Discord channel on every violation flag.
Each embed includes: player name, check name, violation count, details and action taken.
Color-coded by severity: 🟠 flagged, 🔴 kicked, 🔴 banned.
Disabled by default — enable it in config/praxic.json:
set enableDiscordWebhook to true and paste your webhook URL into discordWebhookUrl.
| Config key | Default |
|---|---|
enableDiscordWebhook |
false |
discordWebhookUrl |
YOUR_WEBHOOK_URL_HERE |
How to get a webhook URL: Discord → Channel Settings → Integrations → Webhooks → Create Webhook → Copy URL
🔧 OnViolation API
A Fabric event that fires on every PRAXIC violation flag.
Other mods can listen to PraxicViolationEvent.EVENT to react to violations.
Each event exposes:
player— the flagged ServerPlayercheckName— name of the triggered check (e.g."FlyCheck")violations— current violation count for this checkdetails— human-readable details of the violationaction— action taken:flag,warn,kick, orban
Use cases: custom punishments, economy penalties, external logging, custom alerts.
📊 Stats Command
New /praxic stats command available to all OP2+ operators.
Displays a live summary of the current server session:
- Total flags — how many times any check has fired
- Top checks — top 3 most triggered checks with flag counts
- Top players — top 3 most flagged players with total violation counts
Stats are tracked in-memory and reset on server restart.
⚙️ Technical Changes
PraxicViolationEventregistered as a standard Fabric array-backed event.PraxicStatsuses thread-safeAtomicIntegercounters.DiscordWebhookandUpdateCheckeruse Java 21HttpClient— fully async.ViolationManagerrefactored:resolvedActioncomputed once and shared across logging, Discord, API event and punishment logic.- Internal version bump to 0.3.0.
⚡ PRAXIC 0.2.0 — New Detection Modules
This update introduces three new detection modules targeting the most common combat and movement cheats: AutoClicker, Timer hack, and FastBreak.
🖱️ New Checks
- AutoClickerCheck: Detects abnormal click speed (CPS) during combat. Uses a 1-second sliding window for accurate measurement. Default threshold: 20 CPS.
- TimerCheck: Detects client-side game speed manipulation (Timer hack). Uses a 5-second sliding window counting position-only packets. Tuned to ignore natural sprint+jump spikes.
- FastBreakCheck: Detects breaking blocks faster than physically possible. Accounts for block hardness, tool speed, Haste and Mining Fatigue effects.
⚙️ Technical Changes
- Internal version bump to 0.2.0.
- All new checks are configurable via
config/praxic.json.