
Kyanite Portals
A library to easily create portals
- Загрузки
- 157
- Подписчики
- 1
- Обновлён
- 31 июля 2026 г.
- Лицензия
- MIT
Опубликован 5 января 2026 г.
Kyanite Portals is a library that allows you to easily create custom portals.

WARNING: Library is in beta and currently only made for Deeper and Darker. It will receive updates in the future to improve JSON integration, refactor certain methods, and add new features. I recommend instead using a different library until Kyanite Portals is completely stable.
However, if you do choose to use this library and find any bugs, please report them in the Discord server: https://discord.gg/GDNRd5yvxa
Why use Kyanite Portals?
You can make the portal have pretty much any behavior you want easily, and it can later be modified with data packs by modpack creators.
Kyanite Portals was made as an alternative to Custom Portal API specifically for Deeper and Darker. The reason why is that Custom Portal API didn't have everything Deeper and Darker needed (e.g., multiple ignition sources, correctly checking inner portal contents, executing custom code on travel rather than just setting the travel sound, generating the portal inside the dimension's bounds, correctly showing the client-side nausea effect), so I developed Kyanite Portals to suit our needs.
However, even though this library was made for Deeper and Darker, it functions in a modular system where you can register and set each part that makes a portal: generator and triggers, tester, actions, and client-side effects.
Usage
Visit the wiki for information on how to use the library.
Ченджлог
0.1.8+1.21.11Бета1.21.11 · 31 июля 2026 г.
Add AgnosticPredicate
- Replaces
BlockPredicate - Should work identically server-side, and works most of the time client-side
- Used to allow portal testers to be used client-side
0.1.8+1.21.10Бета1.21.9, 1.21.10 · 31 июля 2026 г.
Add AgnosticPredicate
- Replaces
BlockPredicate - Should work identically server-side, and works most of the time client-side
- Used to allow portal testers to be used client-side
0.1.8+1.21.1Бета1.21, 1.21.1 · 31 июля 2026 г.
Add AgnosticPredicate
- Replaces
BlockPredicate - Should work identically server-side, and works most of the time client-side
- Used to allow portal testers to be used client-side
0.1.8+1.20.1Бета1.20.1, 1.20.2 · 31 июля 2026 г.
Add AgnosticPredicate
- Replaces
BlockPredicate - Should work identically server-side, and works most of the time client-side
- Used to allow portal testers to be used client-side
0.1.7+1.21.11Бета1.21.11 · 20 июля 2026 г.
- Add
spectators_can_useto portal definition- When
true, reflects changes made in 26.3 Snapshot 4, where right-clicking a portal in Spectator mode triggers travel actions
- When
- Change portal actions to use
ContextAwarePredicateinstead ofEntityPredicateContextAwarePredicateis used in advancements- This should allow predicates to be combined, negated etc.
- Fix portal travel between different axes of portals, i.e., the entity position should now match between the two sides
- Remove custom
BlockPredicatefrom the mod, which now uses the vanilla block predicate class- To match block entity NBT, Kyanite Portals adds the
kyanite_portals:matching_nbtpredicate type
- To match block entity NBT, Kyanite Portals adds the
- Make
kyanite_portals:block_changetrigger use a block predicate instead of a block state definition- This change also means triggers now function only server-side
- Change
SimplePortalBuilder#ignition(Block)toSimplePortalBuilder#ignition(Block...)
0.1.7+1.21.10Бета1.21.9, 1.21.10 · 20 июля 2026 г.
- Add
spectators_can_useto portal definition- When
true, reflects changes made in 26.3 Snapshot 4, where right-clicking a portal in Spectator mode triggers travel actions
- When
- Change portal actions to use
ContextAwarePredicateinstead ofEntityPredicateContextAwarePredicateis used in advancements- This should allow predicates to be combined, negated etc.
- Fix portal travel between different axes of portals, i.e., the entity position should now match between the two sides
- Remove custom
BlockPredicatefrom the mod, which now uses the vanilla block predicate class- To match block entity NBT, Kyanite Portals adds the
kyanite_portals:matching_nbtpredicate type
- To match block entity NBT, Kyanite Portals adds the
- Make
kyanite_portals:block_changetrigger use a block predicate instead of a block state definition- This change also means triggers now function only server-side
- Change
SimplePortalBuilder#ignition(Block)toSimplePortalBuilder#ignition(Block...)
0.1.7+1.21.1Бета1.21, 1.21.1 · 20 июля 2026 г.
- Add
spectators_can_useto portal definition- When
true, reflects changes made in 26.3 Snapshot 4, where right-clicking a portal in Spectator mode triggers travel actions
- When
- Change portal actions to use
ContextAwarePredicateinstead ofEntityPredicateContextAwarePredicateis used in advancements- This should allow predicates to be combined, negated etc.
- Fix portal travel between different axes of portals, i.e., the entity position should now match between the two sides
- Remove custom
BlockPredicatefrom the mod, which now uses the vanilla block predicate class- To match block entity NBT, Kyanite Portals adds the
kyanite_portals:matching_nbtpredicate type
- To match block entity NBT, Kyanite Portals adds the
- Make
kyanite_portals:block_changetrigger use a block predicate instead of a block state definition- This change also means triggers now function only server-side
- Change
SimplePortalBuilder#ignition(Block)toSimplePortalBuilder#ignition(Block...)
0.1.7+1.20.1Бета1.20.1, 1.20.2 · 20 июля 2026 г.
- Add
spectators_can_useto portal definition- When
true, reflects changes made in 26.3 Snapshot 4, where right-clicking a portal in Spectator mode triggers travel actions
- When
- Change portal actions to use
ContextAwarePredicateinstead ofEntityPredicateContextAwarePredicateis used in advancements- This should allow predicates to be combined, negated etc.
- Fix portal travel between different axes of portals, i.e., the entity position should now match between the two sides
- Remove custom
BlockPredicatefrom the mod, which now uses the vanilla block predicate class- To match block entity NBT, Kyanite Portals adds the
kyanite_portals:matching_nbtpredicate type
- To match block entity NBT, Kyanite Portals adds the
- Make
kyanite_portals:block_changetrigger use a block predicate instead of a block state definition- This change also means triggers now function only server-side
- Change
SimplePortalBuilder#ignition(Block)toSimplePortalBuilder#ignition(Block...)
Комментарии
Загружаем…