In this case, the tools are being mounted and dismounted while simulation is running using Set Output statements in the robot program. What @xILukasIx wrote should fix the issue for you as along as the state of everything is good when you reset simulation. For example, if you mount gripper to robot during simulation then the gripper should automatically dismount when you reset simulation.
I will explain more if it helps, for example if you plan on modeling your own gripper.
Attach tool to robot
Generally, interfaces are used to connect a tool to a robot. The connected interfaces attach the tool to the robot, so the tool moves with the robot. This is done using Hierarchy field.
Import/export joints
The interfaces can also export joints/axes of tool to robot, so the robot controller can drive those axes, e.g. opening and closing gripper. This is done using Export Joint field.
Connect signals
The interfaces can also automatically connect signals of tool to robot. Connecting two signal behaviors is straightforward with Signal field. However, connecting signals of tool to IO of robot requires a custom behavior, thereby a Python Script. This is what the Box Gripper’s GripperLogic is doing. It is listening for events when interface of tool is connected or disconnected, and then executing a function (event handler) to connect the signals to IO of the robot, i.e ports in Boolean Signal Map behaviors. For some reason, the event handlers are removed at start of simulation, but then added again when simulation is reset. So if you try to mount the tool to robot while simulation is running, the script for connecting the signals will not work.
IO wizard
I have not checked, but I believe the IO wizard in the Modeling tab is generating the GripperLogic script behavior.
@jouha Any idea, and is this intentional?