I think everything is named. Starting with the trigger_catapult instance (trigger_instance.vmf), the trigger_catapult is named cat_xx. The following settings of the trigger_catapult are used for the func_param:
"launchTarget" "$target"
"physicsSpeed" "$ObjectSpeed"
"playerSpeed" "$PlayerSpeed"
Then in the this_works.vmf file then I've put two copies of the trigger_instance.vmf instance and named them
catapult_1
catapult_2
and I've set the launchTarget parameter to target
and put two info_target's named:
catapult_1-target
catapult_2-target
(Oh, and there's an info_player_start and a cube to bounce between the two catapults.)
So, when the this_works.vmf is run, it all works fine.
But when I create the other map (not_working.vmf) with a func_instance calling up this_works.vmf then it doesn't work.
It's obviously something to do with how the compiler handles entity names within instances.
On the Working with Instance page:
https://developer.valvesoftware.com/wik ... _instances
it says:
*If an entity in an instance has it's targetname set to a replaceable parameter field, any I/O in your map must target the entity's final instance collapsed name. During the VBPS process, all of your instances are gathered and collapsed into your map, and the names of any entities within those instances have their names altered. The renaming system works as follows (assuming the "Entity Name Fix Up" is set to "Prefix (default)":
(value of your map's func_instance "Fix Up Name")-(instance entity's targetname)*
This is why the targets names as catapult_1-target and catapult_2-target works.
However, I can't work out what would happen if there's an instance within an instance. It's obvious that when this is done, the trigger_catapults are not recognising the catapult_1-target and catapult_2-target
In the first set of files I posted, I did not give a fix-up name to the this_works.vmt instance in the not_working.vmf file. I tried giving it a fix-up name (chamber) and it makes no difference (updated files attached to this post).