HomeJavaModsDataPackPlus
DataPackPlus

Logo

DataPackPlus (DP+)

A helpful Minecraft Fabric mod to improve the lives of data pack developers!

Report Bug · Request Feature

About the project

My friend Nedraw is a datapack developer, and we're working together on modding and datapack development. To help him out, I made an api for him, so he can make datapacks easier and with better performance.

I decided to open-source and publish this so I can help other people out.


Here are the features this mod adds.

This command allows you to do more complex and faster math operations.
Here are some examples on how to use the command:

/data math <operation> with <input_nbt> (Will just show the result in chat)
/data math <operation> storage <storage_identifier>
/data math <operation> storage <storage_identifier> <nbt_subpath>

This command allows you to set and get specific variables for an entity. Here are some examples on how to use the command:

/data variable <add|set|get> <variable> (Will just show the result in chat if get)
/data variable <add|set|get> <variable> to <storage_identifier>
/data variable <add|set|get> <variable> to <storage_identifier> <nbt_subpath>

You can have entities mount and dismount onto players; the player being ridden cannot force the entity to dismount.

Example of using /data math (the NBT schema is the same for variable)

/data modify storage minecraft:test in set value [43,35] (Storage nbt: {in:[43,35]} )
/data math add storage minecraft:test (Storage nbt: {in:[43,35],out:[78.0d]})

Math operations

For all arithmetic operations, the input is an array of numbers of any size. If the size is more than 2, it will treat it as chaining the operations, for example, if it's an add operation with 4 inputs, it will sum it all up.

If you want to know what these operations are, just search for them.

Operation Name Input Size Notes
add 2
subtract 2
multiply 2
divide 2
mod (modulo) 2
negate 1
factorial 1
power (exponentiation) 2
root (nth root) 2
distance 2 input: [x,y,z], [x,y,z]
distance_squared 2 input: [x,y,z], [x,y,z]
rad2deg (radians→deg) 1
deg2rad (degrees→rad) 1
sin 1
cos 1
tan 1
arcsin 1
arccos 1
arctan 1
arctan2 2
ceil (round up) 1
round 1
floor (round down) 1

Variable Types

Variable Name Description Type Accessors
motion The entity's motion/velocity [double, double, double] Get, Set, Add
hunger The entity's foodLevel/Hunger and Saturation [double (hunger), double (saturation) ] Get, Set, Add
health The entity's health [double (0 to 20.0) ] Get, Set, Add
held_slot The player's selected hotbar slot [int (0 to 8) ] Get, Set, Add
fall_distance How far the entity has fallen, 0 if they are not falling [double] Get
dimension The entity's dimension/world with namespace [string] Get
position The entity's xyz position [double,double,double] Get, Set, Add
angle The entity's yaw and pitch angle [double (yaw), double (pitch) ] Get, Set, Add
Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more