Logo

About

  • Introduction
    • Before you start
    • About Godot Engine
    • Organization of the documentation
    • About this documentation
  • List of features
    • Platforms
    • Editor
    • Rendering
    • 2D graphics
    • 2D tools
    • 2D physics
    • 3D graphics
    • 3D tools
    • 3D physics
    • Shaders
    • Scripting
    • Audio
    • Import
    • Input
    • Navigation
    • Networking
    • Internationalization
    • Windowing and OS integration
    • Mobile
    • XR support (AR and VR)
    • GUI system
    • Animation
    • File formats
    • Miscellaneous
  • System requirements
    • Godot editor
      • Desktop or laptop PC - Minimum
      • Mobile device (smartphone/tablet) - Minimum
      • Desktop or laptop PC - Recommended
      • Mobile device (smartphone/tablet) - Recommended
    • Exported Godot project
      • Desktop or laptop PC - Minimum
      • Mobile device (smartphone/tablet) - Minimum
      • Desktop or laptop PC - Recommended
      • Mobile device (smartphone/tablet) - Recommended
  • Frequently asked questions
    • What can I do with Godot? How much does it cost? What are the license terms?
    • Which platforms are supported by Godot?
    • Which programming languages are supported in Godot?
    • What is GDScript and why should I use it?
    • What were the motivations behind creating GDScript?
    • Which programming language is fastest?
    • What 3D model formats does Godot support?
    • Will [insert closed SDK such as FMOD, GameWorks, etc.] be supported in Godot?
    • How can I extend Godot?
    • How do I install the Godot editor on my system (for desktop integration)?
      • Windows
      • macOS
      • Linux
    • Is the Godot editor a portable application?
    • Why does Godot aim to keep its core feature set small?
    • How should assets be created to handle multiple resolutions and aspect ratios?
    • When is the next release of Godot out?
    • Which Godot version should I use for a new project?
    • Should I upgrade my project to use new Godot versions?
    • Should I use the Forward+, Mobile, or Compatibility renderer?
    • I would like to contribute! How can I get started?
    • I have a great idea for Godot. How can I share it?
    • Is it possible to use Godot to create non-game applications?
    • Is it possible to use Godot as a library?
    • What user interface toolkit does Godot use?
    • Why does Godot use the SCons build system?
    • Why does Godot not use STL (Standard Template Library)?
    • Why does Godot not use exceptions?
    • Does Godot use an ECS (Entity Component System)?
    • Why does Godot not force users to implement DOD (Data-Oriented Design)?
    • How can I support Godot development or contribute?
    • Who is working on Godot? How can I contact you?
  • Complying with licenses
    • What are licenses?
    • Requirements
    • Inclusion
      • Credits screen
      • Licenses screen
      • Output log
      • Accompanying file
      • Printed manual
      • Link to the license
    • Third-party licenses
  • Godot release policy
    • Godot versioning
    • Release support timeline
    • Which version should I use for a new project?
    • Should I upgrade my project to use new engine versions?
    • When is the next release out?
    • What are the criteria for compatibility across engine versions?
  • Documentation changelog
    • New pages since version 4.4
      • Editor
      • GDExtension
      • Migrating
      • Scripting
    • New pages since version 4.3
      • 2D
      • 3D
      • Debug
      • Editor
      • Migrating
      • Performance
      • Physics
      • Rendering
      • Shaders
    • New pages since version 4.2
      • About
      • 2D
      • Contributing
      • GDExtension
      • Migrating
      • Rendering
      • XR
    • New pages since version 4.1
      • C#
      • Development
      • Migrating
      • I/O
      • Platform-specific
    • New pages since version 4.0
      • Development
      • Migrating
      • Physics
    • New pages since version 3.6
      • 2D
      • 3D
      • Animation
      • Assets pipeline
      • Development
      • Migrating
      • Physics
      • Scripting
      • Shaders
      • XR
    • New pages since version 3.5
    • New pages since version 3.4
      • 3D
      • Animation
      • Editor
    • New pages since version 3.3
      • GDScript
    • New pages since version 3.2
      • 3D
      • About
      • Best practices
      • Development
      • Editor
      • Export
      • Input
      • Math
      • Platform-specific
      • Physics
      • Shaders
      • Scripting
      • User Interface (UI)
    • New pages since version 3.1
      • Project workflow
      • 2D
      • Audio
      • Math
      • Inputs
      • Internationalization
      • Shading
      • Networking
      • Plugins
      • Multi-threading
      • Creating content
      • Optimization
      • Legal
    • New pages since version 3.0
      • Step by step
      • Scripting
      • Project workflow
      • 2D
      • 3D
      • Physics
      • Animation
      • GUI
      • Viewports
      • Shading
      • Plugins
      • Platform-specific
      • Multi-threading
      • Creating content
      • Miscellaneous
      • Compiling
      • Engine development

