Skip to main content

🚀 EventForge v1.0.2 Release

EventForge v1.0.2 is a large framework update focused on wider server support, better validation tools, more event visuals, new objective types, public API improvements, and updated addon examples.

This version also moves EventForge from a Paper-focused build to a Spigot-compatible build.

tip

v1.0.2 is a strong update for both server owners and addon developers. It adds more ready-to-play content while also making the public API much more useful.


Highlights

Spigot support
/eventforge validate
/eventforge errors
More PlaceholderAPI placeholders
Public VariableService
Public ActionService
Public TextEffectService
Animated titles
Animated actionbars
Animated bossbar text
CAPTURE_ZONE objective
VISIT_REGIONS objective
INTERACT_BLOCKS objective
Event milestones
Improved template installer
Mob Invasion empty-area wave pause
/events join <event>
Updated ready-to-play templates
Updated Simple Example addon
Updated Advanced Example addon
Updated Skript addon
Protected built-in API registrations

Spigot support

EventForge now supports:

Spigot 1.21 - 1.21.11
Paper 1.21 - 1.21.11
Purpur 1.21 - 1.21.11

This makes EventForge easier to use on more server setups.


New validation commands

v1.0.2 adds:

/eventforge validate
/eventforge validate <event>

Use this to check event files without starting them.

It helps catch:

YAML mistakes
missing objective sections
invalid materials
invalid particles
wrong configuration paths
bad template setup

New error report command

v1.0.2 adds:

/eventforge errors
/eventforge errors <event>

This shows the latest validation or reload problems without searching through console logs.


Message cleanup

More command output now comes from:

messages.yml

Improved areas include:

event lists
active events
leaderboards
schedules
dialogue command output
/events console output
validation messages
error report messages
template installer messages
join messages

PlaceholderAPI improvements

v1.0.2 adds more PlaceholderAPI placeholders for:

active events
next scheduled event
player stats
event status
event cooldowns
event metadata
player score
player rank
participant count

Examples:

%eventforge_active_names%
%eventforge_next_event%
%eventforge_next_event_time%
%eventforge_player_total_score%
%eventforge_player_events_played%
%eventforge_player_wins%
%eventforge_event_mining_rush_active%
%eventforge_event_mining_rush_time_left%
%eventforge_event_mining_rush_player_score%
%eventforge_event_mining_rush_player_rank%

Public VariableService

v1.0.2 adds:

EventForgeAPI.getVariableService()

Addon developers can now parse EventForge variables properly instead of duplicating {var:key} logic.

Example:

EventForgeAPI.getVariableService().parse(eventId, text);
EventForgeAPI.getVariableService().parse(eventId, player, text);

This is useful for addon messages, custom objectives, custom actions, and external integrations.


Public ActionService

v1.0.2 adds:

EventForgeAPI.getActionService()

Addon developers can now execute EventForge actions through the official action system.

Supported through the shared action system:

MESSAGE
BROADCAST
TITLE
ACTIONBAR
SOUND
COMMAND
EFFECT
PARTICLE
FIREWORK
WEBHOOK
ANIMATED_TITLE
ANIMATED_ACTIONBAR

This means addons can reuse the same action behaviour as normal EventForge event configs.


Public TextEffectService

v1.0.2 adds:

EventForgeAPI.getTextEffectService()

Text effects can be used by EventForge and addons through the same parser.

Supported effects include:

<rainbow>Text</rainbow>
<reverse-rainbow>Text</reverse-rainbow>
<gradient:#22d3ed:#ffffff>Text</gradient>
<alternate:#22d3ed:#ffffff>Text</alternate>
<striped:#22d3ed:#ffffff>Text</striped>
<pulse:#22d3ed:#ffffff>Text</pulse>
<blink:#ffffff:#555555>Text</blink>
<wave:#22d3ed:#ffffff>Text</wave>
<scan:#777777:#ffffff>Text</scan>
<shimmer:#22d3ed:#ffffff>Text</shimmer>
<wobble:#22d3ed:#ffffff>Text</wobble>
<jump:#22d3ed:#ffffff>Text</jump>
<solid:#22d3ed>Text</solid>
<fire>Text</fire>
<ocean>Text</ocean>
<ice>Text</ice>
<magic>Text</magic>
<toxic>Text</toxic>
<sunset>Text</sunset>
<stack:rainbow,wobble>Text</stack>
<effects:fire,jump>Text</effects>

Legacy colour codes inside effect tags are cleaned up safely, so display names like &aCollection Rush do not show raw &a inside gradients.


Animated titles

v1.0.2 adds:

ANIMATED_TITLE

Example:

- type: ANIMATED_TITLE
frames:
- title: "<stack:rainbow,wobble>{event_display}</stack>"
subtitle: "&7Starting..."
fade-in: 5
stay: 40
fade-out: 10
interval: 5

Animated titles support:

placeholders
variables
text effects
animation ticks
tracked cancellation

Animated actionbars

v1.0.2 adds:

ANIMATED_ACTIONBAR

Example:

- type: ANIMATED_ACTIONBAR
frames:
- message: "<pulse:#22d3ed:#ffffff>+{score_change} points</pulse> &8| &7Total: &f{new_score}"
duration: 30
interval: 5

Animated actionbars are useful for player score feedback, milestone progress, event warnings, and short event messages.


Tracked animation manager

Animated title and actionbar tasks are now tracked internally.

They are cancelled safely when:

event stops
event reloads
all events stop
plugin disables

This prevents delayed animation frames from continuing after an event has ended.


Animated bossbar text

Bossbars can now rotate through configurable frames.

Example:

bossbar:
enabled: true
text: "&e{event_display} &8| &f{time_left}"
color: YELLOW
style: SOLID

