BukkitOfUtils (BOU)
BukkitOfUtils (BOU) is both a Bukkit plugin and a development framework/library. It simplifies Bukkit plugin development and provides a shared foundation for plugins that depend on it — keeping them lighter and faster to download.
Download: Modrinth · Support: Streamline Hub Discord
Supported Platforms
Bukkit Platforms: Bukkit, Spigot, Paper, Purpur, Folia, Mohist, and forks (ImmanitySpigot, FlamePaper, AxolotlSpigot, Airplane, Tuinity, etc.)
Minecraft Versions: 1.7 through 1.21+
Commands
Notation: <required> = mandatory, [optional] = optional
| Command | Aliases | Permission | Description |
|---|---|---|---|
/entity-count [world] | entityc, counte, countentities | bou.command.entity-count | Count loaded entities server-wide or in a world |
/boumessage <player> <message> | boumsg | bou.command.boumessage | Send a color-coded message to a player |
/boutitle <player> <title>\n<subtitle> [-fadeIn=...] [-stay=...] [-fadeOut=...] | bout | bou.command.boutitle | Send a title/subtitle to a player |
/boudebug <action> [args] | boud | bou.command.boudebug | Debug utilities (item NBT, item store, tasks, worlds, etc.) |
/runfirestring <help|(type) args...> | rfs, firestring, fstring | bou.command.runfirestring | Run a Fire String |
/bouhelp [plugin] | bouh | bou.command.bouhelp | Show help for BOU or another Helpful BOU plugin (GUI for players) |
/item-factory <plugin> <key> | itf | bou.command.item-factory | Give yourself an item registered in the Item Factory |
/bouplugins <list|enable|disable|info|unload|load|menu> [plugin] | boup | bou.plugins | Manage BetterPlugins (list, lifecycle, info, GUI menus) |
/bouversion | bouv | — | Show BOU version, server version flags, and Modrinth update status |
/onemenu | configurable (default menu) | bou.onemenu | Open the YAML OneMenu GUI (disabled by default) |
/bouplugins (/boup)
Manage plugins that extend BetterPlugin:
| Subcommand | Description |
|---|---|
list | List registered BetterPlugins with version and uptime |
info <plugin> | Show plugin details (authors, uptime, databases, Modrinth status) |
enable <plugin> / disable <plugin> | Enable or disable a BetterPlugin |
unload <plugin> | Unload a BetterPlugin |
load <jar> | Load a plugin JAR from the server plugins folder |
menu [plugin] | Open the BOU plugins GUI, or a specific plugin's info menu |
The plugin info menu shows version, authors, databases, uptime, Modrinth update status (with download link when outdated), and — if the plugin registered one — a custom plugin menu.
/boudebug
Common actions:
| Action | Description |
|---|---|
item-nbt / item-nbt-strict | Print NBT of the item in hand |
store-item / get-item | Store or retrieve an item in memory |
make-item / make-item-strict | Create an item from an NBT/string definition |
list-bou-plugins | List loaded BOU plugins |
tasks | Open the task manager GUI |
uuid / worlds / up / down / top | Misc debug helpers |
drakapi | Exercise the Drak API client |
Permissions
| Permission | Description |
|---|---|
bou.command.entity-count | Use /entity-count |
bou.command.boumessage | Use /boumessage |
bou.command.boutitle | Use /boutitle |
bou.command.boudebug | Use /boudebug |
bou.command.runfirestring | Use /runfirestring |
bou.command.bouhelp | Use /bouhelp |
bou.command.item-factory | Use /item-factory |
bou.plugins | Use /bouplugins (/boup) |
bou.onemenu | Use /onemenu (when enabled) |
Configuration
File: plugins/BukkitOfUtils/base-config.yml
Key options (defaults shown conceptually):
| Path | Default | Description |
|---|---|---|
console.name / console.uuid | Console / % | Identity used for console-as-sender operations |
logging.*.enabled / logging.*.prefix | varies | Toggle and style info/warn/debug/severe logs |
timers.ticking-frequency | 50 | Async tick interval in millis (50 ≈ 20 ticks/sec) |
timers.entity-collection.frequency | 10 | Entity collection interval in async ticks (used on Folia) |
version-checker.enabled | true | Check Modrinth for updates on enable |
version-checker.modrinth-project | 6owv5fWs | Modrinth project id/slug for BOU |
one-menu.enabled | false | Enable the /onemenu command and YAML GUI system |
one-menu.command-alias | menu | Optional alias for /onemenu (blank = no alias) |
OneMenu
OneMenu is an optional YAML-driven GUI. Enable it in base-config.yml:
one-menu:
enabled: true
command-alias: menuGUI files live in plugins/BukkitOfUtils/guis/. On first enable, BOU writes a default onemenu.yml.
YAML format
title: "&6&lOne Menu"
rows: 3 # 1–6
items:
"11":
material: COMPASS
name: "&bServer Info"
lore:
- "&7A sample button."
left-click:
- "message:&aWelcome!"
- "player-command:bouhelp"
right-click:
- "close"Slot keys are inventory indices (0–size-1). click is accepted as an alias for left-click.
Click actions
| Action | Description |
|---|---|
message:<text> | Send a message to the clicking player |
player-command:<cmd> | Run a command as the player (no leading /) |
console-command:<cmd> | Run a command as console (%player% is replaced) |
close | Close the inventory |
open-gui:<file.yml> | Open another GUI from plugins/BukkitOfUtils/guis/ |
firestring:<string> | Fire a Fire String (%player% is replaced) |
Fire Strings
Fire Strings are text commands you can send to BOU to execute actions. They are used throughout BOU-based plugins for running commands, sending messages, and broadcasting.
| Fire String | Description |
|---|---|
(console) save-all | Runs /save-all as the console |
(player) Drakified spawn | Runs /spawn as the player Drakified |
(consolechat) save-all | Runs /save-all as the console (chat variant) |
(playerchat) Drakified Hello everyone! | Sends Hello everyone! as a chat message from Drakified |
(message) Drakified &cHello, &lWorld! | Sends a private message to Drakified |
(title) Drakified &cHello\n&lWorld! | Shows a title (&cHello) and subtitle (&lWorld!) to Drakified |
(broadcast) &cHello, &lWorld! | Broadcasts a message to all online players |
(broadcasttitle) &cHello\n&lWorld! | Shows a title and subtitle to all online players |
Placeholders
BOU integrates with PlaceholderAPI.
| Placeholder | Description |
|---|---|
%bou_expansions_loaded% | Number of BOU-dependent plugins loaded |
%bou_expansions_papi_loaded% | Number of BOU BetterExpansion PAPI expansions loaded |
%bou_colored_<text>% | Colorizes <text>, supports hex colors (e.g., #ff0000 for red) |
For Developers
See the Developer Guide for how to use BOU as a framework in your plugins.