Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for mrcl

Proxied Command allows players to execute commands across servers

Report proxied_command?

Proxied Command

GitHub - Hangar - Modrinth - SpigotMC - Discord

This project is a fork of Proxied Warp.

Proxied Command allows players to execute commands across servers within a Velocity or BungeeCord network. The player doesn't need to manually switch servers – Proxied Command automatically connects them to the target server and then executes the command there.

The project consists of four modules:

Module Task
velocity Forwards command requests between backend servers and connects players to the target server when needed
paper Receives the /proxiedcommand command from the player and executes the requested command after the server connection. For Paper backend servers. Supports MiniMessage formatting for messages
spigot Same functionality as the paper module, but for Spigot backend servers. Messages use legacy Minecraft color codes (&) instead of MiniMessage
bungeecord BungeeCord proxy module that forwards command requests and connects players to the target server

How It Works

Communication between the proxy and backend servers happens via the shared Plugin Messaging Channels proxied_command:command and proxied_command:message.

The process works as follows:

  1. Player executes command – On a backend server, the player calls the registered command with a target server and command (e.g., /proxiedcommand farmworld home farmhome).
  2. Backend plugin sends message – The plugin (paper or spigot module, depending on the server) first checks the input and permission, then builds the message <player> <server> <command> and sends it as a plugin message over the channel to the proxy.
  3. Proxy plugin processes the request (Velocity or BungeeCord):
    • Checks whether the specified player and target server exist.
    • If the player is already on the target server, the message is forwarded directly.
    • Otherwise, a connection to the target server is established first, and the message is only forwarded after the server switch succeeds.
  4. Target server executes the command – The plugin on the target server receives the forwarded message, checks whether the player is online there, and dispatches the given command as that player.

Installation

  1. Place the matching proxy module in the proxy's plugins folder: velocity for Velocity or bungeecord for BungeeCord.
  2. Install the matching backend module on every backend server where players should be able to trigger or receive commands: the paper module on Paper servers, the spigot module on Spigot servers.
  3. Restart the proxy and the affected backend servers.

Configuration (Paper/Spigot Modules)

On first startup, the respective plugin generates a config.yml with the following default values. The aliases section is optional and can be added manually.

paper module:

need-permission: false
whitelisted-servers: []
whitelisted-commands: []
message:
  usage: '<red>Usage:</red> /proxiedcommand <server> <command>'
  usage-other: '<red>Usage:</red> /proxiedcommandother <player> <server> <command>'
  permission: '<red>You do not have permission to do that!</red>'
  server-not-whitelisted: '<red>This server is not whitelisted!</red>'
  command-not-whitelisted: '<red>This command is not whitelisted!</red>'
  player-not-online: '<red>Player is not online!</red>'
  key-not-found: "<red>Key '<key>' not found!"
  server-not-found: '<red>Server not found!'
  connection-failed: '<red>Connection failed!'

spigot module:

need-permission: false
whitelisted-servers: []
whitelisted-commands: []
message:
  usage: '&cUsage:&r /proxiedcommand <server> <command>'
  usage-other: '&cUsage:&r /proxiedcommandother <player> <server> <command>'
  permission: '&cYou do not have permission to do that!'
  server-not-whitelisted: '&cThis server is not whitelisted!'
  command-not-whitelisted: '&cThis command is not whitelisted!'
  player-not-online: '&cPlayer is not online!'
  key-not-found: "&cKey &f'%s' &cnot found!"
  server-not-found: '&cServer not found!'
  connection-failed: '&cConnection failed!'
Key Description
need-permission Determines whether players need an explicit permission to use the commands (see Permissions).
whitelisted-servers List of servers that are allowed to be used as a target. If empty, all servers are allowed.
whitelisted-commands List of commands that are allowed to be executed. If empty, all commands are allowed.
aliases Optional section mapping an alias to a target server. For example, spawn: lobby lets /proxiedcommand spawn execute spawn on lobby.
message.usage Message shown when /proxiedcommand is used incorrectly.
message.permission Message shown when permission is missing.
message.server-not-whitelisted Message shown when a server is not whitelisted.
message.command-not-whitelisted Message shown when a command is not whitelisted.
message.usage-other Message shown when /proxiedcommandother is used incorrectly.
message.player-not-online Message shown when the selected player is not online on the source server.
message.key-not-found Fallback message used when a configured message key is missing.
message.server-not-found Message shown when the target server cannot be found by the proxy.
message.connection-failed Message shown when the proxy cannot connect the player to the target server.

In the paper module, messages support MiniMessage formatting (e.g. <red>, <bold>). In the spigot module, messages use legacy Minecraft color codes with & as the formatting character (e.g. &c for red) instead.

Command

The following commands are available on the backend server (Paper or Spigot):

/proxiedcommand <server> <command>
/proxiedcommandother <player> <server> <command>

The commands also have aliases: /proxied_command and /pcmd for /proxiedcommand, and /proxied_command_other, /pcmdother, and /pcmdo for /proxiedcommandother.

  • <server> – Name of the target server, as registered in the proxy configuration (for example velocity.toml).
  • <command> – The command to execute on the target server. Arguments may contain spaces.
  • <alias> – An alias defined in config.yml that maps an alias/command name to a target server.
  • <player> – An online player who should be connected and have the command executed.

/proxiedcommand can only be executed by players. /proxiedcommandother can also be executed from the console.

Permissions

If need-permission is set to true in config.yml, a player needs one of the following permissions to execute /proxiedcommand <server> <command>:

Permission Effect
proxiedcommand.command.* Allows executing all commands.
proxiedcommand.command.<command> Allows executing a specific command (spaces are replaced with underscores).

For /proxiedcommandother, the corresponding permissions are proxiedcommand.command.other.* and proxiedcommand.command.other.<command>.

Permissions are matched by prefix, so it is not necessary to specify the complete command. For example, with need-permission: true:

  • proxiedcommand.command.gamemode allows both gamemode creative and gamemode survival.
  • proxiedcommand.command.gamemode_creative allows gamemode creative, but not gamemode survival.

Command spaces are replaced with underscores when the permission is built. The same prefix behavior applies to the corresponding proxiedcommandother permissions.

If both permissions are missing, the player receives the error message configured in message.permission, and the request is not sent to the proxy.

If need-permission is set to false (default), no permission check is performed and every player can use the command for every registered server.

Requirements

  • A Velocity or BungeeCord proxy with the matching proxy module (velocity or bungeecord).
  • A Paper based backend server (with the paper module) or a Spigot based backend server (with the spigot module).
  • The commands being executed must be available on the target backend server.
  • Java version 25 or higher.

Known Limitations

  • Proxied Command itself does not check whether the specified command exists – command validation and execution are handled by the target server.

Information

Category
Miscellaneous
Published
August 19, 2026
License
1Downloads
0Stars

Pinned Versions

  • R
    Paper1.8–26.2Velocity3.0–4.0.0

Members

1