All plugins

gameforge

Game development toolkit: sound effects, music loops with MIDI, NPC voices, pixel-art sprite sheets and autotiling tilesets, low-poly and AI 3D models (.glb); 4 playable web genres (topdown, platformer, arena, roguelike), Godot 4 and Unity builds; headless Blender and Unreal pipelines; an automated playtester that plays each genre and reports crashes, stuck spots and boring stretches; one-click PWA, itch.io, single-HTML and Capacitor export. Offline by default. Disclosure — runs local Chrome/Chromium for playtests, and Godot, Unity, Blender, UnrealEditor-Cmd, ffmpeg, xvfb-run or butler only when a call asks for them; blender action=script runs a bpy file the caller names. Network only when asked: fal.ai, Tripo or Meshy (FAL_KEY / TRIPO_API_KEY / MESHY_API_KEY, prompt and image sent), ElevenLabs (ELEVENLABS_API_KEY, SFX prompt), Edge TTS when edge-tts is installed (dialogue text), Godot export templates from GitHub (~1 GB, target=godot_templates), itch.io via butler (target=itch with an explicit itch_target). Writes only inside the game project directory, plus a temporary browser profile. No telemetry.

DECRUX981245Toolsv1.1.2Updated 2 days ago

About

Game development toolkit: sound effects, music loops with MIDI, NPC voices, pixel-art sprite sheets and autotiling tilesets, low-poly and AI 3D models (.glb); 4 playable web genres (topdown, platformer, arena, roguelike), Godot 4 and Unity builds; headless Blender and Unreal pipelines; an automated playtester that plays each genre and reports crashes, stuck spots and boring stretches; one-click PWA, itch.io, single-HTML and Capacitor export. Offline by default. Disclosure — runs local Chrome/Chromium for playtests, and Godot, Unity, Blender, UnrealEditor-Cmd, ffmpeg, xvfb-run or butler only when a call asks for them; blender action=script runs a bpy file the caller names. Network only when asked: fal.ai, Tripo or Meshy (FAL_KEY / TRIPO_API_KEY / MESHY_API_KEY, prompt and image sent), ElevenLabs (ELEVENLABS_API_KEY, SFX prompt), Edge TTS when edge-tts is installed (dialogue text), Godot export templates from GitHub (~1 GB, target=godot_templates), itch.io via butler (target=itch with an explicit itch_target). Writes only inside the game project directory, plus a temporary browser profile. No telemetry.

Hermes GameForge

The game-development plugin for Hermes Agent.
Ask for a game and get one: sound effects, music, NPC voices, sprite sheets, tilesets and 3D models
generated into a real project; playable web, Godot and Unity builds; Blender and Unreal pipelines; a
playtester that actually plays the build and tells you where it breaks or gets boring; one-click
export to the web, phones and itch.io.

Everything runs offline by default (pure Python + Pillow, which Hermes already ships). AI providers
(Tripo, fal.ai, Meshy, ElevenLabs, Edge TTS, your Hermes TTS) are opt-in upgrades, never requirements.
Nothing touches Hermes core: it is a standard plugin.yaml + register(ctx) plugin.

hermes plugins install DECRUX9812/hermes-plugin-gameforge --enable
hermes gameforge demo            # builds, playtests and exports a complete game in ~1 minute

What's in the box

| Tool | Does | Offline |
|---|---|---|
| forge_sfx | 22 presets (sfxr-compatible synth + layered footsteps, whooshes, magic, impacts), tweakable params, variation pools, 4 styles · ElevenLabs prompts | ✓ |
| forge_music | mood → mode, chord progression, motif-based melody, bass, arp, drums → seamless loop WAV + MIDI (+ stems) in chiptune / synthwave / ambient / orchestral | ✓ |
| forge_voice | NPC casts: Animalese-style babble, Edge neural TTS or your Hermes TTS, with character FX (goblin, giant, robot, ghost, radio, demon, fairy, elder, cave) and typewriter timings | ✓ |
| forge_sprite | 16×16 RPG characters with 4-direction walk/idle, monsters, scalable item icons, props, AI image → pixel sprite, sheet packing → PNG + TexturePacker/Phaser JSON + Godot SpriteFrames + GIF | ✓ |
| forge_tileset | seamless Wang-corner transitions between 12 terrains (animated water/lava), fill variants, Godot TileSet with terrains + collision | ✓ |
| forge_model3d | 18 low-poly generators (trees, houses, terrain, dungeons from ASCII, rigged blocky characters…), animation clips (walk, wave, open, spin…) → .glb + turntable · Tripo text- and image-to-3D with auto-rigging and preset animations · fal.ai / Meshy | ✓ |
| forge_engine | web: complete HTML5 game from your assets across 4 genres (topdown, platformer, arena, roguelike) · Godot 4: scaffold, import, headless run with parsed errors · Unity: scaffold + batch-mode setup · Blender: convert, LODs, Eevee turntables, animation, custom bpy · Unreal: asset import | ✓ |
| forge_playtest | plays the build in headless Chrome (explorer / monkey / vision-LLM agent) or bot-plays Godot at 40× real time → crashes, stuck spots, FPS, event droughts, boredom, deaths/wins, heatmap, HTML report | ✓ |
| forge_export | PWA bundle (installable on phones, offline), itch.io zip, single-file HTML, Capacitor Android/iOS wrapper, butler push, Godot and Unity platform builds | ✓ |

