
invertoTimer
A lightweight Velocity plugin for global countdowns and scheduled server-wide events.
invertoTimer 0.2.0
release3 февраля 2026 г.invertoTimer 0.2.0 — Release Notes
Highlights
0.2.0 is a major usability & extensibility update: it introduces text animations, upgrades cron to a full 5-field standard implementation, and delivers a large placeholder overhaul including MiniPlaceholders integration for richer player-aware rendering. It also modernizes the build and configuration stack (Kotlin DSL + SnakeYAML).
New Features
1) Full standard 5-field cron expression support (#2)
Cron parsing has been upgraded to a complete 5-field cron implementation, enabling common cron features typically found in Unix/Vixie-style cron:
- Lists (
1,2,3) - Ranges (
1-5) - Steps (
*/5,1-10/2) - Month / weekday names (
JAN..DEC,MON..SUN) - DOM/DOW semantics aligned with traditional cron expectations
This makes repeating timers far more expressive for real production schedules.
2) {animation:<id>} placeholder + animations.yml (#3)
You can now reference time-based animated text via:
text: "{animation:new-year-bossbar}"
Animations are defined in a new animations.yml file and can be used anywhere player-visible text is rendered (showcases, after.text, text actions, etc.). Animation frames themselves support normal placeholder rendering and MiniMessage.
3) Placeholder expansion + MiniPlaceholders integration (#4)
The placeholder system has been significantly extended:
- More built-in placeholders and better formatting options
- Parameterized time units:
{days: Days}/{hours: h}/{minutes: m}/{seconds: s}- When a suffix is provided, zero-valued units can be hidden to keep output clean
- Custom remaining formatting:
{remaining:hh:mm:ss}(and other pattern styles supported by the implementation)
MiniPlaceholders is now supported as an optional dependency, enabling richer placeholders when installed, without requiring it for normal operation.
Improvements
1) Config parsing migrated to SnakeYAML
Configuration handling was refactored to use SnakeYAML for YAML parsing, improving compatibility and maintainability of config loading.
2) Build modernization: Gradle 9.3.1 + Kotlin DSL
The build setup has been updated:
- Gradle bumped to 9.3.1
- Project build script migrated to
build.gradle.kts
This improves IDE integration and keeps the project aligned with modern Gradle workflows.
3) General refactors and cleanup
A round of code cleanup and refactoring improves readability and makes future feature work easier.
Fixes
- Reduced edge-case behavior gaps in cron parsing by moving to a complete standard 5-field implementation.
- Improved placeholder rendering correctness and consistency via the placeholder overhaul (especially for player-aware rendering when MiniPlaceholders is available).
Configuration Notes (Breaking / Behavior Changes)
- New config file:
animations.yml- Required only if you use
{animation:<id>}placeholders.
- Required only if you use
- Cron behavior:
- Cron parsing is now stricter and more standard-compliant; invalid expressions that previously “worked by accident” may now error.
- Placeholder behavior:
- Time-unit placeholders now support suffix and zero-hiding semantics when parameters are used.
- Remaining time can be formatted using
{remaining:<pattern>}.
invertoTimer 0.1.0
release3 февраля 2026 г.invertoTimer 0.1.0 — Release Notes
Highlights
0.1.0 focuses on much richer player-facing output, a more consistent configuration format, and better runtime behavior for long-running countdowns (New Year events, server-wide timers, etc.).
New Features
1) MiniMessage + {i18n:key} support in player-visible texts
All texts that are shown to players now support:
{i18n:key}replacement (language file lookup)- MiniMessage formatting (e.g.
<red>,<gold>,<gradient:...>) - Existing placeholders like
{remaining},{id},{target}, etc.
This applies to:
- showcases (actionbar / bossbar / text / title)
- text actions (message / actionbar / title / subtitle)
2) Showcase “after” stage (post-target display)
Actionbar / Bossbar / Title showcases can optionally keep displaying a different message after the countdown hits 0, for a configured duration:
after:
text: "Happy New Year!"
duration: 10m
For title showcases, after.text supports the same title-array format (see below).
3) Unified Title showcase format
Title showcases now use a single title: showcase entry and support both title & subtitle together.
Instead of configuring separate “title” and “subtitle” showcases, you configure one:
title:
text:
- "<gold>New Year</gold>"
- "<gray>{remaining}</gray>"
4) Title timing support (fadeIn/stay/fadeOut)
Title text now supports optional timing parameters (in seconds), matching Title.Times:
text: [title, subtitle, fadeIn, stay, fadeOut]
Missing values fall back to defaults.
5) Bossbar color configuration
Bossbar showcases now support an optional color field:
bossbar:
color: red
Invalid/missing values fall back to a safe default.
6) Regex-based transfer targeting
Transfer action no longer uses all. Instead, it uses a regex pattern:
transferee: ".*"
This matches online player usernames using Java regex matches().
Improvements
1) Runtime refactor: factories + slots + runtime context
The runtime has been restructured into clearer components:
ActionFactory/ShowcaseFactoryfor constructing behaviors from configShowcaseSlotfor interval rate limitingRuntimeContextfor shared access to proxy + filtering + rendering
This makes the project easier to extend and keeps timer logic cleaner.
2) Reload behavior improvements
Reload now properly disposes active runtime objects and avoids leaving stale UI elements behind (e.g. repeated bossbars).
Fixes
- Fixed bossbar duplication issues after reload by ensuring existing bossbars are hidden/cleaned up before rebuilding.
- Reduced countdown jitter by improving how remaining seconds are derived and displayed (especially under scheduler drift).
Configuration Notes (Breaking / Behavior Changes)
transferaction:- Removed
all - Now expects a regex in
transferee
- Removed
- Title showcases:
- Should be configured using
text: [...]array format if you need timings - Subtitle is no longer a separate showcase type; it is part of the title showcase
- Should be configured using
invertoTimer 0.0.1
release31 декабря 2025 г.invertoTimer v0.0.1 — Release Notes
This is the first public release of invertoTimer, a lightweight Velocity plugin for network-wide countdowns and scheduled events.
Highlights
invertoTimer introduces a simple but flexible timer system built around two core ideas: Timers (when an event happens) and Outputs (what players see and what actions run).
Timers
Timers can be scheduled using either:
- Cron (repeatable schedules)
- Fixed time (one-shot, absolute timestamp)
Showcases (Countdown Displays)
Timers can broadcast countdown information using multiple showcase types:
- Actionbar
- Bossbar
- Chat text
- Title showcase (supports both title and subtitle under a single
showcases.titleconfiguration)
Player-visible showcase text supports:
- Placeholders such as
{remaining},{days},{hours},{minutes},{seconds},{id},{description},{target} - MiniMessage formatting for rich colors and styles
{i18n:key}tokens for language-based text substitution
Actions (Scheduled Triggers)
Timers can trigger actions at offsets relative to the target time:
- Text action: message/actionbar/title/subtitle output
- Transfer action: send matched players to a target backend server
- Command action: run commands as console or as matched players
Player selection for transfer and command (executor=player) uses:
transfereeas a Java regex matching online player usernames (matches()), with".*"selecting all players.
Server Limitations
Both global and per-timer server limitations are supported to control where timers apply (blacklist/whitelist by backend server name).
i18n
The plugin supports language files via .properties bundles and can be reloaded with configuration reload.
Notes
- This is an early release (
0.0.1). Configuration format and features may evolve based on feedback. - Please report issues and suggestions via GitHub Issues, including config files and logs when possible.