Skip to main content

🚀 EventForge v1.0.0 Release

EventForge v1.0.0 is the first full release of EventForge, moving the plugin from beta into a more complete and polished release state.

Last updated 18/05/2026

This release focuses on:

Paper/Purpur compatibility
PlaceholderAPI support
expanded developer API
Skript support
event metadata
advanced conditions
better validation
better diagnostics
updated example addons

Compatibility

EventForge has been tested on:

Paper 1.21.x
Purpur 1.21.x

Tested Minecraft versions:

1.21
1.21.2
1.21.4
1.21.5
1.21.8
1.21.11

Required Java version:

Java 21
info

EventForge is designed for modern Paper and Purpur servers.


Added PlaceholderAPI Support

EventForge now includes optional PlaceholderAPI support.

PlaceholderAPI is not required for EventForge to run, but if it is installed, EventForge automatically registers its placeholders.

General placeholders​

%eventforge_version%
%eventforge_api_version%
%eventforge_loaded_count%
%eventforge_active_count%
%eventforge_active_events%

Event placeholders​

%eventforge_event_active_<event>%
%eventforge_event_loaded_<event>%
%eventforge_event_display_<event>%
%eventforge_event_time_left_<event>%
%eventforge_event_elapsed_<event>%
%eventforge_event_participants_<event>%

Player placeholders​

%eventforge_player_score_<event>%
%eventforge_player_rank_<event>%
%eventforge_player_participating_<event>%

Leaderboard placeholders​

%eventforge_top_player_<event>_1%
%eventforge_top_score_<event>_1%

Schedule placeholders​

%eventforge_scheduled_count%
%eventforge_next_scheduled_event%
%eventforge_next_scheduled_time%
%eventforge_event_scheduled_<event>%
%eventforge_event_next_start_<event>%

Metadata placeholders​

%eventforge_event_category_<event>%
%eventforge_event_difficulty_<event>%
%eventforge_event_author_<event>%
%eventforge_event_version_<event>%
%eventforge_event_tags_<event>%
%eventforge_event_description_<event>%

These placeholders can be used in supported scoreboard, TAB, hologram, menu, chat, and dashboard plugins.


Added Event Metadata

Events can now include optional metadata.

Example:

metadata:
category: "Mining"
tags:
- mining
- survival
- economy
difficulty: "Easy"
author: "HxZe"
version: "1.0.0"
description:
- "Mine configured blocks to earn points."
- "Compete for leaderboard rewards."

Metadata is useful for:

event browsers
custom GUIs
Discord embeds
dashboards
event pack tools
PlaceholderAPI
developer addons

Developers can access metadata through:

eventInfo.getMetadata()

Added Advanced Conditions

EventForge conditions have been expanded.

Events can now use:

minimum players
world restrictions
required permissions
blocked permissions
operator requirements
Minecraft time windows
weather restrictions

Example:

conditions:
minimum-players: 1
worlds:
- world

permissions: []
blocked-permissions: []

require-op: false
require-non-op: false

time:
enabled: false
min: 0
max: 23999

weather:
allowed: []

Permission conditions​

permissions:
- "eventforge.event.mining"

Blocked permission conditions​

blocked-permissions:
- "eventforge.event.blocked"

Time conditions​

time:
enabled: true
min: 0
max: 13000

Weather conditions​

weather:
allowed:
- CLEAR
- RAIN
- THUNDER

This gives server owners and event pack creators more control over when events can start.


Added Public API Services

The EventForge API has been expanded with several new services.

EventPackService​

Added:

EventForgeAPI.getEventPackService()

Developers can now read:

pack IDs
pack display names
pack enabled state
pack authors
pack versions
pack event file counts
total pack count
enabled pack count

Useful for:

event pack browsers
custom GUIs
dashboards
Discord bots
pack management addons

StatsService​

Added:

EventForgeAPI.getStatsService()

Developers can now read:

player stats
per-event player stats
all tracked player stats
event history
recent event history
tracked player count
history count
winner data

Useful for:

player profile menus
stats GUIs
Discord commands
web dashboards
holograms
analytics tools

ScheduleService​

Added:

EventForgeAPI.getScheduleService()

Developers can now read:

