For Godot 4.2
This template has a main menu, options menus, pause menu, credits, scene loader, extra tools, and an example game scene.
Setup menus and accessibility features in about 15 minutes.
The core components can support a larger project, but the template was originally built to support smaller projects and game jams.
The base/
folder holds the core components of the menus application.
The extras/
folder holds components that extend the core application.
The examples/
folder contains an example project using inherited scenes from the base/
and extras/
.
AppConfig.tscn
is set as the first autoload. It calls AppSettings.gd
to load all the configuration settings from the config file (if it exists) through Config.gd
.SceneLoader.tscn
is set as the second autoload. It can load scenes in the background or with a loading screen (LoadingScreen.tscn
by default). Opening.tscn
is a simple scene for fading in/out a few images at the start of the game. It then loads the next scene (MainMenu.tscn
). MainMenu.tscn
is where a player can start the game, change settings, watch credits, or quit. It can link to the path of a game scene to play, and the packed scene of an options menu to use. OptionControl.tscn
and its inherited scenes are used for most configurable options in the menus. They work with Config.gd
to keep settings persistent between runs.Credits.tscn
reads from ATTRIBUTION.md
to automatically generate the content for it's scrolling text label. UISoundController
node automatically attaches sounds to buttons, tab bars, sliders, and line edits in the scene. ProjectUISoundController.tscn
is an autload used to apply UI sounds project-wide.ProjectMusicController.tscn
is an autoload that keeps music playing between scenes. It detects music stream players as they are added to the scene tree, reparents them to itself, and blends the tracks. InGameMenuController.gd
controls opening and closing a menu and pausing the game in the background.PauseMenuController
node loads the PauseMenu.tscn
(using InGameMenuController.gd
) when triggering ui-cancel
.GameUI.tscn
is a demo game scene that displays recognized action inputs, and features the PauseMenuController
node, the LevelLoader
node to advance through levels, and InGameMenuController.gd
to show WinScreen.tscn
or LoseScreen.tscn
.This package is available as both a template and a plugin, meaning it can be used to start a new project, or added to an existing project.
When starting a new project:
Asset Library Projects
tab.When editing an existing project:
AssetLib
tab.addons/
and there are no conflicts.addons/
.addons/maaacks_game_template
folder into your project's addons/
folder. addons/
.Users that want a minimal set of features can try Maaack's Menus Template.
Changes can be made directly to scenes and scripts outside of addons/
.
A copy of the examples/
directory is made outside of addons/
when the plugin is enabled for the first time. However, if this is skipped, it is recommended developers inherit from scenes they want to use, and save the inherited scene outside of addons/
. This avoids changes getting lost either from the package updating, or because of a .gitignore
.
These instructions assume starting with the entire contents of the project folder. This will be the case when cloning the repo, or starting from the template version in the Godot Asset Library.
These instructions assume starting with just the contents of addons/
. This will be the case when installing the plugin version in the Godot Asset Library.
Attribution
License
Godot Asset Library - Template
Godot Asset Library - Plugin