Only this pageAll pages
Powered by GitBook
1 of 11

FSTP Development - Documentation

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Commands and Permissions

Commands

Command
Permission
Description

/mobbag give <player>

mobbag.give

Gives the target player an empty Mob Bag.


Permissions

Permission
Description

mobbag.give

Allows use of /mobbag give <player>.

MobBag

MobBag is a lightweight Minecraft plugin that lets players capture animals and villagers into portable bags and release them anywhere, with all their data preserved. It’s designed for survival, roleplay, and SMP servers that want a more immersive, balanced way to transport mobs without minecarts or boats.

Players can capture mobs with a right-click, carry them around safely, and release them later — while the plugin preserves key attributes like health, names, and villager professions. Everything is fully configurable with a simple lang.yml, and the plugin is optimised to run smoothly on modern Paper servers.


🔍 Key Features

  • 🎒 Capture & release system using portable Mob Bags

  • 📦 Full NBT preservation (health, names, age, villager professions, levels)

  • 📝 Bag lore shows stored mob details

  • 🛠 Customizable messages via lang.yml with prefix support

  • ⚡ Lightweight, standalone — no extra dependencies required

  • ✅ Easy to use: /mobbag give <player> command for admins


📦 Requirements

  • Minecraft 1.21.4+ (Paper or compatible fork recommended)

  • No external dependencies

Getting Started

  1. Place MobBag.jar into your /plugins folder.

  2. Restart the server.

  3. Open plugins/MobBag/lang.yml:

    • Customise the prefix to fit your server’s branding.

    • Adjust player-facing messages as needed.

  4. Restart the server to apply changes to lang.yml.

  5. Test the plugin in-game:

    • Run /mobbag give <player> with the permission mobbag.give → Empty bag received?

    • Right-click an animal or villager with an empty Mob Bag → Captured?

    • Try releasing the mob onto a block → Released with correct data?

Commands and Permissions

Commands

Command
Permission
Description

/report <player> <reason>

dispatchdesk.report

Report a player to staff

/bugreport <description>

dispatchdesk.bugreport

Report a bug to staff or dev team

/suggest <description>

dispatchdesk.suggest

Submit a suggestion to the server team

/helpop <description>

dispatchdesk.helpop

Request in-game help from staff

/dispatchdesk reload

dispatchdesk.admin

Reloads the plugin configuration

Permissions

Permission
Description

dispatchdesk.report

Use /report command

dispatchdesk.report.receive

Receive staff alerts for /report

dispatchdesk.bugreport

Use /bugreport command

dispatchdesk.bugreport.receive

Receive staff alerts for /bugreport

dispatchdesk.suggest

Use /suggest command

dispatchdesk.suggest.receive

Receive staff alerts for /suggest

dispatchdesk.helpop

Use /helpop command

dispatchdesk.helpop.receive

Receive staff alerts for /helpop

dispatchdesk.admin

Allows the use of /dispatchdesk reload

dispatchdesk.*

Grants all DispatchDesk permissions

Getting Started

  1. Place DispatchDesk.jar into your /plugins folder.

  2. Restart the server.

  3. Open config.yml:

    • Set enabled: true for modules you want

    • Add one or more webhook entries under each module

    • Optionally define a thread_id for thread posting

  4. Restart the server or run /dispatchdesk reload

  5. Test each module:

    • Embed sent to Discord?

    • Staff notified in-game?

    • Player sees confirmation?

Plugin Documentation

Configuration

All messages can be changed in the lang.yml file. Color codes using & are supported.

Messages

Key
Default
Description

prefix

&6[MobBag]&r

Prefix added to the start of all messages.

already-full

&cYou already have a mob captured in this Mob Bag.

Sent when a player tries to capture a mob while their bag is already full.

capture-invalid

&cYou can only capture animals and villagers.

Sent when a player tries to capture an unsupported entity.

capture-success

&aCaptured a %mob%

Sent when a mob is successfully captured. %mob% is replaced with the mob type/name.

corrupted-bag

&cThis Mob Bag is corrupted.

Sent when a stored bag has missing or invalid NBT data.

release-success

&eReleased a %mob%

Sent when a mob is successfully released. %mob% is replaced with the mob type/name.

release-failed

&cFailed to release mob.

Sent if the release process fails unexpectedly.

given

&aGave an empty Mob Bag to %player%

Sent to the command sender when they give a bag. %player% is replaced with the player’s name.

player-not-found

&cPlayer not found.

Sent when /mobbag give <player> is used with an invalid/offline name.

usage

&eUsage: /mobbag give <player>

Sent when /mobbag is used incorrectly.

no-permission

&cYou don’t have permission to use this command.

Sent when a player tries to run a command without the required permission.

DispatchDesk

DispatchDesk is a modern, modular Minecraft-to-Discord reporting system. It allows players to send rich, embedded reports, bug notices, suggestions, and help requests straight from the game into Discord — keeping your staff informed and your community supported.

Built for performance and flexibility, DispatchDesk supports multiple webhooks per module, optional Discord thread delivery, and full in-game feedback for both staff and players. Everything is configurable, from embed structure to permissions, and it's fully compatible with proxy setups (Velocity & BungeeCord).

Whether you're running a survival SMP, a mini-game network, or a community server, DispatchDesk makes staff communication seamless, actionable, and professional.


