# Item Despawn Timer — Fabric 26.2 port This branch is Fabric-only and intentionally separates authority: * `config/item-despawn-timer-server.json` — **dedicated server only**; server gameplay: default despawn time and per-item overrides. `-1` means infinite when enabled. * `config/item-despawn-timer-client.json` — **client only**; presentation settings: timer/name visibility, heights, threshold and colors. Since v0.3.7, a physical client no longer creates `item-despawn-timer-server.json`. The main Fabric initializer also runs on clients, so `ServerConfig` explicitly checks the physical environment before reading/writing its persistent file. Integrated singleplayer uses the built-in server defaults in memory; dedicated servers continue to use the persistent server JSON. Minecraft 26.2 uses the unobfuscated Mojang/official names and Java 25. This port therefore does not reuse the old Yarn-named common/client GUI classes from 0.2.2. Client rendering lives only in `src/client`, while server/gameplay code lives in `src/main`. Run `compiler.bat` on Windows or `./compiler.sh` on Linux/macOS. The script checks whether the existing JAR contains the same `mod_version+mc` as `gradle.properties`; matching builds offer Push/Recompile/Quit. After a successful build it offers Git push and retries failed pushes in groups of three. ## Commands (v0.3.7) `/idt reload` - Client player (non-operator): reloads only `item-despawn-timer-client.json`. - Client player (operator/moderator): reloads the client config and requests a server-config reload. The server validates permission before accepting the request. - Dedicated-server console: reloads only `item-despawn-timer-server.json`. - The server-side `/idt reload` node requires Minecraft moderator/operator permission, so it is not advertised by the server command tree to ordinary players. The client-side command remains available because ordinary players are allowed to reload their own presentation config. ## Client display colors `clockColor`, `timerTextColor`, and `nameTextColor` use `#RRGGBB` values. The bundled `clock.png` is rendered as a bitmap glyph on the same baseline as the countdown text.