GDScript

Category: Gate Tier: Pro

Purpose

Executes custom GDScript code to make complex decisions that can’t be easily expressed with logic gates or expressions.

Visual Reference

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

When To Use

1. Complex AI State Machine

Always Listener
-> GDScript Gate (Script: "ai_brain.gd", Function: "decide_action")
-> Animation Executor (Play: animation from Local Variable "ai_action")

AI brain script returns TRUE and sets “ai_action” variable, which drives animation.

2. Custom Scoring System

Collision Listener (Group: "targets")
-> GDScript Gate (Inline: "return calculate_score() > 100")
-> PRINT Executor ("Victory!")

Custom scoring logic too complex for Expression Gate.

3. Pathfinding Decision

Near Listener (Distance: 20.0, Expose Data: true)
-> GDScript Gate (Script: "pathfinding.gd", Function: "has_clear_path")
-> Motion Executor (Move toward target)

Checks if path to target is clear using A* or NavMesh.

4. Procedural Animation Blending

Keyboard Listener (Any key)
-> GDScript Gate (Script: "animation_blend.gd")
-> Animation Executor (Controlled by script)

Script calculates animation blend weights based on movement speed, direction, etc.

5. Inventory Logic

Keyboard Listener (Key: "E")
-> Near Listener (Group: "items")
-> GDScript Gate (Script: "inventory.gd", Function: "can_pickup")
-> Property Executor (Add to inventory)

Script checks inventory space, item type, player level, etc.

Generated UI Mockup — showing expanded properties
GDScript
-
x
Name:
Label this brick...
Mode:
Script Path
Script Path:
v
Function Name:
evaluate
v
Inline Code:
return True
Pass Context
Debug Output

Properties

Property

Type

Default

Notes

Mode

option

Script Path

Script Path: Load external .gd file | Inline Code: Write code directly

Script Path

string

Path to .gd file (e.g., res://scripts/ai_logic.gd)

Function Name

string

evaluate

Function to call - must return bool

Inline Code

text

return True

GDScript code to execute (return bool)

Pass Context

bool

True

Pass brick context (listeners, globals, locals) to function

Debug Output

bool

False

Print function return value to console