I like playing with NPCs.
I’m even developing a gamemode with the sole purpose of playing with NPCs.
The problem is: only a few maps contain an AI nodegraph that allows NPCs move around.
So I’m using the Silverlan’s Nodegraph Editor to make nodegraphs for the gmod maps.
This pack makes the NPC able to move around on the maps mentioned below.
Here’s the maps I have noded so far:
de_wanda - FULL
ttt_casino_b2 - FULL
ttt_mw2_terminal - FULL
ttt_vessel - FULL
ttt_subway_b4 - FULL
ttt_chaser_v2 - FULL - Need to improve the connections
ttt_burgdon - FULL
rp_salvation_night_redemption - WIP (This has its own nodegraph, but I’m improving it)
Here they are. Put them on “Steam\SteamApps\common\GarrysMod\garrysmod\maps\graphs”.
Some facts you want to know:
There are some maps (usually the best quality ones) that have nodegraph, but it doesn’t cover the entire map or has fail-connections between some of the nodes mostly. I can’t edit these nodegraph’s with the Silverlan’s Nodegraph Editor, they must be built inside the map or something. I’ll find a solution for it someday.
The nodegraph covers te entire GROUND of the maps, and has been set having in mind the strategic behavior of the Combine. That means they will use cover efectively.
To date, i’m only setting the ground nodes, but not the climb or air ones. I will update the maps with them in the future.
I plan to node the Counter Strike: Source and Team Fortress 2 maps.
Take into account that some maps have special doors that the NPC can’t open, so they will be stuck when they try to pass through them. If you like your NPCs more than your doors, you can run these commands into the console:
lua_run for k,v in pairs(ents.FindByClass("func_door")) do print (v:GetClass()) v:Remove() end lua_run for k,v in pairs(ents.FindByClass("func_door_rotating")) do print (v:GetClass()) v:Remove() end
They should remove every door of the map. Note that the “func_door_rotating” are usually the ones creating problems.
Check this thread for updates, and the Workshop release, when I learn how to create an addon for it.