3.3.0latestrtp-lite 3.3.0last week Upgrade note.
rtp.servers.*now defaults totrueinstead ofop, so in network mode every player can reach open cross-server regions; restrict with negative permissions if you relied on the old default.CIRCLEandSQUAREnow use new selection engines that ignoreweight; useCIRCLE_DEPRECATED_PURE_SPIRALorSQUARE_DEPRECATED_PURE_SPIRALto keep the 3.2.1 behavior. Region shapes now default tomode: REROLLinstead ofACCUMULATE; files that setmodekeep their value. Inconfig.yml,defaults.shape.uniquePlacementsnow defaults to"auto"(a radius matching the view distance) instead of0, anddefaults.spatialResolutionto"auto"(scaled to the region's size) instead of3; set0and3to keep the 3.2.1 values. Both jars now load on Minecraft 1.18 or newer with Java 17 or newer; the Lite jar no longer loads on 1.13 - 1.17. Folia is supported only from 1.21.11; older Folia still loads the jar but is no longer supported. Saved memory and region cache files from 3.2.1 still load, but RTP rewrites them in a new format at the next save or shutdown, and 3.2.1 can't read that format, so back upplugins/RTP/if you may need to roll back.Added
- Runs on Spigot and Paper 1.18 - 1.20.6, and on Java 17 ([ADR-113](https://github.com/DailyStruggle/RTP/tree/V3/docs/adr/ADR-113-java-17-baseline-and-26x-support-boundary.md)). The full jar now loads on Spigot and Paper 1.18 through 1.20.6, and Fabric 1.20.1 servers can run it on Java 17. These older versions are best-effort and are not covered by automated tests. NeoForge still needs 1.21.1 or newer, and Fabric 1.20.2 - 1.20.6 is not supported. Folia is supported from 1.21.11: it is experimental and only its current builds are maintained, so older Folia builds are not supported and can crash on their own. Bug reports are accepted for Minecraft 1.21.11 through the latest release; the per-version status is in the [support matrix](https://github.com/DailyStruggle/RTP/blob/V3/docs/dev/SUP… - Tag exclusions in `safety.yml` (ADR-017). Remove entries from a block tag instead of listing every variant by hand, e.g.#minecraft:slabs - OAK_SLAB. - Actions. Script multi-step teleports in YAML: what happens before, during and after the teleport, what to do on failure or timeout, and conditions that must pass first (permission, balance, cooldown, world, biome, time, server load and more). Destinations can be anchored to a player, a claim, a faction or a world center, and teams can be placed together. Walk-in triggers start an action when a player enters a zone. Commands:/rtp action(rtp.action;/rtp triggerand/rtp runare other names for it),/rtp action cancel(rtp.action.cancel) and/rtp back(rtp.back). The bundled action addon ships ready-made modes such as arena, KOTH, scatter and teams. - Web config editor (`/rtp editor`). Edit RTP's configs in a browser and apply the changes back to the server. Permission:rtp.editor. The region map shows the land of every loaded world, including the nether and the end, and a region's world can be picked from the worlds the server detected. Passwords, tokens and other secrets are redacted before anything leaves the server and are never overwritten by the editor. Only config files inside the plugin folder can be written, and a browser must be trusted before it can apply changes (revoke with/rtp editor untrust; optional expiry witheditor.trust.maxAgeDaysinadvanced/network.yml). - Import from other RTP plugins (`/rtp config import`, ADR-066). Reads another random-teleport plugin's config folder, such as BetterRTP, JustRTP or EzRTP, by recognizing common config layouts, and moves over worlds, radius, shape, cooldowns, prices, database, effects and JustRTP zones. Permission:rtp.config. The old plugin doesn't need to be installed. Existing files are only replaced withoverwrite=true, and are backed up first./rtp config import permissionsprints LuckPerms commands that map BetterRTP, JustRTP and EzRTP permission nodes to RTP's. - Setup wizard (`/rtp admin setup`). A guided first-time setup in chat or the console: world, gameplay, performance, preview, confirm. Your config is backed up before anything is written. Permission:rtp.admin.setup. - Teleport near your own claim or faction. Actions can pick destinations around the player's land, with Towny, GriefPrevention and SaberFactions/FactionsUUID supported through the bundled claim addon. The search center stays put through small land changes, and terrain already known to be bad is reused so new searches start fast. - Selection heatmap and pipeline views (`/rtp visualization heatmap`, `/rtp visualization pipeline`). See on the in-game map where destinations land and how the search moves through a region. Permission:rtp.menu.admin. - More claim plugins. The bundled claim addon also keeps players out of HuskTowns, PlotSquared, UltimateClaims and MinePlots land. - Minecraft 26.3 on Fabric. The Fabric jar also runs on 26.3 servers. - Holograms. Status and pre-teleport text can be shown as holograms, using built-in text displays on 1.19.4+ or DecentHolograms / HolographicDisplays. - New engines for `CIRCLE` and `SQUARE` (ADR-085, ADR-088). Picks spread evenly by area and never repeat a chunk within a pass. Inmode: REROLLplayers are kept several chunks apart without using up the region, soexpand: falseregions never run out; very narrow strips of land on internal cell borders may be skipped. Bad-land memory is smaller and faster, and its saved files are up to a third smaller.weightno longer applies; the old shapes remain as*_DEPRECATED_PURE_SPIRAL. - Commands as teleport effects, and a `death` stage (effects-api-ADR-007). Run console or player commands at any teleport stage, with player and location placeholders. The newdeathstage runs effects when a player dies. - Claim and spacing rejections expire (ADR-079). Land rejected for a reason that can change, such as a claim or another player nearby, is retried after the time set inadvanced/ttl.ymlinstead of being avoided forever. Bad terrain is still remembered permanently. - Units in configs and commands. Writeradius: 5km,teleportCooldown: 2h30morcacheCap: 256mb. Distance, time and size units are supported; plain numbers keep their old meaning. - World border check. RTP warns when a region reaches past the world border and keeps destinations inside it. - API on Maven Central.rtp-api,rtp-coreand the API libraries they depend on, such ascommands-apiandeffects-api, are published to Maven Central. Platform jars are not. - For addon developers. Newrtp-apisurfaces for actions, claim boundaries (ClaimBoundaryProvider), web editor extensions (EditorExtensionRegistry, ADR-107; tabs are built from the editor's own widgets, so no addon code runs in the browser, and no bundled addon uses them yet), and extra region-file formats (RegionFormatRegistry, ADR-077; RTP itself reads only Anvil.mcaand loads other formats such as.linearasynchronously).Changed
- RTP is now MIT-licensed in full ([ADR-108](https://github.com/DailyStruggle/RTP/tree/V3/docs/adr/ADR-108-all-mit-licensing-pro-as-support.md)). The PolyForm Noncommercial terms on non-core source (ADR-061) are withdrawn. Free and Pro jars are both MIT; Pro is a support tier and grants no extra licence. Earlier releases keep the licence they shipped with. - Location queues renamed to hot, cold and backlog (ADR-078). TheL1/L2/L3names in/rtp infoand the docs now say what each queue holds. Queues always release the chunks of locations they drop. - Background search loads far fewer chunks (ADR-110). Filling the location queues first checks chunks that are already loaded or saved on disk. Only locations held ready for teleport get their surrounding view-distance area preloaded. Other sp3.2.1LeafRTP | Random Teleport 3.2.1Aug 16, 2026 RTP 3.2.1
Added
- In-game config editor now shows a picker for fixed-value settings. Settings that only accept a set of values (likedatabase.type, or region shape/vert types) used to open a blank text box where a typo silently reset the value. You now pick from a list with the current value marked. - Teleport view-distance clamp for smoother arrivals. RTP can briefly lower a player's view distance just before a teleport and raise it back one step at a time, spreading out the chunk-loading work so weaker servers don't stutter on arrival. NewviewDistanceRestoreIntervalinperformance.yml(default 10s;0disables). Bukkit/Paper/Folia only.Changed
- `config.yml` is now purely teleport behavior. Database settings moved to a newdatabase.yml, and the redundant Redis block was removed (usenetwork.yml). Customized values are not auto-migrated - re-set them in the new files. - The `plugins/RTP/` folder was reorganized into a cleaner layout. Everyday files stay at the top; your regions/worlds/effects moved underdefinitions/, and rarely-edited files moved underadvanced/. RTP relocates your files automatically on upgrade and never overwrites anything - no re-tuning needed. - Biome-weighting settings moved toadvanced/biomes.ymlso all biome options live in one file. Not auto-migrated - re-set a customized value there. - Bundled add-on configs moved into an `addons/` subfolder (Countdown, GUI menu, claim integrations). Existing files are relocated automatically.config.ymlnow has a "where to find things" index at the top. - Config files now have proper header comments so each setting's own comment stays clean for menu tooltips. - RTP-lite now ships the same configs and docs as the full edition for consistency.Fixed
- Fixed several NeoForge and Fabric chunk-loading problems on newer Minecraft versions - a/rtpchunk request could freeze the server tick, fail to generate chunks (spamming the console and starving the teleport cache), or fail outright. Chunks now load correctly. - Color codes in config comments now show as literal text in the/rtp configmenu hover instead of being turned into actual colors. - NeoForge on MC 26.2 no longer crashes when a colored `/rtp` message is sent (e.g. clicking a GUI destination). - GUI/menu addon teleports now apply the economy charge instead of teleporting for free (teleport price, per-region prices, andrtp.freeall apply; failed teleports are refunded). - Fixed a stray `x` character before the `[RTP]` prefix on NeoForge/Fabric when a gradient wraps a nested rainbow. - Fixed the last character of a gradient message rendering in the start color instead of the end color on NeoForge/Fabric. - GUI/menu addon teleports are now instant when a location is already cached, matching the/rtpcommand.3.2.0LeafRTP | Random Teleport 3.2.0Jun 22, 2026 RTP 3.2.0
Big change: RTP now comes with a menu built in. Type/rtpand you get a clickable picker instead of instant teleport. Don't like it? Deleteaddons/LeafRTPGuiAddon.jarto go back to instant. (The menu has an instant option too, and it falls back to instant when no menu is available.) New - Countdowns now show as a boss bar instead of spamming chat. -/rtpnow sends you to open-sky spots by default - no more spawning in caves. - Now ships the full safety config (more block options out of the box). - The plugin quietly learns biomes from chunks players load, for better results. Fixed -requireSkyLightno longer drops players in caves. - The/rtpmenu now opens on Fabric and NeoForge too. - Low-memory servers no longer get stuck pausing forever - RTP now frees memory. - Per-world setups now actually work. - Lots of Fabric and NeoForge 1.26 fixes: no more crashes on teleport effects, chunks generate properly, and the server no longer freezes loading them. [Full changelog](https://github.com/DailyStruggle/RTP/blob/V3/CHANGELOG.md)3.1.3-hotfixLeafRTP | Random Teleport 3.1.3Jun 19, 2026 the server backends for fabric and neoforge were left off for no reason. Fixed3.1.3LeafRTP | Random Teleport 3.1.3Jun 18, 2026 LeafRTP 3.1.3
MiniMessage color/gradient support everywhere (even on plain Spigot), six new claim integrations, a world picker in the menu, and a heap-pressure safety brake.Added
- MiniMessage markup anywhere color codes work - named/hex colors, gradients, decorations. Gradients now render even on pure Spigot (no Adventure). Chat, titles, action bar, console, Fabric & NeoForge all honor it. - Six new claim integrations: SaberFactions, FactionsBridge, Residence, CrashClaim, HuskClaims, KingdomsX - now twelve bundled. - World picker row in the/rtpmenu. - Drop-in `plugins/RTP/addons/` folder for addon jars (noplugin.ymlneeded).Fixed
- WorldGuard protection now actually enforced - a flag-logic inversion let RTP land players inside protected regions. - Gradients mixed with legacy/hex codes no longer break. - A throwing claim/region verifier now fails safe (rejects instead of silently accepting). - `/rtp region:<r> world:<w>` now teleports into that world, with a dimension-correct vert for nether/end. - Heap-pressure backoff - background cache fill pauses overmaxHeapPercent(default 85), preventing small-heap GC-thrash hangs.Changed
- MC 26.2 Fabric adapter re-pinned to the 26.2 final release. - Bundled claim deps refreshed; dropped the unmaintained legacy Factions (1.6.9.x) and pre-2.x HuskTowns integrations. 100% free, MIT-licensed. Also on Modrinth.3.1.2LeafRTP | Random Teleport 3.1.2Jun 13, 2026 This release fixes the last blockers for Folia and cross-server networking in the free build. Folia support required adjusting a handful of scheduler call sites so work lands on the correct region thread; networking required a newproxy-directtransport that uses the proxy itself as the shared store, so the average server owner doesn't need to set up Redis or SQL to get cross-server/rtp.Added
- Basic Folia support. The lite build now runs on Folia:folia-supported: trueis set inplugin.yml, a newFoliaAwareSchedulerroutes work through Paper API's regionized and per-entity schedulers, and teleports go throughEntity#teleportAsync. The throughput-optimizedrtp-foliaadapter remains Pro-only. - Cross-server `/rtp` on the DB-free `proxy-direct` tier, as a drop-in alternative to Redis/SQL. A cross-server/rtp <server>:<region>issued on a lobby now moves the player and runs/rtpon the destination backend with no Redis/SQL required.proxy-directuses the proxy's own in-memory transport as the shared store, reached over an outbound TCP connection via a thin RPC, HMAC-signed whenRTP_NET_SECRETis set. - `proxy-direct` network transport: player-independent cross-server region discovery.transport.type: proxy-directlets a backend publish its real region list at startup with no player online, so cross-server tab-completion converges with zero players on any backend. No Redis/SQL required. - Per-server `/rtp` permission gate for networked backends. Cross-server/rtp <server>:<region>is now gated byrtp.servers.<server>in addition tortp.regions.<region>, so operators can allow/deny teleport per backend.rtp.servers.*defaults to op and is a child ofrtp.*. - `/rtp info biomes` biome-occupancy leaderboard. Reports which biomes online players actually spend their time in, ranked by share - useful for gauging where players congregate. Counts are in-memory only and reset on restart/reload. Gated by the existingrtp.infopermission. - spark profiler is now an optional source for `/rtp info` TPS/MSPT metrics. When [spark](https://spark.lucko.me/) is installed, RTP merges spark's richer per-window TPS (1m/5m/15m) and mean MSPT over the native binding. Pure soft-dependency via reflection; no compile dependency added. - `performance.yml#biomeWeights` ships the full vanilla biome set pre-listed at weight `1.0`. Every vanilla overworld/nether/end biome is now enumerated as a ready-to-edit reference. Behaviour is unchanged: an all-1.0map is identical to the prior default. - Biome-probability weighting ([ADR-062](https://github.com/DailyStruggle/RTP/tree/V3/docs/adr/ADR… Newperformance.ymlknobsbiomeWeighted(defaultfalse) andbiomeWeights(biome id -> relative weight) let operators bias or suppress specific biomes in the teleport draw. When enabled, the location selector draws a target biome proportionally to its configured weight, then explores via the bounded spiral until that biome is confirmed. - Registry-aware gray-space steering for biome weighting. A requested biome the world can produce but that recall memory has not yet recorded stays reachable via bounded-spiral exploration rather than being treated as weight0. Each recorded biome defers a run-count-proportional share of its weight to exploration, so a high weight on a thinly-recorded biome can never amplify single-run clustering. - `/rtp version` (alias `/rtp about`) subcommand. Reports the running plugin version, platform brand, and host server version. Gated by a newrtp.versionpermission (defaulttrue, child ofrtp.*).Fixed
- Map charts and metrics work correctly on Folia (new in this release alongside Folia support). Map chart delivery is dispatched to the region thread owning the viewer's chunk viaRTP.scheduler.runTask(viewerLocation, ...)rather than the global region thread, avoiding aNullPointerExceptionon delivery. Metrics install falls through Folia -> Paper -> raw Bukkit sampler so bStats and/rtp inforeport live data from first boot. - Relative coordinate tokens (`/rtp centerx=~ centerz=~`) now resolve to the player's position. A~value previously fell through toBoolean.valueOf("~") == false, silently setting the center to0. A newresolveRelativeCoordinatehelper resolves~,~<n>,-~, and-~<n>against the player's current X/Z. - Fabric and NeoForge no longer suggest `/rtp` subcommands or parameters the caller lacks permission for. The Brigadier bridge's suggestion provider now gates suggestions throughBrigadierBridgeContext.permissionCheck(), closing a tab-completion leak on Brigadier-dispatched platforms.Changed
- Released jars trimmed of dead weight. Both Pro and lite jars now exclude compile-only IntelliJ annotation classes and orphan Maven metadata that leaked in from shaded dependencies. No code or API change. - `/rtp info` stays compact before any metrics are sampled. TPS, MSPT, pipeline latency, percentile, and database-latency rows are suppressed until their underlying values exist. Always-available rows (JVM heap, queue depth, pending teleports, generation outcomes) are unchanged. - Per-batch `[TRACE] ScanTask diag` line demoted from INFO to FINE. No longer spams the console during a world scan; still available at elevated log levels.3.1.1LeafRTP | Random Teleport 3.1.2 - Neoforge support addedJun 10, 2026 NEW - Vault economy support now ships in lite: optional per-/rtpcharging (price, priceOther, surcharges, balance floor, refund-on-cancel) works out of the box. Dormant at zero cost when Vault isn't installed. - German (de) locale translation expanded (the locale already existed; this pass translates more of it). - Region-specific schematic paste, with a shared translator across platforms. - Optional PvP / combat-tag gate (off by default) with bundled integrations for PvPManager, CombatLogX and Simple Combat Log, plus a native combat tracker. -/rtp clearcacheadmin command and a newrtp.adminpermission node. -/rtp infonow surfaces generation success/failure rates and per-cause breakdowns; live-updating bad-locations map during a scan. -uniquePlacementsis now an integer chunk radius (legacy true/false still accepted); config getters tolerate boolean<->int cross-typing. - Optional emergency-platform block-restoration timeout (safety.yml:platformRestoreSeconds). CHANGED - RTP is now MIT-licensed (open-core dual licensing). The jar bundles the MIT license text. - Region biome visualization now sources pixels from saved scan biome data only.3.1.0LeafRTP | Random Teleport 3.1.0May 31, 2026 [3.1.0] - 2026-05-31
Added
- German (`de`) locale shipped across all config/message files; full locale parity maintained. - Region-specific schematic paste platforms ([ADR-058](https://github.com/DailyStruggle/RTP/tree/V3/docs/adr/ADR… with newPasteOptionsAPI andRegionVerifierRegistryfootprint claim checks (S-003). New prefabs updated to use it (skyblock,oneblock,high-performance,multi-world). - Pluggable bare-`/rtp` root action ([ADR-056](https://github.com/DailyStruggle/RTP/tree/V3/docs/adr/ADR… REQ-API-F-006). NewRootActionRegistrySPI (RTPAPI.hooks().rootAction()) lets an addon take over a bare/rtp(e.g. open a GUI menu) instead of teleporting; subcommands are never routed through it. Shipped with an example menu addon. - Platform-agnostic addon SPI ([ADR-057](https://github.com/DailyStruggle/RTP/tree/V3/docs/adr/ADR… NewRTPAddonlifecycle interface +AddonRegistry(RTP.addons, ServiceLoader-based) so an addon jar runs unchanged on Bukkit/Paper/Folia, Fabric, and proxy JVMs.RTP_ExampleAddonported with zeroorg.bukkit.*imports. - Optional PvP / combat-tag gate ([ADR-055](https://github.com/DailyStruggle/RTP/tree/V3/docs/adr/ADR… Off by default (safety.yml#pvpCheckEnabled=false). When enabled,/rtpis refused for a player currently in combat, using either a boundPvPCombatStateRegistryprovider (combat-tag plugins such as PvPManager / SimpleCombatLog / CombatLogX) or RTP's built-in native damage tracker. The native tracker is now fed on every supported platform: Bukkit/Paper/Folia via anEntityDamageByEntityEventlistener and Fabric viaServerLivingEntityEvents.AFTER_DAMAGE(both resolve the projectile shooter / primed-TNT igniter as the aggressor and stamp victim/aggressor perpvpTagVictim/pvpTagAggressor). The gate is consulted at the/rtppre-dispatch surface before the player is enrolled, fails open (a broken external provider never blocks a teleport), audits every refusal at WARNING (REQ-RTP-S-004), and uses the new configurablemessages.yml#pvpInCombatstring (REQ-RTP-F-013). Sixsafety.ymlknobs:pvpCheckEnabled,pvpCombatTagSeconds,pvpOnCombat,pvpSource,pvpTagVictim,pvpTagAggressor. - Bundled combat-tag plugin integrations for the PvP gate ([ADR-055](https://github.com/DailyStruggle/RTP/tree/V3/docs/adr/ADR… New reflection-based soft-depend adapters for PvPManager, CombatLogX, and Simple Combat Log (rtp-plugin/.../softdepends/pvp/);PvPIntegrations.setupbinds the first enabled plugin (priority PvPManager, then CombatLogX, then Simple Combat Log) toPvPCombatStateRegistryviaRTPAPI.hooks().pvpCombatState(), gated onisPluginEnabled(...)like the claim integrations. When none is installed (orpvpSource: NATIVE), the native combat tracker answers; a reflective/API-version failure disables the adapter for the session and treats the player as not-in-combat (REQ-RTP-S-004). Wired in both the full and rtp-lite bootstraps. Covered byPvPCombatAdapterTest. - `uniquePlacements` is now an integer chunk radius (was boolean; defaults to0= off).N >= 1clears a(2N-1)x(2N-1)chunk square around each used spot so placements spread out; legacytrue/falsestill coerce to1/0. Retired spots tagged with a dedicateduniquePlacementfail cause. - Config getters tolerate boolean<->int cross-typing, so a legacytrue/falseon a now-numeric knob (or0/1on a boolean knob) resolves instead of throwing. - Optional emergency-platform block-restoration timeout ([ADR-060](https://github.com/DailyStruggle/RTP/tree/V3/docs/adr/ADR… Newsafety.ymlknobplatformRestoreSeconds(-1= disabled default;0= restore on first loaded pulse;> 0= after that many seconds). Restores are chunk-load-aware (never force-loads, S-005), Folia-safe, and persisted across restarts. - `/rtp info` now surfaces generation outcomes (REQ-RTP-OBS-007, [ADR-052](https://github.com/DailyStruggle/RTP/tree/V3/docs/adr/ADR… success/failure rate and a per-cause rejection breakdown, via six new placeholders and threemessages.ymllines. - Live-updating bad-locations map during a world scan: the admin "Region shape" chart now re-renders ~1 Hz from the in-memory bad-keys cache so scan progress is visible without re-issuing the command. - New bStats charts:language_selection, MSPT-p99 by platform/game-version/plugin-version, and aggregate generation-outcome (success rate + top failure cause). All privacy-safe (bucketised / whitelisted categories). - `/rtp clearcache` admin command (permissionrtp.admin). Clears the L1 (kept), L2 (unkept), and L3 (backlog) location caches for every region across the board in one shot, releasing any held chunk reservations and dropping the associated persisted rows; the scan/queue machinery refills the caches afterwards. Backed by a newRegionQueueManager.clearCaches(). - `rtp.admin` permission node declared inplugin.yml(both full and lite), gating/rtp clearcacheand grouping the existing admin tooling permissions (rtp.reload,rtp.config,rtp.scan,rtp.info) as children so a single grant covers all admin commands. - (Pro) Numeric range predicates in the safety-list grammar ([ADR-017](https://github.com/DailyStruggle/RTP/tree/V3/docs/adr/ADR… amendment).safety.yml::unsafeBlocks/airBlocksnow accept block-state comparisons (LAVA[level<=3],FIRE[age>=10],*[level>=8]); multiple bounds AND together. rtp-lite ignores tag/predicate tokens.Changed
- Region biome visualization now sources its pixels from saved region biome data only.RegionBiomesResolverno longer reads on-disk.mcapalettes viaRTPWorld.readBiomesInRegionFile; it classifies each in-disk pixel through the newMemoryShape.biomeAt(int, int)/biomeAt(long), a floor-search over the persistedbiomeKeysCache/biomePrefixSumsCacheaccumulated by the scan pipeline (no chunk I/O, S-005-clean). Pixels with no recorded biome render as unsampled (BLACK), so the chart reflects what the scan has actually saved for the region.3.0.0RTP 3.0.0May 27, 2026 transferring from spigotmc resource https://www.spigotmc.org/resources/rtp.94812/ runs on paper and fabric, a few things left to implement on the fabric side of things but the core functionality works.
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta
LuckPerms
A permissions plugin/mod for Minecraft servers.
2.8MSueta
ItemSwapper
Inventory update concept for hotswapping items.
2.1MSueta
SkinsRestorer
🎨 Ability to restore/change skins on servers! (Offline and Online Mode)
1.6MSueta