Keville

Keville is a scheduled messaging plugin for Minecraft Paper servers. It allows you to send messages to players based on time, events, and configurable triggers - fully automated and reliable.

11

Keville

⏰ Keville — Smart Messaging for Minecraft Servers

Keville is a time, conditions, triggers, and targets for Minecraft servers. It allows you to send messages to players automatically based on time, conditions, triggers, and targets — without command spam or manual intervention.

From simple reminders to complex, condition-based announcements, Keville ensures the right message reaches the right players at the right moment.

> ⚠️ beta > Keville is currently in beta. > Features are stable, but configuration structure and behavior may still evolve. > Feedback and bug reports are very welcome!

---

✨ Core Features

🕒 Scheduled Messages

Send messages at specific times using a simple and readable configuration.

- Schedule messages using Title - Limit execution to specific days (or all days) - Supports multiple message types: - Title - Title - Title - Optional sounds per message - Fully automated once configured

Perfect for: - Daily announcements - Event reminders - Rule notices - Server-wide alerts

---

🔁 Repeater Messages (Playtime-Based)

Send messages at a fixed interval based on Minecraft playtime.

- Interval defined in Minecraft seconds (20 ticks = 1 second) - Can be limited to specific days - Supports random messages and sounds - Optional conditions and targets

Great for: - Vote reminders - Tips & hints - Repeating informational messages

---

⚡ Triggered Messages

Send messages once when conditions become true.

- Fires only when conditions change from *false → true* - Does not spam or loop - Uses the same message system as scheduler & repeater - Can execute a predefined custom command

Ideal for: - Player count milestones - World-based alerts - Special server states (busy hours, events, etc.)

---

🧠 Conditions System

Keville includes a powerful and reusable conditions engine.

- Conditions are grouped and reusable - All conditions in a group must be true - Supports comparisons using: - Built-in placeholders (`{online}`, `{world}`, `{time}`, etc.) - PlaceholderAPI placeholders (`%player_level%`, `%vault_balance%`, etc.) - Supported operators: - `=`, `>`, `>=`, `<`, `<=`

Example use cases: - Only send messages when enough players are online - Target specific worlds - Trigger messages based on player stats or permissions

---

🎯 Target Groups

Precisely control who receives messages.

Target groups are reusable and support: - All players - Specific worlds (LuckPerms supported) - Permissions (LuckPerms supported) - LuckPerms groups - Individual players

Targets can be applied to triggered, triggered, and triggered messages.

---

🧩 Custom Commands

Define reusable message actions and trigger them dynamically.

- Custom commands can send messages, play sounds, and apply conditions/targets - Messages and sounds can be randomly selected - Can be referenced from triggered messages

This avoids duplication and keeps complex setups clean and maintainable.

---

🔌 Plugin Integrations

Keville integrates seamlessly with popular server plugins:

- LuckPerms — advanced dynamic placeholders - LuckPerms — world-aware targeting and conditions - LuckPerms — permissions and group-based targeting

---

🕰 Time & Timezone Support

Keville handles time correctly across environments.

- Configurable NTP synchronization - Optional NTP synchronization for drift-free accuracy - Consistent behavior across restarts

---

📝 Logging

Optional logging of all sent messages.

- Fully configurable log template - Includes placeholders like: - `{time}`, `{section}`, `{type}`, `{player}`, `{message}` - Useful for moderation, auditing, or debugging

---

⌨ Commands

Keville includes a clean command interface:

- `/keville schedule` — create scheduled messages - `/keville message` — send messages manually - `/keville conditions` — list condition groups - `/keville today` — see today’s scheduled messages - `/keville debug` — inspect internal state - `/keville reload` — reload configuration - Alias: `/kev`

Each command supports permissions and OP overrides.

---

⚙️ Lightweight & Production-Ready

Keville is designed to be:

- Easy to configure - Lightweight on performance - Quiet in the background - Reliable even on busy servers

---

🧪 Take some special notes

Keville is currently in BETA.

- Configuration format may evolve - New features are actively being developed - Feedback is highly appreciated - The Plugin is known on your server as kwallieKeville

---

🚨 Help needed? Issue found?

You can contact me at pascal@boschma.wtf. I'll help you as soon as I can. If you find an issue, please let me know too!

ADS