scheduled event IDs
scheduled event info
next scheduled event
next start epoch second
seconds until next start
schedule type
interval seconds
announce-before timings
scheduled event count

Useful for:

scoreboards
TAB integrations
Discord countdowns
NPC displays
event dashboards
server websites

ObjectiveService​

Added:

EventForgeAPI.getObjectiveService()

Developers can now read:

registered objective IDs
whether an objective is registered
registered objective count

Useful for:

diagnostics
setup GUIs
admin dashboards
custom objective addon checks

Added Bukkit Developer Events

EventForge now fires custom Bukkit events for addon developers.

Added:

EventForgeEventStartEvent
EventForgeEventStopEvent
EventForgeEventFinishEvent
EventForgePlayerScoreChangeEvent
EventForgeReloadEvent
EventForgeRewardExecuteEvent

Event start/stop/finish events​

Developers can listen for:

EventForgeEventStartEvent
EventForgeEventStopEvent
EventForgeEventFinishEvent

Example:

@EventHandler
public void onEventStart(EventForgeEventStartEvent event) {
Bukkit.broadcastMessage("Event started: " + event.getEventDisplayName());
}

Score change event​

Added:

EventForgePlayerScoreChangeEvent

This event is cancellable and can modify the final score.

Example:

@EventHandler
public void onScoreChange(EventForgePlayerScoreChangeEvent event) {
if (event.getPlayer().hasPermission("eventforge.booster.double")) {
event.setNewScore(event.getNewScore() * 2);
}
}

Reload event​

Added:

EventForgeReloadEvent

This fires after EventForge reloads and includes reload summary information.

Useful for:

refreshing addon caches
refreshing menus
updating dashboards
logging validation status

Reward execution event​

Added:

EventForgeRewardExecuteEvent

This event fires before EventForge executes a reward command.

It is cancellable and the command can be modified.

Example:

@EventHandler
public void onReward(EventForgeRewardExecuteEvent event) {
event.setCommand(event.getCommand().replace("diamond", "emerald"));
}

Reward types:

PARTICIPATION
LEADERBOARD

Useful for:

reward logging
Discord logs
custom reward systems
anti-abuse checks
reward multipliers
external integrations

Added Helper API Improvements

Custom objective developers now have more helper methods.

EventObjectiveLoadContext​

New helper methods include:

getLong(...)
getKeys(...)
isSection(...)
getCleanStringList(...)

requireString(...)
requirePositiveInt(...)
requirePositiveDouble(...)

getMaterial(...)
getEntityType(...)

getTimeSeconds(...)
requireTimeSeconds(...)

Example:

Material block = context.getMaterial("block", Material.STONE);
int points = context.requirePositiveInt("points");
long interval = context.getTimeSeconds("hint-interval", 30);

This makes custom objective config loading cleaner and safer.


EventObjectiveSession​

New helper methods include:

isActive()
getParticipantCount()
isParticipating(player)
getTopScore()
hasScores()
getLeaderboard(limit)

Example:

for (EventScoreEntry entry : session.getLeaderboard(3)) {
Bukkit.broadcastMessage("#"
+ entry.getRank()
+ " "
+ entry.getPlayerName()
+ " - "
+ entry.getScore());
}

This gives custom objective developers more tools during active events.


Added Better Optional Provider Validation

EventForge now gives clearer validation warnings for optional custom content providers.

Covered providers:

ItemsAdder
Oraxen
Nexo
MMOItems
MythicMobs

Updated objectives:

Collection Rush
Fishing Frenzy
Mob Hunt
Mob Invasion

Example warning:

Custom item provider ITEMSADDER is used, but ItemsAdder is not installed or enabled.

Example warning:

Custom mob provider MYTHICMOBS is used, but MythicMobs is not installed or enabled.

This makes it easier to debug custom event packs and optional integrations.


Improved Load and Reload Diagnostics

EventForge now tracks and displays better reload information.

When running:

/eventforge reload

admins now see a summary like:

Loaded events: 5 | Warnings: 0 | Errors: 0

The console also logs:

Event load summary:
- Files scanned: 5
- Loaded events: 5
- Disabled files skipped: 0
- Failed files: 0
- Validation warnings: 0
- Validation errors: 0
- Scheduled events: 1
- Registered objectives: 5

