mcpbeat Sign in

Godot Platform Console Skill for Cursor

Expert blueprint for console platforms (PlayStation, Xbox, Nintendo Switch) covering controller-first UI, certification requirements (TRCs/TCRs), platform services (achievements, cloud saves), and performance compliance. Use when targeting console releases or implementing gamepad-only interfaces. Keywords console, PlayStation, Xbox, Switch, TRC, TCR, certification, controller, gamepad, achievements.

10k tokens
context cost
the whole folder, loaded on every use
17
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
451
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/thedivergentai/GD-Agentic-Skills --skill godot-platform-console

The instruction itself

29 sections, as written by the author

Platform: Console

Controller-first design, certification compliance, and locked frame rates define console development.

NEVER Do

  • NEVER show a mouse cursor — Certification (TRC/TCR) failure. Hide with Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN).
  • NEVER skip pausing on focus loss — Monitor NOTIFICATION_APPLICATION_FOCUS_OUT and force a pause.
  • NEVER let a controller disconnect go unhandled — Force pause and show reconnect UI.
  • NEVER use an unlocked frame rate — Lock 30 or 60 FPS via Engine.max_fps and enable VSync.
  • NEVER forget D-Pad navigation — Analog-only menus fail accessibility/TRC. Support D-Pad for all menus.
  • NEVER hardcode button labels — Use GUID-based prompt mapping (controller_prompt_mapper.gd), not "Press A".
  • NEVER exceed hardware memory limits — Profile RAM; Switch budgets are rigid.
  • NEVER assume Joypad 0 is always Player 1 — Query Input.get_connected_joypads().
  • NEVER distribute console export templates or SDKs publicly — NDA-bound.
  • NEVER handle continuous analog sticks with boolean checks — Use get_vector() / get_action_strength().
  • NEVER vibrate continuously without a disable option — Finite Input.start_joy_vibration() + accessibility toggle.
  • NEVER expect OS window APIs on consolesDisplayServer.window_set_mode() is ignored/fails.
  • NEVER map UI to raw button indices — Use Project Input Map (ui_accept, ui_cancel, custom actions).
  • NEVER rely on NOTIFICATION_WM_CLOSE_REQUEST for termination — Consoles suspend; handle focus/suspend paths.
  • NEVER query inputs without flushing when frame-perfectInput.flush_buffered_events() before critical checks.
  • NEVER use == / != on analog trigger axes — Use is_equal_approx().
  • NEVER leave orphaned nodes across scene transitions — Strict RAM; queue_free() and break cycles.
  • NEVER write to res:// at runtime — Use user:// only.
  • NEVER save synchronously on the main thread — Offload; atomic .tmp then rename.

Godot 4.7: Console Input

  • Use InputEvent.DEVICE_ID_* constants — never assume device 0 is mouse/keyboard.

Available Scripts

> MANDATORY: Read the appropriate script before implementing the corresponding pattern.

certification_manager.gd

Expert TRC/TCR compliance (focus loss, controller disconnects).

performance_scaler_fsr.gd

Dynamic Resolution Scaling and FSR 2.2 management for console performance.

server_side_projectile.gd

Direct RenderingServer/PhysicsServer bypass for high-frequency objects.

async_save_manager.gd

Atomic, corruption-resistant threaded save system.

controller_prompt_mapper.gd

GUID-based button prompt detection (PlayStation/Xbox/Switch).

memory_budget_guard.gd

Strict RAM monitoring for platform-specific hardware budgets.

platform_dialog_invoker.gd

Native OS dialog and virtual keyboard abstraction.

background_data_prefetcher.gd

Asset pre-fetching using WorkerThreadPool to avoid level-load stutters.

achievement_offline_queue.gd

Achievement/Trophy caching with offline persistence.

console_boot_config.gd

Hardware-aware hardware initialization and rendering overrides.


Certification Golden Path (MANDATORY scripts)

Run this checklist in order for a console-ready vertical slice. Do NOT Load optional scripts unless the row below says optional.

| Step | MANDATORY script | Do NOT Load (unless needed) |

| :--- | :--- | :--- |

| 1. Boot | console_boot_config.gd | server_side_projectile.gd — RID bypass, not cert |

| 2. Focus / disconnect | certification_manager.gd | — |

| 3. Save atomicity | async_save_manager.gd | — |

| 4. FPS / scaler / RAM | performance_scaler_fsr.gd + memory_budget_guard.gd | Switch: set ram_limit_mb3072 (retail) / warn at 3584; PS/Xbox: 4096–5120 per SKU — see script @export |

| 5. Prompts | controller_prompt_mapper.gd | — |

Optional only: achievement_offline_queue.gd, platform_dialog_invoker.gd, background_data_prefetcher.gd. Do NOT Load these during steps 1–5 unless achievements, system dialogs, or prefetch are in scope.

Input Handling (Input Map — not raw indices)

func _unhandled_input(event: InputEvent) -> void:
    if event.is_action_pressed("ui_accept"):
        on_confirm()
    elif event.is_action_pressed("ui_cancel"):
        on_cancel()
    # Prompts: MANDATORY controller_prompt_mapper.gd for face-button glyphs

Expert Techniques

TRC failure → fix (symptom → script → doc)

| Symptom | Fix script | Doc |

| :--- | :--- | :--- |

| Mouse pointer visible in game UI | Hide via Input Map flow + Input.MOUSE_MODE_HIDDEN in boot | Custom mouse cursor |

