General-purpose framework for creating metroidvania games in Godot.
See the codeMetroidvania System (abbrevated as MetSys) is a general-purpose toolkit for creating metroidvania games in Godot game engine. It helps with map design, navigation and presentation, tracking collectibles and provides basic save data functionality related to the system. Its components can be used independently, even for games that aren't metroidvanias.
This plugin evolved from various tools I made for my metroidvania game, Voice of Flowers. They were quite useful, so I decided to make them into a separate project that can be used in other games too. The project evolved well beyond the tools I used originally.
Supports Godot 4.6 or newer. For older versions, use the 1.6 stable.
You can find instructions in the wiki.
Metroidvania System is designed as a general-purpose addon, mainly focused on 2D grid-based metroidvania games (either platformer or top-down). Grid-based, i.e. it assumes that the map is composed of rooms that fit on a square or rectangular grid. The main feature is the Map Editor, which helps designing the world layout by placing the map cells and customizing them. The map, while it's only representation of the game's world, can be integrated with the game by associating scenes with rooms on the map, making the room transitions much easier to implement and the general overview of the world is more convenient.
A small but important sub-system are object IDs. Whether it's a collectible, a switch, a breakable wall, some objects may need a persistent state. This is often achieved using a list of hard-coded "events". MetSys comes with an automated system that generates a unique ID for each object in scene (or outside scene); you can manage object persistence using just 2 methods with all-optional arguments. They can be used for non-metroidvania games too.
https://github.com/KoBeWi/Metroidvania-System/assets/2223172/4d8f3099-93be-4a90-98dd-178fc8b7b0b3
MetSys uses GitHub discussions as a forum for general discussions: https://github.com/KoBeWi/Metroidvania-System/discussions
MetSys is the most complex system I have designed and written. It's a result of my years of experience in making and playing different metroidvania games. Hopefully it helps someone make a great metroidvania and I'll be able to play it in the future ;)
The addon is fully open-source, so feel free to dive into the code and adapt it to your needs. If you find bugs or shortcomings in some features, or maybe something is not properly explained, feel free to open an issue. Feature requests are also welcome, but I can't promise I'll be implementing them.
Have fun.
You can support my metroidvania game by adding it to your wishlist on Steam.
You can find all my addons on my profile page.
1,791 followers · starred Oct 2023
56 followers · starred Mar 2024
449 followers · starred Oct 2023
51 followers · starred Feb 2024
General-purpose framework for creating metroidvania games in Godot.
See the codeMetroidvania System (abbrevated as MetSys) is a general-purpose toolkit for creating metroidvania games in Godot game engine. It helps with map design, navigation and presentation, tracking collectibles and provides basic save data functionality related to the system. Its components can be used independently, even for games that aren't metroidvanias.
This plugin evolved from various tools I made for my metroidvania game, Voice of Flowers. They were quite useful, so I decided to make them into a separate project that can be used in other games too. The project evolved well beyond the tools I used originally.
Supports Godot 4.6 or newer. For older versions, use the 1.6 stable.
You can find instructions in the wiki.
Metroidvania System is designed as a general-purpose addon, mainly focused on 2D grid-based metroidvania games (either platformer or top-down). Grid-based, i.e. it assumes that the map is composed of rooms that fit on a square or rectangular grid. The main feature is the Map Editor, which helps designing the world layout by placing the map cells and customizing them. The map, while it's only representation of the game's world, can be integrated with the game by associating scenes with rooms on the map, making the room transitions much easier to implement and the general overview of the world is more convenient.
A small but important sub-system are object IDs. Whether it's a collectible, a switch, a breakable wall, some objects may need a persistent state. This is often achieved using a list of hard-coded "events". MetSys comes with an automated system that generates a unique ID for each object in scene (or outside scene); you can manage object persistence using just 2 methods with all-optional arguments. They can be used for non-metroidvania games too.
https://github.com/KoBeWi/Metroidvania-System/assets/2223172/4d8f3099-93be-4a90-98dd-178fc8b7b0b3
MetSys uses GitHub discussions as a forum for general discussions: https://github.com/KoBeWi/Metroidvania-System/discussions
MetSys is the most complex system I have designed and written. It's a result of my years of experience in making and playing different metroidvania games. Hopefully it helps someone make a great metroidvania and I'll be able to play it in the future ;)
The addon is fully open-source, so feel free to dive into the code and adapt it to your needs. If you find bugs or shortcomings in some features, or maybe something is not properly explained, feel free to open an issue. Feature requests are also welcome, but I can't promise I'll be implementing them.
Have fun.
You can support my metroidvania game by adding it to your wishlist on Steam.
You can find all my addons on my profile page.
1,791 followers · starred Oct 2023
56 followers · starred Mar 2024
449 followers · starred Oct 2023
51 followers · starred Feb 2024