uJobs

# uJobs

**uJobs** is a lightweight and customizable Minecraft jobs plugin designed to give players a sense of progression.

## Features

– Players automatically gain exp on all jobs. No need to join them manually.
– Customizability. You can add/remove jobs, change their name, xp requirements, which actions give how much exp and money. Change gui, messages, even command name(/jobs).
– Along with classic jobs like miner, farmer. I have made up some jobs myself like traveler which gains exp by opening structure chests for the first time, or guardian job which gains exp by defending a village raid.
– Different leaderboard for all jobs. Messages when you get in top positions and when someone tooks your spot. Making it competitive experience.
– Everything is visible thru GUI, your stats at jobs, leaderboard and job info about how can you gain exp.

## Showcase
![bossbar displaying gaining job exp](https://cdn.modrinth.com/data/cached_images/1791e696f7800c43e3b4d056905e1c2a061b6fa6.gif)

## Version

This plugin works on Minecraft version **1.21** to the latest.

## Documentation & Wiki
Here you can find all the details about how to setup & configure ujobs.
https://github.com/UsainSrht/UJobs/wiki

## Placeholders
“`
* ujobs_job_name_ – Job name – Hunter
* ujobs_job_displayname_ – Job name with colors – Hunter
* ujobs_job_legacydisplayname_ – Job name with legacy colors – &cHunter
*
* ujobs_player_level_ – Player’s level in the job – 5
* ujobs_player_exp_ – Player’s exp in the job – 1260.8
* ujobs_player_position_ – Player’s position in the job leaderboard – 12
* ujobs_player_totalmoney_ – Total amount of money player has gained in the job – 14179.5
*
* ujobs_leaderboard_name__ – Player name at position in job leaderboard – UsainSrht
* ujobs_leaderboard_level__ – Player level at position in job leaderboard – 31
“`

## Dependencies
Optional: PlaceholderAPI for placeholders.

Optional: Vault and an economy plugin for money.

Optional: UTimber by UsainSrht, UltimateTimber by Songoda for wood cutting actions.

## Suggestions

Have an idea to improve **uJobs**? Post them in our [GitHub](https://github.com/UsainSrht/UJobs/issues).

## Bugs & Issues

If you encounter any bugs, please report them on [GitHub](https://github.com/UsainSrht/UJobs/issues).

## Join Our Discord

For **support**, **updates**, and **community discussion**, join our Discord:
[![Join Discord](https://img.shields.io/discord/1194192078360555601?color=7289da&label=Discord&logo=discord&logoColor=white)![UDE discord invite](https://cdn.modrinth.com/data/cached_images/82a83d534b9cf23e42f612e6c571fbd0e890a218.png)](https://discord.gg/VV4bQEdGAd)

UHC+

## 🧠 What is UHC+?

**UHC+** is a next-generation Ultra Hardcore plugin that transforms traditional UHC into a fully customizable, competitive, and ability-driven experience.

Built for modern servers, UHC+ introduces **abilities, ranked progression, enhanced combat, and advanced game control systems** — all while staying lightweight and optimized.

## ⚡ Features

### ❤️ Enhanced UHC System
– Fully customizable UHC rules
– Natural regeneration control
– Border shrinking system
– Game timers & automated events
– Spectator mode & death handling

### 🧬 Ability System
– Unique **active & passive abilities**
– Upgradeable **skill trees**
– Ability **fusion system** (combine abilities 🔥)
– Custom effects (Acid, Super Wither, Powered, etc.)

### 🏆 Ranked Progression
– Rank-based system for long-term gameplay

Each rank grants:
– ❤️ Extra hearts
– 📦 Expanded inventory (`/extrainv`)
– ⚔️ Increased attack damage

Fully configurable scaling.

### ⚔️ Combat Enhancements
– Improved PvP mechanics
– Custom weapons support (e.g. Netherite Spear)
– Advanced damage scaling
– New status effects

### 🧰 Admin & Utility Tools
– Easy-to-use commands
– Plug-and-play setup
– Fully configurable
– Debug & reload systems

## 🚀 Performance

– Optimized for **Paper / Spigot / Pufferfish / Folia**
– Lightweight & scalable
– Designed for large UHC events

## 🔧 Compatibility

– **Minecraft Versions:** 1.21 → 26.1+

Supports:
– Paper
– Spigot
– Pufferfish
– Folia
– Bukkit

UDMR

# 🌸 ReportSystem

> Advanced report system for Minecraft servers with Discord integration and admin moderation tools

[![Minecraft](https://img.shields.io/badge/Minecraft-1.21-brightgreen.svg)](https://www.spigotmc.org/)
[![Paper](https://img.shields.io/badge/Paper-Required-blue.svg)](https://papermc.io/)
[![Discord](https://img.shields.io/badge/Discord-Integration-7289da.svg)](https://discord.com/)
[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## ✨ Features

### 📝 Report System
– **Interactive Report Creation** – Step-by-step form in Minecraft chat
– **Beautiful GUI** – View your reports with pagination and status tracking
– **Multi-language Support** – English and Russian localizations included
– **Spring Color Palette** – Pleasant gradients for better UX
– **Automatic Validation** – Checks player existence and prevents self-reports

### 🎮 Discord Integration
– **Real-time Notifications** – Reports sent instantly to Discord channel
– **Interactive Buttons** – Approve, Reject, Check, and Comment directly from Discord
– **Punishment System** – Modal form for ban/mute/kick/warn with duration
– **Player Check Feature** – Freeze players and call them to voice channel
– **Automatic Commands** – Execute punishments automatically

### ⚙️ Admin Tools
– **Report Management** – Review, comment, and update report status
– **Player Freeze** – Freeze violators during verification
– **Voice Channel Integration** – Call players for checks via Discord
– **Statistics** – Track approved, rejected, and pending reports
– **Hot Reload** – Update configuration without server restart

## 📦 Installation

### Requirements
– Minecraft Server 1.21+
– Paper/Spigot
– Java 17+
– Discord Bot (optional, but recommended)

### Setup Steps

1. **Download** the latest release from [Releases](https://github.com/yourusername/ReportSystem/releases)

2. **Install** the plugin:
“`bash
cp ReportSystem-1.0.0.jar /path/to/server/plugins/
“`

3. **Start** your server to generate configuration files

4. **Configure Discord Bot**:
– Create a bot at [Discord Developer Portal](https://discord.com/developers/applications)
– Enable the following intents:
– `MESSAGE CONTENT`
– `GUILD MESSAGES`
– `GUILD VOICE STATES`
– Copy the bot token

5. **Edit** `plugins/ReportSystem/config.yml`:
“`yaml
language: “en-EN” # or “ru-RU”

discord:
use-bot: true
bot-token: “YOUR_BOT_TOKEN_HERE”
channel-id: “YOUR_CHANNEL_ID_HERE”

reports:
max-active-reports: 5
form-timeout: 300
history-limit: 18
“`

6. **Restart** the server

## 🎨 Commands

### Player Commands
| Command | Aliases | Description | Permission |
|———|———|————-|————|
| `/report` | `/rep` | Create a new report | `reportsystem.report` |
| `/reports` | – | View your reports | `reportsystem.reports` |
| `/report help` | – | Show help | `reportsystem.report` |

### Admin Commands
| Command | Description | Permission |
|———|————-|————|
| `/report reload` | Reload configuration | `reportsystem.admin.reload` |
| `/unfreeze ` | Unfreeze a player | `reportsystem.admin` |

## 🔐 Permissions

“`yaml
# Full access
reportsystem.*

# Player permissions
reportsystem.report # Create reports
reportsystem.reports # View own reports

# Admin permissions
reportsystem.admin # Access to all admin commands
reportsystem.admin.reload # Reload configuration
reportsystem.admin.stats # View statistics
“`

## 🎯 Usage Examples

### Creating a Report

1. Type `/report` in chat
2. Enter violator’s nickname
3. Enter reason for report
4. Add additional details or type ‘skip’
5. Confirm by clicking `[YES]` button

### Discord Moderation

#### Approve with Punishment
1. Click `Approve` button
2. Fill the modal form:
– **Punishment Type**: `ban`, `mute`, `kick`, or `warn`
– **Duration**: `30m`, `7d`, `1y`, or `permanent`
– **Reason**: Additional details
3. Player is automatically punished

#### Call for Check
1. Join a voice channel in Discord
2. Click `Check` button
3. Player is frozen in-game
4. Player receives notification with voice channel name
5. Conduct verification
6. Use `/unfreeze ` to unfreeze

## 🌍 Localization

### Supported Languages
– 🇬🇧 English (`en-EN`)
– 🇷🇺 Russian (`ru-RU`)

### Custom Languages

1. Copy `locales/en-EN.yml` to `locales/your-lang.yml`
2. Translate all strings
3. Set `language: “your-lang”` in `config.yml`

### Gradient Colors

The plugin uses beautiful spring-themed gradients:
“`yaml
# Cherry Blossom → Peach
prefix: “[Report]”

# Mint → Fresh Green
report-success: “Report submitted!”
“`

## 🔧 API Usage

### Maven
“`xml

jitpack
https://jitpack.io


com.github.yourusername
ReportSystem
1.0.0

“`

### Example Code
“`java
// Get the plugin instance
ReportSystem plugin = ReportSystem.getInstance();

// Create a report programmatically
Report report = new Report(
“REP-” + System.currentTimeMillis(),
player.getUniqueId(),
player.getName(),
“Griefer123”,
UUID.fromString(“…”),
“Griefing”,
“Destroyed spawn area”
);

// Save the report
plugin.getDataManager().saveReport(report);

// Send to Discord
plugin.getDiscordBot().sendReport(report);
“`

## 📊 Statistics

View server-wide report statistics:
“`
=== Report Statistics ===
Total reports: 156
Approved: 89
Rejected: 45
Pending: 22
“`

## 🛠️ Configuration

### config.yml
“`yaml
language: “en-EN”

discord:
use-bot: true
bot-token: “YOUR_TOKEN”
channel-id: “YOUR_CHANNEL_ID”

reports:
max-active-reports: 5 # Maximum pending reports per player
form-timeout: 300 # Form timeout in seconds (0 = no timeout)
history-limit: 18 # Reports per page in GUI
“`

### Localization Files
– `locales/en-EN.yml` – English translations
– `locales/ru-RU.yml` – Russian translations

## 🎨 Spring Color Palette

The plugin features a beautiful spring-themed color scheme:

– 🌸 **Cherry Blossom Pink** – Headers and prefixes
– 🍑 **Peach** – Warnings and timeouts
– 💜 **Lavender** – Questions and info
– 🌿 **Mint Green** – Success messages
– ✅ **Fresh Green** – Approvals

## 🐛 Troubleshooting

### Discord Bot Not Working
1. Check bot token in `config.yml`
2. Verify bot has required intents enabled
3. Ensure channel ID is correct
4. Check bot has permissions in the channel

### Player Can’t Create Reports
1. Check permission: `reportsystem.report`
2. Verify they haven’t reached max reports limit
3. Check if report system is available (Discord connected)

### Voice Check Not Working
1. Ensure `GUILD_VOICE_STATES` intent is enabled
2. Admin must be in a voice channel
3. Player must be online
4. Check bot permissions

## 📝 Changelog

### Version 1.0.0
– Initial release
– Report creation system
– Discord integration with buttons
– Punishment modal system
– Player freeze and check feature
– Multi-language support
– Spring color palette
– GUI with pagination

## 🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m ‘Add some AmazingFeature’`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## 📜 License

This project is licensed under the MIT License – see the [LICENSE](LICENSE) file for details.

## 💖 Credits

– **Author**: Lolka12321
– **Discord Integration**: JDA Library
– **Color System**: Adventure API
– **Inspired by**: Community feedback and suggestions

## ⭐ Show Your Support

Give a ⭐️ if this project helped you!

Made with 💚 for the Minecraft community

UCExchange

![Servers using BMNpcForceReload](https://img.shields.io/bstats/servers/30365?style=for-the-badge&label=Servers)
![Players on servers using BMNpcForceReload](https://img.shields.io/bstats/players/30365?style=for-the-badge&label=Players)

## UCExchange

UCExchange is a daily rotating trade market plugin for Paper servers.

It allows players to exchange common resources for money or rarer items through a simple and clean GUI. The available offers rotate automatically every 24 hours, helping the market stay fresh and giving players a reason to come back regularly.

The plugin is made for survival, economy, and public servers that want a dynamic market system without relying on a full shop plugin. Everything is configurable, including menu settings, available trades, messages, refresh behavior, Discord webhook logs, and update checking.

UCExchange also includes built-in support for PlaceholderAPI, making it easy to display market information in scoreboards, holograms, menus, tablists, and other compatible plugins.

## Features

– Daily rotating trade market
– GUI-based exchange menu
– Resource to money trades with Vault
– Resource to item trades
– Automatic offer refresh every 24 hours
– Manual refresh with admin command
– Discord webhook logs for trades and market rotations
– PlaceholderAPI support
– Modrinth update checker
– Fully configurable offers and messages

## Commands

– `/dailyexchange`
– `/dailyexchange refresh`
– `/dailyexchange reload`

## Permissions

– `ucexchange.use`
– `ucexchange.admin`

## PlaceholderAPI

UCExchange includes internal PlaceholderAPI support.

Available placeholders:

– `%ucexchange_next_rotation%`
– `%ucexchange_last_rotation%`
– `%ucexchange_auto_rotate_hours%`
– `%ucexchange_menu_title%`
– `%ucexchange_webhook_enabled%`
– `%ucexchange_version%`
– `%ucexchange_money_slots_count%`
– `%ucexchange_rare_slots_count%`
– `%ucexchange_shift_click_max%`

These placeholders can be used in compatible plugins such as scoreboards, holograms, tablists, and menus.

## Requirements

– Paper 1.21.11+
– Vault
– A Vault-compatible economy plugin
– PlaceholderAPI (optional, only required for placeholders)

## Notes

UCExchange is designed to stay lightweight, practical, and easy to configure while still offering enough flexibility for public servers and custom economy setups.

UltimateAutoRestart

![Resource Header](https://norska.dev/resources/uar/resource_header.png)

## Features
– Create schedules like “Monday;23;00”, “Friday;02;00”, “Daily;12;00”.
– Configure commands to run on restart or x sec. before (or after).
– Configure commands to run on specific days of the week.
– Choose at which intervals sounds, messages will be sent.
– Delay restarts if x users are playing on the server.
– Execute Bukkit, Bungee, and Velocity commands (further setup required).
– Schedule commands to run through your proxy (you can do stuff like send back players to their server after it’s up, send global restart alerts, etc.).
– Command for your players to check when a restart will happen.
– Command to override or delay the restart interval, and define a reason for it.
– Works on all panels (Pterodactyl, Multicraft, some may require extra steps).

## Gallery
![](https://norska.dev/resources/uar/showcase_1.png)
![](https://norska.dev/resources/uar/showcase.png)

### YouTube Video
[![YouTube](https://img.youtube.com/vi/jDkngCYBlRY/0.jpg)](https://www.youtube.com/watch?v=jDkngCYBlRY)

## Default configurations
– View the default config file [here](https://norska.dev/resources/uar/defaultconfig)!
– View the default messages file [here](https://norska.dev/resources/uar/defaultmessages)!

## Developer API
– Information about the available Developer API can be found [here](https://norska.dev/docs/premium/uar/api)

Ty Admin Menu

JAM adds a GUI for controlling your server, currently it includes 9 pages. You can control the time, ban and kick player, change the weather and change the difficulty from a convenient GUI. The plugin is also configurable and customizable through it’s config.yml.

![Index Page](https://cdn.modrinth.com/data/cn92XReU/images/14957d1ebd348f7e3382ce8821aeaee5856818aa.png)

Tweaks

# Tweaks

An EssentialsX-like plugin

[![Usage](https://faststats.dev/embed/default:cc247a5b-19f0-40ce-927a-5726298f8641:servers-and-players?w=1012)](https://faststats.dev/project/tweaks)

## Versions

> [!WARNING]
> There is a known issue when updating from version 3.0.x to 3.1.0 _or upcoming_, all commands will be disabled.
> This won’t be fixed soon because it is of low priority and only happens when updating.
> After updating, you can fix this by replacing all `enabled: false` with `enabled: true` in `commands.json`

> [!IMPORTANT]
> Version 3.0.0 introduces several breaking changes: command, permission, and translation incompatibilities.
> It is highly recommended to delete the entire `Tweaks` folder before upgrading to avoid conflicts with outdated
> configurations.

> [!NOTE]
> Tweaks only supports the latest version of Paper
> The latest version of Tweaks requires Java 21

[Latest version supporting 1.19-1.20.4 (Java 19)](https://github.com/TheNextLvl-net/tweaks/releases/tag/v2.0.10)
[Latest version supporting 1.19-1.20.4 (Java 17)](https://github.com/TheNextLvl-net/tweaks/releases/tag/v2.0.5)

🔗 [Download now](https://modrinth.com/project/HLkJsjy0#download)

# Commands

## Environmental commands

### Time commands

| Command | Alternatives | Description | Permission |
|————————————————|———————–|—————————————–|——————————-|
| `/time add

### Weather commands

| Command | Alternatives | Description | Permission |
|——————–|————–|——————-|——————————–|
| `/weather clear` | `/sun` | let the sun shine | tweaks.command.weather.sun |
| `/weather rain` | `/rain` | let it rain | tweaks.command.weather.rain |
| `/weather thunder` | `/thunder` | let it thunder | tweaks.command.weather.thunder |

The perm-pack to grant all permissions: `tweaks.commands.environmental`

## Home commands

| Command | Aliases | Description | Permission |
|————————-|————|—————————-|—————————-|
| `/delete-home []` | `/delhome` | Delete your homes | tweaks.command.home.delete |
| `/home []` | | Teleport you to your homes | tweaks.command.home |
| `/homes` | | List all of your homes | tweaks.command.home |
| `/set-home []` | `/sethome` | Set a home | tweaks.command.home.set |

## Item commands

| Command | Aliases | Description | Permission |
|————————————–|———-|—————————————————-|—————————-|
| `/enchant []` | | enchant your tools | tweaks.command.enchant |
| `/head [player/url/value] []` | `/skull` | receive heads or information about them | tweaks.command.head |
| `/item [item] (amount)` | `/i` | gives you an item of your choice | tweaks.command.item |
| `/lore apped ` | | append a line to the lore of your item | tweaks.command.lore |
| `/lore clear` | | clear the lore of your item | tweaks.command.lore |
| `/lore prepend ` | | prepend a line to the lore of your item | tweaks.command.lore |
| `/lore replace ` | | replace a specific string in the lore of your item | tweaks.command.lore |
| `/lore set ` | | set the lore of your item | tweaks.command.lore |
| `/rename ` | | change the displayname of your item | tweaks.command.rename |
| `/repair [all]` | | repair your tools | tweaks.command.repair |
| `/unbreakable` | | makes your item unbreakable | tweaks.command.unbreakable |
| `/unenchant ` | | unenchant your tools | tweaks.command.unenchant |

The perm-pack to grant all permissions: `tweaks.commands.item`

## MSG commands

| Command | Aliases | Description | Permission |
|—————————|—————————————-|——————————————–|—————————|
| `/msg ` | `/tell`
`/write`
`/t`
`/w` | Send a private message to a player | tweaks.command.msg |
| `/msgtoggle` | `/togglemsg` | Toggle receiving private messages | tweaks.command.msg.toggle |
| `/reply ` | `/r` | Reply to the last received private message | tweaks.command.msg.reply |

## Player commands

| Command | Aliases | Description | Permission | Argument | Permission |
|———————————————–|—————————|—————————————————-|———————————————————————————————————————————————————————|———-|————|
| `/back` | | go back to your last position | tweaks.command.back | | |
| `/enderchest []` | `/ec` | open your own or someone else’s enderchest | tweaks.command.enderchest
permits to use the command /enderchest
to allow changes inside of an enderchest, grant

| player | *.others |
| `/feed []` | | satisfy your own or someone else’s hunger | tweaks.command.feed | player | *.others |
| `/fly []` | `/flight` | toggle your own or someone else’s fly state | tweaks.command.fly | player | *.others |
| `/gamemode [gamemode] []` | `/gm` | change your own or someone else’s gamemode | tweaks.command.gamemode
permits to use the command /gamemode | player | *.others |
| `/god []` | `/invincible` | make you or someone else invulnerable | tweaks.command.god | player | *.others |
| `/hat` | | equip your item as a hat | tweaks.command.hat | | |
| `/trash` | `/dispose`
`/garbage` | dispose of your unwanted items | tweaks.command.trash | | |
| `/heal []` | | heal yourself or someone else | tweaks.command.heal | player | *.others |
| `/inventory []` | `/inv`
`/invsee` | open your own or someone else’s inventory | tweaks.command.inventory
permits to use the command /inventory
to allow changes inside of an inventory, grant

| | |
| `/offline-teleport []` | `/offline-tp`
`/tpo` | teleport offline-players to others or you to them | tweaks.command.offline-tp | | |
| `/ping []` | `/latency`
`/ms` | see your own or someone else’s latency | tweaks.command.ping | player | *.others |
| `/seen ` | `/find` | gives you information about a player | tweaks.command.seen | | |
| `/speed [fly/sneak/walk] []` | | Change your own or others fly, sneak or walk speed | tweaks.command.speed | targets | *.others |
| `/speed reset [fly/sneak/walk] []` | | Reset your own or others fly, sneak or walk speed | tweaks.command.speed | targets | *.others |
| `/suicide` | | take your own life | tweaks.command.suicide | | |
| `/vanish (player)` | `/v`
`/invisible` | hide yourself or someone else from others | tweaks.command.vanish | | |

The perm-pack to grant all permissions: `tweaks.commands.player`

## Server commands

| Command | Aliases | Description | Permission |
|————————————–|—————–|——————————————–|————————–|
| `/broadcast ` | `/bc` | Broadcast a message | tweaks.command.broadcast |
| `/lobby` | `/hub`
`/l` | Connect to the lobby | tweaks.command.lobby |
| `/motd clear` | | Reset the motd of the server | tweaks.command.motd |
| `/motd get` | | Get the motd of the server | tweaks.command.motd |
| `/motd replace ` | | Replace a string in the motd of the server | tweaks.command.motd |
| `/motd set ` | | Change the motd of the server | tweaks.command.motd |

The perm-pack to grant all permissions: `tweaks.commands.server`

## Social commands

| Command | Aliases | Description |
|————–|————————————|——————————————-|
| `/discord` | `/dc` | Receive the server’s Discord invite |
| `/reddit` | | Receive the server’s Subreddit link |
| `/teamspeak` | `/teamspeak3`
`/ts`
`/ts3` | Receive the server’s TeamSpeak link |
| `/website` | | Receive the server’s Website url |
| `/x` | `/twitter` | Receive the server’s X profile link |
| `/youtube` | `/yt` | Receive the server’s YouTube channel link |

## Spawn commands

| Command | Aliases | Description | Permission |
|—————————————————–|————-|————————|————————-|
| `/set-spawn [] [] []` | `/setspawn` | Set the spawn location | tweaks.command.setspawn |
| `/spawn` | | Teleport you to spawn | tweaks.command.spawn |

## TPA commands

| Command | Aliases | Description | Permission |
|———————|————–|————————————————-|—————————|
| `/tpa ` | `/tpask` | Request to teleport to a player | tweaks.command.tpa |
| `/tpaccept` | | Accept a teleport request | tweaks.command.tpa.accept |
| `/tpadeny` | `/tpdeny` | Deny a teleport request | tweaks.command.tpa.deny |
| `/tpahere ` | `/tphere` | Request a player to teleport to you | tweaks.command.tpa.here |
| `/tpatoggle` | `/toggletpa` | Toggle the ability to receive teleport requests | tweaks.command.tpa.toggle |

## Warp commands

| Command | Aliases | Description | Permission |
|———————–|————|————————–|—————————-|
| `/delete-warp ` | `/delwarp` | Delete a warp point | tweaks.command.warp.delete |
| `/set-warp ` | `/setwarp` | Set a new warp point | tweaks.command.warp.set |
| `/warp ` | | Warp to a location | tweaks.command.warp |
| `/warps` | | List all available warps | tweaks.command.warp |

## Workstation commands

| Command | Aliases | Description | Permission |
|———————-|—————-|———————————-|———————————-|
| `/anvil` | | Open a virtual anvil | tweaks.command.anvil |
| `/cartography-table` | `/cartography` | Open a virtual cartography table | tweaks.command.cartography-table |
| `/enchanting-table` | `/enchanting` | Open a virtual enchanting table | tweaks.command.enchanting-table |
| `/grindstone` | | Open a virtual grindstone | tweaks.command.grindstone |
| `/loom` | | Open a virtual loom | tweaks.command.loom |
| `/smithing-table` | `/smithing` | Open a virtual smithing table | tweaks.command.smithing-table |
| `/stonecutter` | | Open a virtual stonecutter | tweaks.command.stonecutter |
| `/workbench` | `/wb` | Open a virtual workbench | tweaks.command.workbench |

The perm-pack to grant all permissions: `tweaks.commands.workstation`

# Chat Tags

These tags can be used within the `chat-format` of your translation files. To insert a tag, use ``.

| Tag | Description |
|—————–|——————————————————————————|
| delete | A clickable component to delete the message. |
| display_name | The display name of the sender. |
| message | The original message sent by the player. |
| message_content | The text content of the sent message. Usable within click and hover actions. |
| player | The username of the sender. |
| world | The world where the sender is located. |

## Group and Display-Related Tags

> These tags require a [ServiceIO](https://github.com/TheNextLvl-net/service-io)-compatible group/chat plugin,
> such as [LuckPerms](https://github.com/LuckPerms/LuckPerms)

| Tag | Description |
|——————-|———————————————————————-|
| chat_display_name | Displays the player’s display name. (not the same as `display_name`) |
| chat_prefix | The prefix of the sender. |
| chat_suffix | The suffix of the sender. |
| player_group | The group of the sender. |
| group_prefix | The prefix of the sender’s group. |
| group_suffix | The suffix of the sender’s group. |

## Economy-Related Tags

> These tags require a [ServiceIO](https://github.com/TheNextLvl-net/service-io)-compatible economy plugin,
> such as [Economist](https://github.com/TheNextLvl-net/economist).

| Tag | Description |
|————————–|—————————————————————————————————-|
| balance | Displays the player’s current balance, formatted according to the server’s economy settings. |
| balance_unformatted | Displays the player’s balance without any formatting (raw number). |
| bank_balance | Displays the player’s bank account balance (if applicable), formatted as per the economy settings. |
| bank_balance_unformatted | Displays the player’s bank account balance without formatting (raw number). |
| currency_name | Displays the singular form of the server’s currency name (e.g., “Dollar”, “Coin”). |
| currency_name_plural | Displays the plural form of the currency name (e.g., “Dollars”, “Coins”). |
| currency_symbol | Displays the symbol of the currency (e.g., “$”, “€”). |

For more information about MiniMessage, visit their [Documentation](https://docs.advntr.dev/minimessage/format.html)

# Chat Message Deletion

The `delete-tag-format` option allows you to customize the appearance of the message deletion component.
For security purposes, only users with the permission `tweaks.chat.delete` will be able to see the delete tag.
To allow users to delete their own messages, grant the permission: `tweaks.chat.delete.own`.

## Hierarchy

> This feature requires [ServiceIO](https://github.com/TheNextLvl-net/service-io)
> and a compatible permission plugin such as [LuckPerms](https://github.com/LuckPerms/LuckPerms).

The chat hierarchy system controls who can delete whose messages based on a user’s weight.
A user’s weight determines their deletion privileges.
Users can only delete messages from others with equal or lower weights.

### Example

– **Admin:** deletion weight 99
Admins can delete messages from Admins, Moderators, and Players.

– **Moderator:** deletion weight 50
Moderators can delete messages from Moderators and Players but not Admins.

– **Player:** deletion weight undefined
Players can’t delete messages from anyone.

## Setting Weights in LuckPerms:

To assign a hierarchy weight in LuckPerms, use the following permission:
`meta.chat-delete-weight.`

Alternatively, you can use the command:
`/lp user meta set chat-delete-weight `

# Configuration

## General Configuration

| Option | Description |
|—————————-|——————————————————–|
| `message-deletion-timeout` | Time in milliseconds chat messages may be deleted for. |
| `back-buffer-stack-size` | How many back-locations should be stored per user. |
| `default-permission-level` | _Clientside_ permission level assigned to users. (1-4) |
| `enchantment-overflow` | Enables or disables enchantment overflow. |
| `override-join-message` | Whether join messages should be overridden. |
| `override-quit-message` | Whether quit messages should be overridden. |
| `override-chat` | Whether tweaks should override the chat. |
| `log-chat` | Whether the chat should be logged to console. |
| `lobby-server-name` | Name of the lobby server (for `/lobby`). |
| `motd` | Message of the day for the server. |

## Features Configuration

| Option | Description |
|———|————————————————————————|
| `homes` | Enables or disables the homes feature. |
| `msg` | Enables or disables the private message feature. |
| `spawn` | Enables or disables the spawn feature. |
| `tpa` | Enables or disables the teleport request feature. |
| `warps` | Enables or disables the warps feature. |
| `lobby` | Enables or disables the lobby feature. (Right mode should be detected) |

## Features Social Configuration

| Option | Description |
|———————|——————————————————|
| `add-link-commands` | Enable link commands like `/discord`, `/reddit` etc. |
| `add-server-links` | Whether to add the links to the `Server Links` tab. |
| `announcements` | Enables the announcements feature. |
| `community` | Enables the community feature. |
| `feedback` | Enables the feedback feature. |
| `forum` | Enables the forum feature. |
| `guidelines` | Enables the guidelines feature. |
| `issues` | Enables the issues feature. |
| `news` | Enables the news feature. |
| `status` | Enables the status feature. |
| `support` | Enables the support feature. |
| `website` | Enables the website feature. |
| `discord` | Enables the Discord link command. |
| `reddit` | Enables the Reddit link command. |
| `teamspeak` | Enables the TeamSpeak link command. |
| `twitch` | Enables the Twitch link command. |
| `x` | Enables the X (Twitter) link command. |
| `youtube` | Enables the YouTube link command. |

## Home Configuration

| Option | Description |
|—————-|———————————————————————–|
| `limit` | Maximum number of homes allowed (negative value indicates unlimited). |
| `unnamed-name` | Default name for unnamed homes. |

## Spawn Configuration

| Option | Description |
|—————————|———————————————————-|
| `teleport-on-first-join` | Teleports player to spawn on first join. |
| `teleport-on-join` | Teleports player to spawn on join. |
| `teleport-on-respawn` | Teleports player to spawn on respawn. |
| `ignore-respawn-position` | Ignores the exact respawn position. |
| `location` | Spawn location (in `world, x, y, z, yaw, pitch` format). |

## GUI Configuration

### Inventory GUI

| Option | Description |
|—————|——————————————————-|
| `helmet` | Material for the helmet placeholder slot in GUI. |
| `chestplate` | Material for the chestplate placeholder slot in GUI. |
| `leggings` | Material for the leggings placeholder slot in GUI. |
| `boots` | Material for the boots placeholder slot in GUI. |
| `off-hand` | Material for the off-hand placeholder slot in GUI. |
| `cursor` | Material for the cursor placeholder slot in GUI. |
| `placeholder` | Material for placeholder slots in GUI. |
| `update-time` | Update time for the inventory GUI in ticks. (1s = 20) |

### Homes GUI

| Option | Description |
|————————|————————————————————-|
| `enabled` | Enables or disables the homes GUI. (chat based if disabled) |
| `rows` | Number of rows in the homes GUI. |
| `action-slots` | Slots in the homes GUI that may contain homes. |
| `button-slot-next` | Slot for the next button in the homes GUI. |
| `button-slot-previous` | Slot for the previous button in the homes GUI. |

### Warps GUI

| Option | Description |
|————————|————————————————————|
| `enabled` | Enables or disables the warps GUI. (chat base if disabled) |
| `rows` | Number of rows in the warps GUI. |
| `action-slots` | Slots in the warps GUI that may contain warps. |
| `button-slot-next` | Slot for the next button in the warps GUI. |
| `button-slot-previous` | Slot for the previous button in the warps GUI. |

### Name Icons

| Option | Description |
|————–|—————————-|
| `name-icons` | Icons for named locations. |

#### Example

“`json
{
“name-icons”: {
“End Ship”: “minecraft:elytra”,
“Bastion”: “minecraft:polished_blackstone_bricks”,
“Mine”: “minecraft:diamond”,
“Casino”: “minecraft:gold_ingot”
}
}
“`

## Teleport Configuration

| Option | Description |
|—————————|———————————————————|
| `cooldown` | Cooldown time in milliseconds for teleportation. |
| `cooldown-allow-movement` | Allows movement during teleport cooldown. |
| `tpa-timeout` | Timeout duration in milliseconds for teleport requests. |

The permission to bypass the teleportation cooldown is `tweaks.teleport.cooldown.bypass`

## Animals Configuration

| Option | Description |
|——————————|—————————————————————————|
| `cow-milking-cooldown` | Cooldown time in milliseconds for cow milking. |
| `mushroom-stew-cooldown` | Cooldown time in milliseconds for getting mushroom stew from a mooshroom. |
| `sheep-wool-growth-cooldown` | Cooldown time in milliseconds before sheep can grow back their wool. |
| `animal-heal-by-feeding` | Enables or disables animal healing by feeding them. |

## Links Configuration

| Option | Description |
|—————–|—————————————-|
| `announcements` | URL for announcements. |
| `community` | URL for community. |
| `feedback` | URL for feedback. |
| `forum` | URL for the forum. |
| `guidelines` | URL for guidelines. |
| `issues` | URL for issues tracking. |
| `news` | URL for the news page. |
| `status` | URL for the status page. |
| `support` | URL for the support page. |
| `website` | URL for the main website. |
| `discord` | URL for the Discord server invitation. |
| `reddit` | URL for the subreddit. |
| `teamspeak` | URL for the TeamSpeak server. |
| `twitch` | URL for the Twitch channel. |
| `x` | URL for the X (Twitter) profile. |
| `youtube` | URL for the YouTube channel. |

# Commands file

“`json5
{
“hello”: {
// the key can’t be changed
“command”: “test”,
// can be named whatever you want
“aliases”: [
“test-1”,
// can contain as many aliases you want
“”
// can even be empty to work on ‘/’
],
},
“nope”: {
“command”: “nope”,
“aliases”: []
// can be empty, to not register any aliases
}
}
“`

TurboClean

# TurboClean ⚡

> **Ultra-fast performance optimization plugin for Minecraft Paper servers**

[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![Paper Version](https://img.shields.io/badge/Paper-1.20%2B-brightgreen.svg)](https://papermc.io/)
[![Java Version](https://img.shields.io/badge/Java-17%2B-orange.svg)](https://openjdk.java.net/)

## 🚀 Features

### ⚡ **Lightning-Fast Performance**
– **Instant cleanup** – Operations complete in milliseconds
– **Ultra-lightweight** – Minimal resource usage
– **Async processing** – Non-blocking operations with thread safety
– **Smart caching** – Optimized data access
– **2x Performance Boost** – Dramatically improves server speed
– **Network optimization** – Reduces packet spam and network lag

### 🧹 **Ultra-Smart Cleanup System**
– **Entity management** – Remove lag-causing entities (items, arrows, experience orbs, TNT, fireworks, minecarts, boats, armor stands)
– **Memory optimization** – Automatic garbage collection and RAM management
– **Chunk optimization** – Unload unused chunks to save memory
– **CPU optimization** – Limit AI processing and optimize redstone/hoppers
– **Monster cleanup** – Remove excessive mobs that cause lag
– **Network cleanup** – Batched entity removal to reduce network load

### ⚙️ **Flexible Configuration**
– **Command-based settings** – `/turboclean settings `
– **YAML configuration** – Edit `config.yml` for detailed customization
– **Live reload** – Update settings without server restart
– **Validation** – Automatic config validation and correction
– **Smart defaults** – Optimized for all server sizes (1.20+)

### 📊 **Advanced Monitoring**
– **Real-time TPS monitoring** – Track server performance
– **Memory usage alerts** – Get notified of high memory usage
– **Performance thresholds** – Automatic cleanup when needed
– **Visual stats dashboard** – ASCII graphs showing RAM, CPU, Disk, Network
– **Historical data tracking** – See performance trends over time

### 🎯 **Smart Automation**
– **Auto-cleanup intervals** – Configurable cleanup schedules
– **Emergency cleanup** – Automatic cleanup during performance drops
– **Player-aware** – Keep entities near players, remove distant ones
– **Named entity protection** – Exclude named entities from cleanup

## 📋 Requirements

– **Minecraft Version**: 1.20+ (Paper/Purpur/Folia) – **FULLY SUPPORTED**
– **Java Version**: 17 or higher (supports Java 21)
– **Server Software**: Paper MC (or forks like Purpur, Folia)
– **Compatibility**: Works on all server types (low-end, medium-end, high-end)

## 📥 Installation

1. Download the latest `TurboClean.jar` from [Releases](https://github.com/Orbis-Development/turboclean/releases)
2. Place the jar file in your server’s `plugins` folder
3. Restart your server
4. Configure the plugin in `plugins/TurboClean/config.yml`
5. Use `/turboclean reload` to apply changes

## 🎮 Commands

| Command | Description | Permission |
|———|————-|————|
| `/turboclean clean` | Perform full cleanup | `turboclean.use` |
| `/turboclean quick` | Quick entity cleanup | `turboclean.use` |
| `/turboclean network` | Network-optimized cleanup | `turboclean.use` |
| `/turboclean stats` | Show performance stats with graphs | `turboclean.use` |
| `/turboclean reload` | Reload configuration | `turboclean.admin` |
| `/turboclean settings ` | Update settings | `turboclean.admin` |

### Command Examples
“`bash
# Perform a full cleanup
/turboclean clean

# Quick cleanup for immediate performance boost
/turboclean quick

# Network-optimized cleanup (reduces lag from packets)
/turboclean network

# Check server performance with cool ASCII graphs
/turboclean stats

# Update cleanup interval to 2 minutes (balanced)
/turboclean settings auto-cleanup.interval 120

# Enable smart entity cleanup
/turboclean settings entities.enabled true
/turboclean settings entities.player-distance 32
“`

## 🛡️ Permissions

| Permission | Description | Default |
|————|————-|———|
| `turboclean.*` | All permissions | OP |
| `turboclean.use` | Basic usage | OP |
| `turboclean.admin` | Admin commands | OP |
| `turboclean.notify` | Receive notifications | OP |

## ⚙️ Configuration

### Quick Settings via Commands
“`bash
# Essential settings you can change via commands:
/turboclean settings auto-cleanup.enabled true
/turboclean settings auto-cleanup.interval 60
/turboclean settings entities.enabled true
/turboclean settings memory.enabled true
/turboclean settings monitoring.enabled true
“`

### Configuration File (`config.yml`)

Click to view full configuration

“`yaml
# TurboClean Configuration
general:
enabled: true
debug: false

auto-cleanup:
enabled: true
interval: 120 # 2 minutes for balanced performance
cleanup-on-start: true
cleanup-on-save: true

entities:
enabled: true
max-per-chunk: 20 # Smart limit
cleanup-types:
– “DROPPED_ITEM”
– “ARROW”
– “EXPERIENCE_ORB”
– “PRIMED_TNT”
– “FIREWORK”
– “ITEM_FRAME”
– “ARMOR_STAND”
– “MINECART”
– “BOAT”
– “FALLING_BLOCK”
exclude-named: true
player-distance: 32 # Optimized distance

memory:
enabled: true
force-gc: true
gc-interval: 300
cleanup-threshold: 70 # Smart threshold
clear-unused-chunks: true

# Network optimization for reduced lag
advanced:
network-optimization:
batch-packets: true
batch-size: 50
batch-delay: 1

monitoring:
enabled: true
tps-alert-threshold: 18.0
memory-alert-threshold: 90
“`

## 📈 Performance Impact

### Before TurboClean
– ❌ 200+ entities causing lag
– ❌ 90%+ memory usage
– ❌ 15-17 TPS during peak hours
– ❌ Frequent lag spikes

### After TurboClean
– ✅ Entities kept under control
– ✅ 60-70% memory usage
– ✅ Stable 19-20 TPS
– ✅ Smooth gameplay experience

## 🔧 Advanced Features

### Smart Entity Management
– **Distance-based cleanup** – Only removes entities far from players
– **Type-specific filtering** – Choose exactly which entities to clean
– **NBT preservation** – Keeps entities with custom data
– **Chunk-based limits** – Prevent entity overload per chunk

### Memory Optimization
– **Intelligent GC** – Smart garbage collection timing
– **Chunk management** – Automatic unused chunk unloading
– **Memory monitoring** – Real-time usage tracking
– **Emergency cleanup** – Automatic cleanup at high memory usage

### CPU Optimization
– **AI limiting** – Reduce entity AI processing load
– **Redstone optimization** – Optimize redstone calculations
– **Hopper optimization** – Improve hopper performance
– **Async processing** – Non-blocking operations

## 📊 Monitoring & Alerts

TurboClean provides comprehensive monitoring:

– **TPS Monitoring** – Real-time server tick rate tracking
– **Memory Alerts** – Notifications when memory usage is high
– **Performance Thresholds** – Automatic actions based on performance
– **Visual Dashboard** – Cool ASCII graphs and charts
– **Historical Trends** – Sparkline graphs showing performance over time

### 🎨 **Cool Visual Stats Dashboard**

Run `/turboclean stats` to see a beautiful ASCII dashboard with:

“`
╭─────────────────────────────────────────╮
│ TURBOCLEAN STATS │
├─────────────────────────────────────────┤
│ RAM Usage: │
│ ████████████████████░ 85% (3.2GB/4GB) │
│ Trend: ▁▂▃▄▅▆▇█▇▆▅▄▃▂▁ (15min history) │
├─────────────────────────────────────────┤
│ CPU & Performance: │
│ ██████████████░░░░░░ 70% CPU Usage │
│ 19.8 TPS (1,247 entities) │
│ TPS Trend: ▇▇▆▅▄▅▆▇▇█ │
├─────────────────────────────────────────┤
│ Disk Storage: │
│ ████████████░░░░░░░░ 60% (120GB/200GB) │
├─────────────────────────────────────────┤
│ Network Status: │
│ ████████████████████ 100% Optimal │
│ Packets: Optimized • Lag: Minimal │
├─────────────────────────────────────────┤
│ Overall Status: EXCELLENT │
╰─────────────────────────────────────────╯
“`

– **Colorized bars** – Green/Yellow/Orange/Red based on usage
– **Real-time data** – Live RAM, CPU, Disk, and Network status
– **Mini graphs** – Sparkline charts showing trends
– **Performance tips** – Automatic suggestions when needed

## 🎯 Use Cases

### Low-End Servers (Limited RAM/CPU)
– Set cleanup interval to 60-90 seconds
– Enable network-optimized cleanup
– Use memory threshold of 60-70%
– Enable all optimizations
– Use `/turboclean network` command regularly

### High-End Servers (Dedicated Hardware)
– Set cleanup interval to 120-180 seconds
– Enable standard cleanup with monitoring
– Use memory threshold of 75-85%
– Focus on entity management
– Use `/turboclean clean` for comprehensive cleanup

### Medium-End Servers (VPS/Shared)
– Set cleanup interval to 90-120 seconds
– Balance between network and quick cleanup
– Use memory threshold of 70-80%
– Enable smart monitoring
– Use `/turboclean quick` for regular maintenance

## 🔧 Troubleshooting

### High Memory Usage
1. Lower `memory.cleanup-threshold` to 70-80
2. Reduce `auto-cleanup.interval` to 180 seconds
3. Enable `memory.clear-unused-chunks`
4. Check `entities.max-per-chunk` setting

### Low TPS
1. Enable `turboclean quick` command regularly
2. Lower `entities.player-distance` to 32-48
3. Increase cleanup frequency
4. Enable CPU optimizations

### Plugin Not Working
1. Check console for errors
2. Verify Paper/Purpur server (not Spigot)
3. Ensure Java 17+ is installed
4. Check permissions are set correctly

### Commands Not Responding
1. Use `/turboclean settings` instead of `/turboclean:settings`
2. Make sure you have proper permissions
3. Check if plugin loaded correctly with `/plugins`
4. Restart server if needed

### Thread Safety Errors
1. Plugin now runs all cleanup on main thread
2. No more “Chunk getEntities call” async errors
3. All operations are thread-safe
4. Improved stability and performance

## 🤝 Support

– **Discord**: [Join our Discord](https://discord.gg/turboclean)
– **Issues**: [GitHub Issues](https://github.com/TurboClean/TurboClean/issues)
– **Wiki**: [Documentation Wiki](https://github.com/TurboClean/TurboClean/wiki)

## 📄 License

This project is licensed under the MIT License – see the [LICENSE](LICENSE) file for details.

## 💖 Support the Project

If TurboClean helps your server run smoothly, consider:
– ⭐ Starring the project on GitHub
– 💬 Leaving a review on Modrinth
– 🔄 Sharing with other server owners
– 💝 Supporting development

**Made with ❤️ for the Minecraft community**

*TurboClean – Because performance matters!*

TunnelMC

# TunnelMC 🌐

> Expose any local port to the internet via ngrok or cloudflared — no port allocations needed. Includes a full browser-based management dashboard.

TunnelMC is a Bukkit/Spigot/Paper plugin that automatically downloads and manages ngrok and/or cloudflared, creates tunnels for any local port, and broadcasts the public URL to console and online OPs the moment the tunnel is ready.

## 🆕 What’s New in 1.3.0

### Java 25 & Build Modernization
– **Upgraded to Java 25** — compiled with Java 25 bytecode for the latest JVM performance and language features.
– **Gradle 9.5.1** — build system upgraded from Gradle 8.x to 9.5.1 for native Java 25 support.
– **Virtual thread executor** — the dashboard HTTP server now uses `newVirtualThreadPerTaskExecutor()` for non-blocking I/O scaling on Java 25.
– **`plugin.yml` api-version** updated from `1.13` to `1.21` to match the target platform and suppress Paper deprecation warnings.

### Security Hardening
– **CSRF protection** — all mutating API endpoints now require an `X-TM-Request` header.
– **Brute-force login protection** — lockout after 5 failed attempts with 500ms delay per failure.
– **Timing-safe password comparison** — login now uses `MessageDigest.isEqual()` to prevent timing attacks.
– **CSP headers** — Content-Security-Policy added to all dashboard responses to mitigate XSS risks.
– **Session sweep** — expired sessions and stale lockout entries are automatically cleaned up hourly.

### Stability
– **`volatile` singleton** — static plugin instance is now `volatile` and nulled on disable to prevent classloader leaks during reloads.
– **Config bounds checking** — all numeric config getters now clamp to valid ranges via `Math.max`.
– **Default password warning** — a prominent console warning at startup if the dashboard password is still `”changeme”`.

### Compatibility
– **Minecraft 1.21.x – 26.1.x** — compiled against Paper 1.21.1 API, which is forward-compatible with all Paper versions through 26.1.x.

Existing configs remain fully compatible — no config changes required.

## ✨ Features

**🌐 Two Tunnel Providers** — ngrok and cloudflared, configurable per tunnel. Mix them freely.

**🔑 Multiple ngrok Accounts** — Each ngrok tunnel has its own authtoken (required for v3). Run different accounts simultaneously.

**🚀 Zero-Setup Quick Tunnels** — Cloudflared quick tunnels work out of the box with no account.

**📌 Custom Domains** — Cloudflared named tunnels give you persistent custom hostnames via Cloudflare Zero Trust.

**🖥️ Web Dashboard** — Full management UI. Create/edit/delete tunnels live, download binaries, change settings — all from a browser.

**⚡ Auto-Download** — Detects OS and CPU arch, downloads the right binary on first use. Cached forever after.

**🔔 Instant URL Broadcast** — URL goes to console and all online OPs the moment the tunnel is ready.

**🎮 Full Command Support** — `/tunnel` with tab completion for everything.

**🔁 Auto-Restart & Crash Loop Protection** — Tunnels restart after failure. Stops retrying if it fails too many times in a short window.

**🩺 Health Checks** — ngrok tunnels get API-level checks; cloudflared tunnels get process-alive checks.

**🐋 Pterodactyl Compatible** — Tunnels are outbound connections, so no extra port allocations are ever needed.

## 📥 Installation

1. Drop `TunnelMC.jar` into `plugins/`
2. Start the server — TunnelMC generates config and auto-exposes the dashboard via cloudflared if no tunnels are configured
3. Open the printed URL in your browser
4. Configure tunnels from the dashboard, or edit `config.yml` and run `/tunnel reload`

## ⚙️ Configuration

“`yaml
auto-start: false
default-region: “us” # fallback region for ngrok tunnels
notify-ops: true
auto-restart: true
restart-delay-seconds: 10
max-restarts: 5
crash-window-seconds: 60
health-check-interval-seconds: 30

dashboard:
enabled: true
port: 8090
bind-address: “127.0.0.1”
password: “changeme”
auto-expose-on-first-run: true

tunnels:
# Cloudflared quick tunnel — no account, random URL, HTTP only
– name: “dashboard”
port: 8090
provider: “cloudflared”
auto-start: true

# ngrok HTTP tunnel with its own account token
– name: “noderunner”
port: 8080
provider: “ngrok”
protocol: “http”
region: “us”
authtoken: “your-ngrok-token-here”

# ngrok TCP tunnel from a different account
– name: “gameserver”
port: 25565
provider: “ngrok”
protocol: “tcp”
region: “eu”
authtoken: “another-account-token”

# Cloudflared named tunnel — persistent custom domain
– name: “mc”
port: 25565
provider: “cloudflared”
token: “your-cloudflare-zero-trust-token”
hostname: “mc.yourdomain.com”
“`

## 🎮 Commands & Permissions

**Permission:** `tunnelmc.admin` *(default: OP)*

| Command | Description |
|—|—|
| `/tunnel start [name]` | Start all or a specific tunnel |
| `/tunnel stop [name]` | Stop all or a specific tunnel |
| `/tunnel restart [name]` | Restart all or a specific tunnel |
| `/tunnel url [name]` | Show public URL(s) |
| `/tunnel status` | Show all tunnel status |
| `/tunnel download ngrok` | Download ngrok binary |
| `/tunnel download cloudflared` | Download cloudflared binary |
| `/tunnel dashboard` | Show dashboard port info |
| `/tunnel reload` | Reload config and restart tunnels |

## 📋 Provider Comparison

| | ngrok | Cloudflared Quick | Cloudflared Named |
|—|:—:|:—:|:—:|
| Account required | ✅ free | ❌ none | ✅ free |
| HTTP tunnels | ✅ | ✅ | ✅ |
| TCP tunnels | ✅ | ❌ | ✅ |
| Persistent URL | paid only | ❌ | ✅ |
| Multiple accounts | ✅ per-tunnel | — | — |

## ⚠️ Free Plan Notes

**ngrok free:** one active tunnel at a time, random URL on each restart, bandwidth limits. Authtoken is required for all ngrok v3 tunnels. Per-tunnel authtokens let you use multiple free accounts to work around the one-tunnel limit.

**Cloudflared quick tunnels:** HTTP only, random `*.trycloudflare.com` URL, no bandwidth limits.

**Cloudflared named tunnels:** require a Cloudflare account (free), any protocol, persistent custom domain.

## 🐋 Pterodactyl

No extra port allocations needed — tunnels are outbound connections only. The dashboard also binds locally and doesn’t need an allocated port.

**Slow download?** TunnelMC will warn after 30 seconds with manual install steps. Place the binary at `plugins/TunnelMC/ngrok/ngrok` or `plugins/TunnelMC/cloudflared/cloudflared` and restart.

## 📊 Compatibility

| | |
|—|—|
| **Platforms** | Bukkit, Spigot, Paper, Purpur |
| **Minecraft** | 1.21.x – 26.1.x |
| **Java** | 25+ (compiled with Java 25) |
| **OS** | Linux, macOS, Windows |
| **Arch** | x64, ARM64 |

## 🔗 Related

**[NodeRunner](https://modrinth.com/plugin/noderunner)** — Run a Node.js Discord bot inside your Minecraft server.

**[PyRunner](https://modrinth.com/plugin/pyrunner)** — Run a Python Discord bot inside your Minecraft server.

*TunnelMC pairs perfectly with both — a cloudflared quick tunnel to port 8080 makes their dashboards publicly accessible with zero port allocation.*

*Developed by [Spider](https://github.com/Spider2742)*

TumiTranslator

# TumiTranslator

Add rich translations to you Minecraft Server or Proxy

## Installation
– Install [MiniPlaceholders](https://modrinth.com/plugin/miniplaceholders)
– Drag and drop on your plugins folder
– Start the server

## Features
– Add the translations you want, and use them anywhere on your server.
– Support for MiniPlaceholders placeholders. (Full support anywhere for global placeholders;
for player placeholders, requires plugins compatible with MiniMessage using the latest version)

## Placeholders

In addition to providing translations that can be used anywhere on your server,
TumiTranslator also provides placeholders for using your translations.
This is the recommended way to use translations, usable in plugins compatible with MiniPlaceholders.

– ``

Returns a translation in the language of the target/executor.
If the translation does not exist in the specified language,
it will attempt to use the translation in the configured default language.

![](https://cdn.modrinth.com/data/SpH1UuKm/images/6dc93e5f95816b0963159d37f1466ef058367c3d.png)

– ``

Returns a translation in the specified language.
If the translation does not exist in the specified language,
it will attempt to use the translation in the default language configured.

![](https://cdn.modrinth.com/data/SpH1UuKm/images/3c39bfb4a252aca38ac87559e4394df1d0aa7ea1.png)

## Usage in General Translations

The recommended use of TumiTranslator is through its MiniPlaceholders placeholders.
But if you want to use them anywhere else, it is possible. Here are some examples.

Please note that player placeholders are not yet supported in this way of displaying placeholders.
[This feature will be applied to MiniMessage in future versions.](https://github.com/KyoriPowered/adventure/pull/1300)

### Lang Tag

– ``

![](https://cdn.modrinth.com/data/SpH1UuKm/images/b8b08bdee11d9b2d46518eaf6ef15255fb24970c.png)

## Videos

#### TumiTranslator with Velocitab

[![Watch the video](https://img.youtube.com/vi/YSyx6R2_hK0/maxresdefault.jpg)](https://youtu.be/YSyx6R2_hK0)

#### TumiTranslator with VCustomBrand

[![Watch the video](https://img.youtube.com/vi/1Me2Cw_1hHI/maxresdefault.jpg)](https://youtu.be/1Me2Cw_1hHI)

## Support

Support is exclusively for those who have purchased the plugin from BuiltByBit or Polymart. You will be given a role on my Discord server with access to an exclusive channel.