Notifications are callbacks baked into [[GDScript]] but only a couple are used by the core of the language. The rest are added by other classes. Many of those are only really used by the editor and tool scripts and aren't relevant to a running time. # Notifications ## Object The `Object` implementation [defines](https://github.com/godotengine/godot/blob/03e6fbb010c3546593bd91a0dabc045a9882705a/core/object/object.h#L814) on a few enum constants for use as notifications. | Notification | Int | Situation | | --------------------------------- | --- | -------------------------------------------------------------------------------------- | | `NOTIFICATION_POSTINITIALIZE` | | After `_init` is complete | | `NOTIFICATION_PREDELETE` | | Before the destructor is called (the destructor itself is not exposed to [[GDScript]]) | | `NOTIFICATION_EXTENSION_RELOADED` | | When a GDExtension is reloaded, not available to normal scripts | | `NOTIFICATION_PREDELETE_CLEANUP` | | Used internally, not available in scripts | ## Node Notifications with situations in italics are covered in [[Godot - Function Hooks]]. | Notification | Int | Situation | | ------------------------------------------ | ---- | ------------------------------------------------------------------------------------------------------------------- | | `NOTIFICATION_ENTER_TREE` | 10 | *While tree is built, after node added, parent-first* | | `NOTIFICATION_EXIT_TREE` | 11 | *When removed from tree* | | `NOTIFICATION_MOVED_IN_PARENT` | 12 | | | `NOTIFICATION_READY` | 13 | *After tree is built, child-first* | | `NOTIFICATION_PAUSED` | 14 | | | `NOTIFICATION_UNPAUSED` | 15 | | | `NOTIFICATION_PHYSICS_PROCESS` | 16 | *Called regularly (60/sec-ish)* | | `NOTIFICATION_PROCESS` | 17 | *Called as often as possible* | | `NOTIFICATION_PARENTED` | 18 | When a node is added as the child to any other node, not just the main scene, potentially useful for building logic | | `NOTIFICATION_UNPARENTED` | 19 | | | `NOTIFICATION_SCENE_INSTANTIATED` | 20 | | | `NOTIFICATION_DRAG_BEGIN` | 21 | | | `NOTIFICATION_DRAG_END` | 22 | | | `NOTIFICATION_PATH_RENAMED` | 23 | | | `NOTIFICATION_CHILD_ORDER_CHANGED` | 24 | | | `NOTIFICATION_INTERNAL_PROCESS` | 25 | | | `NOTIFICATION_INTERNAL_PHYSICS_PROCESS` | 26 | | | `NOTIFICATION_POST_ENTER_TREE` | 27 | | | `NOTIFICATION_DISABLED` | 28 | | | `NOTIFICATION_ENABLED` | 29 | | | `NOTIFICATION_RESET_PHYSICS_INTERPOLATION` | 2001 | | | `NOTIFICATION_WM_MOUSE_ENTER` | 1002 | | | `NOTIFICATION_WM_MOUSE_EXIT` | 1003 | | | `NOTIFICATION_WM_WINDOW_FOCUS_IN` | 1004 | | | `NOTIFICATION_WM_WINDOW_FOCUS_OUT` | 1005 | | | `NOTIFICATION_WM_CLOSE_REQUEST` | 1006 | | | `NOTIFICATION_WM_GO_BACK_REQUEST` | 1007 | | | `NOTIFICATION_WM_SIZE_CHANGED` | 1008 | | | `NOTIFICATION_WM_DPI_CHANGE` | 1009 | | | `NOTIFICATION_VP_MOUSE_ENTER` | 1010 | | | `NOTIFICATION_VP_MOUSE_EXIT` | 1011 | | | `NOTIFICATION_OS_MEMORY_WARNING` | ? | | | `NOTIFICATION_TRANSLATION_CHANGED` | ? | | | `NOTIFICATION_WM_ABOUT` | ? | | | `NOTIFICATION_CRASH` | ? | | | `NOTIFICATION_OS_IME_UPDATE` | ? | | | `NOTIFICATION_APPLICATION_RESUMED` | ? | | | `NOTIFICATION_APPLICATION_PAUSED` | ? | | | `NOTIFICATION_APPLICATION_FOCUS_IN` | ? | | | `NOTIFICATION_APPLICATION_FOCUS_OUT` | ? | | | `NOTIFICATION_TEXT_SERVER_CHANGED` | ? | | ## Canvas Item | | | | | -------------------------------------- | --- | ---------------------- | | `NOTIFICATION_TRANSFORM_CHANGED` | ? | | | `NOTIFICATION_DRAW` | 30 | Called when drawing 2D | | `NOTIFICATION_VISIBILITY_CHANGED` | 31 | | | `NOTIFICATION_ENTER_CANVAS` | 32 | | | `NOTIFICATION_EXIT_CANVAS` | 33 | | | `NOTIFICATION_LOCAL_TRANSFORM_CHANGED` | 34 | | | `NOTIFICATION_WORLD_2D_CHANGED` | 35 | | ## Editor Settings ## Window ## Main Loop ## Scene Tree ## Node 3D ## Skeleton 3D ## Camera 3D ## Control ## Container # References ```sh cd godot rg 'NOTIFICATION_.* = ' ```