Ten bundled skills teach the agent the workflows: gameforge:game-studio (idea → shipped),
playtesting, godot-dev, unity-dev, blender-pipeline, game-audio, pixel-art-pipeline,
3d-asset-pipeline, ship-it and game-reverse-engineering (Ghidra headless export, ILSpy, GDRE).

Rigged 3D from a sentence

forge_model3d source=tripo runs Tripo's V3 chain in one call — text-to-model → animations/rig
(biped, mixamo spec) → animations/retarget (preset clips, up to five) → download the .glb:

forge_model3d source=tripo prompt="a brass goblin chieftain" rig=true animate=[walk,wave]

What comes back is a rigged, animated .glb that imports into Godot, Unity, Unreal, Blender and
three.js as-is. Without a Tripo key the same tool still produces rigged characters offline
(source=procedural, clips: walk/wave/idle/spin/open/bounce/bob/pulse), so the pipeline is testable
before you spend a credit.

The playtester

The headline feature. forge_playtest target=web launches headless Chrome (a dependency-free CDP
client, no Playwright), waits for the game, and plays it:

  • explorer walks toward ground it hasn't seen, remembers dead ends, fights when it can and
    restarts after game over; monkey mashes inputs to shake out crashes; agent lets your vision
    model look at the screen every few seconds, choose inputs and write tester notes.
  • It records uncaught exceptions and console errors (with screenshots), FPS, input that changes
    nothing, getting stuck, event droughts (20 s+ with no pickup, fight or progress), low-novelty
    stretches, deaths per minute, damage-free wins, time to first event, and map coverage.
  • Output: report.html / report.md / report.json, a timeline chart, a movement heatmap and a
    contact sheet of key moments. Verdict: SOLID, PLAYABLE, ROUGH or BROKEN.

Any web game works; games that publish window.__gameforge = {controls, state, events} (like the
GameForge template) get richer signals. For Godot, a bot scene drives the input map with
--fixed-fps 60, so 10 minutes of play run in about 15 seconds, and it can render real frames
through Xvfb.

What evidence is saved when a build breaks

When a game throws an exception or enters an error screen, GameForge doesn't just log an exit code — it captures full diagnostic evidence:

  1. Wire-level CDP exception hooks: Listens to Runtime.exceptionThrown and Runtime.consoleAPICalled to record the exact exception name, source URL, line/column number, and multiline stack trace.
  2. Instant failure frame: Grabs an immediate viewport snapshot at the exact moment of failure (shots/01_error.jpg), so you see exactly what was rendered when it broke.
  3. Structured artifact bundle written to <project>/playtest/<target>_<timestamp>/:
    • report.html — interactive visual report with embedded failure frames, metrics, and moment timeline.
    • report.json — machine-readable test ledger: issues ranked by severity (critical, major, minor, design), p50/p95/min FPS, and event counters.
    • report.md — clean summary suitable for PR comments or CI logs.
    • shots/ — high-res JPEG captures of boot, crashes, stuck spots, and checkpoints.
    • moments.jpg — chronological contact sheet of the run.
    • timeline.png — novelty and frame-rate progression chart leading up to the failure.
    • heatmap.png — 2D spatial coverage map showing where the player moved before failing.
  4. Verdict Gate: Any critical error sets verdict: BROKEN. Stalls or repeated stuck spots set verdict: ROUGH. Clean playthroughs score PLAYABLE or SOLID.

