SELODEV Free Starter KitA small, finished top-down game you can press Play on, plus every free SELODEV Lite system already sitting in the project. No coding required.The game is the same one from the Free Starter: walk around, talk to the Healer, take a quest, gather three herbs, save. What's different is what comes with it.Fourteen systems are in `addons/`, waiting for when your game needs one.Play it (Godot 4.3 or newer)Open this folder in Godot and press **Play (F5)**.- **Move:** arrow keys or WASD- **Talk:** walk up to the Healer, the green one, and press **Space** or **Enter**- **Gather** the three herbs that light up- **Save and Load:** buttons at the top rightThat loop of talk, quest, collect, save is a real game. The part that normally needs a programmer, wiring the systems into each other, is already done for you in the `content/` data files.Start HereWhen the project opens, look for the **Start Here** tab on the right, next to the Inspector. It's a four-item list that ticks itself off as you work, and it holds the switches for all fourteen systems. If you read one thing, read that panel.The fourteen systemsThree are switched on out of the box, because the story game uses them:| On | System | What it does ||---|---|---|| yes | Dialogue | Conversations with choices || yes | Quests | Objectives that track and complete || yes | Save / Load | Save slots that survive quitting || | Controller | Walking, jumping, press-E on things || | Inventory | Carrying items, stacking, weight || | Equipment | Wearing gear that changes your stats || | Loot | What a chest or enemy drops, and how often || | Crafting | Turning items into other items || | Vendor | A shop that buys and sells || | Stats / Skills | Health, damage, levels, skill points || | Combat | Hitboxes, damage, dying || | Enemy AI | Enemies that notice you, chase, give up || | Scene Flow | Doors between rooms, spawn points, checkpoints || | Audio | Music that crossfades, sound effects, audio zones |The other eleven ship switched off on purpose. Each one adds a tab beside the Inspector, and fourteen of them fills that tab bar well past the point where you can read it. Turn one on from Start Here when you want it, or from Project Settings then Plugins if you prefer. Switching one off deletes nothing.## What's inside- `content/*.json` is the game's data, the conversation and the quest. Edit these to change the game. No scripts involved.- `game/` is the world, the player, the NPC, the herb pickups.- `chassis/` is the glue that boots the systems from `content/`. You won't need to touch it.- `addons/` holds the fourteen Lite systems and their no-code editor docks.- `tools/` holds the automated checks, one folder per system.The `.orig` files beside `content/dialogue.json` and `content/quests.json` are the copies that shipped. Start Here compares against them to work out whether you've edited anything yet, so leave them where they are and the checklist keeps working.## Run the checks yourselfEvery system carries a headless test suite:```bashgodot --headless --path . tools/dialogue_lite/verify.tscn```Swap the folder name for any other system. `tools/starter_kit/verify.tscn` checks the Start Here panel itself.Growing out of the Lite tierEach Lite system is the free cut of a paid one. When you hit a wall, the full version drops into the same place and speaks the same event bus, so nothing has to be rebuilt. The full catalogue is at https://selodev.itch.io.## Make it yoursSee **MAKE-IT-YOURS.md**. The short version: change the words in `content/`, swap the coloured squares for your art, and switch on whatever system your idea needs.LicenseMIT. Make it, rename it, ship it, sell it. That's the point.
Adds configurable buttons that instantiates scenes into the current scene when pressed, possibly freeing them when released, and with the ability to initialize properties and metadata automatically.
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
This is an extension that adds support for creating lua modding or in game scripting in a sandboxed environment. We aim to provide API like the lua C API for GDScript.You can find full documentation and tutorials at: https://luaapi.weaselgames.info/latest/Importantly this is NOT meant to be a replacement for or alternative to GDScript. This extension provides no functionality to program your game out of the box.This is built for the godot 4.1-stable release. But should work with newer minor versions.Currently the LuaJIT version only supports Linux, Windows and MacOS
Converts gdscript objects to bytes and vice versa, to save bandwidth or disk space.
Godot Touch Input Manager (GDTIM) is an asset that improves touch input support (includes new gestures) in the Godot game engine. You just need to autoload a script and it will start analyzing the touch input. When a gesture is detected a Custom Input Event corresponding to the detected gesture will be created and fed up to the Godot built in Input Event system so it triggers functions like _input(InputEvent event). There is also a signal for each gesture if you prefer using signals to the aforementioned.
An efficient Hierarchical State Machine, used for general purposes, with a built-in blackboard context node.Allows performant and easy state machine creation via dynamic signals. Complexity is removed, but not at the cost of functionality. Only what is needed, at any one time, will run when a state is called.
Demonstrate how to use the "Godot LLM" plugin.# How to use1. Get `Godot LLM` directly from the godot asset library, or download the addon from [godot-llm](https://github.com/Adriankhl/godot-llm) and place it to the `addons` folder2. Download models * Text generation recommendation: Meta-Llama-3-8B-Instruct-Q5_K_M.gguf from https://huggingface.co/lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF/tree/main or Phi-3-mini-4k-instruct-Q2_K.gguf from https://huggingface.co/bartowski/Phi-3-mini-4k-instruct-GGUF/tree/main for low-end devices such as Android phone * Similarity recommendation: mxbai-embed-large-v1.Q5_K_M.gguf from https://huggingface.co/ChristianAzinn/mxbai-embed-large-v1-gguf/tree/main * Image to text recommendation: llava-phi-3-mini-int4.gguf from https://huggingface.co/xtuner/llava-phi-3-mini-gguf/tree/main, also download the `llava-phi-3-mini-mmproj-f16.gguf` from the same page* Vector Database setting is similar to `Similarity`3. Open the application with GodotYou will see 4 modes: `Text Generation`, `Similarity`, `Image to Text`, and `Vector Database`In each mode, you need to clide `Model` to point to the correct model `gguf` file. Additionally, in `Image to Text` mode, you need to click `Mmproj` to point to your `*mmproj*gguf` file.# Text GenerationYou will see there are 3 generation mode: `Simple`, `Instruct`, and `Interactive`. ## `Simple` modeJust edit the prompt and click `Generate`. Click `Stop` to stop the generation.You choose `None` schema or `Person` schema, if you choose `None` schema, the model will generate the information of a character with Json format.## `Instruct` mode (currently disabled)Click `Start` first with empty prompt, then modify the prompt and click `Continue` when it is available to talk to the AI. This is an interactive mode. Whenever you see the `Continue` button is available, either input something in the prompt and click `Continue` to send the input, or simply click `Continue` to let the AI talk itself.## `Interactive` modeSimilar to the instruct mode, except that it relies on a good initial prompt and additoinal reverse prompt and input suffix settings to generate a smooth conversation. The preset prompt should work decently well, click the `Start` button with the preset prompt and start talkin to the AI.# SimilarityInput prompts to compute the `Embedding`, or input two prompts to calculate their `Similarity`# Image to TextSelect an `Image` from your device. Alternative, click `From View` to capture your game screen as the image. You can `Compute Base64` encoding for your image, or decode a base64 string back to `Compute Image`. Edit the prompt, and generate text from `Image`, `Base64`, or `View` (your game screen).# Vector DatabaseClick `Metadata: id, year` to define the metadata of the tables, then click `Create tables` to create a some tables for embedding storage and retrieval. Click `Store text` to split the document into chunks and store into the database, you may also click `Split text` to see the chunks. Click `Retrieve` to retrive three most similar text chunks with the upper left prompt, which satisfy the sql-where-clause in the middle right. You may also turn on "Verbose stdout", modify the upper prompt to a valid sql statement, and click execute to run the sql statement directly, you will see the result in godot log.
# 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.
Godot 4 template, with shader, prototyping with CSG objects, animation, smooth character controller.
This simple module is an RNG-Safe Random Number Sequence. In a nutshell, it is an RNG that you have control over, completely safe from outside Godot RNG calls and reseeding. Now you can simply create an instance of the class with a seed and request items in the sequence, as well as previous results.This is very useful for procedural generation and testing, where you want a random sequence that is deterministic and protected from outside interference. Since Godot uses a static RNG, it is susceptible to interference and this solves that issue.This is confirmed to work with Godot 3.0, but should also work with previous and future versions. It is also compatible with in-editor tools! See the repo for more details.
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.
High level Networking Plugin for Godot.Humble allows the server to create and manage rooms for separate game sessions. For each room, Humble allows the creation of "Remote Nodes" that store and synchronize information for all players in the same room."Humble" works with the room system where each room has a single owner to manage it. Rooms can be created by any user (peer) on the network. Here's how:Get Started: https://github.com/QJPG/Humble-Plugin/wiki/Humble's-%7C-Connecting-and-creating-rooms
This plugin provides the basic mechanism of DungeonCrawler:- map creation via titlemap node- player movementTo run this script, simply play "World.tscn"Global.gd must be added to the autoloader. (Game/Global.gd)More detailed information can be found at:https://github.com/Rebelion-Board-game/DungonCrawler
A simlpe script to make screenshots and save it as png file in a custom directory.There is a simple test scene "demo.tscn" where you can test the script if you want (Press F11 to make screenshots).Otherwise you can just download/copy the screenshot.gd from the scripts folder into your project folder.Script Settings:- Shortcut Action: The name of an action from the Input Map that should trigger the screenshot creation.- File Prefix: An optional prefix for the filenames, you can leave it empty. - File Tag: At the moment you can choose between two timestamps that becomes part of the file name. 1. A simple date + time stamp or 2. A unix timestamp.- Output Path: The directory where you want to save your screenshots.
An FPS multiplayer template with everything you'd need to get started. Includes a full map with custom 3d assets.Features:- Multiplayer- Full map with custom assets- Controller support (including menus)- Cinematic Main menu- Pause menu- Options menu with: - Fullscreen - Fps and ping counters - Mouse and controller sensitivity- Bullets wall collision- Random respawn on map- Adjusted light and environment ("better graphics")QOL:- Configurable random respawns Player > Inspector > Spawns- Tooltips for exported variablesThe 3d assets are made by me and go by the same MIT license, so you are free to use them in your commercial games.Credits:- Textures used are made by https://kenney.nl/ and pre-packaged for Godot by Calinou- The base multiplayer functionality was made by following a tutorial from DevLogLogan https://youtu.be/n8D3vEx7NAE
Turtle implementation for GodotTemplate enabling training of basic programming skills in godot environment with visual feedback.
100% Pure GDScript Software MIDI Player for Godot Engine 44.5.0 update:* Fixed velocity layered soundfont* Implemented stereo samples* Added load_from_bytesThanks to Laurent Veliscek!4.3.1 update:* Fixed preset velocity range bug* Fixed sample link bug4.3.0 update:* Optimize for loops.4.2.0 update:* Remove thread codes* Fixed boilerplate4.1.1 update:* Fix bug for using "Sample Mode Loop Ends By Key Depression".4.1.0 update:* Move GDScript to AnimationPlayer for ADSR volume controller * Update demonstration project.4.0.2 update:* Fixed for Godot Engine 4.0* Fixed clamp/max to clampf/maxf4.0.1 update:* Fixed for Godot Engine 4 RC14.0.0 update:* Ported from Godot Engine 3 version.
RISC-V emulator brought to Godot. Adds several new Objects:RVHart and ABIHart - Nodes that can run RISC-V code. They are RV32imac_zicsr compatible, and can run code compiled with crosstool-ng and newlib for baremetal. ABIHart can also handle system calls.ElfFile - Able to load a static executable. Support for shared coming in the future!RVBusDevice and RVMemoryDevice - Simple IO devices capable of joining a bus under an RVHart, emulating RAM and ROM.
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.
A collection of nodes that act as components, to drag and drop into your games. Been very useful to me when crunching thrue game jams :DPlease read the README.md for a list of the components and what they do ! Or take a peek at the scripts, they have an annotation telling what the node does on top of each one.Here is the git page:https://codeberg.org/filemon_filemon/gremlins-toolbox
My utils scripts1. Beauty Log2. UtilsContinue updating...
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