Data Packs Tool

AI Pathfinder

    • 447 views • 4 today
    • 12 downloads • 0 today
    • 3
    • 4
    • 4
    officialbarden
    Level 29 : Expert Miner
    10
    AI Pathfinder Title Card

    AI Pathfinder

    • Force a Custom Entity to Pathfind to a Fixed Position in the World! (useful for mapmaking)
    • Force Entities to Chase Other Entities!
    • Supported versions: 1.21.2+

    AI Pathfinder datapack allows you to directly plug smart pathfinding to your custom Mob/Monster/NPC for MapMaking or MiniGame purposes. This datapack does all the heavy lifting of the AI for you — Gone are the days of Retexturing Entities!

    Credits


    CJDev's Credits :3

    This datapack is built upon CJDev's A* Pathfinding datapack!

    How to Use?

    • First, choose your base entity.


    This entity will be the body of your custom entity. This entity may also be the hitbox of your entity, if you decide to not implement a custom hitbox system. If you are on Minecraft Version 1.21.9+, we recommend you choose a Mannequin Entity as your base entity.
    • Second, link your entity with your custom entity display.


    Depending on your implementation, link your "custom entity display" with this base entity. This could be something as simple as a static model or as complicated as an Animated-Java Rig. Linking can be done via an ID system that the datapack inherently doesn't provide.
    • Thirdly, give your entity the ai tag


    Using the /tag command, give your entity the ai tag:
    /tag <entity> add ai

    Once this tag is added, this datapack will initialize some base values for the AI. Values like the MovementSpeed of the AI, the State of the AI, the JumpStrength, the Reach, it's View Range and View Cone.

    There you have it! An Entity with custom AI that is willing to listen to your commands! Now, for the big list of customizable things:

    Modifyable Values

    Scoreboards

    ai.State: It stores the State of the AI.
    |__________ Idle = 0;
    |__________ Walking = 1;
    |__________ Sprinting = 2;

    ai.Mode: It stores the "Mode" of the AI.
    |__________ Idle = 0;
    |__________ Roaming Only = 1;
    |__________ Chasing Target Entity = 2;

    ai.PathfindingDuration: It stores how long the AI waits before creating another path.
    ai.ChasingEntityMemoryDuration: It stores the value of how long the AI can remember an entity until it forgets.
    ai.RememberingLastPosOfEntity: It stores how long it takes for AI to forget the target entity.
    ai.LostEntityGracePeriod: The amount of time the AI waits after it has lost the target entity, before it begins to pathfind.

    ai.MovementSpeed: It stores the Speed of the AI (it changes depending on the value of ai.State)
    ai.JumpStrength: It stores the Jump Strength of the AI.

    Base Values


    These values are initialized in ai:global/load and are scaled (x1000)
    baseMovementSpeed = 150
    baseSprintSpeed = 220
    baseJumpStrength = 410
    baseViewHalfAngle = 30000 // 60° Cone.
    baseLostEntityGracePeriod = 200 // AI stands still for 10 seconds before it starts moving again.

    // These values are scaled (x10) since they're used in raycasting.
    baseViewRange = 300 // AI can see up to 30 blocks away (view cone radius is 30 blocks)

    By Modifying these values, you can tune the AI to meet your needs!

    Additional Examples:

    • Say you wanted to make it so that your base entity only runs when you want it to. To make it run from one location to another, set its ai.State score to 2. If you want it to only walk everywhere, set its ai.State score to 1.
    • Say you want your AI entity to only roam but not chase any entity. Set its ai.Mode to 1.

    Now, the API that the datapack provides:

    API

    "ai:api/pathfind"
    Usage: execute as <ai> at <location_marker_entity> run function ai:api/pathfind
    Once this function is ran, the AI will formulate a path towards the position of <location_marker_entity>. Once the path is formed, it will begin travelling through it.


    "ai:api/set_mode/chasing"
    Usage: execute as <ai> at @s as <target_entity> run function ai:api/set_mode/chasing
    Once this function is ran, <target_entity> will begin to be targetted by the AI. If <target_entity> appears in the View Cone of the AI, whose dimensions are specified by the ai.ViewRange and ai.ViewAngle scoreboards, the AI will start chasing <target_entity>.


    "ai:api/set_mode/idle"
    Usage: execute as <ai> run function ai:api/set_mode/idle
    This function stops the AI from implementing pathfinding logic. Useful if you want to play an Animation.

    "ai:api/set_mode/roaming"
    Usage: execute as <ai> run function ai:api/set_mode/roaming
    Once this function is ran, the AI will become passive. Alternatively, if there are entities of type #ai:node (by default, it only contains marker) and tag "ai.Node", the AI will randomly pathfind to this entity after random intervals of time.

    Tags


    Some Special Tags the AI Entity can have that Modify its behavior:
    ai.CompletePathBeforeUpdating = There's a possibility that the AI may change path before reaching its destination first. This tag will prevent that from happening.

    ai.LookOnlyAtPath = While Moving, The AI will only look at the Path it's travelling.

    ai.RandomlyLookAnywhere = While Moving, The AI will Randomly Look either at a Random Yaw, Pitch, or at an interesting nearby entity, meant to heighten Realism and its Life.

    ai.Node = Any Entity of Type #ai:node with this tag will act as Node that the entity can travel to while Roaming Around. Useful for fixing Locations.

    ai.BeingTargetted = If an Entity with this tag and with the same score as the AI entity in scoreboard ai:id, enters the AI's view cone, the AI will start chasing it IF it's ai.Mode is set to 2 (Chase Mode)

    Examples


    Recreating the Minecraft Player with Mannequins!
    CompatibilityMinecraft 1.21
    Tags

      Have something to say?

    sashanckabot12666
    02/07/2026 5:05 am
    Level 11 : Journeyman Miner
    It would be cool to make the AI ​​track not xz but all xyz of the player, for example, not just find the path of connected blocks and stand under the players platforms, but, for example, somehow jump to other platforms or something like that.
    2
    officialbarden
    02/07/2026 3:17 pm
    Level 29 : Expert Miner
    This is one of the most requested/anticipated feature out of this datapack and the showcases of the applications of it, I'd love to implement this but currently I have no clue how to do it lol


    But, fingers crossed! hopefully I figure it out and the next update of the datapack has it!
    2
    sashanckabot12666
    02/08/2026 5:03 am
    Level 11 : Journeyman Miner
    I understand this is difficult and I myself cant imagine how this is possible, but if you do this you will discover something new and other people will be able to do something similar. I only change the AI ​​of mobs through vanilla macros, storage and other things. If you do this it will open up new possibilities for mobs, for example and they will be able to parkour, they just need to be improved in their own way. But this is my version. I will use this for my mobs in the parkour map and I will use it in my new datapack. If someone agrees to help and explain some things about its implementation, you can look at this post on my profile if you find it. But I believe that you will succeed!
    2
    sashanckabot12666
    02/03/2026 2:47 am
    Level 11 : Journeyman Miner
    Cool! Thanks!
    2

    Welcome