Tier Tower

Tier Tower

An esoteric and data-driven cosmetic leveling system.

by
2.4K Downloads
fabricdecorationeconomy
Rent Server with this Mod

Screenshots

Title Art
Obelisk
Cosmetics
Decorative Blocks

About this Mod

Tier Tower Logo

A data-driven cosmetic leveling system.


Tier Tower adds chat badge and nameplate cosmetics that players can unlock by sacrificing items.
Several new decorative blocks are also added.

  • Drop items into a Vortex to sacrifice them and gain eminence. (EMI integration shows valid items.)
  • Jump down into a Vortex to sacrifice your current eminence to prestige, speeding up future leveling.
  • The Vortex is uncraftable by default since servers may want to restrict it to certain areas.
  • The Obelisk display's offset can be set by using an Obelisk item on the top, bottom, or sides of the front face of the block.

Slimeist with an echo nameplate


Datapack Format

Overview

Tier Tower is based around sequences of tiers, with progression based on custom mathematical formulae.

The sequence tier_tower:main is special, as players will start at tier 0 of this sequence.
Other sequences can be created and assigned to players using commands or through sequence progression.

Prestige System

Players acquire prestige points per-sequence, according to the prestige_value_function defined in the sequence JSON.
When a player prestiges, their prestige points increase by this amount.
The prestige multiplier is then recalculated using the prestige_multiplier_function, which affects future leveling costs.

Sequence Format

// data/tier_tower/tier_tower/sequence/main.json
{
  // if the first tier doesn't specify a base leveling cost, this value is used instead
  "default_base_leveling_cost": 1,

  /*
  The prestige value function determines the incremental prestige points gained when prestiging.
  Available variables:
  - points: the total points in the current sequence
  - tier: the (0-based) index of the current tier
  - level: the (0-based) index of the current level within the current tier
  - level_points: the number of points within the current level
  */
  "prestige_value_function": "(points - 5000.0)",

  /*
  The prestige multiplier function determines the maximum multiplier applied during leveling.
  The actual multiplier for each item will be a random value between 1.0 and this value.
  Available variables:
  - prestige_points: the total accumulated prestige points in the current sequence
  */
  "prestige_multiplier_function": "min(8.0, (1.0 + (prestige_points / 5000.0)))",

  // the tiers that must be progressed through, in order
  "tiers": [
    "minecraft:copper",
    /* ... */
    "minecraft:netherite"
  ],

  // optional next sequence to switch to after completing this one
  "next_sequence": "tier_tower:example"
}

Tier Format

// data/minecraft/tier_tower/tier/netherite.json
{
  // the number of levels in this tier that must be completed to reach the next tier
  "level_count": 10,

  /*
  The leveling cost for level index 0 in this tier.
  Available variables:
  - prev: the hypothetical leveling cost of the one beyond the highest level in the previous tier, or `default_base_leveling_cost` if this is the first tier
  */
  "base_leveling_cost": "(prev * 0.75)",
  
  /*
  The leveling cost for the remaining levels in this tier.
  Available variables:
  - levels: the value of `level_count`, provided for convenience
  - base: the computed value of `base_leveling_cost`
  - prev: the leveling cost of the previous level in this tier
  - level: the index of the level for which the cost is being computed
  */
  "leveling_cost_function": "((((5.0 * level) + 610.0) * 32.0) + base)",

  // optional: eminence points will be lost over time while in this tier (useful for making an 'infinite' highest tier)
  "erosion_rate": {
    // the number eminence points lost per interval
    "loss": 1,
    // the number of ticks between each erosion event
    "interval": 20,
  },
}

Expression Language

Formulae can be written with standard mathematical operators (+, -, *, /, ^), parentheses for grouping, and the following functions:

  • min(a, b, ...): returns the minimum of the arguments
  • max(a, b, ...): returns the maximum of the arguments
  • sqrt(x): returns the square root of x
  • log(x): returns the natural logarithm of x
  • exp(x): returns e raised to the power of x
  • e(): returns the value of e (2.71828...)
  • pow(x, y): returns x raised to the power of y
  • abs(x): returns the absolute value of x
  • floor(x): returns the largest integer less than or equal to x
  • ceil(x): returns the smallest integer greater than or equal to x
  • round(x): returns the nearest integer to x
  • pi(): returns the value of π (3.14159...)
  • sin(x), cos(x), tan(x): trigonometric functions (x in radians)

Resourcepack Format

In addition to the datapack entry, several textures must be provided.
We will use the tier minecraft:copper for example paths.

Badge Texture

assets/minecraft/textures/tier_tower/badge/copper.png provides the chat badge.

// assets/minecraft/textures/tier_tower/badge/copper.png.mcmeta
{
  "tier_tower:chat_badge": {
    // the color used for level numbering on the badge
    "text_color": {
      "r": 236,
      "g": 221,
      "b": 255
    }
  }
}

Frame Texture

assets/minecraft/textures/tier_tower/frame/copper.png provides the nameplate frame.
It is made up of three 16x16 sections, that are aligned horizontally to the left side, center, and right side of the nameplate respectively.

Obelisk Texture

assets/minecraft/textures/tier_tower/obelisk/copper.png provides the outline texture for the Obelisk.

Tower Texture

assets/minecraft/textures/tier_tower/tower/copper.png provides the tower slice texture used in the Obelisk progress display.


License

Tier Tower is licensed under the LGPL-3.0 license. See LICENSE.LESSER for more details.

A modified version of the Kiwi Soda font was used in the icon.

Sections of Create's creative tab and virtual fluid code were used under the MIT license.

Credits

  • Code by Slimeist
  • Textures and design by
    • Charon
    • Luna
    • pinkmachine
    • Vivian

Available Versions

Tier Tower v0.1.1 Fabric 1.20.1release
MC 1.20.1fabric
February 7, 2026

How to Install Tier Tower on Your Server

1

Order Server

Order a Minecraft Java server with at least 3 GB RAM (4 GB recommended).

2

Set fabric Loader

In the panel under "Egg", select the fabric loader and matching Minecraft version (1.20.1).

3

Install Mod

Open the mod browser in the dashboard and search for "Tier Tower". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.

Compatibility

Mod Loaders

fabric

Minecraft Versions

1.20.1

Server-side

Required

Recommended RAM

4 GB(min. 3 GB)

Frequently Asked Questions

Tier Tower server crashes on startup – what to do?

Most common cause: wrong fabric version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 3 GB RAM is allocated and the loader matches the mod version (1.20.1). You can switch loaders with one click in the panel.

Is Tier Tower compatible with fabric?

Tier Tower officially supports fabric for Minecraft 1.20.1. The Mado dashboard automatically detects incompatible loader combinations.

Server lagging with Tier Tower – how to optimize performance?

Recommended RAM: 4 GB (per 8 players). Use /spark profiler to check if Tier Tower consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.

Rent Modded Server

Install Tier Tower with just one click on your server.

Recommended RAM
4 GBab €8/mo
Min. 3 GB | +1 GB pro 8 Spieler
Create Server Now
1-Click Mod Install
NVMe SSD Storage
DDoS Protection included

Details

License
GNU Lesser General Public License v3.0 or later
Server-side
Required

Supported Versions

1.20.1