keep in mind, the description is of the latest mod version, older versions might not be maintained!!!
fully serverside mod adding new commands and more!
datapackers or mapmakers may find this useful
commands
Eval
/eval <expression>
- allows you to input any mathematical expression, the command will calculate it and return its result
- has support for some functions:
min(n1,n2,...),avg(n1,n2,...),len(n1,n2,...),abs(n1,n2,...),floor(n1,n2,...), etc... - you can use scores in expressions like so:
<name>?<objective> - you can use the command position and rotation context with
pxpypzandrxry
full list of functions and variables
min(n1, n2, ...)
max(n1, n2, ...)
sum(n1, n2, ...)
avg(n1, n2, ...)
len(n1, n2, ...)
abs(v)
floor(v)
ceil(v)
round(v)
sqrt(v)
pow(base, exp)
sin(rad)
cos(rad)
tan(rad)
log(v, base)
ln(v)
clamp(v, min, max)
lerp(a, b, t)
smoothstep(edge0, edge1, v)
map(v, inMin, inMax, outMin, outMax)
rand(min, max)
rand(min, max, seed)
dot(x1, y1, z1, x2, y2, z2)
euler_dot(pitch1, yaw1, pitch2, yaw2)
"pi"
"tau"
"e"
"rx"
"ry"
"px"
"py'
"pz"
Raycast
/raycast <step count> <step length> run <command>
- summons a marker entity with the tag "BUC.raycast"
- moves it forward by <step length>, <step count> times
- runs <command> at each step
Distance
/distance <origin pos> <target pos> <scale>
- returns the distance between the command pos and the target position multiplied by the scale
Check
/check <blocks|intersect|collision>
- /check blocks <distance> <blockstate>
- /check intersection <selector>
- /check collision <entity> <block filter>
/check blocks returns how many matching blocks it found in a cuboid area
/check intersection returns how many of the selected entities hitboxes are intersecting with the position the command is executed at
/check collision returns how many blocks the entity is intersecting with
Motion
/motion <set/add> <selector> <strength> <with|to|at>
- applies motion in the direction of the executed command
withallows a 3d direction inputtoallows a 3d position inputatallows a 2d rotation input
/motion multiply <target> <factor> <axes>
- multiplies the motion of the target by the factor, masked to the set axes
Heal
/heal <selector> <amount>
- heals entities by set amount of health
Ignite
/ignite <set/add> <duration> <selector>
- sets the selected entities on fire for the specified duration
Entitify
/entitify <pos> <block_display/falling_block> [keep/remove] [tag(s)]
- turns the block at the target pos into an entity
- multiple tags can be added: /entitify ~ ~ ~ block_display keep tag","another tag
(thanks to json formatting:
Tags:["+ <tag> +"])
Repeat
/repeat <amount> <delay> run <command>
- runs <command> <amount> times
- waits <delay> ticks before each execution, including the first one
MultiCommand
/multicommand <commands>
- runs listed commands in order
- commands must be encased in <c></c> tags, otherwise the parser wont recognize them
- example:
/multicommand <c:you can do comments like this>say 1</c> <c>say 2</c:comments can be at the end too>
- example:
Execute expansions
...if text
... if text <inрut> <operator> <target> ...
- text operations
- theres not much else to it
full list of operators
endswith
startswith
contains
exact
ignorecase
matches
...if eval
... if eval <expression> ...
- evaluates the expression
- if the result is < 0 test fails, if > 0 test succeeds
- statements are allowed, as they are in /eval
- example:
/eval 1=0would return 0, since the statement is false - example:
/eval 0<=-10 || 1=1would return 1, because of the OR operator, and the second, true, statement
- example:
...positioned over closest_ground
... positioned over closest_ground <range> ...
- snaps the commands position context to the closest up-facing surface within range
- doesnt use heightmaps, meaning works under surfaces
...positioned over closest_ground_down
... positioned over closest_ground_down <range> ...
- snaps the commands position context to the closest up-facing surface within range below the previous position context
- doesnt use heightmaps, meaning works under surfaces
...positioned over closest_view
... positioned over closest_view <filter> <range> ...
- performs a raycast and changes the position context to the first block collision of type conforming to <filter>
- filter can be disabled by using "*"
...positioned over closest_view_entity
... positioned over closest_view_entity <targets> <range> <align> ...
- performs a raycast and changes the position context to the first entity collision matching the selector
- if <align> is true, it will use the entities exact position, if false itll use the collision point
- the mod also adds new player NBT called PlayerName which simply contains the players name
more features will be added in the future, feel free to suggest features via github issues
keep in mind, the description is of the latest mod version, older versions might not be maintained!!!
i know i said the same thing at the start im not an NPC

