Skip to main content

Scheduled Voting

Scheduled event voting

EventForge v1.0.3 adds scheduled event votes.

Scheduled votes are different from per-event schedules. Instead of starting one fixed event, a scheduled vote starts a player vote between multiple configured event options.

Scheduled voting is configured in:

plugins/EventForge/schedule_config.yml

Scheduled voting is disabled by default so new installs keep the classic EventForge behaviour until you choose to enable it.


Enable scheduled voting

scheduled-voting:
enabled: true

You can then enable individual scheduled votes under scheduled-voting.schedules.


Scheduled vote example

scheduled-voting:
enabled: true

schedules:
hourly_vote:
enabled: true
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

This starts a vote every hour using the configured event options.

Players vote with:

/events vote <event>

The winning event starts through the normal EventForge start flow.

If the winner uses participation.mode: MANUAL, the event opens a manual queue first.


Scheduled vote options

Each scheduled vote can define:

ID
enabled state
schedule type
interval
vote duration
event options
random option selection
random option amount
automatic winner startup
pre-vote announcements
active-event skip rule
active-vote skip rule

Scheduled vote type

The first scheduled voting version supports:

INTERVAL

Example intervals:

1m
30m
1h
2h

Scheduled vote duration

duration controls how long the vote stays open once it starts.

duration: 60s

The duration must be at least 5s.


Scheduled vote options

options contains the event IDs that players can vote for.

options:
- mining_rush
- mob_hunt
- fishing_frenzy

Each option must match a loaded EventForge event template ID.

Scheduled votes require at least 2 valid loaded event options.


Randomized scheduled votes

Scheduled votes can randomize their options each time they start.

randomize-options: true
randomize-amount: 2

With a larger option pool, EventForge randomly chooses 2 options for that vote.

randomize-amount must be at least 2 and cannot be higher than the amount of valid loaded options.


Scheduled vote announcements

Scheduled votes can broadcast countdown announcements before the vote starts.

announce-before:
- 5m
- 1m
- 30s

The message text is controlled in messages.yml under:

scheduled-voting:
announcement: "{prefix}&eA scheduled event vote &f{id} &ewill start in &f{time}&e."
starting: "{prefix}&eStarting scheduled event vote: &f{id}&e."

Scheduled vote skip rules

Scheduled votes can skip if an event or vote is already active.

require-no-active-events: true
require-no-active-vote: true

If an event is active, the scheduled vote is skipped and rescheduled.

If another vote is active, the scheduled vote is skipped and rescheduled.

This prevents overlapping events and overlapping votes.


Scheduled vote validation

Scheduled voting is checked by:

/eventforge validate

You can also check schedule_config.yml directly:

/eventforge validate schedule_config.yml

Validation checks include:

scheduled-voting.enabled with missing schedules
invalid schedule type
invalid interval duration
vote duration below 5 seconds
missing options
unknown event IDs
duplicate options
fewer than 2 valid options
invalid randomize amount
invalid announce-before values

Viewing schedules in-game

Use:

/eventforge schedules

This command shows:

normal per-event schedules
scheduled event votes

Scheduled votes show their ID, time until next vote and configured option IDs.

Example:

Scheduled Event Votes
hourly_vote - Next Vote: 43m 20s - Options: mining_rush, mob_hunt, fishing_frenzy

Scheduled vote placeholders

Scheduled votes also have PlaceholderAPI support.

%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>%

Examples:

%eventforge_next_scheduled_vote%
%eventforge_next_scheduled_vote_time_left%
%eventforge_scheduled_vote_time_left_hourly_vote%
%eventforge_scheduled_vote_options_hourly_vote%