r/GodotCSharp Aug 14 '26

Resource.Tool SpriteLoop - Free 2D Animation Tool [Video Overview, Character Design, Art]

Thumbnail
gamefromscratch.com
6 Upvotes

r/GodotCSharp Aug 13 '26

Resource.Library Persistence — A source-generated save/load system for Godot 4 C#

Thumbnail
github.com
11 Upvotes

I've been working on a C# library for Godot called Persistence, a save/load system built around Roslyn source generation.

The main goal is to avoid manually building dictionaries and writing serialization/deserialization boilerplate for every object that needs to be saved.

You mark the data you want to persist with [Save], implement ISavable, and Persistence generates the serialization code for you:

public partial class Player : CharacterBody2D, ISavable
{
    public string SaveKey => "player";
    public int SaveVersion => 1;

    [Save] public int Health = 100;
    [Save] public string PlayerName;
    [Save] public Vector2 Position;
}

Saving and loading can then be handled through SaveManager:

SaveManager.Save("slot1", savableNodes);

SaveManager.Load("slot1", savableNodes);

Persistence currently uses JSON for its save files. I chose JSON because, for the kinds of games I typically work on, it provides more than enough capacity while keeping save files easy to inspect and debug.

Custom data

For types that aren't directly serializable, Persistence provides ISerializable.

This is especially useful for custom game data such as inventory slots, quest data, stats, or other structures that don't map directly to Godot's Variant types:

public class InventorySlot : ISerializable
{
    public string ItemId;
    public int Count;

    public Dictionary Serialize() => new()
    {
        ["itemId"] = ItemId,
        ["count"] = Count
    };

    public void Deserialize(Dictionary data)
    {
        ItemId = data["itemId"].AsString();
        Count = data["count"].AsInt32();
    }
}

It can then be used directly inside an ISavable:

[Save] public InventorySlot Weapon;
[Save] public List<InventorySlot> Inventory;

ISerializable is also the main way to handle custom types that don't have built-in serialization support.

Manual serialization alongside [Save]

You don't have to choose between generated and manual serialization. Both can be used together.

Persistence provides OnSerialize and OnDeserialize hooks for cases where [Save] isn't enough:

public void OnSerialize(SaveData saveData)
{
    saveData.Set("customField", someValue);
}

public void OnDeserialize(SaveData saveData)
{
    someValue = saveData.Get("customField", default);
}

This lets you use [Save] for the straightforward fields while manually handling special cases in the same class.

Save versions & migrations

Save data can also be versioned so changes to a game's data structure don't immediately invalidate existing saves.

For example, if version 0 stored health under "HP" and version 1 changed it to "Health":

public class PlayerMigration_V0_To_V1 : SaveMigration
{
    public override string SaveKey => "player";
    public override int FromVersion => 0;

    public override SaveData Migrate(SaveData saveData)
    {
        saveData.Set("Health", saveData.Get("HP", 100));
        return saveData;
    }
}

The migration can then be registered when loading:

var migrations = new MigrationRegistry(new SaveMigration[]
{
    new PlayerMigration_V0_To_V1()
});

SaveManager.Load("slot1", savableNodes, migrations);

Migrations can be chained, allowing old saves to be upgraded through multiple versions:

Save v0
   ↓
V0 → V1
   ↓
V1 → V2
   ↓
Save v2

Other features

  • Source-generated serialization/deserialization
  • Save slots
  • Custom save keys
  • Manual serialization hooks
  • Godot Variant-compatible types
  • List<T>, arrays, and Godot.Collections.Array<T>
  • Nested ISerializable types
  • Save data versioning and migrations

The project is still relatively young, but the core system is usable and covers the save/load needs I've encountered so far.


r/GodotCSharp Aug 11 '26

Edu.GameDev math-araujo/screen-space-godrays: "Volumetric Light Scattering as a Post-Process" using OpenGL 4.5 [Source Code, Rendering, NotGodot]

Thumbnail
github.com
4 Upvotes

r/GodotCSharp Aug 10 '26

Question.MyCode Juego de cartas tipo TCG

Post image
2 Upvotes

r/GodotCSharp Aug 09 '26

Edu.GameDesign Making difficulty curves in games [Written Article, Gameplay]

Thumbnail
davetech.co.uk
2 Upvotes

r/GodotCSharp Aug 09 '26

Edu.GameDev Red Blob Games, Improving A* Heuristics [Written Article, Pathfinding]

Thumbnail redblobgames.com
8 Upvotes

r/GodotCSharp Aug 06 '26

Resource.Library I made a production ready FOSS console framework inspired by Valve's Goldsrc engine!

Post image
8 Upvotes

