Changelog
OnTime 2.1.0
New Features
Timer Sequences
Chain multiple timers so the next one starts automatically when the current finishes.
Use /timer sequence <name> <nextName> to set it up.
Repeat Mode
Loop a timer a fixed number of times or indefinitely.
/timer repeat <name> toggles infinite repeat. /timer repeat <name> <count> sets a limit.
Scoreboard Finish Conditions
Stop a timer early when a scoreboard objective reaches a value.
/timer condition <name> <objective> <score> [target] — supports wildcard * to match any online player.
Active Timer Scoreboard Sync
The active timer's remaining seconds are automatically written to the ontime_active scoreboard objective every tick, enabling vanilla /execute if score integrations.
/timer command subcommand
View or update the finish command of an existing timer without recreating it.
Timer History Log
Every timer completion is now recorded in config/ontime/history.json with timestamp, name, duration, mode and command.
WebSocket Server (optional)
An optional TCP server that broadcasts timer events (start, finish, pause, resume, tick) as JSON. Enable via config/ontime/config.json. Useful for Discord bots or admin panels.
API Additions
- Event callbacks:
registerOnStart,registerOnFinish,registerOnPause,registerOnResume,registerOnTick - External finish conditions:
registerFinishCondition(timerName, Supplier<Boolean>) - FTB Quests helpers:
isTimerActive(name),isAnyTimerActive() - Custom HUD renderer: register your own
ITimerRendererto replace the built-in overlay setTimerCommand,setTimerRepeatadded to the public API
LuckPerms Integration
Each /timer subcommand now has its own permission node (ontime.command.<subcommand>), with OP level 4 as fallback when LuckPerms is not present.
Internal
- Reduced
ClientTimerStateduplication across loaders
Dependencies
Files
External resources
Project members

MateoF024
Member


