IssueRaiser

Add collision presets to make combination of Layers & Masks

### Problem or limitation Godot lets us name collision layers in Project Settings, but day to day work is still mostly about manually ticking layer and mask bits on every `CollisionObject2D/3D`, then redoing the same setup across many scenes and nodes. In medium to large projects this becomes: - Error prone (wrong mask bit, forgotten bit, inconsistent conventions between team members) - Hard to refactor (changing "Player interacts with X" means hunting many nodes) - Annoying for gameplay code too (raycasts and queries still rely on bitmask ints and duplicated helper code) ### Proposed improvement Add **named collision presets** (like Unreal's collision presets), where a preset is: - `name: StringName` - `id`: int - `collision_layer: uint32` - `collision_mask: uint32` Then you can assign a preset to any `CollisionObject2D/3D` via a dropdown, instead of hand editing bits each time. A working reference for the workflow already exists as an editor plugin:\ https://github.com/Adrien-Lucas/godot-collision-presets/ ------------------------------------------------------------------------ ### Data model and storage - Add a project level list of presets, stored in `ProjectSettings`, for example: - `physics/common/collision_presets` (Array of Dictionaries or a dedicated internal type) - `physics/common/default_collision_preset` (StringName) This keeps it version control friendly and avoids per user editor state. ### Edi

Posted by Adrien-Lucas on Feb 24, 2026, 2:15 PM

Tags

Related issues

Raise real-world problems, find people facing the same issue, and discuss solutions.2,000 issues0 comments

ux (Software)

Add collision presets to make combination of Layers & Masks

Adrien-LucasFeb 24, 2026, 2:15 PM

### Problem or limitation Godot lets us name collision layers in Project Settings, but day to day work is still mostly about manually ticking layer and mask bits on every `CollisionObject2D/3D`, then redoing the same setup across many scenes and nodes. In medium to large projects this becomes: - Error prone (wrong mask bit, forgotten bit, inconsistent conventions between team members) - Hard to refactor (changing "Player interacts with X" means hunting many nodes) - Annoying for gameplay code too (raycasts and queries still rely on bitmask ints and duplicated helper code) ### Proposed improvement Add **named collision presets** (like Unreal's collision presets), where a preset is: - `name: StringName` - `id`: int - `collision_layer: uint32` - `collision_mask: uint32` Then you can assign a preset to any `CollisionObject2D/3D` via a dropdown, instead of hand editing bits each time. A working reference for the workflow already exists as an editor plugin:\ https://github.com/Adrien-Lucas/godot-collision-presets/ ------------------------------------------------------------------------ ### Data model and storage - Add a project level list of presets, stored in `ProjectSettings`, for example: - `physics/common/collision_presets` (Array of Dictionaries or a dedicated internal type) - `physics/common/default_collision_preset` (StringName) This keeps it version control friendly and avoids per user editor state. ### Edi

Comments (0)

No comments yet. Start the discussion.

Comment on this issue