This makes debugging event files, packs, and custom objectives much easier.


Added EventForge Skript Addon

A new optional companion addon is available for Skript users.

The Skript Addon allows scripts to:

start EventForge events
stop EventForge events
finish EventForge events
add EventForge points
set EventForge scores
check if events are active
check if events are loaded
read player scores
read player ranks
read top players
read top scores
read schedule information
read event metadata

Example:

command /eftest:
trigger:
start eventforge event "mining_rush"

command /efscoretest:
trigger:
add 10 eventforge points to player for "mining_rush"
send "&7Score: &f%eventforge score of player in \"mining_rush\"%"

The Skript Addon is optional and requires:

EventForge
Skript
EventForgeSkriptAddon

Updated Simple Example Addon

The Simple Addon has been updated to demonstrate the expanded EventForge API.

It now demonstrates:

EventService
EventPackService
StatsService
ScheduleService
ObjectiveService
Event metadata
Bukkit developer events
Reward execution events
Score change events

Commands:

/efsimple info
/efsimple events
/efsimple active
/efsimple leaderboard <event>
/efsimple packs
/efsimple schedules
/efsimple objectives
/efsimple stats <player>
/efsimple history
/efsimple metadata <event>

This addon is useful for developers learning how to use the EventForge API.


Updated Advanced Relic Hunt Addon

The Advanced Relic Hunt addon has been updated to demonstrate newer developer features.

It now demonstrates:

EventObjectiveLoadContext helper methods
EventObjectiveSession helper methods
metadata/tags in config
advanced conditions in config
readable time parsing
custom objective registration
custom scoring
custom leaderboards

Example:

metadata:
category: "Adventure"
tags:
- relic
- hunt
- exploration
- custom-objective
difficulty: "Medium"

Example:

hint-interval: 30s

The addon uses:

context.getTimeSeconds("hint-interval", 30);
session.getLeaderboard(3);

Improved Score Handling Safety

ActiveEvent#addScore now handles zero or negative final scores more safely.

If a score-change listener modifies the final score to 0 or below, EventForge removes the player's score/participant entry instead of storing an unwanted zero or negative score.

This keeps scoring behaviour consistent.


API Documentation Updated

Developer documentation has been expanded for:

Maven setup
API overview
EventPackService
StatsService
ScheduleService
ObjectiveService
Bukkit events
Custom objectives
Simple addon
Advanced addon
Skript addon

Migration Notes

From beta to release​

If you are updating from the beta version, update your API dependency to:

<dependency>
<groupId>dev.hxze</groupId>
<artifactId>eventforge-api</artifactId>
<version>1.0.0-release</version>
<scope>provided</scope>
</dependency>

Do not install an API jar​

Server owners should only install:

EventForge.jar

Addons use the API through Maven and depend on EventForge at runtime.

Example addons​

If you are using the example addons, rebuild or download the updated versions designed for 1.0.0-release.

Existing event files​

Existing event files should continue to work.

New optional config sections include:

metadata
advanced conditions

Safe condition defaults:

conditions:
minimum-players: 1
worlds:
- world

permissions: []
blocked-permissions: []

require-op: false
require-non-op: false

time:
enabled: false
min: 0
max: 23999

weather:
allowed: []
warning

Do not leave condition values blank.


Recommended Update Steps

  1. Stop your server.
  2. Back up your plugins/EventForge/ folder.
  3. Replace the old EventForge jar with the new release jar.
  4. Start the server.
  5. Check the console startup output.
  6. Run:
/eventforge reload
  1. Check the reload summary.
  2. Run:
/eventforge list
/eventforge schedules
/eventforge check <event_id>
  1. Test one event manually.

Example:

/eventforge start mining_rush
/eventforge points <player> mining_rush 10
/eventforge finish mining_rush

Summary

EventForge v1.0.0 Release is a major improvement over the beta version.

It adds:

PlaceholderAPI support
Skript support
Paper/Purpur testing
expanded Java API services
Bukkit developer events
reward execution event
event metadata/tags
advanced conditions
better validation
better reload diagnostics
updated example addons
custom objective helper APIs

This release makes EventForge stronger for:

server owners
event pack creators
Java addon developers
Skript users
Discord integrations
dashboard creators
custom objective developers