Перейти к содержимому
Mineforgian

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):

  1. detect_mode: Called a few seconds after entering the world. Used in WB Addon to check if Enhanced Discoveries is installed.
  2. install: Called only once, upon entering the world for the very first time.
  3. init_blocks: Called after detect_mode inside post_detect_mode_load to initialize individual block rewards. The execution order is always BACAP -> BACAPED -> Fanpacks.
  4. init_tiers: Called after detect_mode inside post_detect_mode_load to initialize tier block rewards. The execution order is always BACAP -> BACAPED -> Fanpacks.
  5. post_detect_mode: Called after post_detect_mode_load as the final load function.
  6. reset_tiers_flags: Called when a player resets the tier reward settings.
  7. 1_second_timer Called every second when datapack is installed.

How to add a block reward for your custom BACAP Addon

  1. 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)).
  2. Inside your datapack's function folder, create a file containing the advancement reward information. It must look like this:
    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_adv
    
    Example file for the "A Chiptune Relic" advancement:
    execute 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
    
  3. 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"
      ]
    }
    

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

  1. 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:
    scoreboard players set <advancement id without namespace> wb_adv_blocks <amount of blocks multiplied by 100 for 2-digit precision>
    
    For example, this line sets a 6.00 block reward for the blazeandcave:adventure/allayance advancement:
    scoreboard players set adventure/allayance wb_adv_blocks 600
    
  2. Add a function tag to inject your init_individual_blocks function 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"
        ]
      }
      

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):

  1. 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).
  2. 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!

  1. 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 goal advancements:

    execute unless score #myaddon_tiers_init wb matches 1 run scoreboard players set #goal wb_tier_blocks 400
    

    Note: add tiers are multiplied by 100 to support decimal places (e.g., 1 block = 100, 5.5 blocks = 550, 10 blocks = 1000). The advancement_legend tier is a set tier, 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 59999968
    

    The 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 1
    
  2. Add a function tag to inject your init_tier_blocks function 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"
        ]
      }
      

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

Комментарии

Загружаем…