Custom Portal API Reforged

Library mod allowing developers to create portals to their custom dimensions easily. These custom portals will function exactly like nether portals, except being fully customizable. You can control the frame block, portal block, tinting, ignition source, destination, and more!

Some example of portals


Add the repository/mod to your build.gradle.

repositories {
        maven { url '' }
dependencies {
        implementation fg.deobf('net.kyrptonaught.customportalapi:customportalapi-reforged:MODVERSION')
implementation fg.deobf("net.kyrptonaught.customportalapi:cpapireforged-neo-1.20.2:MODVERSION")

Now onto creating and registering the portal itself, this is simple thanks to the CustomPortalBuilder class. We will make use of this in FMLCommonSetupEvent.

The following is a very simple portal that will take us to The End, and is lit by right-clicking the frame with an Eye of Ender:

        .destDimID(new ResourceLocation("the_end"))  

A Nether portal would be registered as follows:

        .destDimID(new ResourceLocation("the_nether"))  
        .tintColor(131, 66, 184)  
CustomPortalBuilder is filled with plenty of methods to customize the functionality of your portal, all of which are documented in the class.

Some noteworthy methods to mention:

  • lightWithWater/Item/Fluid - These allow you to control how the portal is lit.
  • onlyLightInOverworld - Only allow the portal to be used in the overworld to your destination of choice
  • flatPortal - Flat Portal similar to the End or the Twilight Forest portal.


Based off the main Fabric mod HERE and an older ported mod HERE

External resources

Project members



Technical information

Client side
Server side
Project ID