You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Signals (Godot 4) in JetScript: signal hit(damage), hit.emit(3), emit_signal(), connect(), disconnect(), is_connected(), has_signal(), CONNECT_ONE_SHOT. Methods and signals named without calling them are Callable and Signal values ($Timer.timeout.connect($Door.hide), callable.call()). New constants: OK, FAILED, ERR_CANT_OPEN, ERR_INVALID_PARAMETER, CONNECT_*.
Signals tab (Godot's Node dock) and the Connect dialog: pick the receiver, keep Godot's method name (_on_wave_timer_timeout), One Shot. A missing method is added to the receiver's script. Nodes without a script can use their engine methods. Connections are saved in the scene, follow undo, Duplicate and Delete, travel in the package and are made before _ready(). A signal icon in the Scene dock and a slot icon in the script gutter mark them.
2D physics: StaticBody2D, CharacterBody2D, RigidBody2D, Area2D, CollisionShape2D (Rectangle, Circle, Capsule) with one-way platforms. Areas also detect other areas, in 2D and 3D. Shapes are outlined in the editor.
2D screen, as in Godot's 2D editor: the canvas alone, with pan and zoom, a grid, the game's screen rectangle and each Camera2D's view. Click to select, drag to move. 2D and UI scenes open there (Ctrl+F1).
New Scene asks for the root: 2D Scene, 3D Scene, User Interface or Other Node.
Change Type... in the Scene dock's context menu.
Jet Blaster uses Area2D hits, Timers and signals connected in the editor, and explosions without a script.
Changed
Package format v16 (scene connections) and bytecode format 2: export projects again. Build and Flash rebuild the firmware.
Particles: each emitter keeps only its own particles (about 40 bytes each), with one shared Jet drawer. An emitter with 8 particles takes ~320 bytes instead of ~8 KB.
Live nodes are stored in blocks of 8 (~4 KB), so spawning never needs one big free piece of RAM.
Script editor highlighting rewritten, token by token, with Godot's colours.
Script callbacks nested inside other calls (signals, _ready() from add_child()) use a smaller VM stack (−3 KB per level).
Fixed
Nucleo-F746ZG: Jet Blaster ran out of memory after ~27 s.
Script editor: after a $Path at the end of a line, the following lines were coloured green.
ESP32: particle pools and the first connect() no longer take the internal RAM that drawing needs.
Performance
Signals cost nothing until something is connected.
Nano ESP32: physics_demo 20.5 ms per frame (0.4.0: 20.4), Jet Blaster 16.2 ms.
Nucleo-F746ZG: Jet Blaster 12.0 ms, stable with 30+ KB free.