PlaceholderAPI
CommandBridge integrates with PlaceholderAPI (PAPI) to resolve external placeholders in your command strings.
Requirements
- PlaceholderAPI (backend servers) → provides placeholder resolution on backends.
- PapiProxyBridge (Velocity proxy) → bridges PAPI resolution to the proxy side.
Both are optional. Without them, PAPI placeholders in your scripts will not be resolved.
How it works
- CommandBridge resolves
${arg}argument placeholders first - If PAPI is available and the executor is a player, the resolved command string is passed through PlaceholderAPI
- Any
%placeholder%tokens in the string are replaced with their PAPI values
You can mix both systems in the same command:
commands:
- command: "say Welcome %luckperms_prefix% ${player}!"
If the triggering player has the [Admin] prefix and the player argument is Steve:
say Welcome [Admin] Steve!
Setup
- Install PlaceholderAPI on each backend server
- Install any PAPI expansion packs you need (e.g.
Player,LuckPerms,Vault) - If you need PAPI on the Velocity side, install PapiProxyBridge on Velocity
No CommandBridge configuration needed. PAPI support is auto-detected.
Example
A welcome command that includes the player's rank and balance:
version: 2
name: welcome
description: Welcome a player with their rank and balance
enabled: true
aliases: []
permissions:
enabled: true
silent: false
register:
- id: "proxy-1"
location: VELOCITY
defaults:
run-as: CONSOLE
execute:
- id: "survival-1"
location: BACKEND
server:
target-required: false
schedule-online: false
timeout: 5s
delay: 0s
cooldown: 0s
args:
- name: target
required: true
type: STRING
commands:
- command: "say Welcome %luckperms_prefix% ${target}! Balance: %vault_eco_balance%"
PAPI placeholders are resolved in the context of the triggering player, not the target. If you need the target's data, the target must be the executor (use run-as: PLAYER).
PAPI uses %placeholder% syntax. CommandBridge argument placeholders use ${name} syntax. They don't conflict.