Group doesn't copy Parent's movement in game

I’ve attached a test blend that demonstrates this.

Description of the problem:
I have a game object that’s moving and normal objects parented to it follow it perfectly fine. However, a group instance parented to the object does not follow it’s movement at all (even though it does outside of the game engine).

As a work around, I tried using Python to manually set the group’s position to the object every frame. While this did update the group’s position, the objects in the group still didn’t move.

Is this a bug, and are there any known solutions?

group_parenting.blend (423 KB)

That is normal. You can use the LinkLib to parent the group objects to their instantiator.

I’m having some trouble understanding how to use the library. In the demo, I see that you just parented objects to a group instance. However, I have a group instance parented to another object. Can you give me a few pointers?

Group setup:
The property “mustHave” defines what the property names the children of the pivot (instantiating object) must have to be identified. For example: “toBeParented_A”

Instance setup:
Parent the object to the pivot and give it the property “toBeParented_A”.

This way you can have multiple different “mount points” in your group. You parent all objects to be “mounted” to the the pivot. The group will differentiate them via the properties.

Does this help?

Let me see if I have this right.

I need to go to the blend file where the group was originally created and give all the objects in the group the propery “mustHave” containing a string, say “parent”. Then in the blend file containing the liked instance of the group, I assign the object the group is parented the property “parent”.

What about the logic bricks? Which object do I assign them to, in which blend file, and which LinkLib methods do they need to call?

Not all, only to the objects you want the new children parent to.

correct

The logic must be applied the the group object as shown in the video. Which means you need the “mustHave” plus the Module: LinkLib.parentPivotsChildrenToOwner at the “hook”.

Please do not forget the base and the according properties. Watch the console for error messages. This is important.

Alright, so I got everything working. Turns out I needed the “baseType” property instead of the “mustHave” property and the LinkLib.linkPivotAndBase and LinkLib.parent rather than LinkLib.parentPivotsChildrenToOwner.

It works fine, but the only thing is I get a warning everytime I run the game.


Warning, sensor "sInit" has lost a link to a controller (link 2 of 4) from object "Empty.base"
possible causes are partially appended objects or an error reading the file,logic may be incorrect
Warning, sensor "sInit" has lost a link to a controller (link 3 of 4) from object "Empty.base"
possible causes are partially appended objects or an error reading the file,logic may be incorrect

Not sure how to fix this.

“baseType” is always needed for the “Base” of the group. This is necessary that the Base and the Pivot can identify each-other.
“mustHave” is optional and only needed for any object of the group that is not the base and you want to have more than one mount point (e.g. a left and a right hand).

The warnings you got seems to be because you have inter-object connections between objects. One of the objects does not exist. I guess one of the objects is not assigned to the group.