NexusWarps
Official Documentation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Table of Contents
- Installation
- Configuration
- Messages & Language
- Commands
- Permissions
- Warp Limits
- Database Setup
- Protection Plugins
- PlaceholderAPI
- GUI Overview
- FAQ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Installation
Requirements:
- Paper or Spigot 1.21+
- Java 17+
Steps:
- Download NexusWarps-1.0.0.jar
- Drop it into your server's /plugins/ folder
- Start or restart your server
- The plugin will generate the following files automatically:
Code (Text):
plugins/
└── NexusWarps/
├── config.yml
├── nexuswarps.db ← SQLite database (auto-created)
└── lang/
├── en.yml ← English
└── es.yml ← Spanish
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2. Configuration
The main configuration file is config.yml. Below is a full breakdown of every option.
Language
Code (Text):
# Sets the language of all plugin messages.
# Must match a file name in the /lang/ folder (without .yml)
language: en
Database
Code (Text):
database:
# Type: sqlite | mysql
type: sqlite
Warp Limits
Code (Text):
warp-limits:
nexuswarps.limit.default: 1
nexuswarps.limit.vip: 2
nexuswarps.limit.mvp: 3
nexuswarps.limit.elite: 5
nexuswarps.limit.legend: 10
# The highest value a player qualifies for is used.
# nexuswarps.limit.bypass = unlimited warps
Warp Settings
Code (Text):
warps:
max-name-length: 24 # Maximum characters in a warp name
min-name-length: 3 # Minimum characters in a warp name
max-desc-length: 64 # Maximum characters in a description
name-regex: '[a-zA-Z0-9_-]+' # Allowed characters in warp names
teleport-delay: 3 # Seconds before teleporting (0 = instant)
teleport-cooldown: 5 # Seconds between teleports (0 = no cooldown)
allow-cross-world: true # Allow teleporting to warps in other worlds
create-cost: 0.0 # Cost to create a warp (requires Vault)
teleport-cost: 0.0 # Cost to teleport to a warp (requires Vault)
GUI Settings
Code (Text):
gui:
title: "&8&lNexus&r&6&lWarps &8» &7Browse"
warps-per-page: 45 # Max 45
default-sort: VISITS # VISITS | RATING | NEWEST | NAME
filler-material: GRAY_STAINED_GLASS_PANE
prev-page-material: ARROW
next-page-material: ARROW
sort-material: HOPPER
info-material: BOOK
close-material: BARRIER
Protection Hooks
Code (Text):
hooks:
worldguard:
enabled: true
require-ownership: true # true = must own region, false = just be a member
lands:
enabled: true
require-ownership: true
griefprevention:
enabled: true
require-ownership: true
Logging
Code (Text):
logging:
log-warp-changes: true # Log warp creation/deletion to console
log-teleports: false # Log teleports to console
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3. Messages & Language
All messages are stored in plugins/NexusWarps/lang/.
Changing the language:
Set the language option in config.yml to match the file name:
Code (Text):
language: es # loads lang/es.yml
Adding a new language:
- Copy lang/en.yml to lang/fr.yml (or any language code)
- Translate all the values
- Set language: fr in config.yml
- Run /pwadmin reload
Color codes:
NexusWarps supports both standard Bukkit color codes and full hex colors in all messages.
Code (Text):
# Standard color codes
prefix: "&6[NexusWarps] "
# Hex colors
prefix: "�b4ff&lNexusWarps &8» "
Available placeholders in messages:
Code (Text):
{prefix} - Plugin prefix
{player} - Player name
{warp} - Warp name
{owner} - Warp owner name
{rating} - Warp rating
{visits} - Visit count
{world} - World name
{max} - Warp limit
{count} - Current warp count
{delay} - Teleport delay in seconds
{seconds} - Cooldown seconds remaining
{cost} - Action cost
{material} - Material name
{old} - Old warp name (rename)
{new} - New warp name (rename)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
4. Commands
Aliases for /pw: /warp, /warps, /nexuswarp
| /pw |
Open the warp browser GUI |
nexuswarps.use |
| /pw <name> |
Teleport to a warp by name |
nexuswarps.teleport |
| /pw create <name> [description] |
Create a new warp at your location |
nexuswarps.create |
| /pw remove <name> |
Remove your warp |
nexuswarps.remove |
| /pw rename <name> <newName> |
Rename your warp |
nexuswarps.rename |
| /pw reset <name> |
Move warp to your current location |
nexuswarps.reset |
| /pw rate <name> <1-5> |
Rate a warp (cannot rate your own) |
nexuswarps.rate |
| /pw seticon <name> <material> |
Set the warp icon shown in the GUI |
nexuswarps.seticon |
| /pw desc <name> <text> |
Set or update a warp description |
nexuswarps.setdesc |
| /pwadmin reload |
Reload config and all language files |
nexuswarps.admin |
| /pwadmin forceremove <name> |
Force remove any warp on the server |
nexuswarps.admin |
| /pwadmin list [player] |
List all warps, optionally filter by player |
nexuswarps.admin |
| /pwadmin teleport <name> |
Teleport to any warp (bypasses delay) |
nexuswarps.admin |
| /pwadmin seticon <name> <material> |
Set icon for any warp |
nexuswarps.admin |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
5. Permissions
| nexuswarps.use |
Use /pw command |
true |
| nexuswarps.create |
Create warps |
true |
| nexuswarps.remove |
Remove own warps |
true |
| nexuswarps.rename |
Rename own warps |
true |
| nexuswarps.reset |
Reset own warp location |
true |
| nexuswarps.rate |
Rate warps |
true |
| nexuswarps.teleport |
Teleport to warps |
true |
| nexuswarps.seticon |
Set own warp icon |
true |
| nexuswarps.setdesc |
Set own warp description |
true |
| nexuswarps.admin |
All admin commands |
op |
| nexuswarps.limit.bypass |
Unlimited warps |
op |
| nexuswarps.limit.default |
Default tier (1 warp) |
true |
| nexuswarps.limit.vip |
VIP tier (2 warps) |
false |
| nexuswarps.limit.mvp |
MVP tier (3 warps) |
false |
| nexuswarps.limit.elite |
Elite tier (5 warps) |
false |
| nexuswarps.limit.legend |
Legend tier (10 warps) |
false |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
6. Warp Limits
Warp limits are permission-based. The highest limit a player qualifies for is used.
Example setup with LuckPerms:
Code (Text):
# Give VIP players the VIP limit
/lp group vip permission set nexuswarps.limit.vip true
# Give MVP players the MVP limit
/lp group mvp permission set nexuswarps.limit.mvp true
# Give a player unlimited warps
/lp user Steve permission set nexuswarps.limit.bypass true
Changing the limits in config.yml:
Code (Text):
warp-limits:
nexuswarps.limit.default: 1
nexuswarps.limit.vip: 2
nexuswarps.limit.mvp: 3
nexuswarps.limit.elite: 5
nexuswarps.limit.legend: 10
You can add as many custom tiers as you want — just add a new permission and limit value, then assign the permission to a group in your permissions plugin.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
7. Database Setup
SQLite (Default)
No setup required. The database file is created automatically at plugins/NexusWarps/nexuswarps.db.
Code (Text):
database:
type: sqlite
MySQL
Recommended for large networks or servers that want a shared database.
- Create a database on your MySQL server (e.g. nexuswarps)
- Fill in your credentials in config.yml:
Code (Text):
database:
type: mysql
mysql:
host: localhost
port: 3306
name: nexuswarps
username: root
password: yourpassword
pool-size: 10
use-ssl: false
- Restart your server — tables are created automatically
Note: MySQL connector is automatically downloaded by Paper on first startup. No manual installation needed.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
8. Protection Plugins
NexusWarps integrates with WorldGuard, GriefPrevention and Lands to prevent players from creating warps on land they don't own. All hooks are optional — the plugin works fine without any of them.
How it works:
When a player runs /pw create or /pw reset, NexusWarps checks with every enabled protection plugin. If any of them deny the action, the warp is not created.
Configuration:
Code (Text):
hooks:
worldguard:
enabled: true
require-ownership: true # false = member is enough, true = must be owner
lands:
enabled: true
require-ownership: true
griefprevention:
enabled: true
require-ownership: true
Wilderness behavior:
If a location has no region/claim/land, it is always allowed regardless of settings.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
9. PlaceholderAPI
NexusWarps registers its own PlaceholderAPI expansion automatically if PlaceholderAPI is installed.
| %nexuswarps_count% |
Total warps on the server |
42 |
| %nexuswarps_player_count% |
Warps owned by the player |
2 |
| %nexuswarps_player_limit% |
Max warps the player can have |
5 |
| %nexuswarps_top_name_1% |
Name of warp ranked #1 by visits |
SpawnShop |
| %nexuswarps_top_visits_1% |
Visit count of warp ranked #1 |
1204 |
| %nexuswarps_top_rating_1% |
Rating of warp ranked #1 |
4.8 |
| %nexuswarps_top_owner_1% |
Owner of warp ranked #1 |
Steve |
| %nexuswarps_warp_<name>_visits% |
Visits of a specific warp |
320 |
| %nexuswarps_warp_<name>_rating% |
Rating of a specific warp |
4.2 |
| %nexuswarps_warp_<name>_owner% |
Owner of a specific warp |
Alex |
| %nexuswarps_warp_<name>_exists% |
Whether a warp exists |
true |
| %nexuswarps_warp_<name>_desc% |
Description of a specific warp |
Best shop on the server! |
Note: Replace <name> with the actual warp name. Replace 1 in top placeholders with any number from 1 to 10.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
10. GUI Overview
The GUI is opened with /pw or by clicking a warp in chat.
Layout:
Code (Text):
┌───────────────────────────────────────────────────────┐
│ [Warp] [Warp] [Warp] [Warp] [Warp] [Warp] [Warp] │
│ [Warp] [Warp] [Warp] [Warp] [Warp] [Warp] [Warp] │
│ [Warp] [Warp] [Warp] [Warp] [Warp] [Warp] [Warp] │
│ [Warp] [Warp] [Warp] [Warp] [Warp] [Warp] [Warp] │
│ [Warp] [Warp] [Warp] [Warp] [Warp] [Warp] [Warp] │
│ [◀ Prev] [░░░] [Sort] [░░░] [Info] [░░░] [Next ▶] │
└───────────────────────────────────────────────────────┘
Warp item tooltip shows:
- Warp name (gold, bold)
- Owner name
- Description (if set)
- Star rating with average score
- Total visit count
- World name
Special effects:
- Warps with 4.5+ stars and 3+ ratings display a glowing enchantment effect
Sort modes (cycle with the Sort button):
- Most Visited — highest visit count first
- Highest Rated — highest average rating first
- Newest — most recently created first
- A-Z — alphabetical order
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
11. FAQ
Q: The plugin loaded but warps aren't saving after restart.
A: Make sure the plugins/NexusWarps/ folder has write permissions. Check console for any database errors on startup.
Q: Can I migrate from SQLite to MySQL?
A: Not automatically yet. You can manually export the SQLite database and import it into MySQL, then switch the type in config.yml.
Q: Players can create warps in other people's regions.
A: Make sure the relevant hook is enabled in config.yml and the protection plugin is installed and working. Run /pwadmin reload after making changes.
Q: How do I give a player unlimited warps?
A: Give them the permission nexuswarps.limit.bypass.
Q: Can I use hex colors in warp descriptions?
A: Not in warp descriptions entered by players — only in the lang files by admins. Player input is not parsed for colors for security reasons.
Q: The GUI title shows color codes instead of colors.
A: Make sure you're using Paper instead of plain Spigot. Paper has proper Adventure API support for inventory titles.
Q: /pwadmin reload doesn't reload the database.
A: Correct — reload only refreshes config.yml, language files and the warp cache. To change database settings a full server restart is required.
Q: Can I add my own language?
A: Yes! Copy lang/en.yml, rename it to your language code (e.g. lang/de.yml), translate all values, then set language: de in config.yml and run /pwadmin reload.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Still need help? Join our Discord:
discord.gg/RDvw427bqC
NexusWarps © 2026 catfarhan — All Rights Reserved