NoobAI: NPC AI Plugin [v3.3.1] | Chase, Patrol & More | 1,000+ Downloads | Actively Updated

So the original NoobAI hit 1,000 downloads in about 2 months, which was way more than expected for a first release. Thanks to everyone who tried it and gave feedback — it directly shaped this version.

This isn’t just a patch update. A lot of the internals were reworked because looking back at v1, the code had issues: duplicated logic, inefficient pathfinding, and messy control flow. PatrolAI had a nested chase loop that didn’t make architectural sense, and ChaseAI was recomputing paths every tick even when the target wasn’t moving. All of that is fixed now.

What does NoobAI actually do?

It’s a Studio plugin that injects AI behavior into any rig — no scripting required.
Select your NPC, choose a mode, tweak values in the panel, and hit Apply.

Modes:

  • Chase: finds the nearest player and pursues them. Includes prediction, jump/obstacle detection, wall-stuck recovery, and a hysteresis zone to prevent flickering in and out of chase
  • Patrol: three modes — Loop, Bounce, and Random. Can optionally switch to chase when a player gets close, then return to patrol when they escape

Both modes support R6 and R15, and all values (speed, radius, wait time, etc.) update live so you can tweak during playtests without reapplying.


What changed in v2

The biggest change is that all shared AI logic (pathfinding, jumping, grounded checks, stuck recovery) is now centralized. Fixes and improvements apply across all behaviors automatically instead of being duplicated between scripts.

Chase AI now only recomputes paths when the target moves a meaningful distance or when the current path is exhausted. This significantly reduces load when running multiple NPCs.

PatrolAI’s chase handling was fully reworked. The old version used a blocking inner loop, which caused edge cases and unpredictable behavior. It now uses a proper state machine.


Patrol modes at a glance

Mode Behavior
Loop Goes through checkpoints in order, then wraps
Bounce Moves forward through points, then reverses
Random Picks a new random point each time (no immediate repeats)

:counterclockwise_arrows_button: UPDATE — v3.1.1 (Stability & Architecture)

  • Reduced dependency on global structure
  • Improved checkpoint consistency and behavior
  • Fixed issues where reinstalling AI could wipe data
  • General internal cleanup and stability improvements

:counterclockwise_arrows_button: UPDATE — v3.2 (Search State & Chase Improvements)

  • Added last-known-position search — when a player breaks line of sight or leaves the chase radius, the NPC navigates to where they last were before returning to patrol/idle
  • Progress-based chase exit — NPCs no longer chase indefinitely if they can’t close distance; they give up intelligently after a configurable number of failed attempts
  • Consecutive path-failure limits for both chase and search states
  • Centralized state transitions with waypoint index resets (fixes stale path bugs)
  • Debug overlay: set DEBUG_MODE = true in the script CONFIG to get a head label + search marker in-game
  • Patrol checkpoint references now stored as live ObjectValue pointers — moving a checkpoint part in the editor is reflected immediately at runtime

:counterclockwise_arrows_button: UPDATE — v3.2.1 (Bug Fixes & UX)

  • :bug: Fixed TurnSpeed not working — the rotation formula was frame-rate dependent and produced nearly invisible turning at normal values. Replaced with exponential decay; the usable range is now 0.5 (slow) → 5 (snappy) → 10+ (near-instant)
  • :bug: Fixed crash on mesh rigs — the plugin now validates that a rig has a HumanoidRootPart before installing AI, with a clear error shown in the panel instead of a silent runtime failure
  • :bug: Fixed NoobAI is not a valid member of ServerStorage error — plugin now uses script.Parent for all internal references, removing the hardcoded path dependency that caused this
  • :sparkles: Added Remove Checkpoint button — you can now delete checkpoints directly from the plugin panel; it removes both the list entry and the Workspace part
  • :sparkles: Version badge now shown in the plugin header
  • :wrench: Fixed several UI elements rendering with Enum.Font.Unknown
  • :wrench: TurnSpeed default updated to 1 to match the new formula range

:counterclockwise_arrows_button: UPDATE — v3.3 (Pathfinding Overhaul)