animated-text:
enabled: true
interval: 20
frames:
- "<stack:rainbow,wobble>{event_display}</stack> &8| &f{time_left}"
- "&eScore: &f{score} &8| &7Rank: &e#{rank}"
- "<pulse:#22d3ed:#ffffff>Keep going!</pulse>"

This lets bossbars feel more active without needing a resource pack.


New objective: CAPTURE_ZONE

CAPTURE_ZONE is a KOTH-style objective.

It supports:

score while standing in zones
points every X seconds
contested zone handling
team field
team placeholder
zone particle rendering
capture actions
contested actions
rich placeholders

Public API classes:

CaptureZoneInfo
CaptureZoneObjectiveData
ZoneRenderInfo

Example use cases:

King of the Hill
capture zones
server war events
team capture points
PvP events

New objective: VISIT_REGIONS

VISIT_REGIONS is an exploration/checkpoint objective.

It supports:

score when entering configured regions
once-per-player visits
cooldowns
region discovery messages
region discovery actionbars
region actions
rich placeholders

Public API classes:

VisitRegionInfo
VisitRegionsObjectiveData

Example use cases:

exploration hunt
spawn tour
easter egg hunt
checkpoint event
landmark discovery

New objective: INTERACT_BLOCKS

INTERACT_BLOCKS lets players score by right-clicking configured blocks.

It supports:

vanilla blocks
ItemsAdder custom block IDs
Oraxen custom block IDs
Nexo custom block IDs
fallback materials
per-location tracking
global tracking
cooldowns
once-per-player interactions
cancel-event
success actions
cooldown actions
rich placeholders

Public API classes:

InteractBlockInfo
InteractBlocksObjectiveData

Example use cases:

bell hunt
button hunt
crate hunt
hidden object hunt
custom block interaction event

Event milestones

Events can now define score milestones.

Example:

milestones:
enabled: true
thresholds:
50:
display-name: "&e50 Points"
once-per-player: true
actions:
- type: MESSAGE
message: "&aYou reached {milestone_display}!"
- type: SOUND
sound: ENTITY_PLAYER_LEVELUP

Milestones support:

per-player tracking
score threshold detection
milestone actions
milestone placeholders
public API event

Milestone placeholders include:

{milestone}
{milestone_display}
{milestone_threshold}
{old_score}
{new_score}
{score}
{score_change}

Public API:

EventMilestoneInfo
EventForgePlayerMilestoneEvent

Improved template installer

Template installation now supports overwrite confirmation.

/eventforge installtemplate <template>
/eventforge installtemplate <template> confirm

This makes updating bundled templates safer because EventForge will not overwrite an existing installed event unless you confirm it.


Mob Invasion polish

Mob Invasion now supports:

start-requirements:
require-player-nearby: true
radius: 50

empty-area:
pause-waves: true
radius: 50

join:
enabled: true
world: world
x: 0
y: 70
z: 0
yaw: 0
pitch: 0

New player command:

/events join <event>

This helps stop waves from spam-completing when nobody is near the invasion area.


Updated ready-to-play templates

New bundled templates:

capture_zone.yml
exploration_hunt.yml
interact_blocks_hunt.yml

Existing templates were also updated to showcase v1.0.2 features while staying vanilla-friendly.


Protected built-in API registrations

Built-in action and objective registrations are now protected.

Protected built-in objectives:

MINE_BLOCKS
KILL_MOBS
FISH_ITEMS
COLLECT_ITEMS
MOB_INVASION
CAPTURE_ZONE
VISIT_REGIONS
INTERACT_BLOCKS

Protected built-in actions include:

ANIMATED_TITLE
ANIMATED_ACTIONBAR

This prevents addons from accidentally unregistering EventForge core systems.


Updated EventForgeSkriptAddon

EventForgeSkriptAddon was updated for v1.0.2.

Added new Skript expressions:

eventforge text effects of %string%
eventforge text effects of %string% at tick %number%
eventforge parsed variables of %string% for event %string%
eventforge parsed variables of %string% for event %string% and player %player%
eventforge milestone count of event %string%
eventforge milestones of event %string%
eventforge milestone threshold %string% of event %string%
eventforge milestone display name %string% of event %string%

Added new Skript events:

on eventforge event start
on eventforge event stop
on eventforge event finish
on eventforge reload
on eventforge score change
on eventforge milestone

Added event-context expressions:

current eventforge event id
current eventforge event display name
eventforge event player
eventforge old score
eventforge new score
eventforge score change
eventforge milestone id
eventforge milestone display name
eventforge milestone threshold
eventforge reload loaded events
eventforge reload validation warnings
eventforge reload validation errors
eventforge reload scheduled events
eventforge reload registered objectives

New example script:

eventforge-v102-features.sk

Updated Simple Example addon

EventForgeSimpleExample was updated to demonstrate v1.0.2 API features.

Added command examples:

/efsimple texteffects <text>
/efsimple parse <event> <text>
/efsimple milestones <event>

It now demonstrates:

TextEffectService
VariableService
EventInfo#getMilestones()
EventMilestoneInfo
EventForgePlayerMilestoneEvent

Updated Advanced Example addon

EventForgeAdvancedExample was updated to demonstrate advanced v1.0.2 API usage.

It now showcases:

custom objective registration
custom action registration
VariableService
TextEffectService
animated title/actionbar/bossbar config
event milestones
milestone placeholders
dialogue integration
custom objective scoring

The bundled relic_hunt.yml example was updated to v1.0.2.


Summary

EventForge v1.0.2 adds a lot of practical value:

more supported server software
better admin debugging tools
more polished event visuals
more ready-to-play objectives
better Mob Invasion behaviour
more useful public API
updated addon examples