Quick answer: GameMaker collision event with 'other' object triggering when the instance collides with itself? Same-type collisions fire the event; the 'other' is also self - check id != other.id.

Bullet object has a collision event with Bullet. Bullets shooting in clusters trigger self-collision; explode on contact.

Skip self

if (id != other.id) {
  // collide
}

Guard at the top of the event. Self-collision returns immediately.

Or use layers

Bullet layer doesn't collide with itself via collision mask. Configure at the room level.

Check object hierarchy

If the event is inherited from a parent, both objects fire it on their own. Move per-bullet logic to the leaf object.

“Collision events fire on both sides. Self-pair is one of the cases.”

Build a 'safe collision' macro that checks id != other.id. Reusable; reviewers spot un-guarded events as a smell.

Related reading