Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ouzlifaneyassine1-dot/onyx-engine --skill create-asset-sheetgit clone --depth 1 https://github.com/ouzlifaneyassine1-dot/onyx-engineWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ouzlifaneyassine1-dot/onyx-engine/create-asset-sheet)<a href="https://agentmods.dev/skills/ouzlifaneyassine1-dot/onyx-engine/create-asset-sheet"><img src="https://agentmods.dev/badge/skills/ouzlifaneyassine1-dot/onyx-engine/create-asset-sheet/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ouzlifaneyassine1-dot/onyx-engine/create-asset-sheet"><img src="https://agentmods.dev/badge/skills/ouzlifaneyassine1-dot/onyx-engine/create-asset-sheet.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00121 | $0.02267 |
| Opus 5 | $0.00060 | $0.01133 |
| Sonnet 5 | $0.00024 | $0.00453 |
| Haiku 4.5 | $0.00012 | $0.00227 |
Grade A, and why
create-asset-sheet scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 164 lines — stays where its author put it; the contents beside it link to each section on GitHub.
create-asset-sheet — Generate a coherent pack of 2D assets
This skill turns a single prompt into a categorized pack of isolated, named 2D assets ready to drop into a game. It exists because the alternative — generating each asset one-by-one, then losing visual coherence between them, then manually matting backgrounds in Photoshop — is the most-cited pain point from indie devs working with image models in 2026.
Pipeline:
- Generate a sheet of N isolated assets in one image-gen call.
- Remove background (fal/bria) so each asset can stand on its own.
- Detect + name + classify each asset in one vision call (Gemini 3 Pro outputs bbox + snake_case name + category per region).
- Crop each region with sharp.
- Optionally upscale any small slice via fal flux-2/edit i2i, preserving aspect.
- Save as a single pack ArtAsset with
packFiles: [{url, name, type}]andmetadata.sliceBboxes.
Categories the classifier outputs (used to route into downstream pipelines):
character | terrain | nature | lighting | water | decorative | buildings | ui | vfx
When to use
- "Make me a Japanese village tileset."
- "Generate a sci-fi UI kit — buttons, panels, icons."
- "I need 12 fantasy props for a dungeon — chest, torch, skeleton, gold, etc."
- "Give me a character pack: 6 cute monsters."
- "Build a forest biome — trees, rocks, plants, ground tiles."
When NOT to use
- The user wants a single asset →
onyx:2d-assets/pixel-artoronyx:2d-assets/character-portrait. - The user wants character animation (walk cycle, attack frames) →
onyx:2d-assets/sprite-sheet. - The user wants 3D models of a planned pack → not yet supported in one shot; loop
onyx:2d-assets/concept-art→ image-to-3D per item, or useonyx:asset-pipeline/asset-strategyto pick the right path. - The user wants terrain tiles that connect seamlessly (auto-tiling / Wang tiles) →
onyx:2d-assets/tileable-textureis the right home for edge logic; this skill produces standalone tiles, not edge variants.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 164 lines · 121 tokens per session scan A c69a2d19a84f
create-asset-sheet is a skill published in the GitHub repository ouzlifaneyassine1-dot/onyx-engine (0 stars, last pushed 3mo ago), licensed MIT. It adds 121 tokens to every session and 2,267 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
skybox-panorama
Use when generating a 360° panoramic sky image for use as a Sky resource (PanoramaSkyMaterial) in a 3D scene. Equirectangular projection, 2:1 aspect. Wires into WorldEnvironment.sky. Trigger on "skybox", "sky panorama", "360 background", "environment sky", "HDRI sky", "panoramic background", "panorama sky".
sprite-sheet
Use when generating animated 2D character sprites laid out as a sprite sheet (grid of frames) — walk cycle, attack frames, idle bob, death sequence. Wires into AnimatedSprite2D / SpriteFrames. Trigger on "sprite sheet", "walk cycle", "attack frames", "animated sprite", "frame-by-frame animation", "2D character…
tileable-texture
Use when generating a seamless tileable texture for walls, floors, terrain, ceilings — square tile that repeats cleanly on all four edges. Wires onto PlaneMesh / CSGBox3D / MeshInstance3D as a StandardMaterial3D albedo. Trigger on "tileable texture", "seamless texture", "wall texture", "floor texture", "ground…
character-portrait
Use when generating a single, polished bust/portrait of a character for dialogue UI, character-select screens, lore cards, or codex entries. One character, locked composition, VN-style. Trigger on "character portrait", "dialogue portrait", "VN portrait", "character bust", "headshot", "character select image", "lore…
instantiate-asset-pack
Use when the user wants to import or spawn an entire asset pack (the multi-slice ArtAsset produced by create-asset-sheet) into the current scene — not a single slice, the whole pack. Reads the pack's per-slice metadata (zOrder, isComposite, parentSliceIndex, widget, bbox), groups composites, sorts children by paint…
pixel-art
Use when generating pixel-art assets — sprites, items, tiles, portraits in a pixel style at a specific resolution (32×32, 64×64, 128×128). Pixel-perfect grid, limited palette, retro feel. Trigger on "pixel art", "8-bit art", "16-bit sprite", "pixel sprite", "retro tileset", "pixel icon", "pixel portrait".