Andrew's Datapack Utils
No reviews yet
Useful utilities for datapacks, such as a calculator and allowing player data modification, and more.
Provides a framework or library for other mods to use.
Forge is a popular mod loader for versions 1.1+ of Minecraft.
Neoforge is a fork of the Minecraft Forge available for versions 1.20.1+ of Minecraft. Many Forge mods are compatible with Neoforge and vice versa.
Fabric is a mod loader for versions 1.14+ of Minecraft, particularly popular for client side and optimization mods.
Paper is a fork of Spigot that adds its own plugin API on top of the Bukkit API. All Spigot plugins are compatible with paper, not all paper plugins are compatible with Spigot.
Quilt is a fork of the Fabric mod loader. Many Fabric mods are compatible with Quilt and vice versa.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
Regarding support for various minecraft versions
Lots of changes have been happening recently that has made it difficult for me to support many versions with a single mod jar, so if you need support for a version, make an issue on github and I'll make a branch that supports your version. Otherwise, I will only be otherwise officially supporting the latest version of Minecraft.
About
Andrew's Datapack Utils is a Fabric/NeoForge/Forge/Paper Mod aimed at creating useful utilities for datapacks (mainly for datapack functions). It adds a command which holds most of the utilities, and allows modification of player data using /data and /execute store, allowing for easy manipulation of players and allows for things that were previously impossible.
Features
- Basic Math Calculation
- used by using the
/aputils calc <add|sub|mul|div|power|sqrt|...>command. Works great with/execute store resultand function macroes.
- Distance Calculation
/aputils calc distance <pos 1> <pos 2>or/aputils calc distance entities <selector1> <selector2>- Can calculate distance between 2 entities or 2 blocks, for entities use
/aputils calc distance entities, for blocks use/aputils calc distance(notice the lack ofentities)
- Editing Player Data
- Normally, you can't use
/dataor/execute store (result|success) entityto change player entity data, it just throws an error,Unable to modify player data, and doesn't change anything. With this mod, that restriction is removed, allowing for easy modification of player entity data. Note that not everything can be modified, attempting to change certain values such as Motion or Pos does nothing. Use other commands such as /aputils velocity or /tp to change these instead. - Unavailable on paper.
- Normally, you can't use
/aputils velocity <xyz> [add|set|multiply]- allows you to manipulate the velocity of entities in ways you can't with normal methods, such as modifying the velocity of players (you can't with a player data modification mod because it doesn't send the velocity update packet to the client)
- requires permission level 2, meaning you nead cheats in a single player world or permission level 2 in a server
/aputils attack_cooldown <player>- Outputs the attack cooldown progress of the provided player, as a percent if using
/execute store result.
- Outputs the attack cooldown progress of the provided player, as a percent if using
/aputils despawn <entities> [force]- Despawns one or more entities. Not the same as /kill, as this simply removes the entity/entities from your world without triggering any sort of death event, just silently removing the entity in the same manner as an entity despawning normally.
- If
forceisn't applied and the target selecter includes one or more players at the time of the command being run (not if the selector allows players), the command fails. - Requires permission level 2, or permission level 4 if
forceis included
/aputils check_damage <entity> [type]- Returns true if the entity took damage on the tick the command was run, and type isn't provided
- Returns true if the entity took damage of the provided type on that tick, if type is provided.
- Doesn't work on older game versions, oldest tested and working version is 1.21.2
- This command always returns 0 if the required mixin doesn't load
/aputils pathfind <entity: selector> <xyz: Vec3d> [speed: double]or/aputils pathfind <entity: selector> entity <target: selector> [speed: double]- Makes a mob navigate to a certain position using vanilla mob pathfinding.
- Overrides the mob's current path, if any.
- Has an optional 'speed' parameter that makes the mob move at this speed while travelling to the specified position. Note that for some mobs such as iron golems their default (1) speed is their running speed. This isn't the case for every mob, but it is for some.
- If unspecified, defaults to 1.
- If the target specified is an entity, the mob will navigate to where the entity was when the command was run.
- Does not affect dolphins, but does affect other fish. Why this is I do not currently know, but the dolphin likely uses a different navigation method than other mobs.
- Currently does not produce command feedback, but it does work.
- Mobs sometimes stop navigating to the position early. This is due to normal mob AI behavior.
/aputils target <entity> <target>- Forces a mob to change their target to the specified entity.
- Conditions such as distance, gamemode, or having an existing target/attacker are ignored.
- Only applies to mobs that can have a target, so passive mobs cannot be affected.
- Does not affect to the ender dragon due to the ender dragon not being a mob with normal behavior.
- Currently does not produce command feedback, but it does work.
Datapacks can detect if this mod is installed using
/aputils heartbeat, which always outputs 1 to/execute store result. Datapacks can detect if the NeoForge or Fabric version of the mod is being used with /aputils version. Returns 1 if NeoForge is being used and 0 if Fabric is being used.
- used by using the
Known Issues
- Every time /aputils velocity is run, it prints "The new velocity is (x, y, z)" to the server console/game logs which can be annoying
- This was a debugging feature that was left on accidentally and will be disabled next update.
Notes
This can be included in any modpack without my permission.
If you want to port this to Forge, go ahead.
To Developers
Any contributions would be greatly appreciated!
Fun Facts
This is the first actual mod I've made in my entire history of Minecraft development. Before this I've only ever made datapacks for minecraft.
About the work-in-progress Paper port
It's always bothered me that I can't get the full features of some of my datapacks (like Old Combat Datapack) on a plugin-based server software like Paper due to ADPU not being a Plugin, so I decided to teach myself paper, and now ADPU for Paper is officially in the works! It's important to note that stuff like player data modification and damage checking will not be available due to mixins not being a thing on paper, so be prepared for that. Workarounds will be available though with a work in progress "aputils manipulate" command that will be available on all loaders and will be able to do stuff like modify health-based and hunger-based values, among other things.
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers