Text Placeholder API Expressions

Adds math, conditional, and string manipulation expressions to Text Placeholder API.

by
1.5K Downloads
fabriclibrarymanagement
Rent Server with this Mod

About this Mod

Text Placeholder API Expressions

Adds math, conditional, and string manipulation expressions to Text Placeholder API.
This project uses Keval for parsing math expressions, and would have been exponentially more difficult without it. Show the author some love and star his repo!

Using Placeholders In Expressions

This extension uses the ${category:placeholder} syntax to allow supplying placeholders that resolve to numbers as components.
For example; to display a player's health as a percentage (such as within the tab list), you could use the following:
%expr:math ${player:health} * 100 / ${player:max_health}%%

Math Placeholder

The bulk of the additions (no pun intended) in this extension are accessed through the expr:math placeholder.

You can think of this placeholder as handling three distinct 'types':

  • Components, such as numbers, functions, constants, and placeholders that resolve to numbers.
  • Binary operators, such as addition or subtraction, which go between two components.
  • Unary operators, such as negation and factorial, which apply to a single component.

Components and operators supplied by this extension

Binary operators are applied between two components.

Binary Operator Function Example Result
+ Add %expr:math 2 + 2% 4
- Subtract %expr:math 4 - 1% 3
* Multiply %expr:math 3 * 3% 9
/ Divide %expr:math 9 / 4% 2.25
^ Exponent %expr:math 3 ^ 3% 27

Unary operators are applied to a single component.

Unary Operator Function Example Result
- Negate %expr:math 1 + -1% 0
+ Identity %expr:math ??% What does this even do
! Factorial %expr:math 5!% 120

Functions are components, taking expressions as arguments.

Function Arguments Description Example Result
mod 2 Modulo / remainder %expr:math mod(7, 2)% 1
neg 1 Negate / invert (Like unary -) %expr:math neg(10)% -10
abs 1 Absolute value %expr:math abs(-10)% 10
sqrt 1 Square root %expr:math sqrt(34)% 5.8309
cbrt 1 Cube root %expr:math cbrt(30)% 3.1072
exp 1 Exponential %expr:math exp(4)% 54.5981
ln 1 Natural logarithm %expr:math ln(4)% 1.3862
log10 1 Base 10 logarithm %expr:math log10(4)% 0.6020
log2 1 Base 2 logarithm %expr:math log2(4)% 2
rad 1 Degrees to radians %expr:math rad(30)% 0.5235
sin 1 Sine %expr:math sin(rad(30))% 0.4999
cos 1 Cosine %expr:math cos(rad(30))% 0.8660
tan 1 Tangent %expr:math tan(rad(30))% 0.5773
asin 1 Arcsine %expr:math asin(rad(30))% 0.5510
acos 1 Arccosine %expr:math acos(rad(30))% 1.0197
atan 1 Arctangent %expr:math atan(rad(30))% 0.4823
ceil 1 Round up %expr:math ceil(0.4)% 1
floor 1 Round down %expr:math floor(0.6)% 0
round 1 Round %expr:math round(0.5)% 1
min 2+ Smallest argument %expr:math min(1, 0.3, 7)% 0.3
max 2+ Largest argument %expr:math max(1, 0.3, 7)% 7
avg 2+ Average of arguments %expr:math avg(1, 0.3, 7)% 2.7666

Constants are components which resolve to a constant value.

Constant Description
PI π
e Euler's number

Conditional Placeholders

Arguments to these placeholders must be separated by semicolons (;) instead of spaces.

%expr:ifeq%

Test whether a and b are equal, and return c or d depending on the result.

%expr:ifeq aIsMath a bIsMath b cIsMath c dIsMath d%

Argument Description
aIsMath Whether to parse a as a math expression. Either true or false.
a Math expression or text to compare against b. If treated as text, and spaces at the start or end of the string are removed.
bIsMath Whether to parse b as a math expression. Either true or false.
b Math expression or text to compare against a. If treated as text, and spaces at the start or end of the string are removed.
cIsMath Whether to parse c as a math expression. Either true or false.
c Math expression or text to use if a and b are equal.
dIsMath Whether to parse d as a math expression. Either true or false.
d Math expression or text to use if a and b are not equal.

