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