Skip to content

Repository files navigation

ImmersivePortalsPaperized

An attempt at making Immersive Portals but completely server-side as a Paper plugin.

This Repo includes code from both NetherView and BetterPortals

Modrinth Description: # Immersive Portals Paperized A highly-optimized, server-side portal rendering and teleportation engine for PaperMC. Inspired by the Immersive Portals mod

Plugin

A Minecraft plugin that allows nether portals to be seen through, it displays whats on the other side in real-time, and supports custom portal creation. Everything without any client modifications.

⚠️ Currently in Alpha, don't expect a stable plugin!

⚠️ Spigot support is not guaranteed as it uses extensive PaperAPI features!

Please Message me if you encounter any Bugs! Discord: blizzard8562 (for Bug-Reports, other Issues and Feedback)

Current Features:

  • See-through nether portals
  • Real-time portal rendering
  • Custom portal creation
  • Cross-server portal support
  • Portal effects and presets
  • Economy integration (Vault)
  • Selection wand
  • Folia compatible
  • GUI admin menu
  • TPS-aware rendering
  • Portal admin GUI
  • Anti-dupe protection
  • Multi-world support
  • Dimension blending
  • Light block system (1.18+)
  • Internationalization (25+ languages)
  • Automatic update checks via Modrinth

Future Features:

  • Entity/Player Pass through
  • Entity tracking and replication (both are theoretically implemented but they dont work as they should)
  • Making the Plugin more stable
  • Performance optimizations

Commands:

All commands are under /immersiveportalspaperized, which can also be shortened to /p or /bp.

  • /bp reload Reloads the plugin and the config file
  • /bp reconnect Reconnects to the proxy if the connection dropped
  • /bp wand Gives you the portal selection wand
  • /bp setOrigin (alias origin) Sets your current wand selection as the origin position
  • /bp setDestination (alias destination/dest) Sets your current wand selection as the destination position
  • /bp linkPortals [twoWay] [invert] (alias link) Links your origin and destination selections together
  • /bp linkExternalPortals [invert] (alias linkexternal) Links your origin selection with a destination selection on another server
  • /bp createfromcoords [twoWay] [invert] [name] Creates a portal directly from coordinates, without needing a player or wand
  • /bp remove [removeDestination] (aliases delete/del) Removes the nearest portal within 20 blocks
  • /bp removebyname (alias deletename) Removes all portals with the given name
  • /bp setPortalName (alias setname) Sets the name of the nearest custom portal within 20 blocks
  • /bp getportalname (alias getname) Tells you the name of the nearest portal within 20 blocks
  • /bp setprice Sets the price of the nearest custom portal
  • /bp setpreset Sets the effect preset of the nearest custom portal
  • /bp getallowNonPlayerTeleportation (alias getcanteleportmobs) Tells you whether the nearest portal allows non-player (item/mob) teleportation
  • /bp setAllowNonPlayerTeleportation <true|false> (alias setcanteleportmobs) Sets whether the nearest portal allows non-player (item/mob) teleportation
  • /bp setseethroughportal <true|false> (alias setenablebpview) Sets whether you personally can see through portals
  • /bp toggleseethroughportal (alias togglevanillaview) Toggles whether you personally can see through portals
  • /bp menu (aliases list/admin/gui) Opens the Portal Admin GUI

To build a custom portal: grab the wand (/bp wand), select your origin corners and run /bp setOrigin, select your destination corners and run /bp setDestination, then /bp linkPortals (or /bp linkExternalPortals for a cross-server portal).

Permissions:

  • immersiveportalspaperized.createfromcoords Allows creating portals from coordinates
  • immersiveportalspaperized.getname Allows getting portal names
  • immersiveportalspaperized.link Allows linking portals
  • immersiveportalspaperized.linkexternal Allows creating cross-server portals
  • immersiveportalspaperized.remove Allows removing portals (/bp remove, /bp removebyname)
  • immersiveportalspaperized.remove.others Allows removing portals you don't own
  • immersiveportalspaperized.reload Allows reloading the plugin configuration
  • immersiveportalspaperized.reconnect Allows reconnecting to the proxy
  • immersiveportalspaperized.select Allows using the selection wand workflow (/bp setOrigin, /bp setDestination) and the admin menu
  • immersiveportalspaperized.setname Allows renaming portals and setting their price/preset (/bp setPortalName, /bp setprice, /bp setpreset)
  • immersiveportalspaperized.setname.others Allows renaming portals you don't own
  • immersiveportalspaperized.getallowNonPlayerTeleportation Allows checking if items/mobs can teleport through a portal
  • immersiveportalspaperized.setAllowNonPlayerTeleportation Allows toggling item/mob teleportation for a portal
  • immersiveportalspaperized.wand Allows using the portal selection wand
  • immersiveportalspaperized.user Allows using portals (default: true)
  • immersiveportalspaperized.see Allows seeing through portals (default: true)

By default, everyone can walk through and see through portals (.user/.see). Everything related to creating, editing or removing portals defaults to OP.

Dependencies:

  • ProtocolLib (required, used for packet-based portal rendering)
  • Vault (optional, for economy features)
  • Multiverse-Core (optional, for world management)
  • My_Worlds (optional, for world management)

Configuration: The plugin configuration file will be generated on first startup at plugins/ImmersivePortalsPaperized/config.yml.

The plugin supports hot-reloading via /bp reload.

For detailed configuration options, including world connections, portal effect presets, proxy settings, and performance tuning, refer to the comments in the generated config.yml.

Have fun :)

Build Instructions:

Contribute:

If you wish to contribute to this Project please open a PR with a detailed explanation of your change.

About

An attempt at making Immersive Portals but completely server-side as a Paper plugin.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages