
WorldBorder's addon for BlazeandCave's Advancement Pack
WorldBorder's addon is a datapack for BACAP that sets Worldborder size to 1 block and expands it if you get an advancement Тhe more difficult the advancement, the more blocks the world will be expanded
- Загрузки
- 6K
- Подписчики
- 21
- Обновлён
- 21 августа 2026 г.
- Лицензия
- CC-BY-4.0
Опубликован 9 апреля 2023 г.
WorldBorder's Addon is a datapack for BACAP and BACAPED that sets the world border to 1 block and gradually expands it as you earn advancements.
This addon adds an extra challenge to your world by limiting exploration until you make progress through the advancement tree. It's designed to encourage progression and exploration in a controlled and rewarding way.
Features
Individual rewards mode
Each advancement offers a unique reward based on its difficulty, ranging from fractions of a block to hundreds and even thousands
Tier rewards mode
Rewards are linked to the advancement's tier (Task, Goal, Challenge, Super Challenge, etc.), ensuring a more predictable world expansion
Flexible configuration
All configuration is done via the main menu: /function bacap_wb_addon:config
Fast Expansion Mode
In standard mode, the time it takes for the border to expand is based on the square root of the awarded blocks. Fast mode makes all border expansions happen instantly.
Radius Bossbar
Allows you to always see the current world size and visually track the ongoing expansion progress via a filling bossbar.
Reward Settings
- Toggle between the reward modes described above.
- Adjust the global expansion multiplier to make your playthrough easier or harder.
- Reset tier settings to their default values.
- View your current reward settings.
Scoreboard Settings
Allows you to display a scoreboard tracking exactly how many blocks each player has contributed to the world expansion by completing advancements (recommended for multiplayer).
Installation process
- Download datapack for your version of minecraft
- For a new world: You can click the "Data Packs" option when creating a new world and select this datapack.
- For an existing world: Paste it into world folder - (world-name)/datapacks.
- Restart world
FAQ
Is it possible to complete BACAP(ED) with this Addon?
- Yes! The datapack is mathematically balanced so that, with enough effort, it is entirely possible to complete 100% of the advancements even on the lowest multiplier on most world seeds.
How do I complete distance advancements if the border expands so slowly?
- That's by design! You need to earn enough blocks through regular gameplay to reach the first distance milestones (10,000 blocks). Completing these specific distance advancements will grant you a massive block reward, allowing you to reach the next milestone, and so on. Even in "Tier rewards" mode, these advancements ignore their tier and grant the huge reward!
What are the standard rewards for advancements in each tier? How many blocks can be obtained by completing all the advancements in a tier?
Tier BACAP (adv. count × blocks = total) BACAPED (adv. count × blocks = total) Task 606 × 1 = 606 645 × 1 = 645 Goal 349 × 4 = 1396 453 × 3 = 1359 Challenge 213 × 25 = 5325 213 × 15 = 3195 Super Challenge 38 × 250 = 9500 87 × 100 = 8700 Milestone 14 × 800 = 11200 29 × 500 = 14500 Hiddens 13 × 0 = 0 52 × 0 = 0 Sum 28027 28399
Links
For Contributors
If you wanna suggest a feature, report a bug etc. you can make it either in Komaru Cats Discord, Create an issue or Pull request on GitHub.
For Fanpack developers
The addon is built with modularity in mind, allowing community fanpacks to seamlessly integrate their own rewards without breaking the core logic.
There are several function tags that can help you integrate your features into the pack (you can find them in bacap_wb_addon/tags/function):
detect_mode: Called a few seconds after entering the world. Used in WB Addon to check if Enhanced Discoveries is installed.install: Called only once, upon entering the world for the very first time.init_blocks: Called afterdetect_modeinsidepost_detect_mode_loadto initialize individual block rewards. The execution order is alwaysBACAP -> BACAPED -> Fanpacks.init_tiers: Called afterdetect_modeinsidepost_detect_mode_loadto initialize tier block rewards. The execution order is alwaysBACAP -> BACAPED -> Fanpacks.post_detect_mode: Called afterpost_detect_mode_loadas the final load function.reset_tiers_flags: Called when a player resets the tier reward settings.1_second_timerCalled every second when datapack is installed.
How to add a block reward for your custom BACAP Addon
- Your datapack must support fanpack handling after completing an advancement (e.g., BACAP calls a fanpack function tag after completing any advancement:
$function #bacap_fanpacks:$(reward_id)). - Inside your datapack's
functionfolder, create a file containing the advancement reward information. It must look like this:
Example file for the "A Chiptune Relic" advancement:execute if score <advancement id> wb matches 1 run return 0 data modify storage bacap_wb_addon:temp current_adv set value {adv_id:"<advancement id>",title:"<advancement title>",title_color:"<title color>",desc:"<advancement description>",desc_color:"<description color>",tab:"<advancement tab>",type:"<type (add/set)>",tier:"<tier (task, goal, challenge, super_challenge, milestone, hidden, advancement_legend, root)>"} function bacap_wb_addon:queue/process_reward with storage bacap_wb_addon:temp current_advexecute if score adventure/a_chiptune_relic wb matches 1 run return 0 data modify storage bacap_wb_addon:temp current_adv set value {adv_id: "adventure/a_chiptune_relic", title: "A Chiptune Relic", title_color: "#75E1FF", desc: "Excavate an ancient record from within the Trail Ruins", desc_color: "#63BDD7", tab: "Adventure", type: "add", tier: "goal"} function bacap_wb_addon:queue/process_reward with storage bacap_wb_addon:temp current_adv - Add a fanpack function tag for the advancement that points to the function you just created. For "A Chiptune Relic", it looks like this:
- Path:
data/bacap_fanpacks/tags/function/adventure/a_chiptune_relic.json - File content:
{ "values": [ "<your_namespace>:rewards/adventure/a_chiptune_relic" ] } - Path:
That is all you need for tier block rewards.
Note: If you want a specific advancement to be exempt from the tier rules, you can do the following
Add custom_tier_blocks: <your amount of blocks> tag to the advancement reward information and change tier to custom
Example file for the "Ten Thousand Blocks" advancement (it will increase the world for 70k blocks):
execute if score biomes/ten_thousand_blocks wb matches 1 run return 0
data modify storage bacap_wb_addon:temp current_adv set value {adv_id: "biomes/ten_thousand_blocks", title: "Ten Thousand Blocks", title_color: "#75E1FF", desc: "Travel at least 10,000 blocks from the centre of the world in any direction.\nA journey that long begins with a single step", desc_color: "#63BDD7", tab: "Biomes", type: "add", tier: "custom", custom_tier_blocks: 7000000}
function bacap_wb_addon:queue/process_reward with storage bacap_wb_addon:temp current_adv
For individual block rewards:
Note: Max. amount of blocks per 1 advancement is 21474836, otherwise it will lead to undefined behavior
- Create a function that will contain all of your individual block rewards (e.g.,
data/<your_namespace>/function/init_individual_blocks.mcfunction). The content should be:
For example, this line sets a 6.00 block reward for thescoreboard players set <advancement id without namespace> wb_adv_blocks <amount of blocks multiplied by 100 for 2-digit precision>blazeandcave:adventure/allayanceadvancement:scoreboard players set adventure/allayance wb_adv_blocks 600 - Add a function tag to inject your
init_individual_blocksfunction into the WB Addon's initialization process.- Path:
data/bacap_wb_addon/tags/function/init_blocks.json - File content:
{ "values": [ "<your_namespace>:init_individual_blocks" ] }
- Path:
How to change existing individual rewards
The process is exactly the same as adding new ones. However, since the file containing the advancement information already exists, you only need to create your own function to override the existing rewards and inject it into the data/bacap_wb_addon/tags/function/init_blocks.json function tag.
How to override tier rewards or add new tiers
Tier rewards initialization is called only once per datapack initialization. We use a unique initialization flag (e.g., #wb_bacap_tiers_init for BACAP). This guarantees these defaults are applied exactly ONCE. If a player changes them via the UI later, or if a fanpack overrides them on its first load, a /reload won't revert them back because the flag is already set to 1.
There are two different types of reward behaviors (defined by the "type" field inside the advancement's .mcfunction file):
add(default): Advancements of this type will add blocks to the world border size. These tier values MUST be multiplied by 100 to support decimal places (e.g., 1 block = 100, 5.5 blocks = 550, 10 blocks = 1000).set: Advancements of this type will set the world border to an exact amount of blocks. These tier values are NOT multiplied by 100.
Note: The maximum amount of blocks per advancement is 21,474,836. Exceeding this limit will lead to undefined behavior. If you accidentally multiply a massive set tier value by 100, it will cause an integer overflow and break the datapack's calculations!
Create a function that will contain all of your tier rewards (e.g.,
data/<your_namespace>/function/init_tier_blocks.mcfunction). The content should look like this:execute unless score <your initialization flag> wb matches 1 run scoreboard players set #task wb_tier_blocks <blocks multiplied by 100>For example, this line sets a 4.00 block reward for
goaladvancements:execute unless score #myaddon_tiers_init wb matches 1 run scoreboard players set #goal wb_tier_blocks 400Note:
addtiers are multiplied by 100 to support decimal places (e.g., 1 block = 100, 5.5 blocks = 550, 10 blocks = 1000). Theadvancement_legendtier is asettier, so it is not multiplied by 100:execute unless score #myaddon_tiers_init wb matches 1 run scoreboard players set #advancement_legend wb_tier_blocks 59999968The default tiers are:
#task,#goal,#challenge,#super_challenge,#milestone,#hidden, and#advancement_legend.Finally, at the end of the file, mark your tiers as initialized:
execute unless score <your initialization flag> wb matches 1 run scoreboard players set <your initialization flag> wb 1Add a function tag to inject your
init_tier_blocksfunction into the WB Addon's initialization process.- Path:
data/bacap_wb_addon/tags/function/init_tiers.json - File content:
{ "values": [ "<your_namespace>:init_tier_blocks" ] }
- Path:
How to change the global multiplier via a datapack
The easiest way to do this is by calling the bacap_wb_addon:config/set_multiplier function and passing your desired multiplier as a macro argument.
Note: The multiplier must be between 0.6 and 10.0 with a maximum precision of 2 decimal places. Values outside this range may make the datapack impossible to complete, cause floating-point precision loss, or break internal calculations.
For example, this command sets the global multiplier to 2.31:
function bacap_wb_addon:config/set_multiplier {value: 2.31}
Created by ItzSkyReed, _Fedor_F, Hogurt
Ченджлог
6.0-beta_1Бета26.2 · 21 августа 2026 г.
Reward Multiplier
Added a multiplier allowing you to dynamically change the amount of blocks received for advancements
"Tier Rewards" Mode
Rewards are linked to the advancement's tier (Task, Goal, Challenge, Super Challenge, etc.), ensuring a more predictable world expansion. They can also be dynamically configured
Contribution Scoreboard
Added a scoreboard displaying how much each player has contributed to the world expansion
Reworked Configuration Menu
Completely reworked the configuration menu, added help, FAQ, and configuration for scoreboards, new multipliers, and reward modes
World Size Bossbar
The fill bar now reflects the expansion progress percentage when fast mode is disabled
Reward Balancing
Changed the rewards for a huge amount of advancements to achieve a better balance, but this is far from the final result and may change in future betas
For Fanpack Developers
Added flexible features for changing existing rewards or adding new ones (see README for details)
Updated to ED 2.9.2
And is incompatible with ED 2.9.1 and lower
Bug Fixes
Fixed many minor bugs
5.5.1Релиз26.2 · 8 июля 2026 г.
Updated to the latest BACAPED version
5.5Релиз26.2 · 27 июня 2026 г.
Updated to 26.2
- Added rewards from new versions of BACAP/ED for 26.2
5.4Релиз1.21.11 · 11 января 2026 г.
Changes
- Fixed World border not syncing between dimensions
- And it not working
- Made initial teleport spawn a dirt block on 0 62 0 to make worlds with ocean spawns easier to start in
5.3Релиз1.21.11 · 20 декабря 2025 г.
Changes
- Updated to 1.21.11
- Added support for BACAP 1.20.2
- Added support for BACAPED 2.8
5.2Релиз1.21.9, 1.21.10 · 18 декабря 2025 г.
Updated to 1.21.9-1.21.10
Added support for BACAP 1.20
5.1.1Релиз1.21.6, 1.21.7, 1.21.8 · 2 июля 2025 г.
Changes
- Updated mcmeta for 1.21.7
5.1Релиз1.21.5, 1.21.6 · 20 июня 2025 г.
- Updated to 1.21.6 (Compatible with 1.21.5)
- Fixed a bug where vanilla advancements did not expand the world border
Комментарии
Загружаем…