
NOW With FTB Team integration and Advancement sharing !
Turn dimension access into meaningful progression.
Advancement Portals lets modpack creators lock travel to the Nether, the End, or nearly any modded dimension behind vanilla or custom advancements. Players receive clear feedback when a destination is locked, and the destination opens naturally once its configured requirements are complete.
Version 3.1 also adds optional FTB Teams advancement sharing, allowing cooperative groups to progress together without forcing every teammate to repeat the same boss kill or milestone.
Many progression packs rely on honor rules, quest text, disabled recipes, or custom portal replacements to control dimension access. Advancement Portals provides a focused alternative:
It works especially well for expert packs, RPG packs, questing packs, staged exploration, multiplayer progression, and custom dimension packs.
Configure a destination using its normal dimension ID:
dimensionRequirements = [
"minecraft:the_nether | ALL | minecraft:story/mine_diamond",
"minecraft:the_end | ALL | minecraft:nether/obtain_ancient_debris",
"twilightforest:twilight_forest | ANY | mypack:quests/twilight_access, minecraft:adventure/kill_a_mob"
]
Advancement Portals checks the destination of player dimension travel and blocks it when the configured gate is incomplete. Unconfigured dimensions remain unaffected.
ALL or ANYCreate strict progression paths or offer alternate routes.
"minecraft:the_end | ALL | mypack:chapter_3, mypack:defeat_wither"
The player must complete both advancements.
"minecraft:the_end | ANY | minecraft:end/kill_dragon, mypack:quests/end_pass"
Either advancement can unlock the destination.
A blocked player can be shown:
The message cooldown is configurable to prevent portal spam.
When the final requirement is completed, the player can receive a chat and action-bar message confirming that the destination is now available.
Minecraft advancements normally belong to individual players. That can be frustrating when a team completes a group milestone but only one player receives the advancement—for example, when one teammate lands the Ender Dragon's final hit.
With FTB Teams sharing enabled:
Share only the advancements used by portals:
[ftbTeams]
shareAdvancementsWithTeam = true
shareOnlyPortalAdvancements = true
Or share most newly earned advancements:
[ftbTeams]
shareAdvancementsWithTeam = true
shareOnlyPortalAdvancements = false
Recipe advancements are excluded by default to avoid large amounts of invisible recipe progress.
The common/server config includes:
At server startup, Advancement Portals validates its configured gates and reports missing dimensions, unknown advancements, malformed IDs, invalid modes, and duplicate destinations.
A typo does not silently unlock a destination. An unknown advancement remains a blocking requirement until the config or datapack is corrected.
The config is generated at:
config/advancement_portals-common.toml
Recommended gate format:
dimension | ALL/ANY | advancement, advancement
Full example:
dimensionRequirements = [
"minecraft:the_nether | ALL | minecraft:story/enchant_item, minecraft:story/mine_diamond",
"minecraft:the_end | ANY | minecraft:end/kill_dragon, mypack:quests/end_access"
]
[dimensionGating]
enabled = true
creativePlayersBypassGates = true
spectatorPlayersBypassGates = true
operatorsBypassGates = true
operatorBypassPermissionLevel = 2
warningCooldownSeconds = 2
blockedPortalRetryDelayTicks = 20
showAdvancementDescriptions = true
showDimensionUnlockMessages = true
[ftbTeams]
shareAdvancementsWithTeam = true
shareOnlyPortalAdvancements = false
shareRecipeAdvancements = false
syncTeamAdvancementsOnLogin = true
notifySharedAdvancements = true
The older format remains supported for existing packs:
"minecraft:the_end=[minecraft:end/kill_dragon]"
Legacy entries behave as ALL gates.
FTB Teams sharing completes the receiving player's normal Minecraft advancement criteria. Rewards attached to that advancement may also be granted, including:
For the safest progression-focused setup, use dedicated hidden advancements for dimension access or enable:
shareOnlyPortalAdvancements = true
Version 3.1 continues to read the original 3.0.x dimensionRequirements syntax. Existing gate entries can remain in place while you move to the new format at your own pace.
After updating, review the generated config and check the server startup log for validation warnings.