A second possible bug (or maybe it's meant to be that way judging by point 4 in the OP): I played through episode 1 with this (I like to use ep1 as a test bed for new stuff because I know it so well, so I can spot differences more easily) and a couple of times I came across enemies just standing there waiting to be shot when I know that they would normally have been active. Perhaps they got to their path node and then just stopped searching. The first time it (with the imps in the soul sphere secret of E1M3 - one was just standing there staring at the wall) the debug output had lots of "DoomImp searching for [insert number here]" messages.

- Code: Select all • Expand view
`DoomImp path marker reached; continuing`

DoomImp path marker reached; continuing

DoomImp path marker reached; continuing

DoomImp switch to searching

DoomImp searching for 29

DoomImp searching for 29

DoomImp searching for 29

DoomImp searching for 29

DoomImp searching for 29

DoomImp searching for 29

DoomImp searching for 29

DoomImp searching for 28

DoomImp searching for 28

DoomImp searching for 28

DoomImp searching for 28

DoomImp searching for 28

DoomImp searching for 28

DoomImp searching for 28

DoomImp searching for 27

DoomImp searching for 27

DoomImp searching for 27

DoomImp searching for 27

DoomImp searching for 27

DoomImp searching for 27

DoomImp searching for 27

Picked up an armour bonus.

DoomImp searching for 26

Picked up an armour bonus.

DoomImp searching for 26

Picked up an armour bonus.

DoomImp searching for 26

DoomImp searching for 26

DoomImp searching for 26

DoomImp searching for 26

DoomImp searching for 26

DoomImp searching for 25

DoomImp searching for 25

DoomImp searching for 25

DoomImp searching for 25

DoomImp searching for 25

DoomImp searching for 25

DoomImp searching for 25

DoomImp searching for 24

DoomImp searching for 24

DoomImp searching for 24

DoomImp searching for 24

DoomImp searching for 24

DoomImp searching for 24

DoomImp searching for 24

DoomImp path marker reached; continuing

DoomImp searching for 23

DoomImp searching for 23

Picked up an armour bonus.

DoomImp searching for 23

Picked up an armour bonus.

DoomImp searching for 23

Picked up an armour bonus.

DoomImp searching for 23

DoomImp searching for 23

DoomImp searching for 23

DoomImp searching for 22

DoomImp searching for 22

DoomImp searching for 22

DoomImp searching for 22

DoomImp searching for 22

DoomImp searching for 22

DoomImp searching for 22

DoomImp path marker reached; continuing

DoomImp searching for 21

DoomImp searching for 21

DoomImp searching for 21

DoomImp searching for 21

DoomImp searching for 21

DoomImp searching for 21

DoomImp searching for 21

DoomImp searching for 20

DoomImp searching for 20

DoomImp searching for 20

DoomImp searching for 20

DoomImp searching for 20

DoomImp searching for 20

DoomImp searching for 20

DoomImp path marker reached; continuing

DoomImp searching for 19

DoomImp searching for 19

DoomImp searching for 19

Picked up a box of bullets.

DoomImp searching for 19

DoomImp searching for 19

DoomImp searching for 19

DoomImp searching for 19

DoomImp searching for 18

Picked up a stimpack.

DoomImp searching for 18

Picked up a yellow keycard.

DoomImp searching for 18

Picked up a stimpack.

DoomImp searching for 18

DoomImp searching for 18

DoomImp searching for 18

DoomImp searching for 18

DoomImp path marker reached; continuing

DoomImp searching for 17

DoomImp searching for 17

DoomImp searching for 17

DoomImp searching for 17

DoomImp searching for 17

DoomImp searching for 17

Picked up a health bonus.

DoomImp searching for 17

Picked up a health bonus.

DoomImp searching for 16

Picked up a health bonus.

DoomImp searching for 16

DoomImp searching for 16

DoomImp searching for 16

DoomImp searching for 16

Picked up a health bonus.

Picked up a health bonus.

DoomImp searching for 16

Picked up a health bonus.

DoomImp searching for 16

DoomImp path marker reached; continuing

DoomImp searching for 15

DoomImp searching for 15

DoomImp searching for 15

DoomImp searching for 15

DoomImp searching for 15

DoomImp searching for 15

DoomImp searching for 15

DoomImp searching for 14

DoomImp searching for 14

DoomImp searching for 14

DoomImp searching for 14

DoomImp searching for 14

DoomImp searching for 14

DoomImp searching for 14

DoomImp path marker reached; continuing

DoomImp searching for 13

DoomImp searching for 13

DoomImp searching for 13

DoomImp searching for 13

DoomImp searching for 13

DoomImp searching for 13

DoomImp searching for 13

DoomImp searching for 12

DoomImp searching for 12

DoomImp searching for 12

DoomImp searching for 12

DoomImp searching for 12

DoomImp searching for 12

DoomImp searching for 12

DoomImp path marker reached; continuing

DoomImp searching for 11

DoomImp searching for 11

DoomImp searching for 11

DoomImp searching for 11

DoomImp searching for 11

DoomImp searching for 11

DoomImp searching for 11

DoomImp searching for 10

DoomImp searching for 10

DoomImp searching for 10

DoomImp searching for 10

DoomImp searching for 10

DoomImp searching for 10

DoomImp searching for 10

DoomImp switch to searching

DoomImp searching for 9

DoomImp searching for 29

DoomImp searching for 9

DoomImp searching for 29

DoomImp searching for 9

DoomImp searching for 29

DoomImp searching for 9

DoomImp searching for 29

DoomImp searching for 9

DoomImp searching for 29

DoomImp searching for 9

DoomImp searching for 29

DoomImp searching for 9

DoomImp searching for 29

DoomImp searching for 8

DoomImp searching for 28

DoomImp searching for 8

DoomImp searching for 28

DoomImp searching for 8

DoomImp searching for 28

DoomImp searching for 8

DoomImp searching for 28

DoomImp searching for 8

DoomImp searching for 28

DoomImp searching for 8

DoomImp searching for 28

DoomImp searching for 8

DoomImp searching for 28

DoomImp searching for 7

DoomImp searching for 27

DoomImp searching for 7

DoomImp searching for 27

DoomImp searching for 7

DoomImp searching for 27

DoomImp searching for 7

DoomImp searching for 27

DoomImp searching for 7

DoomImp searching for 27

DoomImp searching for 7

DoomImp searching for 27

DoomImp searching for 7

DoomImp searching for 27

DoomImp searching for 6

DoomImp searching for 26

DoomImp searching for 6

DoomImp searching for 26

DoomImp searching for 6

DoomImp searching for 26

DoomImp searching for 6

DoomImp searching for 26

DoomImp searching for 6

DoomImp searching for 26

DoomImp searching for 6

DoomImp searching for 26

DoomImp searching for 6

DoomImp searching for 26

DoomImp searching for 5

DoomImp searching for 25

DoomImp searching for 5

DoomImp searching for 25

DoomImp searching for 5

DoomImp searching for 25

DoomImp searching for 5

DoomImp searching for 25

DoomImp searching for 5

DoomImp searching for 25

DoomImp searching for 5

DoomImp searching for 25

DoomImp searching for 5

DoomImp searching for 25

DoomImp searching for 4

DoomImp searching for 24

DoomImp searching for 4

DoomImp searching for 24

DoomImp searching for 4

DoomImp searching for 24

DoomImp searching for 4

DoomImp searching for 24

DoomImp searching for 4

DoomImp searching for 24

DoomImp searching for 4

DoomImp searching for 24

DoomImp searching for 4

DoomImp searching for 24

DoomImp searching for 3

DoomImp searching for 23

DoomImp searching for 3

DoomImp searching for 23

DoomImp searching for 3

DoomImp searching for 23

DoomImp searching for 3

DoomImp searching for 23

DoomImp searching for 3

DoomImp searching for 23

DoomImp searching for 3

DoomImp searching for 23

Zombieman switch to chasing

DoomImp searching for 3

DoomImp searching for 23

DoomImp searching for 2

DoomImp searching for 22

DoomImp searching for 2

DoomImp searching for 22

DoomImp searching for 2

DoomImp searching for 22

DoomImp searching for 2

DoomImp searching for 22

DoomImp searching for 2

DoomImp searching for 22

DoomImp searching for 2

DoomImp searching for 22

DoomImp searching for 2

DoomImp searching for 22

DoomImp searching for 1

DoomImp searching for 21

DoomImp searching for 1

DoomImp searching for 21

DoomImp searching for 1

DoomImp searching for 21

DoomImp searching for 1

DoomImp searching for 21

DoomImp searching for 1

DoomImp searching for 21

DoomImp searching for 1

DoomImp searching for 21

DoomImp searching for 1

DoomImp searching for 21

DoomImp searching for 0

DoomImp searching for 20

DoomImp searching for 0

DoomImp searching for 20

DoomImp searching for 0

DoomImp searching for 20

DoomImp searching for 0

DoomImp searching for 20

DoomImp searching for 0

DoomImp searching for 20

DoomImp searching for 0

DoomImp searching for 20

DoomImp searching for 0

DoomImp gave up the search

DoomImp searching for 20

DoomImp searching for 19

DoomImp searching for 19

DoomImp searching for 19

DoomImp searching for 19

DoomImp searching for 19

DoomImp searching for 19

DoomImp searching for 19

DoomImp searching for 18

DoomImp searching for 18

DoomImp searching for 18

DoomImp searching for 18

DoomImp searching for 18

DoomImp searching for 18

DoomImp searching for 18

DoomImp searching for 17

DoomImp searching for 17

DoomImp searching for 17

DoomImp searching for 17

DoomImp searching for 17

DoomImp searching for 17

DoomImp searching for 17

Picked up a health bonus.

DoomImp searching for 16

DoomImp searching for 16

DoomImp searching for 16

DoomImp searching for 16

DoomImp searching for 16

Picked up a health bonus.

DoomImp searching for 16

DoomImp searching for 16

DoomImp searching for 15

DoomImp searching for 15

DoomImp[A] found ally DoomImp[B]

...and shared intel with them!

DoomImp switch to chasing

DoomImp reacquired

Picked up a health bonus.

Picked up a health bonus.

Picked up a stimpack.

Picked up an armour bonus.

Picked up an armour bonus.

Picked up an armour bonus.

Picked up an armour bonus.

Supercharge!

I also notice that "DoomImp gave up the search" is in there. Relevant?

Also, side questions:

How will this mod sit with enemies on patrol paths?

What about enemies being given thing_hate instructions (possibly in combination with patrol paths).

Is there any way to exclude certain enemies from the improved AI (e.g. if they are supposed to not be very smart or maybe they can't/shouldn't talk to allies... or something).