A lightweight, open-source Godot 4.x backend plugin for player authentication and global leaderboards. Created as a direct drop-in replacement for the abandoned SilentWolf service.Setup:1. Enable the plugin in Project Settings -> Plugins.2. Add the main plugin script to your Autoload (Singleton) to access the API globally from any node.Features:- Secure player registration and login (Auth)- Global Leaderboards / High scores system- Built with FastAPI & PostgreSQL (fully self-hostable or use https://gwynbleidd.pl)
Plugin designed to be generic and usable for any kind of game.The system is called Thoth from the Egyptian deity that was the holder of knowledge and patron of scribes, so Thoth is in charge of saving your game.If you want to support me : https://www.stupidrat.com/senselessIf you wish to pledge to help me I also have a Patreon page.https://www.patreon.com/c64cosminDocumentation : https://stupidratstudio.github.io/thoth/Contact & Support : https://discord.gg/FX5NaQHcjS
# Stairs CharacterA simple to use class that enables your CharacterBody3D to handle stairs properly.Mainly tested with the Jolt physics engine and cylinder colliders, not guaranteed to work well with anything else - but try it!## Usage instructions:1. Make your character controller extend `StairsCharacter` instead of `CharacterBody3D`.2. Ensure your character's collider is named 'Collider'.3. Every frame, set `DesiredVelocity` to the desired direction of movement.4. Call `MoveAndStairStep()` instead of calling `MoveAndSlide()`.5. Done!### Important:Ensure your character collider's margin value is set low - at most 0.01. Anything higher might cause snags. If you find that you're still snagging on ledges, lower it some more.
Advanced loader for text data files (JSON, CFG). It can load your files and perform a complex data validation. If you like keeping your data in text files, this will be useful as it ensures that your data is correct, i.e. without typos.Data collections in TextDatabase are arrays of dictionaries. You can e.g. store items, enemy data, or level metadata etc. in a JSON or CFG files, where each item/enemy/level/etc is a Dictionary with some properties. You can define fields for your data, which can be either mandatory, or just allowed, and the loader will ensure that your fields are correct.Example usage:var database = TextDatabase.new()database.add_mandatory_property("price")database.add_valid_property("attack")database.load_from_path("res://items.json)var data = database.get_array()Example valid file:[ { "name": "Sword", "price": 100, "attack": 5 }]Example invalid file:[ { "name": "Shield", "defense": 1 }]It's missing "price" and "defense" is not a defined property, so the file won't load. You can catch errors like this, so you can avoid unexpected behaviors due to data typos.btw, ConfigFiles (CFG) are much better than JSON. Here's the Sword example as CFG:[Sword]price = 100attack = 5You can store multiple items in one file and load multiple files into database. Just use load() multiple times on one database and then get_array() will return data from all files. Or you can use get_dictionary() instead and access the entries by name.Explaining all functionality would be very long, so just read the README, which you can find in the asset's repository (: You can also find an example project in there.
Tookit to handle removing diacritics and substitutable characters from unicode strings.Provides a UnicodeNormalizer singleton that helps normalize your unicode strings by :- removing diacritics (decomposing, then keeping only the first character)- substituting fallback characters- being blazingly fast (binary search)- being lightweight- being extensibleIts replacement database is built from the official unicode.org data. It is only about 16Kio.Usage Example :You can use the `normalize` method on the autoload singleton `UnicodeNormalizer`:UnicodeNormalizer.normalize("Dès Noël, où un zéphyr haï me vêt")# "Des Noel, ou un zephyr hai me vet"You can also exclude some characters from the normalization by removing the from the mapping :var allowed_decomposables := "éàè"for i in allowed_decomposables.length():UnicodeNormalizer.mapping.remove_decomposable(allowed_decomposables.unicode_at(i))Finally, the UnicodeNormalizer is made to be extended, in order to adapt to specific needs.
Live runtime graph of all signal connections in your Godot 4.x scene.Signal connections in Godot are invisible at runtime. They live in the editor's Node panel, disconnected from your code, and there is no built-in way to see the full picture of what is connected to what while your game is running. Debugging a signal that never fires means opening every node one by one and checking its connections manually.This script opens a floating window at runtime that scans your entire scene tree and renders every signal connection as a graph. Emitter nodes appear on the left of each bezier curve, receiver nodes on the right. Click any card to highlight its connected nodes and dim everything else. Pan with middle mouse, zoom with scroll wheel.Features:- Full scene scan on ready with manual refresh button- Bezier connection lines between emitter and receiver node cards- Each card lists the node's emitted and received signal names- Click a card to isolate its connections and dim unrelated nodes- Pan and zoom canvas navigation- Configurable via Inspector: card colors, typography, line appearance, zoom limits, layout- Attach to any node — spawns its own Window without polluting your hierarchy- Zero dependencies — works in a blank projectAdd SignalGraphVisualizer.gd to any node in your scene. Hit play. The graph opens automatically.Godot 4.x only. GDScript 2.0.Extended version with live filter bar and click-to-inspect detail panel available at nullstateassets.itch.io
A Godot 4 port of Dicebag by 8bitskull, originally in Lua for Defold.It contains various random dice and RNG functions that are useful for anyone making RPG's and especially those that emulate tabletop RPGs.Converted to Godot 3.2 by yagichConverted again to Godot 4.0 by cablefish1 who removed some functions and rewrote some.Join the RPGodot discord to join the development of more universal RPG tools.
Dynamic Physical 3D rope that interacts with RigidBody3D.License at: https://github.com/Skyquakers/godot-rope3d/blob/develop/addons/rope3d/LICENSE.txt
MQTT client for C#
3D Gallery is a Godot 4+ plugin that makes viewing imported 3D models easier. Rather than clicking on each model to view it in the import popup, or adding it to a scene, 3D Gallery allows you to quickly scan through your filesystem previewing each model. This comes in handy when you have a large number of models and want to flip through them quickly (ex. after purchasing an asset library).3D will walk your project directory, looking for any Godot-supported 3D model formats: * .blend * .obj * .glb * .gltf * .fbx * .daeIt builds a file tree from there, allowing easy mouse or keyboard-based navigation to easily preview each model.Controls:* Arrow keys to navigate the gallery tree* Left mouse click + drag to rotate the camera* Right mouse click + drag to rotate the model on Y-axis* Right mouse click + shift + drag to rotate the model on Z-axis
Godot's High-level Multiplayer API can operate over WebRTC, however, it requires a signaling server to establish the WebRTC connections between all peers.Nakama is an Open Source, scalable gameserver that provides many features, including user accounts, authentication, matchmaking, chat, and much more.This Godot add-on provides some utility code to allow easily setting up those WebRTC connections using Nakama as the signaling server.
A GDScript thread pool to asynchronously execute tasks.