Can you remind me of the changes to the toolkit I helped you set up? It is hard to know what might be going wrong without being able to replicate it. As far as I recall I had set it up so that having units placed beforehand was no longer necessary, but I might not have tested it thoroughly enough. When you click the errors that appear, to what functions are you directed? By the way, if you want to set it up in a hacky way you can just remove the inivisible unit from the initiative array and grid units map after startup and you should be good. It should be possible to get this working without such a hack, though.
That macro should actually work with any number of players in an online game. The macro is a bit hacky and conterintuitive, so I understand that it seems do do something very differently when taken at face value. This is a way to get around the way player controllers are stored differently in clients and servers. The server has access to all player controllers, so server side it is unproblematic to get references to player controllers and compare them to the PCs that own units. However, clients only have access to their own player controller, so trying to get access to a different client’s player controller retuns nothing, while trying to get the server’s player controller returns a signature that is identical to the client’s player controller. To prevent clients from thinking the owned unit is owned by them, when it is in fact owned by the server I implemented a bOwnedByServer boolean which takes care of this if the OwnsUnit macro is activated outside the server. It is not the most elegant solution, but it does the job. I hope to think of a good way to solve this without the boolean in the future.