Godot Admob App Open
poingstudios/godot-admob-plugin
Provides instructions to implement, load, show, and destroy App Open ads (shown on application startup or app resume) in GDScript and C.
A skill your agent uses when working with C in Godot — conventions, GodotSharp API differences from GDScript, project setup, and interop
$ npx skills add jame581/GodotPrompter --skill csharp-godot -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jame581/GodotPrompter csharp-godot --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jame581/GodotPrompter.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/csharp-godot .claude/skills/csharp-godot && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "csharp-godot" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/csharp-godot into .claude/skills/csharp-godot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csharp-godot", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jame581/GodotPrompter/tree/master/skills/csharp-godotType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jame581/GodotPrompter --skill csharp-godot -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jame581/GodotPrompter csharp-godot --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jame581/GodotPrompter.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/csharp-godot .agents/skills/csharp-godot && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "csharp-godot" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/csharp-godot into .agents/skills/csharp-godot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csharp-godot", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jame581/GodotPrompter --skill csharp-godot -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jame581/GodotPrompter csharp-godot --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jame581/GodotPrompter.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/csharp-godot .cursor/skills/csharp-godot && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "csharp-godot" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/csharp-godot into .cursor/skills/csharp-godot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csharp-godot", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jame581/GodotPrompter.git --path skills/csharp-godot--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jame581/GodotPrompter --skill csharp-godot -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jame581/GodotPrompter csharp-godot --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jame581/GodotPrompter.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/csharp-godot .gemini/skills/csharp-godot && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "csharp-godot" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/csharp-godot into .gemini/skills/csharp-godot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csharp-godot", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jame581/GodotPrompter csharp-godotInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jame581/GodotPrompter --skill csharp-godot -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jame581/GodotPrompter.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/csharp-godot .github/skills/csharp-godot && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "csharp-godot" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/csharp-godot into .github/skills/csharp-godot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csharp-godot", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jame581/GodotPrompter --skill csharp-godot -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jame581/GodotPrompter csharp-godot --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jame581/GodotPrompter.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/csharp-godot .opencode/skills/csharp-godot && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "csharp-godot" agent skill from https://github.com/jame581/GodotPrompter/tree/master/skills/csharp-godot into .opencode/skills/csharp-godot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csharp-godot", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
csharp-godotA skill your agent uses when working with C in Godot — conventions, GodotSharp API differences from GDScript, project setup, and interop
Csharp Godot is an agent skill from jame581/GodotPrompter. Use when working with C in Godot — conventions, GodotSharp API differences from GDScript, project setup, and interop
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/gdscript-interop.md`).
It sits in Game Development, covering Game development. It works with Godot and C#. The repository describes itself as: Agentic skills framework for Godot 4.x. Domain-specific skills for AI coding agents (Claude Code, Copilot, Antigravity, Cursor). The licence is MIT.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 1e7d79d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
nodedotnetFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comdocs.godotengine.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Csharp Godot loads about 3.6k tokens when it runs, and up to ~4.1k if it reads all its reference files. Until then it costs about 33 tokens; SKILL.md has 1,322 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jame581/GodotPrompter at commit 1e7d79d, republished under its MIT licence (© jame581). 1,322 words, ~3,597 tokens.
.claude/skills/csharp-godot/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.This skill covers C#-specific conventions, API differences from GDScript, project setup, and interop patterns. All examples are C# only. Target Godot 4.3+ with the GodotSharp NuGet package.
Related skills: csharp-signals for C# signal patterns, godot-project-setup for C# project scaffolding, godot-testing for C# testing with gdUnit4, gdextension for native C++ when C# is not enough, multithreading for C# concurrency.
| GDScript | C# Equivalent | Notes |
|---|---|---|
var x = 5 | var x = 5; or typed int x = 5; | C# var infers type at compile time |
func MyMethod() -> void: | public void MyMethod() { } | Methods are PascalCase in C# |
signal health_changed(amount: int) | [Signal] delegate void HealthChangedEventHandler(int amount); | Must use EventHandler suffix |
@export var speed: float = 100.0 | [Export] public float Speed { get; set; } = 100f; | PascalCase, property syntax |
@onready var label = $Label | private Label _label; + _label = GetNode<Label>("Label"); in _Ready() | No @onready equivalent; use _Ready() |
match value: | switch (value) { case X: break; } | C# switch also supports pattern matching |
class_name MyClass | [GlobalClass] public partial class MyClass : GodotObject { } | Requires [GlobalClass] attribute |
extends Node | public partial class MyScript : Node { } | Inheritance via : |
preload("res://scene.tscn") | GD.Load<PackedScene>("res://scene.tscn") | Loaded at runtime, not compile time |
push_error("msg") | GD.PushError("msg"); | Prints to Godot error log |
print("msg") | GD.Print("msg"); | Also: GD.PrintS(), GD.PrintT() |
node is CharacterBody2D | node is CharacterBody2D | Same keyword, same semantics |
node as CharacterBody2D | node as CharacterBody2D | Returns null on failure in both |
await signal_name | await ToSignal(source, SignalName.X); | Must use ToSignal() wrapper |
Array | Godot.Collections.Array | Not System.Collections.Generic.List<T> |
Dictionary | Godot.Collections.Dictionary | Not System.Collections.Generic.Dictionary<K,V> |
Godot auto-generates the .csproj when you create the first C# script via Script > New Script > C#. Do not edit the generated file structure manually — let the editor manage it.
MyProject/
├── MyProject.csproj # Auto-generated, edit only for NuGet packages
├── MyProject.sln # Auto-generated solution file
├── project.godot
└── scripts/
└── Player.csAdd packages in MyProject.csproj inside <ItemGroup>:
<Project Sdk="Godot.NET.Sdk/4.3.0">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<!-- Example: add a third-party NuGet package -->
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>
</Project>Run dotnet restore or let the IDE restore automatically after editing.
Godot 4.7's Godot.NET.Sdk accepts an opt-in MSBuild property that switches the project from the classic GodotSharp bindings to the preview Godot.NET bindings (the Godot.Bindings assembly instead of GodotSharp):
<PropertyGroup>
<EnableGodotDotNetPreview>true</EnableGodotDotNetPreview>
</PropertyGroup>The preview bindings are experimental — leave the property unset for production projects. See GH-118001.
| IDE | Setup Required | Notes |
|---|---|---|
| JetBrains Rider | Install Godot plugin (bundled in Rider 2023.3+) | Best Godot C# support; debugger works out of the box |
| VS Code | Install C# Dev Kit + Godot Tools extensions | Requires launch.json for debugger attachment |
| Visual Studio | Install Godot Visual Studio extension | Windows only; debugger via Tools > Attach to Process |
For all IDEs, open the .sln file (not just a folder) to get full solution resolution.
partial class RequirementEvery class that extends a Godot type must be declared partial. This is not optional.
Godot uses C# source generators to emit the signal registration, property binding, and RPC code alongside your class. Source generators require partial to inject into the same class declaration.
Error CS0260: Missing partial modifier on declaration of type 'Player';
another partial declaration of this type exists.Or the class compiles but signals and [Export] properties silently fail to register.
// CORRECT
public partial class Player : CharacterBody2D { }
// WRONG — will cause source generator errors
public class Player : CharacterBody2D { }This applies to every class in the inheritance chain that extends a Godot type, including intermediate base classes.
| Element | Convention | Example |
|---|---|---|
| Methods | PascalCase | public void TakeDamage(int amount) |
| Properties | PascalCase | public float MaxHealth { get; set; } |
| Signals (delegate) | PascalCase + EventHandler suffix | HealthChangedEventHandler |
[Export] properties | PascalCase | [Export] public float Speed { get; set; } |
| Private fields | _camelCase with underscore prefix | private float _currentSpeed; |
| Local variables | camelCase | var newPosition = ... |
| Parameters | camelCase | void SetHealth(int newHealth) |
| Godot API names | Match Godot's PascalCase exactly | GlobalPosition not global_position |
| Enums | PascalCase type, PascalCase members | enum State { Idle, Running, Dead } |
| Constants | PascalCase or SCREAMING_SNAKE per team style | const float MaxSpeed = 200f; |
Always match GodotSharp property and method names exactly — they are PascalCase translations of the GDScript snake_case names (e.g. is_on_floor() → IsOnFloor()).
Signals require a delegate declaration with the [Signal] attribute. The delegate name must end with EventHandler.
using Godot;
public partial class Player : CharacterBody2D
{
// Declaration
[Signal] public delegate void HealthChangedEventHandler(int newHealth);
[Signal] public delegate void DiedEventHandler();
private int _health = 100;
public void TakeDamage(int amount)
{
_health -= amount;
EmitSignal(SignalName.HealthChanged, _health); // Use SignalName.X, not a string
if (_health <= 0)
EmitSignal(SignalName.Died);
}
}// Connect with +=
player.HealthChanged += OnHealthChanged;
player.Died += OnPlayerDied;
// Disconnect with -=
player.HealthChanged -= OnHealthChanged;
player.Died -= OnPlayerDied;
// Handler signatures must match the delegate
private void OnHealthChanged(int newHealth) { ... }
private void OnPlayerDied() { ... }For full signal patterns including one-shot connections, static typed signals, and cross-language signal wiring, see the csharp-signals skill.
GDScript's await maps to C#'s await ToSignal(...). Godot signals return a SignalAwaiter that is compatible with C# await.
public async void StartCutscene()
{
// Wait for a timer to finish
await ToSignal(GetTree().CreateTimer(2.0), Timer.SignalName.Timeout);
// Wait for an animation to finish
var anim = GetNode<AnimationPlayer>("AnimationPlayer");
anim.Play("intro");
await ToSignal(anim, AnimationPlayer.SignalName.AnimationFinished);
GD.Print("Cutscene complete");
}For CPU-bound work, use Task.Run — but never touch Godot objects from a non-main thread:
public async void LoadHeavyData()
{
// Off main thread: pure C# computation only
var result = await Task.Run(() => ComputeSomethingExpensive());
// Back on main thread: safe to use Godot API
ApplyResult(result);
}
private int ComputeSomethingExpensive()
{
// No Godot API calls here
return Enumerable.Range(0, 1_000_000).Sum();
}await Equivalents| GDScript | C# |
|---|---|
await get_tree().create_timer(1.0).timeout | await ToSignal(GetTree().CreateTimer(1.0), Timer.SignalName.Timeout) |
await animation_player.animation_finished | await ToSignal(animPlayer, AnimationPlayer.SignalName.AnimationFinished) |
await signal_name | await ToSignal(this, SignalName.YourSignal) |
C# calls into GDScript objects with Call, Get, and Set, and GDScript can use a C# class directly when it is registered as a [GlobalClass]. Values cross the boundary as Variant, and the reference lists the marshalling gotchas (null, int[], List<T>).
See references/gdscript-interop.md for the
Call/Get/Setexamples, the[GlobalClass]pattern, and theVariantmarshalling table.
| Workload | Winner | Reason |
|---|---|---|
| Math-heavy loops (pathfinding, simulation) | C# (significantly faster) | Compiled JIT vs interpreted GDScript |
| Large array/collection processing | C# | Value type arrays avoid boxing |
| Godot API calls (move_and_slide, etc.) | Roughly equal | Both route through the same C++ engine |
| Scene tree operations | Roughly equal | Bottleneck is C++ overhead, not language |
| Rapid prototyping | GDScript | Less boilerplate, hot-reload without recompile |
| Editor tooling (plugins, @tool) | GDScript | C# tool scripts require a full build cycle |
@tool scripts, and rapid iteration on gameplay logic.Godot.Collections.Array for hot paths; prefer typed arrays (Array<T>) or native C# arrays (T[]) converted at boundaries.StringName lookups are O(1) but StringName construction is not — cache them if created frequently.| Gotcha | Problem | Fix |
|---|---|---|
Variant to C# type conversion | (float)someVariant throws if the underlying type is int | Use .AsSingle(), .AsInt32(), etc. instead of casts |
null vs default(Variant) | Godot signals passing no value give default(Variant), not C# null | Check .VariantType == Variant.Type.Nil |
Godot.Collections vs System.Collections | Godot API methods return Godot.Collections.Array; passing List<T> causes runtime error | Always use Godot.Collections.Array/Dictionary at Godot API boundaries |
| Disposing native objects | Calling methods on a freed Godot object throws ObjectDisposedException | Check IsInstanceValid(obj) before use |
StringName construction in hot loops | new StringName("my_signal") allocates each call | Cache as private static readonly StringName _signalName = "my_signal"; |
| Export array types | [Export] public Array Items; exports untyped array | Use [Export] public Godot.Collections.Array<MyResource> Items { get; set; } |
| Node path strings | GetNode("../UI/Label") fails silently if the path changes | Use GetNode<Label>("%Label") with unique names or typed [Export] node references |
partial class forgotten | Source generators silently fail; [Export] and [Signal] don't register | Every class extending a Godot type must be partial |
async void vs async Task | async void swallows exceptions | Use async Task except for top-level event handlers that Godot calls |
⚠️ Changed in Godot 4.7: The 4.7 C# assemblies ship several compatibility breaks. Binary-incompatible only (source still compiles — a rebuild suffices):
OptimizedTranslation.Generate()now returnsboolinstead ofvoid(GH-119563). Binary- and source-incompatible (code changes required):Animation.Lengthchanged type metadata fromfloattodouble(GH-116394) — the C# property is nowdouble, sofloat len = anim.Length;no longer compiles — andControl.AccessibilityLivechanged enum type fromDisplayServer.AccessibilityLiveModetoAccessibilityServer.AccessibilityLiveMode(GH-116839) — update declarations to theAccessibilityServerenum. Source-incompatible (existing binaries still load):RichTextLabel.ImageUpdateMask.UpdateWidthInPercentwas renamed toUpdateWidthUnit(GH-112617), and theEditorSceneFormatImporterIMPORT_*constants moved into theImportFlagsenum (GH-115788). Removed:AudioEffectSpectrumAnalyzer.TapBackPos(GH-114355). Rebuild against 4.7 and fix the affected symbols. See the 4.7 migration guide.
partial_Ready, _PhysicsProcess, IsOnFloor())[Export] properties are PascalCase and use property syntax ({ get; set; })EventHandler and use EmitSignal(SignalName.X)+= and disconnected with -= when no longer neededawait ToSignal(...) used for Godot signals — not raw Task.Delay for game timingGodot.Collections.Array/Dictionary used at Godot API boundaries, not System.Collections typesIsInstanceValid(obj) checked before using any potentially freed Godot objectStringName instances cached if constructed in loops or frequently called methodsTask.Run(...) callbacks — all engine calls happen on the main thread.csproj opened via the .sln file in the IDE for full solution resolution@tool scripts© jame581, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/csharp-godot of jame581/GodotPrompter.
Open the folder on GitHubat commit 1e7d79d
Csharp Godot next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Csharp Godot this skilljame581/GodotPrompter | 799 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Godot Admob App Openpoingstudios/godot-admob-plugin | 632 | — | ~1k | Automated safety check: Pass | MIT | |
| Godot Admob Bannerpoingstudios/godot-admob-plugin | 632 | — | ~718 | Automated safety check: Pass | MIT | |
| Godot Admob Get Startedpoingstudios/godot-admob-plugin | 632 | — | ~1k | Automated safety check: Pass | MIT | |
| Godot Admob Interstitialpoingstudios/godot-admob-plugin | 632 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Godot Admob Native Overlaypoingstudios/godot-admob-plugin | 632 | — | ~1k | Automated safety check: Pass | MIT |
poingstudios/godot-admob-plugin
Provides instructions to implement, load, show, and destroy App Open ads (shown on application startup or app resume) in GDScript and C.
poingstudios/godot-admob-plugin
Provides instructions to implement, load, and destroy banner ads (AdView) using custom or adaptive sizes in GDScript and C.
poingstudios/godot-admob-plugin
Provides instructions to initialize the Godot AdMob SDK and configure user consent (UMP Flow) in GDScript and C.
poingstudios/godot-admob-plugin
Provides instructions to implement, load, show, and destroy interstitial ads (full-screen image/text ads) in GDScript and C.
poingstudios/godot-admob-plugin
Provides instructions to implement, load, show, and destroy Native Overlay ads (customized/native-looking Control node template overlays) in GDScript and C.
moeru-ai/airi
Apply the Stage Tamagotchi Godot C development method and code style when working in apps/stage-tamagotchi-kirie or its migration predecessor, engines/stage-tamagotchi-godot.
jame581/GodotPrompter
Covers Godot 4.3+ 2D systems with GDScript and C# examples: canvas layers, draw order, TileMaps, parallax, lights and shadows, particles and custom drawing.
jame581/GodotPrompter
Covers Godot 4.3+ 3D systems such as materials, lighting, shadows, environment, global illumination, fog, LOD, occlusion culling and decals, with GDScript first and C# second.
jame581/GodotPrompter
Builds a data-driven ability system in Godot 4 from Resources and a component node, with cooldowns, buffs, stat modifiers, gameplay tags and HUD binding.
jame581/GodotPrompter
Covers Godot 4.3+ editor plugins: plugin folders, @tool scripts, the EditorPlugin lifecycle, custom inspectors, dock panels and gizmos, in GDScript and C#.
jame581/GodotPrompter
Covers pathfinding and enemy movement in Godot 4.3 and later: navigation regions, NavigationAgent nodes, steering, behavior trees and patrol routes.
jame581/GodotPrompter
Covers animation in Godot 4.3 and later: AnimationPlayer basics, AnimationTree blend trees and state machines, sprite animation, skeleton IK and code-driven motion.
Categories
A skill your agent uses when working with C in Godot — conventions, GodotSharp API differences from GDScript, project setup, and interop. Csharp Godot is an agent skill from jame581/GodotPrompter.
Csharp Godot fits situations like: working with C in Godot — conventions; godotSharp API differences from GDScript.
Run `npx skills add jame581/GodotPrompter --skill csharp-godot -a claude-code`. Or copy the skill folder (skills/csharp-godot in jame581/GodotPrompter) into .claude/skills/csharp-godot in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jame581/GodotPrompter --skill csharp-godot -a codex`. Or copy the skill folder (skills/csharp-godot in jame581/GodotPrompter) into .agents/skills/csharp-godot in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jame581/GodotPrompter --skill csharp-godot -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/csharp-godot, .gemini/skills/csharp-godot, .github/skills/csharp-godot and .opencode/skills/csharp-godot in your project.
Going by SKILL.md and its folder, Csharp Godot needs the command-line tools its instructions call (node and dotnet).
SKILL.md names 2 domains. As links in the text: github.com and docs.godotengine.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Csharp Godot is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 460 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Csharp Godot: Godot Admob App Open (poingstudios/godot-admob-plugin, 632 stars), Godot Admob Banner (poingstudios/godot-admob-plugin, 632 stars), Godot Admob Get Started (poingstudios/godot-admob-plugin, 632 stars) and Godot Admob Interstitial (poingstudios/godot-admob-plugin, 632 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jame581 (a GitHub user) maintains it in jame581/GodotPrompter, which has 799 GitHub stars. The repository holds 58 skills in this directory. The repository was last updated on October 8, 2026.
Source: jame581/GodotPrompter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.