FusionInterestArea
Overview
FusionInterestArea auto-manages grid subscriptions for Area of Interest (AOI). Add it as a child node and it will compute which grid cells to subscribe to each frame based on its shape, size and the position of the target node.
For an overview of interest modes, see Synchronization — Interest Management.
Properties
| Property | Type | Default | Description |
|----------|------|---------|-------------|
| shape | Shape | SQUARE | Subscription area shape |
| orientation | Orientation | 3D_XZ | Which plane to project onto for cell computation |
| grid_size | int | 5 | Side length in cells (Square only, odd values: 1–21) |
| radius | float | 5.0 | Radius in cells (Circle and Cone only) |
| fov_angle | float | 90.0 | Field-of-view angle in degrees (Cone only) |
| base_send_rate | int | 1 | Send-rate override for center cells (0 = use server default) |
| decay_mode | DecayMode | DOUBLING | How send rate increases with distance from center |
| target_path | NodePath | ".." | Node whose position drives cell computation |
| enabled | bool | true | Toggle subscriptions on/off at runtime |
Debug Properties
| Property | Type | Default | Description |
|----------|------|---------|-------------|
| debug_draw | bool | false | Draw subscribed cells as overlay |
| debug_labels | DebugLabels | NONE | Label content shown on debug cells |
| debug_gradient | Gradient | null | Color gradient mapped to send rate (low → high) |
Enums
Shape
| Value | Description |
|-------|-------------|
| SQUARE | grid_size × grid_size rectangular area |
| CIRCLE | Radius-based, skips corner cells outside the circle |
| CONE | Directional FOV in the view direction |
Orientation
| Value | Description |
|-------|-------------|
| 2D | X,Y plane (for Node2D scenes) |
| 3D_XZ | X,Z horizontal plane (default for 3D) |
| 3D_XY | X,Y vertical plane in 3D |
DecayMode
| Value | Description |
|-------|-------------|
| FLAT | Same send rate for all cells |
| DOUBLING | Doubles per ring beyond ring 1 |
| LINEAR | base + ring × step |
DebugLabels
| Value | Description |
|-------|-------------|
| NONE | No labels |
| PRIORITY | Show computed priority value |
| CELL_AND_PRIORITY | Show cell ID and priority |
Usage
GDScript
# Scene tree:
# Player (CharacterBody3D)
# +-- Camera3D
# +-- FusionReplicator
# +-- FusionInterestArea
@onready var interest: FusionInterestArea = $FusionInterestArea
func _ready():
interest.shape = FusionInterestArea.SHAPE_CIRCLE
interest.radius = 8.0
interest.decay_mode = FusionInterestArea.DECAY_DOUBLING
The cell size used for grid computation is set globally in Project Settings → fusion/interest_management/area_of_interest_cell_size. All FusionInterestArea nodes and replicators with INTEREST_AREA mode share this cell size.