🚀 EventForge v1.0.3 Release
EventForge v1.0.3 is a major presentation, player choice, and API update.
This release adds optional TextEffect integration, manual event voting, scheduled hybrid voting, manual event queues, queue lobby countdowns, expanded PlaceholderAPI support, new public API services, new Bukkit events, stronger validation, and safer reload behaviour.
The classic EventForge experience is still the default. New premium systems are included, but they are opt-in unless you choose to enable them.
v1.0.3 is designed to make events feel more polished without breaking existing servers. Existing automatic events continue to work normally unless you enable the new voting, TextEffect, or manual queue systems.
Highlights
Optional TextEffect integration
Manual event voting
Scheduled hybrid voting
Manual event queues / hype phase
Optional queue lobby teleporting
Queue bossbar countdowns
3, 2, 1, GO queue titles
Manual-only scoring protection
Voting PlaceholderAPI support
Scheduled voting PlaceholderAPI support
Queue PlaceholderAPI support
Voting public API
Scheduled voting public API
Queue public API
Voting Bukkit events
Scheduled voting Bukkit events
Queue Bukkit events
Improved TextEffect reload handling
Improved sound compatibility
Expanded /eventforge validate checks
Updated bundled templates
Version metadata updated to 1.0.3-release
Backwards-compatible defaults
v1.0.3 keeps new installs safe by default.
TextEffect integration: disabled by default
Manual voting: disabled by default
Scheduled voting: disabled by default
Global participation: AUTOMATIC by default
Queue bossbar visuals: disabled by default
Queue countdown titles: disabled by default
Bundled templates: participation.mode: GLOBAL
This means existing event setups continue to behave like normal EventForge events until you choose to enable the new systems.
Optional TextEffect integration
Purchasing EventForge makes you eligible to download TextEffect for FREE!
EventForge can now hook into the separate TextEffect plugin to render animated shader-powered text in supported EventForge displays.
Supported areas include:
GUI item names and lore
Event broadcast/chat messages
Start/end/result messages
Titles and subtitles
Actionbars
Main event bossbars
Mob invasion / wave bossbars
Manual queue bossbars
Manual queue countdown titles
Manual queue GO titles
TextEffect is optional. If it is not installed, or if the integration is disabled, EventForge safely falls back to normal text formatting.
Configure it in config.yml:
integrations:
texteffect:
enabled: false
mode: "DISABLED"
Available modes:
ALWAYS
SERVER_STATUS
DISABLED
Sidebar animation and dialogue text animation are intentionally skipped in v1.0.3 to keep the release stable across Spigot, Paper, and Purpur 1.21 - 1.21.11.
Manual event voting
Admins can now start an event vote and let players choose which event should run next.
/eventforge vote start <event1> <event2> [event3...]
/eventforge vote cancel
/eventforge vote status
/eventforge vote confirm
Players vote with:
/events vote <event>
When a vote starts, EventForge broadcasts clickable vote options in chat. Players can click an event name to vote automatically, or use the command manually.
Manual voting is configured in config.yml:
voting:
enabled: false
default-duration: 60s
min-options: 2
max-options: 5
allow-vote-change: true
start-winner-automatically: true
broadcast-result: true
The winning event starts through EventForge's normal event start flow, so regular start checks still apply.
If the winning event uses manual participation, EventForge opens a queue instead of starting the event instantly.
Scheduled hybrid voting
v1.0.3 adds scheduled voting from schedule_config.yml.
Instead of always scheduling a single event, servers can schedule a vote and let players choose from a configured pool of events.
scheduled-voting:
enabled: false
schedules:
hourly_vote:
enabled: false
type: INTERVAL
every: 1h
duration: 60s
options:
- mining_rush
- mob_hunt
- fishing_frenzy
randomize-options: false
randomize-amount: 3
start-winner-automatically: true
announce-before:
- 5m
- 1m
require-no-active-events: true
require-no-active-vote: true
Scheduled votes support:
interval scheduling
pre-vote announcements
option pools
randomized options
active-event skip rules
active-vote skip rules
safe validation against loaded event templates
/eventforge schedules now shows both normal event schedules and scheduled event votes.
Manual event queues / hype phase
EventForge now supports manual participation mode.
Manual events open a timed queue before the event starts. Players join the queue, optionally teleport to a waiting lobby, see countdown visuals, and only queued players can score once the event begins.
participation:
mode: MANUAL
queue-duration: 30s
min-players: 1
max-players: 0
allow-leave-before-start: true
lobby:
enabled: false
world: "world"
x: 0.5
y: 80.0
z: 0.5
yaw: 0
pitch: 0
Player commands:
/events join <event>
/events leave <event>
/events tp <event>
/events teleport <event>
/events join <event> is queue-first. If no queue exists and the active event has a teleport location, it still supports the old teleport behaviour as a legacy fallback.
Queue bossbar and countdown titles
Manual queues can show a bossbar while the queue is open.
participation:
queue-bossbar:
enabled: false
title: "&ePreparing for &f{event_display} &8| &f{time_left} &8| &7Joined: &f{players}&8/&f{max_players}"
color: YELLOW
style: SOLID
Manual queues can also show 3, 2, 1, GO title countdowns.
participation:
queue-countdown:
enabled: false
seconds:
- 3
- 2
- 1
title: "&e{seconds}"
subtitle: "&f{event_display} &7starts soon..."
go-title: "&aGO!"
go-subtitle: "&f{event_display} &7has begun!"
fade-in: 0
stay: 20
fade-out: 10
The GO title is only shown if the queued event actually starts.
Manual scoring protection
Manual events are protected by a central score gate.
For participation.mode: MANUAL:
Only queued players can score
Non-queued players are ignored by objective scoring
Non-queued players do not appear on the leaderboard
Non-queued players do not receive participation rewards
For participation.mode: AUTOMATIC, events behave like previous EventForge versions.
The protection is applied centrally, so it covers built-in objectives, custom objective sessions, admin score commands, and public API score methods.
PlaceholderAPI additions
v1.0.3 adds placeholders for votes, scheduled votes, and queues.
Vote placeholders include:
%eventforge_vote_enabled%
%eventforge_vote_active%
%eventforge_vote_time_left%
%eventforge_vote_total_votes%
%eventforge_vote_options%
%eventforge_vote_option_ids%
%eventforge_vote_winner%
%eventforge_vote_winner_display%
%eventforge_vote_count_<event_id>%
%eventforge_vote_option_<event_id>%
Scheduled vote placeholders include:
%eventforge_scheduled_vote_enabled%
%eventforge_scheduled_vote_count%
%eventforge_next_scheduled_vote%
%eventforge_next_scheduled_vote_time_left%
%eventforge_next_scheduled_vote_options%
%eventforge_next_scheduled_vote_option_ids%
%eventforge_scheduled_vote_time_left_<id>%
%eventforge_scheduled_vote_options_<id>%
%eventforge_scheduled_vote_option_ids_<id>%
Queue placeholders include:
%eventforge_queue_active%
%eventforge_queue_event%
%eventforge_queue_event_display%
%eventforge_queue_time_left%
%eventforge_queue_players%
%eventforge_queue_min_players%
%eventforge_queue_max_players%
%eventforge_queue_joined%
%eventforge_queue_<event_id>_active%
%eventforge_queue_<event_id>_time_left%
%eventforge_queue_<event_id>_players%
%eventforge_queue_<event_id>_joined%
Public API additions
The public API version now reports:
1.0.3-release
New API services include:
EventVoteService
ScheduledVoteService
EventQueueService
New immutable snapshot objects include:
EventVoteInfo
ScheduledVoteInfo
EventQueueInfo
These APIs are snapshot-based and do not expose internal runtime objects such as vote sessions, queue objects, scheduler tasks, or mutable maps.
Bukkit API events
v1.0.3 adds Bukkit events for voting, scheduled voting, and queues.
Manual vote events:
EventForgeVoteStartEvent
EventForgeVoteCastEvent
EventForgeVoteEndEvent
EventForgeVoteCancelEvent
Scheduled vote events:
EventForgeScheduledVoteStartEvent
EventForgeScheduledVoteSkipEvent
Queue events:
EventForgeQueueOpenEvent
EventForgeQueueJoinEvent
EventForgeQueueLeaveEvent
EventForgeQueueStartEvent
EventForgeQueueCancelEvent
Queue start events only fire when the queued event successfully starts.
Queue cancel events can report reasons such as:
NOT_ENOUGH_PLAYERS
START_FAILED
Validation improvements
/eventforge validate was expanded to check more runtime and config problems.
New validation coverage includes:
invalid TextEffect mode
scheduled voting config
scheduled vote intervals
scheduled vote durations
scheduled vote options
duplicate scheduled vote options
invalid scheduled vote randomize amount
scheduled vote announce-before values
participation default mode
queue bossbar color
queue bossbar style
queue countdown seconds
queue countdown title timing
event participation mode
queue duration
min/max queue player limits
lobby world
lobby height
lobby pitch
schedule_config.yml can also be checked directly:
/eventforge validate schedule_config.yml
Sound compatibility
Sound playback was updated to avoid risky enum lookups on older 1.21 builds.
Configs can use formats such as:
sound: ENTITY_PLAYER_LEVELUP
sound: entity.player.levelup
sound: minecraft:entity.player.levelup
Dialogue sounds use the same safer sound handling.
Template polish
Bundled templates were updated for v1.0.3.
They now include:
variables:
event_plain_name: "Example Event"
This gives server owners a clean text value to use inside optional TextEffect tags.
Templates also include updated participation comments, optional TextEffect notes, and metadata updated from 1.0.2 to 1.0.3.
Compatibility summary
EventForge v1.0.3 avoids risky version-specific systems.
This update does not add:
NMS
ProtocolLib
packet sidebar rendering
direct TextEffect internals
Sound enum lookup
Bukkit scoreboard JSON hacks
Supported platforms remain:
Spigot 1.21 - 1.21.11
Paper 1.21 - 1.21.11
Purpur 1.21 - 1.21.11
Java 21 is recommended.
Summary
EventForge v1.0.3 is a major premium event presentation and player-choice update.
It adds optional animated TextEffect display support, full manual and scheduled event voting, and a complete manual queue/hype phase system. Server owners can keep classic automatic participation or enable manual queue mode for more polished competitions.
The update also expands PlaceholderAPI, validation, and the public API with safe immutable snapshots and Bukkit events for voting, scheduled voting, and queues.