• 1.1k views 1 today
  • save_alt 48 downloads
Compatibility
Minecraft 1.21
Changes include
    Added CreditMC-Build Pre-compiler, mcstacker.net, misode'… info
    • 6
    • 8
    • 4
    Required Resource Pack
    whamabam
    Lvl 16Journeyman Modder Dragonborn
    3
    Public Server (Season 1 - WIP)
    Version: Snapshot 25w34b
    Type: Vanilla (No plugins)
    Rules: Only rule is no DDoSing of the server or players therein.
    Periodically will push patches and versions given necessity.
    Seed: 1010064720
    IP: 209.133.199.198

    🧪⇄ Anarchy 15000 (A15K)

    A15K is a distance-based progression system for Minecraft that gates building freedom and scales hostile mobs based on how far you travel from spawn. Players drop exact experience levels in shards, and enchants can be ascended beyond vanilla caps.

    Your player level determines how far you can roam — go too far without enough XP and you’re put into Adventure Mode. Designed for long-lived worlds with a growing risk–reward curve.



    🌍 Level Progression
    • Overworld: 1 required level per 120 blocks from spawn
    • Nether: 1 required level per 15 blocks from spawn
    • The End: Same scale as Overworld, but starts at level 15,000

    Required Level (RL) is computed from your distance to (0,0,0) using the scale above.



    💎 Experience Shards & XP Transfer

    Player Deaths
    • Above level 15, players drop XP Shards containing the exact XP points they had.
    • Due to vanilla XP math/scoreboard limits, players over level 15,000 drop shards capped at 15,000 levels (1,010,064,720 points).

    Mob Kills
    • Hostile mobs drop XP Shards based on the local RL where they were killed → 15 XP points per RL


    ✨ Enchantment Ascension

    Prereqs
    • Have at least 1 level
    • Hold an enchanted item in main hand (must have enchantments with level numerals like Unbreaking III; not just Mending or Multishot)
    • Sneak on an Enchantment Table

    Flow (per activation)
    1. Enchants are processed in order
    2. For a level x enchant, roll n = 2x² + 15
      - Success: enchant +1 level
      - Fail: no change
    3. Each check consumes 1 level, success or fail
    4. Stops after all enchants are processed; item is lore-marked and can’t be ascended again
    Some enchantments have effective maxes requiring caps. Enchants eligible for ascension and their maxes can be found in enchants.md


    🛡️ Hostile Mob Scaling

    All scaling is driven by the Required Level (RL) at the mob’s spawn location.
    Stats are applied once on the mob’s first tick (the mob gets the tag) and are not reapplied afterward — moving the mob won’t change its stats.a15k_mob
    Multipliers:
    A shared multiplicative bonus applies to these attributes using spawn RL:
    • Armor
    • Armor Toughness
    • Attack Knockback
    • Knockback Resistance
    • Max Health
    • Attack Damage
    • Movement Speed
    • Flying Speed
    • Attack Speed
    • Follow Range
    Final:
    base × (1 + (14 × RL / 15000))
    - RL 15,000 ⇒ 15× (+1400% of base)
    - Overworld world border (~30,000,000 blocks ⇒ RL 250,000) ⇒ ~234×
    - Nether world border (~30,000,000 blocks ⇒ RL 2,000,000) ⇒ ~1868×

    Floors were removed. Attributes now scale purely by the multiplier above.



    📊 Player UI & Commands

    View Stats
    /trigger a15k_stats
    Shows:
    • Player Level, Total Points, Required Level, Distance (labels with hover tips)
    • Mob Scaling: shown as percent over base (e.g., +1400.0% at RL 15,000). Hover lists affected attributes.
    • At ≥ 15,000, Total Points shows a max shard warning
    Toggle Action Bar
    /trigger a15k_bar
    Toggles a compact HUD:
    • Required Level
    • Distance from spawn

    4 Update Logs

    Update #4 : by whamabam 08/24/2025 2:44:25 pmAugust 24, 2025 @ 6:44 pm UTC

    Ascension roll changed to 2x² + 15 (was)x³ + 15 - Updated max levels for several enchants (moved the 2B caps under 255).
    - Removed mob floor attributes (e.g., armor/armor toughness, etc.).
    - Mob scaling now reaches 15× at RL 15,000 and ~234× at the Overworld world border (~30,000,000 blocks).
    - Stats trigger tellraw updated (cleaner header/colors; shows 15× curve as +1400% at 15,000).
    - Reload tellraw restyled to match the stats theme.
    LOAD MORE LOGS

    More like this

      Have something to say?

    ICanGamez
    08/20/2025 2:09 am
    He/Him • Level 61 : High Grandmaster Blockhead Imposter
    history
    This stuff is kinda cool at the coding perspective. would love to ask how you made the particles command cause that was some pretty interesting math behind the code.
    Oo also how did you do the custom enchantments too, cause that was another thing I was looking at.
    3
    whamabam
    08/20/2025 5:35 pm
    Level 16 : Journeyman Modder Dragonborn
    history
    Thanks! For the particles, I used the REPEAT function in MC-B and some calculus to generate curves, IE. the shard effects are 2 identical helixes rotated 180 degrees from each other and the equations are (180 degree offset we just add pi to some of the trig):




    X=(1.0+0.25⋅sin(2π⋅3t))⋅cos(2π⋅2.25t)

    Y=2.2⋅t

    Z=(1.0+0.25⋅sin(2π⋅3t))⋅sin(2π⋅2.25t)




    Therefore we get;
    execute positioned ~ ~.25 ~ rotated as @s rotated ~ 0 run function a15k:fx/shard

    function fx/shard


    {REPEAT (Array(120).fill(0).map(function(_,i){return i;})) as i { # t=i/119; theta=2π*TURNS*t; r=R_BASE+R_WAVE*sin(2π*WAVE_CYCLES*t); y=HEIGHT*t particle minecraft:ominous_spawning ^<% ((1.0 + 0.25*Math.sin(2*Math.PI*3*(i/119))) * Math.cos(2*Math.PI*2.25*(i/119))).toFixed(3) %> ^<% (2.2*(i/119)).toFixed(3) %> ^<% ((1.0 + 0.25*Math.sin(2*Math.PI*3*(i/119))) * Math.sin(2*Math.PI*2.25*(i/119))).toFixed(3) %> 0 0 0 0.01 1 force}}


    As far as the custom enchants are concerned, I am first creating an invisible armor stand and setting its mainhand item to the ascendable item.Then, I check and store the level of the enchants one at a time and roll a dice with n number sides as the enchant given this equation;x^3 + 15. For these functions I also used REPEAT in MC-B as I did not have to hard code the enchant list. Essentially, I just macro the enchant level probability into /random and if it is zero, we +1 the enchant, if its not, we move to the next enchant. The "rolls" are the total xp levels the player has at the time of ascension and each time the system checks an enchant and rolls the dice for the corresponding level, a roll in consumed regardless of the outcome. This iterates until there are no rolls left to consume and then I summmon some dirt and just data modify the components from the armor stand directly to the dirt, kill the armor stand, and reset the players points while playing the effects
    Check the functions: a15k:ascend and the triggers in the player_tick that derive it for more on that.




    All the files for the pack are pre-compiled within "src/a15k.mcb" except for the entity type tags list with the hostile mobs. It's all commented but as I make more changes I'll make a video explaining in detail my thought process in development and the server I am working on to run this pack. Stay tuned!
    3
    ICanGamez
    08/21/2025 3:47 pm
    He/Him • Level 61 : High Grandmaster Blockhead Imposter
    Woah, aight so particles your using a compiler to use calculus prebaked into the program :O
    its cool that your using macros for enchanting cause i thought it was like a tagging system with data merging components to be applied directly to the player.
    I found out that there is a particle website that creates particles just like your equation right there. This looks really cool!
    I will have to keep the github repository in mind when updating some of my code :3
    3
    whamabam
    08/21/2025 3:58 pm
    Level 16 : Journeyman Modder Dragonborn
    Yeah, MC-B is extremely useful for generating particle effects and even for the enchant system. You can't directly modify player data like the enchants on the item they're holding, thus the armor stand. The macro part for enchants is just for the custom data storage of the player level and everything else is pre-compiled and hard coded checking each enchant in the list and comparing it to the item that is now on the armor stand. /enchant or /item can technically work but it is not dynamic enough to increment levels, it can only set.



    If you're using geometric patterns for particle effects and you understand javascript, I highly recommend using MC-B. Even if your not doing stuff with REPEAT, it is so nice to be able to define functions within other functions. Makes commenting and debugging a breeze.
    3

    Welcome