Thanks for the report!
Hmm, I can see some harcoded reference to "player" in the code, still. They are used when testing if the "player" _can_build on the selected tiles; in order make a proper construction plan. There's also the deconstruction phase where it removes rocks/trees using the "player" force.
But the ghosts should actually already be placed using the player-index passed to the event.
Are you certain the ghosts are of another force? Or might it be the contruction site is littered with trees/rocks and other stuff that needs to be removed before building.