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 modA 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.
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 :)
If you wish to contribute to this Project please open a PR with a detailed explanation of your change.