PlumDeliveryPlumDelivery
Home
Guide
  • Overview
  • Database
  • Deliveries
  • Menus
  • Categories
  • Rewards
  • Messages
Commands
Placeholders
  • Overview
  • Methods
  • Events
Database Guide
FAQ
GitHub
Home
Guide
  • Overview
  • Database
  • Deliveries
  • Menus
  • Categories
  • Rewards
  • Messages
Commands
Placeholders
  • Overview
  • Methods
  • Events
Database Guide
FAQ
GitHub
  • Guide

    • Getting Started
    • How It Works

How It Works

Overview

PlumDelivery follows a simple but powerful gameplay loop:

Admin starts event → Players compete → Timer expires → Rewards distributed → Repeat

Step-by-Step Flow

Step 1: Admin Starts an Event

An administrator starts a delivery event using:

/delivery start <type>

Where <type> is one of: daily, weekly, or monthly.

A server-wide broadcast notifies all players that the event has started.

Step 2: Players Open the Menu

Players access the delivery system through:

/delivery

This opens the Delivery Type Selection Menu — a GUI showing all available delivery types with their status and remaining time.

Step 3: Choose a Delivery Type

Players click on a delivery type to proceed. Each type shows:

  • ✅ Active — The event is running
  • ❌ Not Started — The event hasn't been started yet
  • ⛔ Disabled — The event is disabled in config
  • ⏰ Remaining Time — How much time is left

Step 4: Select a Category

After choosing a delivery type, players see the Category Selection Menu showing all configured categories (e.g., Farming, Combat, Mining). Each category shows the player's current point total.

Step 5: Complete Objectives

Players complete objectives based on the category's required-objects:

COLLECT Actions

  1. Gather the required items in your inventory (e.g., Wheat)
  2. Open the category menu
  3. Click the Submit button
  4. Items are removed from inventory and converted to points

KILL Actions

  1. Kill the required entities in the world (e.g., Mushroom Cow)
  2. Points are awarded automatically on each kill
  3. No submission needed!

Step 6: Unlock Goal Milestones

As players accumulate points, they reach goal milestones:

MilestoneStatusReward
25 points✅ Reachedgive %player% diamond 2
100 points⏳ In progress (42/100)give %player% diamond 10
500 points🔒 Lockedgive %player% diamond 50

Rewards are executed immediately when a milestone is reached. Multiple milestones can be unlocked in a single action!

Step 7: Compete on Leaderboards

The Leaderboard item in the category menu shows the top players:

1. Steve — 142 points
2. Alex — 98 points  
3. Notch — 67 points
4. Empty
5. Empty

Step 8: Event Ends

When the countdown timer reaches zero (or an admin runs /delivery end <type>):

  1. Placement rewards are distributed based on the leaderboard rankings
  2. Player data for that delivery type is cleared
  3. A server-wide broadcast announces the event has ended

Step 9: Auto-Restart (Optional)

If auto-restart: true is set in the config, a new cycle begins immediately after the event ends. The timer resets and a new broadcast is sent.

Menu Hierarchy

/delivery (command)
 └── Delivery Type Menu (Daily / Weekly / Monthly)
      └── Category Selection Menu (Farming / Combat / Mining...)
           └── Category Detail Menu
                ├── Goal Items (with progress)
                ├── Submit Button
                ├── Leaderboard Item
                └── Back Button

Data Persistence

  • Player points are saved to the database (RozsDBLite/SQLite/MySQL)
  • Countdown timers are saved to data.yml every 10 minutes and on shutdown
  • Event status is saved to config.yml
  • All data survives server restarts
Prev
Getting Started