How to move a ennemi on a target point

alright this is how i would make a basic pawn enemy move. to start create a pawn, then add a mesh and a movement component. next we are going to make the script for moving in the event graph. its best to do the script on the enemy blueprint rather than in a separate blueprint because its much easier to control this way and will lead to much better results when adding many enemies to the scene. for the example pictured below i used a floating pawn movement and i scripted the movement to patrol between actors in a array.

ok so to start i right clicked and searched for custom event and named it move to target. next i created a AImoveto node. this move to node will actually accomplish all of the movement for us, we just need to make it trigger and give a location. so in this case i wanted to have multiple targets to move to so i created a array variable (TargetLocation) and set its type to actor. i also created a regular variable of the int type(TargetToGet). i dragged the array var into the graph and selected get, i did the same with the int var. then i dragged off the array for a get node. this will get a actor from the array at the position/index we tell it to. to define the index i used the other variable which will allow me to get a different actor every time this script is ran(more on that in a min). ok now we have a system for the enemy to move to locations but that will only occur once and only to one place. to fix this we need to increment the target to get variable so that each time the script runs we get the next actor on the list as a target. to do this drag off the targetto get var and in the search type ++ this will select the increment var node. the next part of the script i made will make the list repeat so that once you reach the last actor in the array it will begin from the first. to do this we just get the value of target to get and compare it to the length of the array (drag off the array var and search for length, then drag off that and search >= to get a greater than or equal node). now plug that into a branch, if the value is larger then the length then we need to reset it and the branch will read true. so we simply drag the targettoget variable into the graph and select set. now we just need to call the custom event again so that the script will run over and over. i know this may be confusing but just use the picture as a guide and youll get it. the last step is to put a nav mesh bounds in the level and scale it so it encompasses everywhere you want the enemy to be able to move to. note you only need one bounds volume in the level, not one for every enemy. once the nav volume is in the level is you press the P key it will chow you the nav data (green is where the enemy can move to)