Hi.
Not sure if this can help you!
After a few years using PlayMaker, I’ve noticed quite a lot of things about organization and optimization. With some research, I’ve learned what PlayMaker likes and dislikes. For example: avoiding loops that check a variable every 0.2 seconds.
It’s clearly better to structure your logic with global events or Send Event By Name.
PlayMaker doesn’t handle huge FSMs very well — the editor becomes slow.
Using many small, specialized FSMs is the best approach: each one does a single job, which makes everything clearer and much easier to debug.
If a “manager” GameObject ends up with 20+ FSMs, typing text in the editor can become a nightmare, with 1–2 seconds of lag per letter.
For my next projects, I plan to create a “General” GameObject with only 2–3 FSMs that are used solely to store GameObject variables (instead of one giant FSM with 40 variables). Then, each child has a single dedicated FSM, and I reference them all inside the “General”.
This way, for any prefab or system, you just link it to the “General” and it automatically finds the right objects, FSMs, or variables. I also name my GameObjects the same as their FSMs so I don’t get lost.
For naming conventions, I use a simple but consistent structure by organizing my events into folders like ACTION / Receive, ACTION / Add, COMPARE / …, STATE / True, or NUMBER / 1 for numeric filters. This keeps everything stable across all my projects.
Thanks to this organization, I can create highly reusable prefabs: for example, for option menus, I only need to change the visuals since the functional base is already done. Same for inventory systems or other recurring features — the foundations stay the same, I just adapt the presentation depending on the project. This is generally how professionals work: they don’t reinvent the wheel for every project.
There’s so much to say that I’m not sure what else to add. If you have more questions, feel free to ask — even though I don’t have much time right now… I’m in full rush preparing my game for its release on Steam, and the amount of work is insane. And I haven’t even started communicating about the game yet.