Events

The Events System in CrisStealCore allows server owners to create fully customizable timed events that modify gameplay mechanics, send messages, trigger visual effects, and execute console commands — all defined through simple .yml files.


📁 Folder Location

All event files are stored in:

/plugins/CrisStealCore/
 ├── events/
 │   ├── peace_time_event.yml
 │   ├── event_example.yml
 │   └── ... create more if you want

Each file inside this folder represents one event. The event’s name is automatically derived from the file name.

Example: blood-moon.yml → event name blood-moon


⚙️ Basic Structure

Each event .yml file follows this structure:

# Enable or disable this event
enabled: true

# Duration of the event in seconds
duration: 600

# Messages displayed to players
messages:
  start:
    - "&c&lBlood Moon has begun!"
    - "&7Mobs are stronger and lifesteal is doubled!"
  end:
    - "&7The &cBlood Moon &7has ended!"
  interval:
    - "&cBlood Moon&7 ends in &e%time_left%"
  interval-seconds: 120 # Send interval message every 2 minutes

# Valid worlds where the event is active
valid-worlds:
  - "world"
  - "world_nether"

# BossBar settings
bossbar:
  enabled: true
  color: "RED"
  text: "&4&lBlood Moon &7- &c%time_left%"
  time-format: "%m%m %s%s" # Example: 10m 25s

# Commands executed as console
commands:
  start:
    - "time set night"
    - "weather thunder"
  end:
    - "time set day"
    - "weather clear"

# Visual and audio effects
effects:
  particle: "SMOKE_LARGE"
  sound: "ENTITY_WITHER_SPAWN"

# Multipliers for gameplay
multipliers:
  lifesteal: 2.0
  mob-drops: 1.5
  player-kill-drops: 1.5
  mob-health: 1.2
  mob-damage: 1.3

🧾 Configuration Options

Section
Type
Description

enabled

Boolean

Enables or disables this event file.

duration

Integer (seconds)

How long the event lasts once started.

messages.start

List<String>

Messages sent to all players when the event starts.

messages.end

List<String>

Messages sent when the event ends.

messages.interval

List<String>

Periodic reminder messages shown during the event.

messages.interval-seconds

Integer

How often to show interval messages (0 = disabled).

valid-worlds

List<String>

Worlds where the event is active. Empty = all worlds.

bossbar.enabled

Boolean

Enables or disables the bossbar.

bossbar.color

String

BossBar color (BLUE, RED, GREEN, PINK, PURPLE, WHITE, YELLOW).

bossbar.text

String

BossBar text shown to players. Supports color codes.

bossbar.time-format

String

Format for %time_left% (e.g. %m%m %s%s).

commands.start

List<String>

Commands executed by console at event start.

commands.end

List<String>

Commands executed by console at event end.

effects.particle

String

Particle effect displayed when event starts.

effects.sound

String

Sound played when the event begins.

multipliers.lifesteal

Double

Multiplier for hearts stolen on player kills.

multipliers.mob-drops

Double

Multiplier for mob drops.

multipliers.player-kill-drops

Double

Multiplier for player drop chances.

multipliers.mob-health

Double

Multiplier for mob health.

multipliers.mob-damage

Double

Multiplier for mob damage dealt.


🌍 Example Events

🩸 blood-moon.yml

Doubles lifesteal and increases mob difficulty.

enabled: true
duration: 900
messages:
  start:
    - "&c&lBlood Moon Rises!"
    - "&7Mobs are enraged and lifesteal is doubled!"
  end:
    - "&7The &cBlood Moon &7has faded..."
bossbar:
  enabled: true
  color: "RED"
  text: "&4&lBlood Moon &7- &c%time_left%"
multipliers:
  lifesteal: 2.0
  mob-health: 1.5
  mob-damage: 1.4
effects:
  particle: "SMOKE_LARGE"
  sound: "ENTITY_WITHER_SPAWN"

☮️ peace-time.yml

Reduces lifesteal and damage to create a peaceful period.

enabled: true
duration: 600
messages:
  start:
    - "&a&lPeace Time has begun!"
    - "&7No hearts can be stolen during this period."
  end:
    - "&7The world returns to chaos..."
multipliers:
  lifesteal: 0.0
  mob-damage: 0.8

🌈 rainbow-blessing.yml

A positive event that rewards players and increases drops.

enabled: true
duration: 480
messages:
  start:
    - "&d&lRainbow Blessing! &7Drops are increased!"
bossbar:
  enabled: true
  color: "PINK"
  text: "&d&lBlessing &7- &e%time_left%"
multipliers:
  mob-drops: 2.0
  player-kill-drops: 1.5
effects:
  particle: "SPELL_INSTANT"
  sound: "ENTITY_PLAYER_LEVELUP"

🧨 Example: Disabled Event

enabled: false
duration: 300
messages:
  start:
    - "&7This event is disabled."

🔧 Commands

Command
Description

/criscoreadmin event start <event-name>

Start a specific event manually.

/criscoreadmin event stop <event-name>

Stop an active event.

/criscoreadmin event pause <event-name>

Pause a running event.

/criscoreadmin event resume <event-name>

Resume a paused event.

/criscoreadmin event list

List all events and their current status.


⏱️ PlaceholderAPI Placeholders

Placeholder
Description
Example

%criscore_active_event%

Lists names of currently active events.

Blood Moon, Peace Time

%criscore_active_event_count%

Number of active events.

2

%criscore_event_time_<event>%

Remaining time of a specific event.

03:24

%criscore_event_active_<event>%

Whether a specific event is active (Yes / No).

Yes


🧠 How Events Work

  1. Events persist across restarts via events-data.yml.

  2. Multiple events can run simultaneously — all multipliers stack multiplicatively.

  3. Events can be world-specific using the valid-worlds option.

  4. BossBars, messages, and commands are executed automatically.

  5. Supports full PlaceholderAPI integration and color formatting (& codes).

  6. Custom events can be added just by dropping new .yml files into the events/ folder.


💡 Tips

  • Use unique colors and thematic sounds to make each event immersive.

  • Combine events (e.g., Blood Moon + Double Drops) for interesting gameplay effects.

  • Use %time_left% in messages to dynamically display remaining time.

  • Remember: enabled: false will completely ignore that event file.

  • All events can be started via command or through custom scripts/plugins.

Last updated