One design, every engine

forge_engine engine=web action=scaffold generates every asset and writes web/game.json: the
level map, tuning and asset paths. The Godot scaffold (main.gd) and the Unity scaffold
(GameForgeTopDown.cs) read the same level and build it at runtime, so a design tweak in one
file reaches all three builds. The project root doubles as the Godot project, so every
res://assets/... path in generated .tres files just works.

Asset ledger

Every tool records what it made in <project>/gameforge.json: files, the exact recipe (tool,
preset, seed, parameters) and licence. Any asset can be regenerated, varied or credited later.
Procedural output is CC0. AI-provider output follows that provider's terms.

Settings

Hermes Desktop → Settings → Plugins → GameForge, or plugins.entries.gameforge.settings in config.yaml:
default_project, godot_path, unity_path, blender_path, unreal_path, browser_path, and the
optional secrets TRIPO_API_KEY, FAL_KEY, MESHY_API_KEY, ELEVENLABS_API_KEY (stored in .env).

Disclosure

  • Network: none by default. Opt-in calls: Tripo / fal.ai / Meshy (3D generation; prompt and image
    are sent — Tripo also receives the rig and retarget task ids), ElevenLabs (SFX prompt), Edge TTS (dialogue text, when edge-tts is installed), GitHub
    (Godot export templates, only on forge_export target=godot_templates, about 1 GB), itch.io via
    butler (only on target=itch with an explicit itch_target).
  • Processes: runs Chrome/Chromium headless for playtests, and Godot, Unity, Blender,
    UnrealEditor-Cmd, ffmpeg, xvfb-run or butler when a call asks for them. forge_engine engine=blender action=script runs a bpy script you point it at.
  • Files: writes only inside the game project directory, plus a throwaway browser profile in the
    system temp dir. Export templates go to Godot's standard templates folder.
  • No telemetry. No credentials read beyond the three optional keys above.

Development

python -m pytest -c tests/pytest.ini tests     # 59 tests; browser/Godot ones skip when absent
hermes plugins doctor . && hermes plugins validate .

MIT licence.

README from the reviewed commit ee4a07a; it updates when the author re-pins.

More by DECRUX9812

5 plugins by DECRUX9812 in the catalog.

DECRUX9812typesafe-skill-routerTypeSafe (Jev) skill routing: the request is routed before the model call and the one skill from the live roster that fits it is named in a single <skill_relevance> line on the user message — nothing is injected when nothing fits.Communityautomation15DECRUX9812office-deskGuarded Word, PowerPoint and Excel editing: tracked Word changes and comments, slide and deck edits, and Excel edits with LibreOffice recalc. Every write gets a backup and a revertible receipt, and you review it all on a Desk page in the Desktop app. Settings are in Settings > Plugins. Disclosure: reads any Office file the agent is pointed at but writes only inside folders the user puts on the Desk (backups and receipts live in the plugin's own data dir). xlsx_recalc runs the user's installed LibreOffice (soffice, headless) on a temporary copy. The Desk page reads the session store read-only to show a workstream's chat. No network calls, telemetry, credentials or background processes. Depends on the paper-docx, paper-pptx and paper-xlsx forks. They provide the docx, pptx and openpyxl import names, so they must not share an environment with python-docx, python-pptx or openpyxl.Communitytools14DECRUX9812handflowManus-style planning flow — the agent plans in steps and marks them as it works, with a live desktop pane.Communityautomation4DECRUX9812webmintTurn a website into a deterministic tool: a real browser captures the page once, the host's own model writes a declarative extraction spec, two runs must agree (same field set, >=50% fill per field) before it is saved, and every later call runs that spec with no model in the loop (~2.7s). Five tools: setup, mint, run, list, remove. Disclosure — needs Node >= 18 and Playwright; on first mint the plugin installs Playwright and Chromium into its own directory (~120 MB, opt out with WEBMINT_NO_AUTO_SETUP=1). Capture runs in a fresh signed-out browser: actions may fill, click and submit forms, and http specs replay the captured GET or POST (Cookie and Authorization headers are never replayed). Public http(s) URLs only — file:, loopback/private and link-local/metadata addresses are refused, with private/loopback behind WEBMINT_ALLOW_PRIVATE_URLS=1 or the host's security.allow_private_urls. Headless Chromium is refused by some bot-protected sites.Communityweb1