This update focuses entirely on pathfinding quality and movement feel. All fixes apply to both Chase and Patrol modes.

  • :bug: Fixed TurnSpeed not rotating correctly The old rotation used CFrame:Lerp() on the full CFrame, which had two problems: it took the long way around past ±180° (the NPC would spin 270° instead of 90°), and it fought with Roblox physics by interpolating position alongside rotation mid-movement. Replaced with a Y-axis-only shortest-path angle lerp using atan2 — the NPC now always turns the short way, and physics is never interfered with. The usable range remains 0.5 (slow) → 5 (snappy) → 10+ (near-instant).

  • :bug: Fixed NPC walking off ledges / buildings when out of range When a path was empty or mid-recompute, the NPC fell back to a raw humanoid:MoveTo(lastTargetPosition) which completely ignores geometry. If the player was far away and up on a building, the NPC would just walk straight toward the target position — off any ledge in the way. The fallback now only fires when the NPC is already very close to the target. If it’s further away, it waits for a proper path instead.

  • :bug: Fixed prediction causing the NPC to overshoot corners and chase into walls The old velocity prediction used the raw 3D AssemblyLinearVelocity, which includes the Y component from jump arcs. This sent predicted positions underground or airborne, confusing PathfindingService. Prediction is now horizontal-only and speed-capped at 24 studs/s — enough for sprinting players, but prevents overshoot when a player stops suddenly or turns sharply.

  • :bug: Fixed repath oscillation (“nervous” NPC zigzagging) When waypoints ran out, the NPC could immediately request a new path and repeat on the very next tick, causing rapid back-to-back ComputeAsync calls that produced slightly different routes each time. Added a minimum repath interval (0.35s) so consecutive recomputes are always spaced out, giving each path a chance to actually be followed.

  • :wrench: Tighter waypoint settings for stairs and slopes WAYPOINT_RADIUS reduced from 5 → 3 studs, WAYPOINT_SPACING reduced from 6 → 4 studs. The NPC now follows path nodes more precisely, which fixes the “bunny hop on stairs” and “refuses to climb small geometry” issues reported by several users.


As always, drop any bugs or requests below, still actively working on this.

Plugin Asset: https://create.roblox.com/store/asset/103757316856794/NoobAI-NPC-AI-Generator
Showcase Video: https://www.youtube.com/watch?v=jpq1qVNfLAs
Discord Server: Justice Nova

3 Likes

Hi,
Plugin has error when you select a rig…

08:52:45.620 NoobAI is not a valid member of ServerStorage “ServerStorage” - Edit
08:52:45.620 Stack Begin - Studio
08:52:45.620 Script ‘cloud_103757316856794.NoobAI.NoobAICore’, Line 260 - function installAI - Studio
08:52:45.620 Script ‘cloud_103757316856794.NoobAI.NoobAICore’, Line 478 - Studio
08:52:45.620 Stack End - Studio

this is a mesh rig if that matters

3 Likes

the showcase video links to the plugin too

1 Like

Hey, thanks for reporting! Already aware of both issues and working on a fix now, should have an update out shortly. Sorry for the inconvenience!

1 Like

Thanks for telling me lol, mistake of mine. Will be updated shortly

Can you also make an editable testing place with some patrolling combat npcs ?

also what about other npc characteristics, like attack and then run away, then patrol

1 Like

:counterclockwise_arrows_button: Just pushed a major update (v3.1.1)

  • Improved architecture and modularity
  • Fixed checkpoint inconsistencies
  • No more data loss when reinstalling AI

Also cleaned up a lot of internal systems for better performance and scalability.

Full details are in the main post :backhand_index_pointing_up:, let me know if anything breaks or behaves differently.

Yeah that’s a good shout, I’ve been thinking about making a demo place with some pre-set NPCs so you can just drop in and see patrol/combat working straight away.

I’ll probably put one together soon.

For stuff like attack → run away → go back to patrol, that’s not in yet, but the way it’s built now makes it a lot easier to add those kinds of behaviors. It’s definitely something I want to expand on.

If there’s specific patterns you’re looking for, lmk. Helps me decide what to work on next.

Plugin works better now, but the npc is walking side ways on checkpoints .. they are not in a straight x y z line… but the npc is not turning and facing the way it is walking to…

  1. Also I will test it, but can the check points be added server side (scripted), real time during game play and change , like more can be added, deleted , moved around?

  2. can the npc be set up in serverstorge and cloned?.. it seems the plugin wants unique rig names…

  3. the NPC was patrolling between the two checkpoints, then I jumped over the wall, it saw me as I jumped ( it was where the line is at) , now it is stuck going back and forth, but cannot see me… must know my last position , and is going back and forth where the arrows are at.. and NOT reseting to the check points.

npc testing.rbxl (116.2 KB)

to duplicate it, stand at the check point, then jump over the wall

then the npc is stuck , going back and forth to the arrows..

