If two objects overlap and a behavior like Platform or 8 Direction separates them, the 'Is overlapping' and 'On collision' events will never see them touching, and never run. So the player with 8 Direction could run in to a solid and 'On collision' would never trigger. Behaviors can use 'registerCollision' to say that two instances really collided but the behavior separated them. Then, later when it gets to 'Is overlapping' or 'On collision', it counts it as overlapping, so the event runs. End result - player runs in to a solid and 'On collision' still runs.