This is Phil. Phil works at a haunted corn maze, shambling around as a zombie to scare any nearby visitors.

He’ll keep doing that until he notices a player, an actual haunted doll. Phil does not get paid enough for this actual haunted doll business, and will break character and run away if a player gets too close.
Responding to the player and fleeing is interesting too, but this post is about Phil’s life before he finds out that his workplace has a haunted doll infestation. He’s just living his best life, getting paid to be a giant ham of a zombie. But before any of that can happen, there needs to be a system for authoring patrol routes.
Authoring Patrol Paths
To make a patrol path, all I have to do is drop a PatrolPath actor in the level, and any number of PatrolPoints. The PatrolPath points to the first PatrolPoint, where the path starts.
Each PatrolPoint has a NextPoints array, which can be empty or have multiple points to choose between. You can make some real monstrosities, if you want for some reason.

If you make something unworkable, running Map Check will catch your mistakes.

Patrol Paths for All Seasons
Patrol routes come in three flavors: Line, Loop, and Random.
Line: Characters walk along the path until they get to the end, then turn around and go the other way. Great for hallways (or dead end maze paths).

Loop: Characters walk in a closed circuit. Great for large, open, outdoor spaces (or looping maze paths).

Random: Characters will ignore the lines between patrol points and pick their next destination point randomly. Great for small, room-like spaces (or barns).

Okay, But What About Phil?
Phil’s existence starts on BeginPlay, when his state tree tells him he should be patrolling.

Since he doesn’t have a patrol route yet, there’s a central Patrol Manager to assign one to him. I have plans to make this more nuanced, but for now he just gets sent to the closest one.
The Patrol Manager is also responsible for making sure each AI always knows the next patrol point they’re trying to go to. So Phil’s entire existence is a cycle of shambling to a patrol point, asking the Patrol Manger where to go next, and shambling there.

So really you’re doing him a favor by scaring him off his patrol route. His life would be so boring without you.