while it is stuck going back and forth, if I move to left it then will come and get me… so maybe it is related to it know where I went, but does not jump of the wall (fine) , but then perhaps the total distance around the wall is greater then a setting? (my guess)… but it should be resetting to checkpoints )

3.5) it might be nice to have a line of sight follow / attack option … or perhaps it thinks to go where you might be at, or line of sight, if no longer at that point, start a new patrol pattern from THAT last line of sight position.. like a hunter..
4) might be good to add some debug toggle setting somewhere that is global (or perhaps in the rigs model properties, then add info the the output log , to see and debug things like this and or show pathfinding dots like some npc systems have, so you can see what it is thinking for trying to do. (Not the default roblox pathfinding link pathway thingy) …

  1. offhand is your pathfinding based on any open source project? like simple path, simplerpath, justice

Appreciate the detailed testing, this is really useful.
From what you described, the sideways movement is probably in the turn/facing side of PatrolAI rather than the checkpoint system itself, so I’m going to check the rotation handling on that.

For your questions:

  1. Runtime checkpoints: yes, the patrol system is built in a way where checkpoints can update at runtime/while running, since it reads live checkpoint references/positions.
    I still need to make sure that’s cleanly supported from the plugin side too.

  2. ServerStorage / cloning: the runtime AI should be much more flexible than the plugin installer itself, but right now the plugin workflow does still care about unique rig names in some places. That part needs improving.

  3. The chase reset issue sounds valid. Right now it’s probably holding onto chase state / target position logic longer than it should when you break around a wall, instead of cleanly dropping back to patrol.

  4. Line-of-sight / “hunter” behaviour:
    Right now detection is distance-based rather than vision-based, so it doesn’t track last seen positions or do that kind of search/reset behaviour yet. The “move to last seen position → search → return to patrol” idea is really solid though, that would be more of a separate behaviour layer I’d add on top.

  5. Debug tools:
    Agreed, a proper debug mode would help a lot. Things like state info, logging, or even visualising paths/decisions would make it much easier to see what the NPC is doing internally. That’s something I’ve been considering adding.

  6. Pathfinding:
    It’s using Roblox PathfindingService directly, not based on SimplePath/SimplerPath.

The line-of-sight / last-seen-position / “hunter” style behavior is a really good suggestion too, since that’s not really how it works yet.

Keep sending cases like this if you find them, this kind of testing is super helpful.

1 Like

feel free to DM me here and privately when you got updates , fixes / new features to test out.

1 Like

Both issues are fixed in v3.2.1! (just published):

The ServerStorage error was caused by the plugin trying to locate ServerStorage.NoobAI by name at install time: which broke if the folder had been renamed or the plugin was loading fresh. It now uses script.Parent to reference itself directly, so it’s fully path-independent.

Mesh rigs: the plugin now validates that your selected rig has a HumanoidRootPart before attempting installation. If it doesn’t, you’ll see a clear message in the plugin UI instead of a silent runtime error. Most mesh rigs in Roblox do include a HumanoidRootPart, so if yours is missing one you’d need to add it for the AI to function (this is a Roblox character requirement, not specific to NoobAI).

Let me know if you run into anything else after updating!

1 Like

v3.3 Is Out!

This one’s a pure pathfinding and movement quality patch: No new features, just fixes for the most common issues people were running into:

  • NPC walking off ledges/buildings when the player was out of range
  • TurnSpeed spinning the wrong way or barely doing anything
  • Jittery “nervous” chasing when the player micro-moves or jumps
  • Bunny hopping on stairs and refusing to climb small steps
  • Prediction overshooting corners and sending the NPC into walls

The ledge one in particular was a real problem, the fallback MoveTo used when the path was being recomputed completely ignores geometry, so if the player was on a rooftop the NPC would just beeline straight toward their position and walk off whatever was in the way. That’s now gated to only fire when the NPC is already basically on top of the target.

TurnSpeed also had a silent bug where the old CFrame:Lerp rotation took the long way around past ±180° : so instead of turning 90° right it would spin 270° left. Replaced the whole thing with a proper shortest-path angle interpolation.

Full breakdown in the main post above. Let me know if anything feels off, still actively testing across different map layouts and rig types.

I was testing out the updates. The NPC still is not rotating and facing the direction they are moving.
Here they are running right after me, but facing up as they move.

also during play mode, switching to server, I move one of the waypoints and now the movement on the npc is stuttery, when it is going to the way points , it now moved in like 5 studs, stops moves 5 studs , then stops , moves 5..