@mid_gen - So I was looking at implementing GOAP from scratch just for the experience, and was wondering about some implementation details in your version.
Namely, I was thinking of setting it up so that PerformAction is a BT_Task node that lets you reference an action object, and then using the BT for the FSM, e.g., set up Idle and Move states in the BT, with PerformAction being another BT_Task node.
Another thing is that it seems from your devblog that you’re doing your own pathfind, curious why do that instead of hook into the normal pathfind.
Edit: This paper is topical to extending BTs with planning systems: http://projekter.aau.dk/projekter/files/52867041/ThesisFinal.pdf
Edit again: The above paper actually implements planning as an extension of the BT using a similar method to the one I propose above. The part of the paper in question is “4.3 Implementation” where it mentions the “Planning Node”.