So I have dabbling in pathfinding and slight map modifications in MP. Here's what I've learned and how I'm doing it.
I've coded up a data dump parser into Mod Manager (not accessible right now) that parses data from my SCRIPT DUMP 4 (output from ME3 GUI TRANSPLANTER's pcc data dumping, gen 4). It reads path nodes, boost nodes, covernodes, coverlink nodes, and enemy spawn points. It also reads all reach specs. It draws a graph of the input file file (BioD...txt most times) and draws a grid like this.
Here's it with the reach spec lines off (Goddess map shown)
Here's it with the reach spec lines on (Goddess again)
Numbers are the export indexes and colors are:
Red - Path Node (just a node)
Cyan - Boost Node
Yellow - CoverLink and Cover nodes
Green - Enemy Spawnpoint nodes
It doesn't cover all of them. I am considering implementing this into ME3Explorer at this time. I would likely spin it off into its own tool as I don't want to mess with the 3D stuff from Level Explorers tools. I may not end up doing it at all either as I don't know how the GDI for C# works.
As you can see, the pathfinding interface is very complicated. This is why UE3 makes the auto link generation part of UE3 and not UDK, as manually doing linking is very time consuming.
Each line is a 'reach spec'. Reach spec is information about the link. How far it is, what is required to use this link, the beginning and end nodes, etc. AI uses this info in its pathfinding algorithm. For example, enemies that cannot boost up to a new area (like trooper rocket boost) will be unable to reach those nodes because the link to that node says it requires SFXBoostReachSpec (vs standard ReachSpec). Enemy spawn points have a list of required reach specs to spawn at as well, as some spawnpoints only have a single node to spawn at, followed by a boost node. Enemies have supportedcustomreachspecs as an arraylist in their SFXPawn definitions, as well as custom actions in certain slots. For example, custom action slot 48 and 49 are boost up/boost down, and will be called when an enemy is attempting to activate a boost node.
All nodes have a location attribute. This is the location on the level. You can use "showlocation" to find your location (center of players mesh) which will help greatly if you are re-positioning nodes.
Pathfinding is done on-host. Clients will be replicated the direction and speed of a pawn so pathfinding changes will work with clients. Interestingly, more static items are also replicated, such as location of ammo containers (not the box but the capsule) and grenades as well. I am unaware of what does not sync to clients in terms of level modifications. Obviously new content won't be synced.