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 amenti-labs/vibecraft --skill generating-terraingit clone --depth 1 https://github.com/amenti-labs/vibecraftWrote 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/amenti-labs/vibecraft/generating-terrain)<a href="https://agentmods.dev/skills/amenti-labs/vibecraft/generating-terrain"><img src="https://agentmods.dev/badge/skills/amenti-labs/vibecraft/generating-terrain/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/amenti-labs/vibecraft/generating-terrain"><img src="https://agentmods.dev/badge/skills/amenti-labs/vibecraft/generating-terrain.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.00050 | $0.01024 |
| Opus 5 | $0.00025 | $0.00512 |
| Sonnet 5 | $0.00010 | $0.00205 |
| Haiku 4.5 | $0.00005 | $0.00102 |
Grade A, and why
generating-terrain 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 9d 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 — 93 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Generating Terrain
MCP Tools
generate_terrain- rolling_hills, rugged_mountains, valley_network, mountain_range, plateautexture_terrain- temperate, alpine, desert, volcanic, jungle, swampsmooth_terrain- Post-process smoothing (iterations 1-5)worldedit_deform- Math expressionsworldedit_terrain_advanced- smooth, naturalize, regenbuild(code=...)- Procedural algorithms
Quick Start
generate_terrain(type="rolling_hills", center_x=100, center_y=64, center_z=200, size=50, amplitude=8)
texture_terrain(style="temperate", center_x=100, center_y=64, center_z=200, size=50)
smooth_terrain(center_x=100, center_y=64, center_z=200, size=50, iterations=2)
Procedural with build()
Rolling Hills
build(code="""
commands = []
def noise(x, z, seed=42):
n = x * 374761393 + z * 668265263 + seed
n = (n ^ (n >> 13)) * 1274126177
return ((n ^ (n >> 16)) & 255) / 255.0
base_x, base_z, size, base_y, amplitude = 100, 200, 50, 64, 8
for x in range(base_x, base_x + size):
for z in range(base_z, base_z + size):
height = noise(x, z, 1) * amplitude + noise(x*2, z*2, 2) * amplitude * 0.5
y = int(base_y + height)
commands.append(f'/setblock {x} {y} {z} grass_block')
for below in range(base_y - 5, y):
mat = 'dirt' if y - below <= 3 else 'stone'
commands.append(f'/setblock {x} {below} {z} {mat}')
""", description="Rolling hills")
Mountain Range
# Use ridged noise: abs(noise(x, z) - 0.5) * 2
# Snow above base+18, stone above base+12, grass below
River Valley
# Sinusoidal path: path_x = base_x + sin(i * 0.1) * 10
# Depth based on distance from center
# Water in deepest part, sand on banks
WorldEdit Expressions
//generate -h stone y<perlin(x/10,z/10,0)*5+64 # Noise terrain
//deform y+=sin(x/5)*3+sin(z/5)*3 # Sine wave hills
//generate stone (x*x+z*z)<radius^2 && y<sqrt(radius^2-x*x-z*z) # Dome
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.
- 9d ago First seen · 93 lines · 50 tokens per session scan A 36ca4b7ee2be
generating-terrain is a skill published in the GitHub repository amenti-labs/vibecraft (98 stars, last pushed 7mo ago), licensed MIT. It adds 50 tokens to every session and 1,024 once invoked, about $0.0003 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-30.
Other skills, from other repositories
gameobject-component-destroy
Destroy one or more Components from a target GameObject. Missing (null) components are skipped — they cannot be destroyed. Use 'gameobject-find' and 'gameobject-component-get' to identify the components first.
unity-version-split
Split a C# file into Unity 6.5+ and pre-Unity 6.5 variants. Use when a file needs different implementations for different Unity versions due to API changes (e.g., EntityId vs int, GetEntityId vs GetInstanceID).
unity-addressables
Manage Addressables groups, entries, profiles and content builds (com.unity.addressables, reflection-based).
motion
How an agent turns a character mesh into a usable animated FBX — and how to judge whether the result is shippable.
playtest-report
Generates a structured playtest report template or analyzes existing playtest notes into a structured format. Use this to standardize playtest feedback collection and analysis.
unity-manual-component
Manually add, configure, reorder, and copy components on GameObjects using Unity Editor UI. For one-off Inspector workflows that do not need REST automation.