@fkberthold Just to add to @oid's post...... you can find all the object definitions (and the necessary arguments) which can be used for dynamic patching here....... https://puredata.info/docs/developer/PdFileFormat
Note that you can send multiple messages comma separated from within one message as @oid has done in the [connect( message.
If the sub-patch is even only a little more complex it can be easier to dynamically create a whole abstraction that contains send and receive type objects, as a large quantity of [connect( or [disconnect( messages can spin your head off your neck.
The message would be [obj 10 10 my-abstraction $2 12 woof( for example, to put [my-abstraction $0-value 12 woof] into the sub-patch and preserve the sub-patch value of $0 within the abstraction as $1.
Yes, cascading $ values can be great fun in dynamic patching.... but nothing like as complex as [connect( messages... that will have to be adjusted if you add another object to the sub-patch in @oid's example.
Dynamically creating a large number of abstractions with different arguments is a very powerful tool.
The [clone] object is more restrictive as concerns arguments, and I find it a bit harder to use.
Also you can send messages directly to the sub-patch with a single message box like this..... ctlin_2.pd
By adding extra arguments to the [pack] and replacing e.g. "10 10" with "10 $4" within the message you can then easily use a counter...... 1-n .... to both increment arguments (like with [clone] $1)..... and to place the objects neatly into the sub-patch.