Getting started

  • Introduction
    • Introduction to Godot
      • What is Godot?
      • What can the engine do?
      • How does it work and look?
      • Programming languages
      • What do I need to know to use Godot?
    • Learn to code with GDScript
      • Learn in your browser with the GDScript app
    • Overview of Godot's key concepts
      • Scenes
      • Nodes
      • The scene tree
      • Signals
      • Summary
    • First look at Godot's interface
      • The Project Manager
      • First look at Godot's editor
      • The five main screens
      • Integrated class reference
    • Learning new features
      • Making the most of this manual
      • Learning to think like a programmer
      • Learning with the community
      • Community tutorials
    • Godot's design philosophy
      • Object-oriented design and composition
      • All-inclusive package
      • Open source
      • Community-driven
      • The Godot editor is a Godot game
      • Separate 2D and 3D engines
  • Step by step
    • Nodes and Scenes
      • Nodes
      • Scenes
      • Creating your first scene
      • Changing a node's properties
      • Running the scene
      • Setting the main scene
    • Creating instances
      • In practice
      • Editing scenes and instances
      • Scene instances as a design language
      • Summary
    • Scripting languages
      • Available scripting languages
      • Which language should I use?
        • GDScript
        • .NET / C#
        • C++ via GDExtension
      • Summary
    • Creating your first script
      • Project setup
      • Creating a new script
      • Hello, world!
      • Turning around
        • Moving forward
      • Complete script
    • Listening to player input
      • Moving when pressing "up"
      • Complete script
      • Summary
    • Using signals
      • Scene setup
      • Connecting a signal in the editor
      • Connecting a signal via code
      • Complete script
      • Custom signals
      • Summary
  • Your first 2D game
    • Prerequisites
    • Contents
      • Setting up the project
        • Organizing the project
      • Creating the player scene
        • Node structure
        • Sprite animation
      • Coding the player
        • Choosing animations
        • Preparing for collisions
      • Creating the enemy
        • Node setup
        • Enemy script
      • The main game scene
        • Spawning mobs
        • Main script
        • Testing the scene
      • Heads up display
        • ScoreLabel
        • Message
        • StartButton
        • Connecting HUD to Main
        • Removing old creeps
      • Finishing up
        • Background
        • Sound effects
        • Keyboard shortcut
        • Sharing the finished game with others
  • Your first 3D game
    • Contents
      • Setting up the game area
        • Setting up the playable area
      • Player scene and input actions
        • Creating input actions
      • Moving the player with code
        • Testing our player's movement
      • Designing the mob scene
        • Removing monsters off-screen
      • Spawning monsters
        • Creating the spawn path
        • Spawning monsters randomly
      • Jumping and squashing monsters
        • Controlling physics interactions
        • Jumping
        • Squashing monsters
      • Killing the player
        • Hitbox with the Area node
        • Ending the game
        • Code checkpoint
      • Score and replay
        • Creating a UI theme
        • Keeping track of the score
        • Retrying the game
        • Adding music
      • Character animation
        • Using the animation editor
        • The float animation
        • Animating the mobs
      • Going further
        • Exploring the manual

