agentleFS
batihandevbatihandev/unity-mcp-skills/skills/terrain/SKILL.md

unity-terrain

Skill7 starsChanged 7 months agoMITView on GitHub

Use when users want to create terrain, set heights, paint textures, or add trees.

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Create a new Terrain GameObject with TerrainData asset.

    line 45

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Unity Terrain Skills

Overview

Note: Terrain operations require an existing Terrain in the scene, or use terrain_create to generate one.

Common Mistakes

DO NOT (common hallucinations):

  • terrain_set_texture does not exist → use terrain_paint_texture with layer index and brush parameters
  • terrain_add_tree / terrain_add_grass do not exist → these require Unity Terrain tools or custom scripts
  • terrain_set_size does not exist → terrain dimensions are set at creation via terrain_create
  • terrain_import_heightmap / terrain_set_heights do not exist → use terrain_set_heights_batch with a 2D heights array ([z][x] values 0-1)

Routing:

  • For terrain material → use material module on terrain's material
  • For objects on terrain → use gameobject module to create/place objects

Skills Overview

SkillDescription
terrain_createCreate new Terrain with TerrainData
terrain_get_infoGet terrain size, resolution, layers
terrain_get_heightGet height at world position
terrain_set_heightSet height at normalized coords
terrain_set_heights_batchBatch set heights in region
terrain_add_hill⭐ Add smooth hill with radius and falloff
terrain_generate_perlin⭐ Generate natural terrain using Perlin noise
terrain_smooth⭐ Smooth terrain to reduce sharp edges
terrain_flatten⭐ Flatten terrain to target height
terrain_paint_texturePaint texture layer at position

Skills

terrain_create

Create a new Terrain GameObject with TerrainData asset.

ParameterTypeRequiredDefaultDescription
namestringNo"Terrain"Terrain name
widthintNo500Terrain width (X)
lengthintNo500Terrain length (Z)
heightintNo100Max terrain height (Y)
heightmapResolutionintNo513Heightmap resolution (power of 2 + 1)
x, y, zfloatNo0Position

Returns: {success, name, instanceId, terrainDataPath, size, position}

terrain_get_info

Get terrain information.

ParameterTypeRequiredDescription
namestringNo*Terrain name
instanceIdintNo*Instance ID

*If neither provided, uses first terrain in scene

Returns: {success, name, size, heightmapResolution, alphamapResolution, terrainLayerCount, layers}

terrain_get_height

Get terrain height at world position.

ParameterTypeRequiredDescription
worldXfloatYesWorld X coordinate
worldZfloatYesWorld Z coordinate
namestringNoTerrain name

Returns: {success, worldX, worldZ, height, worldY}

terrain_set_height

Set height at normalized coordinates.

ParameterTypeRequiredDescription
normalizedXfloatYesX position (0-1)
normalizedZfloatYesZ position (0-1)
heightfloatYesHeight value (0-1)
namestringNoTerrain name

Returns: {success, normalizedX, normalizedZ, height, pixelX, pixelZ}

terrain_set_heights_batch

⚠️ BATCH SKILL: Set heights in rectangular region.

ParameterTypeRequiredDescription
startXintYesStart X pixel index
startZintYesStart Z pixel index
heightsfloat[][]Yes2D array [z][x] with values 0-1
namestringNoTerrain name

Returns: {success, startX, startZ, modifiedWidth, modifiedLength, totalPointsModified}

See ../../recipes/terrain/<command>.md for C# templates.

terrain_add_hill

⭐ RECOMMENDED: Add a smooth, natural-looking hill to the terrain.

ParameterTypeRequiredDefaultDescription
normalizedXfloatYes-X position (0-1)
normalizedZfloatYes-Z position (0-1)
radiusfloatNo0.2Hill radius (0-1, relative to terrain size)
heightfloatNo0.5Hill height (0-1)
smoothnessfloatNo1.0Smoothness factor (higher = smoother)
namestringNonullTerrain name

Returns: {success, centerX, centerZ, radius, height, affectedArea}

See ../../recipes/terrain/<command>.md for C# templates.

terrain_generate_perlin

⭐ RECOMMENDED: Generate natural-looking terrain using Perlin noise algorithm.

ParameterTypeRequiredDefaultDescription
scalefloatNo20.0Noise scale (lower = larger features)
heightMultiplierfloatNo0.3Height intensity (0-1)
octavesintNo4Detail layers (more = more detail)
persistencefloatNo0.5Amplitude decrease per octave
lacunarityfloatNo2.0Frequency increase per octave
seedintNo0Random seed (0 = random)
namestringNonullTerrain name

Returns: {success, resolution, scale, heightMultiplier, octaves, persistence, lacunarity, seed}

See ../../recipes/terrain/<command>.md for C# templates.

terrain_smooth

⭐ Smooth terrain heights to reduce sharp edges and create natural transitions.

ParameterTypeRequiredDefaultDescription
normalizedXfloatYes-X position (0-1)
normalizedZfloatYes-Z position (0-1)
radiusfloatNo0.1Smoothing radius (0-1)
iterationsintNo1Number of smoothing passes
namestringNonullTerrain name

Returns: {success, centerX, centerZ, radius, iterations, affectedArea}

See ../../recipes/terrain/<command>.md for C# templates.

terrain_flatten

⭐ Flatten terrain to a specific height in a region.

ParameterTypeRequiredDefaultDescription
normalizedXfloatYes-X position (0-1)
normalizedZfloatYes-Z position (0-1)
targetHeightfloatNo0.5Target height (0-1)
radiusfloatNo0.1Flatten radius (0-1)
strengthfloatNo1.0Flatten strength (0-1)
namestringNonullTerrain name

Returns: {success, centerX, centerZ, targetHeight, radius, strength}

See ../../recipes/terrain/<command>.md for C# templates.

terrain_paint_texture

Paint terrain texture layer. Requires terrain layers already configured.

ParameterTypeRequiredDefaultDescription
normalizedXfloatYes-X position (0-1)
normalizedZfloatYes-Z position (0-1)
layerIndexintYes-Terrain layer index (0-based; use terrain_get_info to query available layers)
strengthfloatNo1.0Paint strength
brushSizeintNo10Brush size in pixels
namestringNonullTerrain name

Returns: {success, layerIndex, layerName, centerX, centerZ}


Example Usage

See ../../recipes/terrain/<command>.md for C# templates.

Recipe path rule: ../../recipes/terrain/<command>.md


Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.