Collision

Category: Listener Tier: Basic

Purpose

Detects collisions and overlaps with other physics objects, with filtering by name, group, material, or property.

Visual Reference

As added to your scene
Collision brick as it appears in the GDLink editor

When To Use

  • Damage on collision (player hits enemy)

  • Pickup items (player touches collectible)

  • Trigger zones (enter area to open door)

  • Ground detection (character on floor)

  • Projectile hits (bullet collides with wall)

  • Power-up effects (player touches speed boost)

Runtime Behavior

Triggers: When this object collides with another object that matches the specified filter criteria

Generated UI Mockup — showing expanded properties
Collision
-
x
Name:
Label this brick...
Invert
Collision Type:
v
Target:
v
Property Value:
v
Pulse:
v
Expose Collision Data:
v
Expose Scope:
v
Expose Prefix:
v

Properties

Property

Type

Default

Notes

collision_type

option, “Any”

What to check on collision (see available types below)

target

string, “”

Name/Group/Material/Property to match

property_value

string, “”

Expected property value (empty = just check existence)

pulse

bool, false

Toggle/edge detection mode - triggers only on collision state change rather than continuously

expose_collision_data

bool, false

Write collider name, group, position, normal, and count into variables when the listener fires.

expose_scope

option, Local

Write exposed values to Local or Global variables (visible when expose_collision_data=true).

expose_prefix

string, collision

Prefix used for exposed variable names (visible when expose_collision_data=true).

Example Use Cases

Basic Damage Detection:

Collision(type=Any) -> AND -> Math(HP, Subtract, 10)
// Lose 10 HP when hitting anything

Pickup System:

Collision(type=Group, target=Collectibles) -> AND -> Sound(pickup) + Visibility(false)
// Play sound and hide item when player touches collectible

Enemy-Specific Damage:

Collision(type=Group, target=Enemies) -> AND -> Math(HP, Subtract, 25)
// Take 25 damage only from enemies

Ground Detection:

Collision(type=Property, target=is_ground, value=true) -> AND -> Property(grounded, Set, true)
// Set grounded=true when touching ground

Trigger Zone:

Collision(type=Object Name, target=Player) -> AND -> Message(door_open)
// Send door_open message when player enters zone