🔍 Key Features

  • 🧩 Modular design – enable/disable any module: report, bugreport, suggest, helpop

  • 📬 Discord embed delivery via webhook(s)

  • 🧵 Supports thread_id for Discord thread posting

  • 🔁 Multi-webhook support per module (e.g., report to multiple channels)

  • 🧠 Placeholder system: %player%, %uuid%, %reason%, %server%, and more

  • 📢 In-game alerts to staff based on permissions

  • ✅ Confirmation messages sent to players

  • 🌐 Proxy support (%server%) for Velocity & Bungee setups

  • ⚙️ Fully configurable via config.yml


📦 Requirements

  • Minecraft 1.21.5+ (Paper or compatible fork recommended)

    • May work on earlier versions back to 1.21, support not guaranteed

  • No dependencies required

  • Optional:

    • ProtocolLib for improved %client_version% accuracy

Configuration

All settings can be changed in the config.yml file.

Each module (report, bugreport, suggest, helpop) can be enabled/disabled individually.

🌐 Proxy Support (proxy section)

If you’re running your server behind a proxy (Velocity or BungeeCord), DispatchDesk can optionally track the player’s proxy server name and make it available via the %server% placeholder.

You’ll find this section at the top of your config.yml:

proxy:
  fallback-server-name: "Main"
  warn-if-no-proxy: true

Config Options:

Key
Description

fallback-server-name

The default name used for %server% if the plugin cannot detect the server

warn-if-no-proxy

Logs a warning if a player runs a command and no proxy name is available

Note: To resolve the %server% placeholder dynamically, you must:

  • Be using Velocity or BungeeCord

  • Ensure plugin messaging is enabled (DispatchDesk uses it to get server info)

If you’re running on a standalone Paper server, the %server% placeholder will default to the fallback-server-name value.

📦 Modules

Module
Purpose

report

Players report another player for bad behavior

bugreport

Players report bugs or technical issues

suggest

Players submit ideas or suggestions

helpop

Players ask staff for help

Each module supports the following keys:

Key
Description

enabled

Enables or disables the module entirely

webhooks

One or more Discord webhooks to send messages to

➤ Each webhook can include an optional thread_id

➤ Supports posting to multiple channels or threads per module

permission

Permission required for staff to receive alerts for this module

embed

Controls how the message appears on Discord as a rich embed

embed.title

Embed title (supports placeholders)

embed.description

Embed main body text (supports placeholders)

embed.color

Embed border color in HEX (e.g., #e74c3c)

embed.fields

A list of name/value/inline objects displayed below the description

message_to_staff

In-game message shown to staff with the correct permission

message_to_player

In-game confirmation sent to the player who ran the command

🧠 What Are Placeholders?

Placeholders are dynamic tags like %player%, %reason%, or %server% that get replaced with real data from the player who used the command.

You can use them in:

  • Discord embed titles, descriptions, and fields

  • In-game staff messages

  • Confirmation messages sent to players

Each placeholder is replaced automatically when the message is sent.

👉 View full placeholder list here

🧱 What is embed.fields?

The fields section defines structured rows of data shown beneath the embed description in Discord.

Each field must contain:

  • name: The field title (e.g., "Reason")

  • value: The content of the field (supports placeholders)

  • inline: true or false

    • true: Shows fields side-by-side (max 3 per row)

    • false: Makes the field span the full embed width

You can define up to 25 fields per embed.

Example

embed:
  title: "New Report Submitted"
  description: "%player% has reported %target% for: %reason%"
  color: "#ff5555"
  fields:
    - name: "Reported Player"
      value: "%target%"
      inline: true
    - name: "Reason"
      value: "%reason%"
      inline: true
    - name: "Location"
      value: "%world% (%x%, %y%, %z%)"
      inline: false

This will render in Discord like:

New Report Submitted
[embed border color: red]

Reported Player | Reason
Steve           | Hacking

Location
world_nether (123, 65, -12)

Multi-Webhook + Thread Support

You can define multiple webhooks per module, each with a separate thread ID if desired.

webhooks:
  webhook1:
    url: "https://discord.com/api/webhooks/..."
    thread_id: ""
  webhook2:
    url: "https://discord.com/api/webhooks/..."
    thread_id: "123456789012345678"
  • webhook1 will post to the base channel.

  • webhook2 will post to a specific thread.

This allows you to send alerts to multiple destinations for each action.

Placeholder Reference

Placeholders can be used in:

  • embed.title

  • embed.description

  • embed.fields.name

  • embed.fields.value

  • message_to_staff

  • message_to_player

Placeholder
Example
Description

%player%

Notch

Player’s name

%uuid%

f84c6a79-...

Player UUID

%world%

world_nether

Current world

%x% %y% %z%

123 64 -45

Coordinates

%client_version%

1.21.1 / forge

May return mod loader name on modded clients. Use Paper or ProtocolLib for numeric accuracy.

%ip%

192.168.1.10

Player’s IP address

%ping%

45

Ping in milliseconds

%gamemode%

SURVIVAL

Player’s gamemode

%server%

Survival-01

Server name (proxy-aware)

%reason%

Hacking

Reason in /report

%target%

Steve

Targeted player in /report

%description%

Glitch in chest

Description for /bugreport, /suggest, /helpop