Install Asset
Install via Godot
To maintain one source of truth, Godot Asset Library is just a mirror of the old asset library so you can download directly on Godot via the integrated asset library browser
Quick Information
A logic framework for card games with built-in turns, players, complex card actions, and undo/redo
CentriFuGe - Logic Card Game Framework
A logic framework for card games with built-in turns, players, complex card actions, and undo/redo.
CentriFuGe (pronounced like a sarcastic person being sent around a tumble dryer) is a framework for developing card game logic within Godot.
CentriFuGe provides handy functionality that all card games can benefit from. Things like handling turn passing; controlling what actions are available at a given point; undo and redo moves; and save and restore the game state.
Get right in to developing your card game, and leave all the complicated boilderplate logic to CentriFuGe.
Features:
- Instantly undo and replay moves
- Easily model complex turn systems and evolving rules
- Logging and time-travel to previous states
- Debug prototyping interfaces for simulating moves without the need for designing visuals.
What can you build
Usage
Installation
Two options. The simplest is to go to the Godot Asset Store and add "CentriFuGe" to your project.
Alternatively: Download this cardgameframework folder from here. Add GameManager.gd as an autoload. This is the master brain behind the card game logic and serves as the central location for examining and changing the card game logic.
If you want to check out the example card game add the games folder to the root structure also.
Quickstart
Create a new script that extends GameState. This will hold the contents of the board. Put here things like the deck, hands, and other interactible card piles. For example @export var deck := CardPile.new() and @export var hand := CardPile.new() to create a hand and deck using CentriFuGe's collection of cards.
Create a new resource derived from GameRules. This is your core file to define what your game does. Fill this out with your
Create a new script that extends GameMove. This will define a valid move, something that interacts with the game state and alters it. An example move could draw a card from the deck by defining in the execute function: var drawn_card = game_state.deck.draw_top(), then hand.add_card(drawn_card). Add this to the Default Moves of the created GameRules.
Finally, create a visual scene, either 2D or 3D. In that node's _ready() function (so the card game starts at the same time as the scene itself) run:
GameManager.set_rules($YourGameRules)
GameManager.start_game()
Now the first player is ready to play their first move! Each player can take turns drawing cards from the deck and adding it to their hand, using the example provided here.
There's loads more customisation available to define complex interactions and ways for turns to evolve as the game progresses.
You are free to delete the addons and test folders. These contain development plugins and code, which is not necessary for game development.
Documentation
Look at The official documentation site or browse the documentation files in the /docs folder.
Example card games
Have a look in the games folder for example fully functional games which use the framework as a basis.
Mau-mau is a traditional card game, which has evolved into modern games such as Uno. Each player takes their turn trying to empty their hand by matching the previously played card, either by value or suit.
Ascend the Abbey is a Slay-the-spire clone. It features an AI opponent, multiple card effects, and everything needed to develop it further into a fully-featured card combat game.
Get Involved
I would love contributions of any kind, whether ideas, features, or bugs (squashing, not creating more!).
Issues are the best place to communicate. Don't be put off by the name 'Issues',
License
This is open source software. You're basically free to use, modify, and share this code. And any changes must use this same open licensing. More formally:
Copyright (C) 2026 coolmule0
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.
A logic framework for card games with built-in turns, players, complex card actions, and undo/redo
Reviews
Quick Information
A logic framework for card games with built-in turns, players, complex card actions, and undo/redo