[workaround] Issues with factory and unknown game object

i’m using a factory to spawn in projectiles, and i’m getting a very confusing issue where the scripts in the newly created game object all seem to be pointing to the same game object.
i tried debugging it a bit, but that creates even more questions. on the factory side, everything seems to be going smoothly, with the created game objects being what was expected, such as hash: [/instance11].
though if i go into the script attached to the game object that was created and print the ID of the game object, i get hash: [14062770599921625650 (unknown)]. this hashed id is the same for every single factory-created object

i really don’t know what’s going on here, any help would be good.

for further clarification if needed, here’s the parts of the code where stuff is being printed

the code for the factory making the projectile

local proj=factory.create("/handle#makeprojectile")
print(proj)
...
msg.post(proj,"defs",  newspelldat  )

and the code inside the projectile game object that shows the weird ID:

function on_message(self, message_id, message, sender)
	print(go.get_id("."))
	if message_id==hash"defs"  then
	...

Does it matter if you use go.get_id(".") or go.get_id()? It shouldn’t, but might as well check.

that does change the output to the expected instance hash
i put this to print in the update function of the script, and it appears that there are, in fact, separate instances of game objects.
but there is still some really weird unexpected behavior coming from the actual objects. for example, the msg.post call doesn’t always seem to be going to the correct object, but rather objects that have already been created by the factory?

i’ve decided instead of using a factory to make GOs with controler scripts, i will just implement the code in a for loop in the main script instead.
that works.