Skip to content

messages.yml

The file is plugins/PortBridge/messages.yml. Edit it and use /port reload to publish a validated replacement along with configuration. Invalid text or colors reject the entire reload; the previous catalog remains active.

Missing keys use bundled defaults, and existing files are preserved. The bundled messages.yml is the complete key reference.


prefix: 'Port Bridge >'
status-title: 'PORT BRIDGE'
status-subtitle: 'Your server, a connection away.'
command-reload-failed: 'Reload rejected: {reason}. The previous settings remain active.'

Values are literal, non-empty, single-line strings. Port Bridge does not parse MiniMessage tags or legacy formatting codes in chat-panel text. Quote strings containing # or punctuation meaningful to YAML.

Contextual values use {name} placeholders. Substitution runs once and inserts the supplied values literally; it does not recursively interpret another placeholder inside a diagnostic value.


theme:
accent: '#70C8C3'
secondary: '#87BDE8'
text: '#D9E3ED'
label: '#ADB9C8'
muted: '#8392A5'
separator: '#3C5267'
warning: '#D7B779'
error: '#E18E95'

Every theme value requires a quoted #RRGGBB color. The renderer applies the palette to titles, ordinary text, labels, separators, actions, warnings, and errors.

Changing a color affects presentation; it does not change permissions, command dispatch, or tunnel behavior.


GroupExamplesUsed for
Shared presentationprefix, separatorCommon reply prefix and panel dividers
Panel headingsstatus-title, help-title, address-title, connected-title, relay-titleStatus, help, address, and connection panels
Panel guidancestatus-subtitle, address-hint, unverified-hint, no-addressInstructions and connection context
Status labelslabel-state, label-local, label-latency, health-enabledState, targets, timing, health policy, and diagnostics
Lifecycle namesstate-stopped, state-preparing, state-online, state-failedDisplay names for tunnel states
Actions and hoversbutton-copy, button-start, hover-stop, hover-restartClickable controls and their descriptions
Command helphelp-status, help-address, help-reload, help-hintCommand descriptions and alias guidance
Command feedbackcommand-started, command-already-stopped, command-reload-failedAccepted actions, unchanged states, and rejected reloads
Timing valueslatency-value, retry-value, uptime-hoursPing, retries, and connection duration
Tunnel detailsdetail-preparing, detail-online, detail-reconnectingCurrent connection activity
Diagnosticserror-local-listener, error-output, error-startValidation, process, and route failures
Console renderingconsole-command-suffix, help-command-labelText representations of commands
Framework messagesacf.acf-core.*Permission denials, syntax errors, and command-framework replies

Preserve the contextual placeholders already present in each template. Not every value is available to every message.


PlaceholderTypical context
{reason}Original validation, I/O, or probe diagnostic
{output}, {code}Bore output and process exit code
{address}, {host}Resolved local listener or relay hostname
{seconds}, {attempt}Retry timing and second-based durations
{hours}, {minutes}Connection uptime
{millis}Measured route latency
{command}Help commands and console control suffixes

For example:

latency-value: '{millis} ms'
retry-value: '{seconds}s (attempt {attempt})'
uptime-minutes: '{minutes}m {seconds}s'
detail-connecting: 'Connecting to {host}.'

{reason} and {output} preserve external diagnostics. Changing their surrounding template does not translate operating-system errors or Bore output.


button-copy: '[ COPY ADDRESS ]'
button-start: '[ START ]'
hover-copy: 'Click to copy the public connection address.'
hover-start: 'Start the tunnel to your local server.'

Changing a label or hover changes its presentation. The plugin retains the real clipboard or command action and checks the sender’s permissions. See commands for control behavior and permissions for access rules.


acf:
acf-core:
permission_denied: 'Error: You do not have permission to perform this command.'

Framework entries use ACF’s own contextual placeholders, including {syntax}, {message}, and {search}. Preserve the placeholders in the relevant bundled template when editing syntax and lookup replies.

The same /port reload updates both the framework catalog and the chat renderer after the replacement passes validation.