Manual

  • Best practices
    • Introduction
    • Applying object-oriented principles in Godot
      • How scripts work in the engine
      • Scenes
    • Scene organization
      • How to build relationships effectively
      • Choosing a node tree structure
    • When to use scenes versus scripts
      • Anonymous types
      • Named types
      • Performance of Script vs PackedScene
      • Conclusion
    • Autoloads versus regular nodes
      • The cutting audio issue
      • Managing shared functionality or data
      • When you should use an Autoload
    • When and how to avoid using nodes for everything
    • Godot interfaces
      • Acquiring object references
      • Accessing data or logic from an object
    • Godot notifications
      • _process vs. _physics_process vs. *_input
      • _init vs. initialization vs. export
      • _ready vs. _enter_tree vs. NOTIFICATION_PARENTED
    • Data preferences
      • Array vs. Dictionary vs. Object
      • Enumerations: int vs. string
      • AnimatedTexture vs. AnimatedSprite2D vs. AnimationPlayer vs. AnimationTree
    • Logic preferences
      • Adding nodes and changing properties: which first?
      • Loading vs. preloading
      • Large levels: static vs. dynamic
    • Project organization
      • Introduction
      • Organization
      • Style guide
      • Importing
        • Ignoring specific folders
      • Case sensitivity
    • Version control systems
      • Introduction
      • Version control plugins
        • Official Git plugin
      • Files to exclude from VCS
      • Working with Git on Windows
      • Git LFS
  • Troubleshooting
    • The editor runs slowly and uses all my CPU and GPU resources, making my computer noisy
    • The editor stutters and flickers on my variable refresh rate monitor (G-Sync/FreeSync)
    • The editor or project takes a very long time to start
    • The Godot editor appears frozen after clicking the system console
    • The Godot editor's macOS dock icon gets duplicated every time it is manually moved
    • Some text such as "NO DC" appears in the top-left corner of the Project Manager and editor window
    • A microphone or "refresh" icon appears in the bottom-right corner of the Project Manager and editor window
    • The editor or project appears overly sharp or blurry
    • The editor or project appears to have washed out colors
    • The editor/project freezes or displays glitched visuals after resuming the PC from suspend
    • The project works when run from the editor, but fails to load some files when running from an exported copy
    • The project crashes frequently or instantly after opening it from the project manager
  • Editor introduction
    • Editor's interface
      • Using the Project Manager
        • Creating and importing projects
        • Opening and importing projects
        • Downloading demos and templates
        • Managing projects with tags
        • Recovery Mode
      • Inspector Dock
        • Usage
      • Project Settings
        • Changing project settings
        • Reading project settings
        • Manually editing project.godot
        • Advanced project settings
      • Script Editor
        • Introduction
        • Features
        • Usage
      • Default editor shortcuts
        • General editor actions
        • Bottom panels
        • 2D / CanvasItem editor
        • 3D / Spatial editor
        • Text editor
        • Script editor
        • Editor output
        • Debugger
        • File dialog
        • FileSystem dock
        • Scene tree dock
        • Animation track editor
        • TileMap editor
        • TileSet Editor
        • GridMap Editor
        • Project manager
      • Customizing the interface
        • Moving and resizing docks
        • Splitting the script or shader editor to its own window
        • Customizing editor layouts
        • Customizing editor settings
    • XR editor
      • Using the XR editor
        • XR devices support
        • Runtime Permissions
        • Tips & Tricks
        • Limitations & known issues
    • Android editor
      • Using the Android editor
        • Android devices support
        • Runtime Permissions
        • Tips & Tricks
        • Limitations & known issues
    • Web editor
      • Using the Web editor
        • Browser support
        • Limitations
        • Importing a project
        • Editing and running a project
        • Where are my project files?
    • Advanced features
      • Command line tutorial
        • Command line reference
        • Path
        • Setting the project path
        • Creating a project
        • Running the editor
        • Erasing a scene
        • Running the game
        • Debugging
        • Exporting
        • Running a script
      • Using an external text editor
        • Automatically reloading your changes
        • Using External Editor in Debugger
        • Official editor plugins
        • LSP/DAP support
      • Using the engine compilation configuration editor
        • Limitations
    • Managing editor features
      • Managing editor features
        • Introduction
        • Creating a profile
        • Sharing a profile
  • Migrating to a new version
    • Upgrading from Godot 3 to Godot 4
      • Should I upgrade to Godot 4?
        • Advantages of upgrading
        • Disadvantages of upgrading
        • Caveats of upgrading
      • Preparing before the upgrade (optional)
      • Running the project upgrade tool
        • Using the Project Manager
        • Using the command line
      • Fixing the project after running the project upgrade tool
        • Automatically renamed nodes and resources
        • Manually renaming methods, properties, signals and constants
        • Checking project settings
        • Checking Environment settings
        • Updating shaders
        • Updating scripts to take backwards-incompatible changes into account
        • ArrayMesh resource compatibility breakage
      • List of automatically renamed methods, properties, signals and constants
      • Porting editor settings
      • Updating version control settings
    • Upgrading from Godot 4.0 to Godot 4.1
      • Breaking changes
        • Core
        • Animation
        • 2D nodes
        • 3D nodes
        • GUI nodes
        • Physics
        • Rendering
        • Navigation
        • Networking
        • Editor plugins
      • Behavior changes
      • Updating your GDExtension for 4.1
    • Upgrading from Godot 4.1 to Godot 4.2
      • Breaking changes
        • Core
        • Animation
        • GUI nodes
        • Rendering
        • Text
        • GraphEdit
        • TileMap
        • XR
    • Upgrading from Godot 4.2 to Godot 4.3
      • Breaking changes
        • GDExtension
        • Animation
        • GUI nodes
        • Physics
        • Rendering
        • Text
        • Audio
        • Navigation
        • TileMap
        • XR
        • Editor plugins
      • Behavior changes
        • Core
        • Animation
        • GUI nodes
        • Multiplayer
        • Rendering
        • TileMap
        • Android
    • Upgrading from Godot 4.3 to Godot 4.4
      • Breaking changes
        • Core
        • GUI nodes
        • Physics
        • Rendering
        • Navigation
        • Editor plugins
      • Behavior changes
        • Core
        • Rendering
        • CSG
        • Android
    • Upgrading from Godot 4.4 to Godot 4.5
      • Breaking changes
        • Core
        • Rendering
        • GLTF
        • Text
        • XR
        • Editor plugins
      • Behavior changes
        • TileMapLayer
        • 3D Model Import
        • Core
        • Navigation
        • Physics
        • Text
    • Upgrading from Godot 4.5 to Godot 4.6
      • Breaking changes
        • Core
        • Animation
        • 3D
        • Rendering
        • GUI nodes
        • Networking
        • OpenXR
        • Editor
      • Behavior changes
        • Android
        • Core
        • Rendering
        • Navigation
      • Changed defaults
        • 3D
        • Rendering
        • GUI nodes
  • 2D
    • Introduction to 2D
      • 2D workspace
        • Main toolbar
        • Coordinate system
        • 2D Viewport
      • Node2D and Control node
      • Displaying 3D nodes in 2D
    • Canvas layers
      • Viewport and Canvas items
      • CanvasLayers
    • Viewport and canvas transforms
      • Introduction
      • Canvas transform
      • Global canvas transform
      • Stretch transform
      • Window transform
      • Transform order
      • Transform functions
      • Feeding custom input events
    • Rendering
      • 2D lights and shadows
        • Introduction
        • Nodes
        • Point lights
        • Directional light
        • Common light properties
        • Setting up shadows
        • Normal and specular maps
        • Using additive sprites as a faster alternative to 2D lights
      • 2D meshes
        • Introduction
        • Optimizing pixels drawn
        • Converting Sprite2Ds to 2D meshes
      • 2D sprite animation
        • Introduction
        • Individual images with AnimatedSprite2D
        • Sprite sheet with AnimatedSprite2D
        • Sprite sheet with AnimationPlayer
        • Summary
      • 2D particle systems
        • Intro
        • Time parameters
        • Drawing parameters
        • Particle Process Material Settings
      • ParticleProcessMaterial 2D Usage
        • Process material properties
        • Particle Flags
        • Spawn
        • Animated Velocity
        • Accelerations
        • Display
        • Emission Shapes
        • Customizing the process material
      • 2D antialiasing
        • Introduction
        • Antialiasing property in Line2D and custom drawing
        • Multisample antialiasing (MSAA)
      • Custom drawing in 2D
        • Introduction
        • Drawing
        • Updating
        • Coordinates and line width alignment
        • Antialiased drawing
        • Tools
        • Example 1: drawing a custom shape
        • Example 2: drawing a dynamic line
      • 2D Parallax
        • Introduction
        • Getting started
        • Scroll scale
        • Infinite repeat
        • Scroll offset
        • Repeat times
        • Split screen
        • Previewing in the editor
    • Physics and movement
      • 2D movement overview
        • Introduction
        • Setup
        • 8-way movement
        • Rotation + movement
        • Rotation + movement (mouse)
        • Click-and-move
        • Summary
    • Tools
      • Using TileSets
        • Introduction
        • Creating a new TileSet
        • Merging several atlases into a single atlas
        • Adding collision, navigation and occlusion to the TileSet
        • Assigning custom metadata to the TileSet's tiles
        • Creating terrain sets (autotiling)
        • Assigning properties to multiple tiles at once
        • Creating alternative tiles
      • Using TileMaps
        • Introduction
        • Specifying the TileSet in the TileMapLayer
        • Multiple TileMapLayers and settings
        • Opening the TileMap editor
        • Selecting tiles to use for painting
        • Painting modes and tools
        • Painting randomly using scattering
        • Saving and loading premade tile placements using patterns
        • Handling tile connections automatically using terrains
        • Handling missing tiles
  • 3D
    • Introduction to 3D
      • 3D workspace
        • Main toolbar
        • View menu of viewport
        • Coordinate system
        • Space and manipulation gizmos
        • Navigating the 3D environment
        • Using Blender-style transform shortcuts
      • Node3D node
      • 3D content
        • Manually authored models (using 3D modeling software)
        • Generated geometry
        • Immediate geometry
        • 2D in 3D
      • Environment
        • Preview environment and light
        • Cameras
        • Lights
    • Using 3D transforms
      • Introduction
      • Problems of Euler angles
        • Axis order
        • Interpolation
        • Say no to Euler angles
      • Introducing transforms
        • Manipulating transforms
        • Precision errors
        • Obtaining information
        • Setting information
        • Interpolating with quaternions
      • Transforms are your friend
    • Procedural geometry
      • Using the ArrayMesh
        • Setting up the ArrayMesh
        • Generating a rectangle
        • Generating a sphere
        • Saving
      • Using the MeshDataTool
      • Using the SurfaceTool
      • Using ImmediateMesh
      • What is geometry?
      • What is a Mesh?
      • What a Mesh is
        • Surfaces
        • Surface array
      • Tools
        • ArrayMesh
        • MeshDataTool
        • SurfaceTool
        • ImmediateMesh
      • Which one should I use?
    • 3D text
      • Introduction
      • Label3D
        • Advantages
        • Limitations
      • TextMesh
        • Advantages
        • Limitations
      • Projected Label node (or any other Control)
        • Advantages
        • Limitations
      • Should I use Label3D, TextMesh or a projected Control?
    • Rendering
      • 3D rendering limitations
        • Introduction
        • Texture size limits
        • Color banding
        • Depth buffer precision
        • Transparency sorting
      • Standard Material 3D and ORM Material 3D
        • Introduction
        • BaseMaterial 3D settings
        • Transparency
        • Shading
        • Vertex Color
        • Albedo
        • Metallic
        • Roughness
        • Emission
        • Normal map
        • Bent normal map
        • Rim
        • Clearcoat
        • Anisotropy
        • Ambient Occlusion
        • Height
        • Subsurface Scattering
        • Back Lighting
        • Refraction
        • Detail
        • UV1 and UV2
        • Sampling
        • Shadows
        • Billboard
        • Grow
        • Transform
        • Proximity and Distance Fade
        • Stencil
        • Material Settings
        • Render priority
        • Next Pass
      • 3D lights and shadows
        • Introduction
        • Light nodes
        • Light number limits
        • Shadow mapping
        • Directional light
        • Omni light
        • Spot light
        • Shadow atlas
        • Balancing performance and quality
      • Using decals
        • Use cases
        • Quick start guide
        • Decal node properties
        • Decal rendering order
        • Tweaking performance and quality
        • Limitations
      • Physical light and camera units
        • Why use physical light and camera units?
        • Setting up physical light units
        • Setting up physical camera units
      • Particle systems (3D)
        • Creating a 3D particle system
        • 3D Particle system properties
        • Process material properties
        • Particle flags
        • Spawn
        • Accelerations
        • Display
        • Collision
        • Sub-emitter
        • Customizing the process material
        • Particle sub-emitters
        • 3D Particle trails
        • Particle turbulence
        • 3D Particle attractors
        • 3D Particle collisions
        • Complex emission shapes
      • High dynamic range lighting
        • Introduction
        • Computer displays
        • Scene linear & asset pipelines
        • Parameters of HDR
      • Global illumination
        • Introduction to global illumination
        • Using Voxel global illumination
        • Signed distance field global illumination (SDFGI)
        • Using Lightmap global illumination
        • Reflection probes
        • Faking global illumination
      • Environment and post-processing
        • Environment
        • Camera attributes
        • Environment options
        • Mid- and post-processing effects
        • Camera attribute options
      • Volumetric fog and fog volumes
        • Volumetric fog properties
        • Light interaction with volumetric fog
        • Using volumetric fog as a volumetric lighting solution
        • Balancing performance and quality
        • Using fog volumes for local volumetric fog
        • FogVolume properties
        • Custom FogVolume shaders
        • Faking volumetric fog using quads
      • 3D antialiasing
        • Introduction
        • Multisample antialiasing (MSAA)
        • Temporal antialiasing (TAA)
        • AMD FidelityFX Super Resolution 2.2 (FSR2)
        • Fast approximate antialiasing (FXAA)
        • Sub-pixel Morphological Antialiasing (SMAA 1x)
        • Supersample antialiasing (SSAA)
        • Screen-space roughness limiter
        • Texture roughness limiter on import
        • Which antialiasing technique should I use?
    • Optimization
      • Using MultiMeshInstance3D
        • Introduction
        • Setting up the nodes
        • MultiMesh settings
      • Mesh level of detail (LOD)
        • Introduction
        • Visual comparison
        • Generating mesh LOD
        • Comparing mesh LOD visuals and performance
        • Configuring mesh LOD performance and quality
        • Using mesh LOD with MultiMesh and particles
      • Visibility ranges (HLOD)
        • How it works
        • Setting up visibility range
        • Visibility range properties
        • Configuration tips
      • Occlusion culling
        • Why use occlusion culling
        • How occlusion culling works in Godot