Example

Player %expr:ifeq false; ${player:equipment_slot mainhand}; false; Diamond Sword; false; is; false; is not% holding a Diamond Sword.

Condition Result
%player:equipment_slot mainhand% == "Diamond Sword" Player is holding a Diamond Sword.
%player:equipment_slot mainhand% != "Diamond Sword" Player is not holding a Diamond Sword.

%expr:iflt%

Test whether a is less than b, and return c or d depending on the result.

%expr:iflt a b cIsMath c dIsMath d%

Argument Description
a Math expression to compare against b.
b Math expression to compare against a.
cIsMath Whether to parse c as a math expression. Either true or false.
c Math expression or text to use if a is less than b.
dIsMath Whether to parse d as a math expression. Either true or false.
d Math expression or text to use if a is not less than b.

Example

Player is in %expr:iflt ${player:health}; 14; false; poor; false; good% health

Condition Result
%player:health% < 14 Player is in poor health
%player:health% >= 14 Player is in good health

%expr:ifgt%

Test whether a is greater than b, and return c or d depending on the result.

%expr:ifgt a b cIsMath c dIsMath d%

Argument Description
a Math expression to compare against b.
b Math expression to compare against a.
cIsMath Whether to parse c as a math expression. Either true or false.
c Math expression or text to use if a is greater than b.
dIsMath Whether to parse d as a math expression. Either true or false.
d Math expression or text to use if a is not greater than b.

Example

Health: %expr:ifgt ${player:health}; 4; true; ${player:health} * 100 / ${player:max_health}%; false; Nearly dead!%

Condition Result
%player:health% == 15 Health: 75
%player:health% == 14 Health: 70
%player:health% <= 4 Health: Nearly dead!

String Placeholders

Arguments to these placeholders must be separated by semicolons (;) instead of spaces.

%expr:pad%, %expr:padleft%, and %expr:padright%

Pad one or both sides of str with c until the string length reaches length.

%expr:pad length; str; c%
%expr:padleft length; str; c%
%expr:padright length; str; c%

Argument Description
length Math expression, target length of the padded string.
str Source string to pad. Spaces at the start or end of the string are removed.
c Character to use for padding.

Example

%expr:padleft 2 ${server:online} 0% / %server:max_players%

Condition Result
%server:online% == 12 12 / 40
%server:online% == 4 04 / 40

%expr:padmatch%, %expr:padmatchleft%, and %expr:padmatchright%

Pad one or both sides of str with c until the string length matches the length of match.

%expr:padmatch match; str; c%
%expr:padmatchleft match; str; c%
%expr:padmatchright match; str; c%

Argument Description
match String to match the length of. Spaces at the start or end of the string are removed.
str Source string to pad. Spaces at the start or end of the string are removed.
c Character to use for padding.

Example

%expr:padmatchleft ${server:max_players} ${server:online} 0% / %server:max_players%

Condition Result
%server:max_players% == 40, %server:online% == 4 04 / 40
%server:max_players% == 100, %server:online% == 4 004 / 100

Available Versions

Text Placeholder API Expressions 1.1.0release
MC 1.21.11fabric
February 19, 2026
Text Placeholder API Expressions 1.1.0release
MC 1.21fabric
June 23, 2024
Text Placeholder API Expressions 1.0.0release
MC 1.21fabric
June 23, 2024

How to Install Text Placeholder API Expressions 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.21.11).

3

Install Mod

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

Compatibility

Mod Loaders

fabric

Minecraft Versions

1.21.11, 1.21

Server-side

Required

Recommended RAM

4 GB(min. 3 GB)

Frequently Asked Questions

Text Placeholder API Expressions 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.21.11). You can switch loaders with one click in the panel.

Is Text Placeholder API Expressions compatible with fabric?

Text Placeholder API Expressions officially supports fabric for Minecraft 1.21.11, 1.21. The Mado dashboard automatically detects incompatible loader combinations.

Server lagging with Text Placeholder API Expressions – how to optimize performance?

Recommended RAM: 4 GB (per 8 players). Use /spark profiler to check if Text Placeholder API Expressions 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 Text Placeholder API Expressions 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 General Public License v3.0 only
Server-side
Required

Supported Versions

1.21.111.21