|
| 1 | +--- |
| 2 | +title: Overview |
| 3 | +description: Create and manage custom portals |
| 4 | +icon: BookMarked |
| 5 | +--- |
| 6 | + |
| 7 | +# Portals |
| 8 | + |
| 9 | +Portals is a powerful Minecraft server plugin for **Folia** and **Paper** |
| 10 | +that allows you to create custom portals with advanced functionality. |
| 11 | +Create portals that teleport players across worlds, |
| 12 | +link to other portals, transfer players to different servers, or execute commands. |
| 13 | + |
| 14 | +## Features |
| 15 | + |
| 16 | +### Portal Actions |
| 17 | + |
| 18 | +- **Linked Portals**: Create bidirectional or one-way portals that connect to each other |
| 19 | +- **Coordinate Teleports**: Teleport players to specific coordinates across worlds |
| 20 | +- **Random Teleports**: Teleport players randomly within defined bounds or radius |
| 21 | +- **Server Transfers**: Transfer players to external servers (hostname + port) |
| 22 | +- **Network Connects**: Connect to servers within your BungeeCord/Velocity network |
| 23 | +- **Command Execution**: Run commands as the player or console when entering a portal |
| 24 | + |
| 25 | +### Access Control |
| 26 | + |
| 27 | +- **Entry Permissions**: Restrict portal access with custom permissions |
| 28 | +- **Entry Fees**: Charge players using **ServiceIO** or **Vault** economy integration |
| 29 | +- **Cooldowns**: Set cooldown periods between portal uses |
| 30 | + |
| 31 | +### Portal Creation |
| 32 | + |
| 33 | +- **WorldEdit Integration**: Use WorldEdit selections for easy portal creation |
| 34 | +- **Manual Bounds**: Define portal regions with coordinate arguments |
| 35 | +- **Flexible Regions**: Create portals of any shape and size |
| 36 | + |
| 37 | +## Quick Start |
| 38 | + |
| 39 | +### Basic Usage |
| 40 | + |
| 41 | +The main command of Portals is `/portal`, |
| 42 | +and requires the permission `portals.command.<subcommand>`: |
| 43 | + |
| 44 | +``` |
| 45 | +<gray># Create a portal using WorldEdit selection</gray> |
| 46 | +/portal create <aqua>spawn-portal</aqua> |
| 47 | +
|
| 48 | +<gray># Set the portal to teleport to spawn</gray> |
| 49 | +/portal action <aqua>spawn-portal</aqua> teleport <yellow>minecraft:overworld</yellow> <green>0 64 0</green> <light_purple>0 0</light_purple> |
| 50 | +
|
| 51 | +<gray># Add a cooldown of 30 seconds</gray> |
| 52 | +/portal cooldown <aqua>spawn-portal</aqua> <yellow>30s</yellow> |
| 53 | +
|
| 54 | +<gray># Set an entry fee of 100</gray> |
| 55 | +/portal cost <aqua>spawn-portal</aqua> <yellow>100</yellow> |
| 56 | +
|
| 57 | +<gray># List all portals</gray> |
| 58 | +/portal list |
| 59 | +``` |
| 60 | + |
| 61 | +### Common Scenarios |
| 62 | + |
| 63 | +#### Linked Portals |
| 64 | + |
| 65 | +Create two portals that link to each other: |
| 66 | +``` |
| 67 | +<gray># Create first portal</gray> |
| 68 | +/portal create <aqua>portal-a</aqua> |
| 69 | +
|
| 70 | +<gray># Create second portal</gray> |
| 71 | +/portal create <aqua>portal-b</aqua> |
| 72 | +
|
| 73 | +<gray># Link portal-a to portal-b</gray> |
| 74 | +/portal action <aqua>portal-a</aqua> teleport-portal <yellow>portal-b</yellow> |
| 75 | +
|
| 76 | +<gray># Link portal-b to portal-a (for bidirectional)</gray> |
| 77 | +/portal action <aqua>portal-b</aqua> teleport-portal <yellow>portal-a</yellow> |
| 78 | +``` |
| 79 | + |
| 80 | +#### Random Teleport Portal |
| 81 | + |
| 82 | +Create a portal that teleports players randomly: |
| 83 | +``` |
| 84 | +<gray># Create the portal</gray> |
| 85 | +/portal create <aqua>random-portal</aqua> |
| 86 | +
|
| 87 | +<gray># Set random teleport with radius of 1000 blocks around 0, 64, 0 with a 100 block height limit</gray> |
| 88 | +/portal action <aqua>random-portal</aqua> teleport-random <yellow>minecraft:overworld</yellow> <green>0 64 0</green> <light_purple>1000</light_purple> <gold>100</gold> |
| 89 | +``` |
| 90 | + |
| 91 | +#### Server Transfer Portal |
| 92 | + |
| 93 | +Connect players to another server in your network: |
| 94 | +``` |
| 95 | +<gray># Create the portal</gray> |
| 96 | +/portal create <aqua>lobby-portal</aqua> |
| 97 | +
|
| 98 | +<gray># Connect to lobby server (BungeeCord/Velocity)</gray> |
| 99 | +/portal action <aqua>lobby-portal</aqua> connect <yellow>lobby</yellow> |
| 100 | +``` |
| 101 | + |
| 102 | +#### Premium Portal with Fee |
| 103 | + |
| 104 | +Create a portal with entry requirements: |
| 105 | +``` |
| 106 | +<gray># Create the portal</gray> |
| 107 | +/portal create <aqua>vip-portal</aqua> |
| 108 | +
|
| 109 | +<gray># Set entry fee</gray> |
| 110 | +/portal cost <aqua>vip-portal</aqua> <yellow>500</yellow> |
| 111 | +
|
| 112 | +<gray># Set entry permission</gray> |
| 113 | +/portal permission <aqua>vip-portal</aqua> <yellow>server.vip</yellow> |
| 114 | +
|
| 115 | +<gray># Set cooldown (60 seconds)</gray> |
| 116 | +/portal cooldown <aqua>vip-portal</aqua> <yellow>60s</yellow> |
| 117 | +``` |
| 118 | + |
| 119 | +## Permission System |
| 120 | + |
| 121 | +### Command Permissions |
| 122 | + |
| 123 | +Portals uses fine-grained permissions following the pattern: |
| 124 | +- `portals.command.create` - Create portals |
| 125 | +- `portals.command.delete` - Delete portals |
| 126 | +- `portals.command.list` - List portals |
| 127 | +- `portals.command.action` - Set portal actions |
| 128 | +- `portals.command.redefine` - Redefine portal bounds |
| 129 | +- `portals.command.cost` - Set entry fees |
| 130 | +- `portals.command.cooldown` - Set cooldowns |
| 131 | +- `portals.command.teleport` - Teleport to portals |
| 132 | +- `portals.command.permission` - Set entry permissions |
| 133 | + |
| 134 | +### Entry Permissions |
| 135 | + |
| 136 | +Portal entry permissions are custom and set per-portal using `/portal permission`. |
| 137 | + |
| 138 | +## WorldEdit Integration |
| 139 | + |
| 140 | +Portals optionally integrates with WorldEdit for easier portal creation: |
| 141 | + |
| 142 | +1. Use `//wand` to get the WorldEdit selection tool |
| 143 | +2. Select the portal region by clicking two corners |
| 144 | +3. Run `/portal create <name>` to create the portal with your selection |
| 145 | + |
| 146 | +Alternatively, you can specify bounds manually: |
| 147 | +``` |
| 148 | +/portal create <aqua>my-portal</aqua> <yellow>x1 y1 z1</yellow> <green>x2 y2 z2</green> <light_purple>world</light_purple> |
| 149 | +``` |
0 commit comments