| Game runs when dashboard/home pressed | certification_manager.gd focus-out pause | Handling quit requests |

| "Press A" hardcoded on Switch | controller_prompt_mapper.gd GUID glyphs | Controllers, gamepads, and joysticks |

| Save corruption on power loss | async_save_manager.gd .tmp rename | Saving games |

| Frame time spikes / TRC perf fail | performance_scaler_fsr.gd + RAM guard | Resolution scaling |

1. Platform-Overlay-Manager (Native UI Dialogs)

Prefer platform_dialog_invoker.gd / platform_overlay_manager.gd / DisplayServer.dialog_show() for TRC system messages over custom modal stacks.

2. Shader-Binary-Caching (RenderingDevice)

Enable shader/pipeline cache on fixed console GPUs; see console_shader_manager.gd and Official Docs pipeline compilation guidance in Reference.

3. Controller-Battery-Telemetry Hook

Use Input.joy_connection_changed + Input.get_joy_info() via controller_telemetry.gd; battery level often needs a platform GDExtension under NDA.

Deep dives (on demand)

  • Joypad snippets, native overlay dialogs, shader cache UUID, controller telemetry → console-cert-patterns.md

Reference

> Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing to a peer domain — do not preload the whole lattice.

Official Documentation

  • Controllers, gamepads, and joysticks — Joypad indexing, deadzones, get_vector/get_connected_joypads, and why device 0 is never assumed Player 1 on consoles.
  • Controller number and vibration — Finite start_joy_vibration durations, connection signals, and haptic accessibility toggles required by TRC/TCR.
  • Using InputEvent — Event flow for InputEventJoypadButton/Motion, Input Map actions, and buffered flush before frame-critical checks.
  • Custom mouse cursor — Input.set_mouse_mode / hidden cursor so a visible pointer does not fail console certification.
  • Handling quit requests — Focus-out / suspend paths versus NOTIFICATION_WM_CLOSE_REQUEST, which consoles often never emit.
  • Keyboard, mouse, and controller UI navigation — Focus neighbors and D-Pad/gamepad UI traversal required when analog-only menus fail accessibility/TRC.
  • Resolution scaling — Viewport FSR2 / scaling_3d_scale profiles used to hold locked 30/60 FPS on weak SKUs.
  • Saving games — user:// persistence, save indicators, and why res:// writes are invalid on exported console builds.
  • Background loading — Threaded ResourceLoader prefetch so slow console storage does not hitch level transitions.
  • Using multiple threads — WorkerThreadPool offload for atomic saves and prefetch without main-thread TCR frame spikes.
  • Feature tags — OS.has_feature / export tags that gate console boot overrides (VSync, max FPS, low-end GI).
  • Reducing stutter from shader/pipeline compilations — Shader/pipeline caching on fixed console GPUs to avoid first-use hitch rejections.
Prerequisites
  • godot-project-foundations — Project layout, Input Map, and export/user paths before certification hooks and console boot overrides.
  • godot-input-handling — Joypad actions, deadzones, and device remapping that controller-first UI and prompt mappers build on.
  • godot-gdscript-mastery — Typed notifications, signals, and thread-safe call patterns used by compliance and async save managers.
Complements
Downstream / consumers
  • godot-platform-desktop — Dual-ship PC builds that must share Input Map/actions while keeping console mouse-hidden and FPS-locked paths.
  • godot-platform-mobile — Shared focus-loss / suspend pause patterns when the same title also targets handhelds.
  • godot-multiplayer-networking — Online matchmaking/friends hooks that sit beside achievement queues and platform overlays.
  • godot-genre-party — Multi-pad local play that consumes dynamic joypad slot discovery and prompt mapping.
Master
  • godot-master — Library router and mirrored module entry for cross-skill discovery.

Other skills for the same job

different authors, same section of the catalogue
Internal Comms
by anthropics
vendor ×13

A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).

6k tokens
Competitive Ads Extractor
by frostant
×10

Extracts and analyzes competitors' ads from ad libraries (Facebook, LinkedIn, etc.) to understand what messaging, problems, and creative approaches are working. Helps inspire and improve your own ad campaigns.

2k tokens
Lead Research Assistant
by frostant
×8

Identifies high-quality leads for your product or service by analyzing your business, searching for target companies, and providing actionable contact strategies. Perfect for sales, business development, and marketing professionals.

2k tokens
Developer Growth Analysis
by frostant
×6

Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.

4k tokens
App Store Optimization
by alirezarezvani
×3

Complete App Store Optimization (ASO) toolkit for researching, optimizing, and tracking mobile app performance on Apple App Store and Google Play Store

55k tokens scripts
Deeptools
by christophacham
×3

NGS analysis toolkit. BAM to bigWig conversion, QC (correlation, PCA, fingerprints), heatmaps/profiles (TSS, peaks), for ChIP-seq, RNA-seq, ATAC-seq visualization.

21k tokens scripts
Pymatgen
by christophacham
×3

Materials science toolkit. Crystal structures (CIF, POSCAR), phase diagrams, band structure, DOS, Materials Project integration, format conversion, for computational materials science.

26k tokens scripts
Enhance Prompt
by google-labs-code
vendor ×2

Transforms vague UI ideas into polished, Stitch-optimized prompts. Enhances specificity, adds UI/UX keywords, injects design system context, and structures output for better generation results.

3k tokens

How to use it

Copy the folder

Take thedivergentai/godot-platform-console from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.