Mastering Server Automation with the MultiCommand Plugin
Running a Minecraft server often feels like juggling dozens of tasks at once. Whether you are setting up a minigame lobby, managing a survival world, or running a creative build competition, typing the same sequences of commands repeatedly wastes valuable time. MultiCommand is a server plugin designed to eliminate that hassle by letting you bundle multiple commands into a single, customizable macro. With one short slash command, you can execute an entire chain of actions—from changing the time and weather to broadcasting messages and stopping the server. This article explores every feature of MultiCommand, from basic setup to advanced variables and delays, so you can automate your server like a pro.
What Is MultiCommand?
MultiCommand is a lightweight Bukkit/Spigot plugin that acts as a command macro system. Instead of remembering and typing complex command sequences, you create named lists of commands. Each list can include parameters, optional arguments, delays, and even console-level execution. The plugin also supports shortcuts, allowing you to redefine existing commands or create quick aliases. It tracks anonymous usage statistics via MCStats, helping the developer understand how the plugin is used without compromising privacy.
Getting Started with MultiCommand
Installation is straightforward: download the MultiCommand.jar file and place it in your server’s /plugins/ folder, then restart or reload the server. While MultiCommand is a server-side plugin, you can still experiment with its command sequences in a local test environment. This mod can be easily installed via the foxygame.net launcher — a convenient, flexible, and modern Minecraft launcher where you can download mods right from the menu, allowing you to quickly set up a Spigot server and try out the plugin before deploying it live. Once loaded, a configuration file appears in /plugins/MultiCommand/config.yml, where you can tweak settings like maximum variables and shortcuts.
Creating Your First Command List
The core of MultiCommand revolves around command lists. Here is how you build one:
- /muco create <name> – Creates a new, empty command list. For example,
/muco create morningRoutine. - /muco add <name> <command> – Adds a command to the list. Always include the leading slash. For instance,
/muco add morningRoutine /time set 0. - /muco <name> – Executes all commands in the list, one after another.
Commands are executed in the order they were added, so plan your sequence carefully. If you need to insert a command at a specific position, you can delete and re-add entries.
Managing Your Command Lists
MultiCommand offers several administrative commands to keep your macros organized:
- /muco list – Displays all existing command lists.
- /muco show <name> – Lists every command inside a specific list.
- /muco remove <name> <command> – Removes a particular command from a list. You must type the command exactly as it was added, including the slash.
- /muco delete <name> – Deletes an entire command list permanently.
- /muco reload – Reloads the plugin configuration without restarting the server.
Each of these actions requires a specific permission node, such as MultiCommand.create.<name> or MultiCommand.list. This granular permission system lets you give moderators limited access while reserving full control for admins.
Adding Parameters and Variables
Static command lists are useful, but the real power comes from dynamic input. MultiCommand supports up to five default variables—$1 through $5—which you can pass when executing a list. For example:
/muco add exampleList /time set $1/muco add exampleList /say $1 $2
Running /muco exampleList 6000 Hello would set the time to 6000 ticks and broadcast “Hello” in chat. If you need more than five variables, edit the maxvariables setting in config.yml.
Optional Parameters
You can mark variables as optional by wrapping them in square brackets. For instance:
/muco add list /command $1 [$2]– $1 is required, $2 is optional./muco add list /command [$1] [$2]– Both are optional.
Note that you cannot place a required variable after an optional one; the plugin will throw an error. The order must always be required first, then optional. When executing, supply values in the same order: /muco list value1 [value2].
Predefined Variables
MultiCommand also includes built-in placeholders that automatically fill in contextual information:
- $playername – The name of the player who ran the command.
- $playerworld – The world that player is currently in.
- $serveronlineplayers – The current online player count.
- $servermaxplayers – The server’s maximum player slots.
These are perfect for welcome messages, automated announcements, or logging.
Adding Delays Between Commands
Sometimes you need a pause between actions—like a countdown before a server restart. MultiCommand lets you insert delays by placing a time in seconds inside square brackets at the beginning of a command:
/muco add testlist /say 3/muco add testlist [1]/say 2/muco add testlist [1]/say 1/muco add testlist [1]/stop
Executing this list will broadcast “3”, wait one second, broadcast “2”, wait again, broadcast “1”, wait a final second, and then stop the server. Delays are processed sequentially, so you can create complex timed sequences.
Executing Commands as Console
By default, commands run with the permissions of the player who triggers the macro. If a command requires elevated privileges, you can force it to execute as the server console by prefixing it with [$c]. For example:
[$c]/say I'm the console.[$c][2]/say I'm the console and I knew this message 2 secs before you saw it.
This is especially handy for commands that only console can run, like /whitelist or /ban-ip. You can combine the console flag with delays by placing [$c] before the delay bracket.
Disabling Commands Globally
MultiCommand can also prevent certain commands from being used anywhere on the server, not just inside macros. This acts as a lightweight command blocker:
- /muco disable disable <command> – Blocks a command (e.g.,
/muco disable disable /say). - /muco disable enable <command> – Re-enables a previously disabled command.
- /muco disable list – Shows all currently disabled commands.
Disabling /say will block all variations like /say hello or /say omg. If you disable /say hey, it blocks /say hey you and similar, but not /say hi. Players with the permission MultiCommand.ignoreDisabledCommands are exempt from these restrictions.
Creating Shortcuts for Faster Typing
Shortcuts let you redefine command prefixes directly in the config.yml. For example:
Shortcuts: t: time kill: ban
Now typing /t set 13000 automatically expands to /time set 13000. Everything after the shortcut is appended to the mapped command. Be careful, as shortcuts can override existing commands. Permissions for the final command are still checked by the original plugin, so players need the appropriate access.
Permissions Overview
MultiCommand uses a robust permission system. The wildcard MultiCommand.all grants every node. Other important nodes include:
MultiCommand.create.all– Create any command list.MultiCommand.delete.all– Delete any list.MultiCommand.show.all– View the contents of any list.MultiCommand.use.<name>– Execute a specific list.MultiCommand.reload– Reload the plugin config.
The plugin supports all major permission systems, including LuckPerms and PermissionsEx.
Conclusion
MultiCommand transforms repetitive server administration into a streamlined, one-click experience. By chaining commands, injecting variables, adding delays, and leveraging console execution, you can automate almost any server task. Whether you are running a small private world or a large network, this plugin saves time and reduces errors. The optional shortcut system and command disabling features add even more flexibility. Once you start using MultiCommand, you will wonder how you ever managed a Minecraft server without it.