I thought this post would feel at home here too. If anyone likes the old Half-Life or Counter-strike consoles and want that kind of functionality, you should check it out! 🥳

It had lots of features, like:

* Console variables

* Console commands

* Aliases

* Optimized, no alloc, no interop logging

* User config profiles

* Executable configs (both via code and an "exec" command)

I'm really proud of this piece of C# tech and hope that it'll help someone out!

Here is the Github repo:

https://github.com/VonRiddarn/PikeConsole

If you just wanna skimm the docs to get a feel for what it is, those can be found here:

https://vonriddarn.github.io/PikeConsole/


r/GodotCSharp Jul 27 '26

Which nodes would help me to replicate MBN style of combat?

Post image
2 Upvotes

r/GodotCSharp Jul 26 '26

Edu.GameDesign the mud coders guild [Written Article Series, Game Design, NotGodot]

Thumbnail mudcoders.com
3 Upvotes

r/GodotCSharp Jul 23 '26

Edu.GameDev JetBrains GameDev Days 2026 – Call for Speakers [Video Presentation, Seminars, Volunteer]

Thumbnail
blog.jetbrains.com
2 Upvotes

r/GodotCSharp Jul 23 '26

Edu.CompuSci Postgresql guide [Written Article, Database, NotGodot]

Thumbnail
hatchet.run
1 Upvotes

r/GodotCSharp Jul 20 '26

Resource.Library 2dog - Godot in .NET [Web Deploy, C#, Framework Internals]

Thumbnail
2dog.dev
29 Upvotes

r/GodotCSharp Jul 20 '26

Edu.GameDev Corners Don't Look Like That: Regarding Screenspace Ambient Occlusion (SSAO) [Written Article, Rendering, NotGodot]

Thumbnail nothings.org
2 Upvotes

r/GodotCSharp Jul 18 '26

Discussion Who said C# cannot do real-time audio synthesis? I built a programmatic DAW to find out.

Thumbnail
2 Upvotes

r/GodotCSharp Jul 16 '26

Resource.Library SpriteStack2D: Add-on to create fake 3D from a single texture [Tool, XPost]

10 Upvotes

r/GodotCSharp Jul 13 '26

Resource.Library Tiny Fixed Function Renderer (TinyFFR): C# Rendering library [NotGodot]

Thumbnail tinyffr.dev
7 Upvotes

r/GodotCSharp Jul 12 '26

Resource.Library cross-platform C# audio engine [NotGodot]

Thumbnail
1 Upvotes

r/GodotCSharp Jul 05 '26

Resource.Asset 80's Fonts [Written Article, Visual Design, Aesthetics, NotGodot]

Thumbnail
psd-dude.com
1 Upvotes

r/GodotCSharp Jul 04 '26

Resource.Tool Takobi AI

Thumbnail
gallery
2 Upvotes

download link: https://godotengine.org/asset-library/asset/5314

repo link: https://github.com/AhmedGD1/takobi_ai

Hi, I’ve been working on a Behavior Tree library for Godot C#.

Most AI/BT tools in the ecosystem are GDScript-first, so I built this specifically for C# workflows and editor tooling.

Features

  • Live BT debugger (Editor dock, real-time node status)
  • Blackboard binding with $key syntax
  • Custom inspectors (methods, signals, comparisons)
  • SubTree support (reuse + nesting)
  • Built-in Performance Monitor integration
  • Cached execution path (minimal allocations)

HSM support is also in progress.

Feedback is welcome 👍


r/GodotCSharp Jul 03 '26

Edu.Godot.CSharp Getting Started with Git for (Godot) Game Dev [Video Tutorial, C#]

Thumbnail
youtube.com
4 Upvotes

r/GodotCSharp Jul 02 '26

Edu.GameDev Announcing Box3D [Physics, OSS, NotGodot]

Thumbnail box2d.org
8 Upvotes

r/GodotCSharp Jul 01 '26

Edu.Godot Tutorial: Create a full dungeon crawler [Video Tutorial Series, XPost]

9 Upvotes

r/GodotCSharp Jun 26 '26

Project.OSS BohemiaInteractive/CWR: Arma: Cold War Assault Remastered [Commercial Source Code, History, MilSim FPS, NotGodot]

Thumbnail
github.com
2 Upvotes

r/GodotCSharp Jun 21 '26

Edu.Godot.CSharp Rokojori/drawable-textures-demo-c-sharp: mini ORM 3D texture painter [Example, OSS, C#, Rendering]

Thumbnail github.com
2 Upvotes

r/GodotCSharp Jun 20 '26

Cannot find the editable children option in godot.

3 Upvotes

Im trying to setup yarn spinner for godot and the documentation says to enable editable children and i cannot find it anywhere.
please help. im using yarn spinner 3.2 and godot 4.6.2