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.
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)
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
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…
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?
can the npc be set up in serverstorge and cloned?.. it seems the plugin wants unique rig names…
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.
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) …
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:
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.
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.
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.
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.
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.
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.
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!
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..
Thanks for the detailed report and the screenshots,
Both bugs are fixed in v3.3.2, just pushed to the asset page.
The rotation issue had two layers. First, the atan2 math was extracting the wrong angle: CFrame.fromEulerAnglesYXZ(0, yaw, 0) produces a LookVector of (-sin yaw, 0, -cos yaw), so the correct extraction needs negated arguments. The old version used atan2(lv.X, lv.Z) which consistently gave a 180° offset, making the NPC face exactly backwards.
Second, the CFrame was being written every single Heartbeat frame even when the NPC was already aligned, each write resets the physics engine’s velocity integration, which is what caused the move-stop-move-stop pattern you and others reported.
The waypoint stutter was a stale path issue. Paths are baked as absolute world positions at compute time, so when you move a checkpoint Part, the NPC keeps following the old positions — that messy looping path in your screenshot is the NPC loyally chasing ghost waypoints. Fixed by watching the checkpoint Part’s position via GetPropertyChangedSignal and immediately clearing the current waypoints when it moves, forcing a fresh compute on the next tick.
Thanks!
Yeah I have to rework the plugin as I’ve received multiple reports, but thanks for your message! As I wasn’t aware of the issues with R6 rigs; expect changes in a couple days, the updates will be on here.
umm, I updated the plugin, and re did the npc, but it still does not face where it is going.. runs sideways or even backwards.. I was also thinking maybe for version control , add it into one of the scripts as to what version it is… I will get a simple testing place going to show the issue..
Hey everyone!
Just wanted to drop in and say the project is still very much alive. I know things have been quieter on the thread lately but that’s just because most of the work has been happening behind the scenes.
v3.3 was a pretty big internal cleanup and I want to make sure it’s solid before piling new stuff on top. Next update is already in progress, won’t say too much yet but there are some quality-of-life things and a couple of frequently requested features that are nearly there.
Keep the bug reports and feedback coming, it genuinely helps. Thanks for sticking around.