Agent skill

Terrain Data

by kevinpbuckley in kevinpbuckley/VibeUE

Generate heightmaps, map reference images, and water feature splines (rivers, lakes, oceans) from real-world geographic data (terraindata tool).

MITAuto-check passedGame Development

Install Terrain Data

skills CLI
$ npx skills add kevinpbuckley/VibeUE --skill terrain-data -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install kevinpbuckley/VibeUE terrain-data --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/kevinpbuckley/VibeUE.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Content/Skills/terrain-data .claude/skills/terrain-data && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
terrain-data
GitHub stars
726
Token cost
~3.8k tokens
SKILL.md length
1,457 words
Files
1
Skills in repo
39
Repo updated
First seen
Licence
MIT

At a glance

Generate heightmaps, map reference images, and water feature splines (rivers, lakes, oceans) from real-world geographic data (terraindata tool).

  • Works in 4 steps: Preview elevation → Generate heightmap using suggested values → Get satellite reference image → …
  • The user asks to build terrain from a real location/coordinates
  • SKILL.md covers Workflow, Test Prompts, Step-by-Step Example (Mount… and Parameters Reference, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Terrain Data is an agent skill from kevinpbuckley/VibeUE. Generate heightmaps, map reference images, and water feature splines (rivers, lakes, oceans) from real-world geographic data (terraindata tool). Use when the user asks to build terrain from a real location/coordinates, download a real-world heightmap, or add rivers/lakes/oceans from map data. Downloads Mapbox tiles server-side and produces UE5-compatible heightmaps + landscape splines.

Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Game Development, covering Backend development. It works with Unreal Engine and Mapbox. The repository describes itself as: Unreal Engine Vibe Coding tool. The licence is MIT.

When your agent uses it

  • The user asks to build terrain from a real location/coordinates
  • Download a real-world heightmap
  • Add rivers/lakes/oceans from map data

Example prompts

  • “/terrain-data”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Preview elevation
  2. Generate heightmap using suggested values
  3. Get satellite reference image
  4. Import into UE5

What it can do on your machine

Read from SKILL.md and the folder at commit dc051be. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json and python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Terrain Data loads about 3.8k tokens when it runs. Until then it costs about 101 tokens; SKILL.md has 1,457 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~101
When it runs · the whole SKILL.md, loaded when a task matches
~3.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from kevinpbuckley/VibeUE at commit dc051be, republished under its MIT licence (© kevinpbuckley). 1,457 words, ~3,761 tokens.

Download SKILL.mdSave it as .claude/skills/terrain-data/SKILL.md (or your agent's skills folder).
name
terrain-data
description
Generate heightmaps, map reference images, and water feature splines (rivers, lakes, oceans) from real-world geographic data (terrain_data tool). Use when the user asks to build terrain from a real location/coordinates, download a real-world heightmap, or add rivers/lakes/oceans from map data. Downloads Mapbox tiles server-side and produces UE5-compatible heightmaps + landscape splines.
display_name
Real-World Terrain
keywords
terrain, heightmap, real world, real-world, elevation, topography, satellite, map image, cities skylines, mapbox, import heightmap, landscape import, mount…

🧠 Brains complement: IF an unreal-engine-skills-manager tool (external MCP) exists in this session, call it with {action: "load", skill: "landscape-and-foliage"} for UE domain knowledge on this topic — correct APIs, architecture, best practices — and treat it as the rubric for any review / "best practices" question. If no such tool is available (e.g. running under Claude Code or Codex without that MCP), skip this line entirely and proceed with this skill alone — do NOT attempt the call.

Real-World Terrain Skill

Generates heightmaps and water feature splines from real geographic coordinates via the terrain_data MCP tool. The tool downloads Mapbox tiles server-side and writes UE5-compatible heightmaps + landscape splines into the project's Saved/Terrain/ folder — no API key or chat configuration is required.

Workflow

Heightmap (always run first)
  1. preview_elevation — fetch elevation stats + suggested settings. Returns suggestedZScale, suggestedXYScales (resolution → XY scale), height range.
  2. generate_heightmap — generate the 16-bit PNG using suggested settings
  3. (optional) get_map_image — satellite/topo reference image for the same area
  4. attach_image — attach the satellite image so you can see the terrain colors and features for material/painting decisions
  5. Import into UE5 using the landscape skill

⚠️ CRITICAL — Landscape Scale: When creating the landscape, use suggestedXYScales[resolution] from step 1 as the X and Y scale. Do NOT use the default value of 100. Use suggestedZScale for the Z scale. Example: scale=unreal.Vector(suggestedXYScales["1009"], suggestedXYScales["1009"], suggestedZScale)

Water features (after heightmap is imported)
  1. get_water_features — fetch rivers, lakes, and oceans for the same lng/lat/map_size. Saves full JSON to Saved/Terrain/ and returns a compact summary with the file path.
  2. Read the saved JSON file: json_str = open(file_path).read()
  3. Water bodies use ue5_rings, waterways use ue5_points. Both are origin-centered.

Test Prompts

Create a landscape from the terrain around Mount Fuji
Generate a heightmap for San Francisco at coordinates -122.4194, 37.7749
Build a real-world landscape from the Swiss Alps near Zermatt (lng=7.7480, lat=46.0207)
Get the terrain around the Grand Canyon and make a landscape
Generate heightmap for Tokyo at 139.6917, 35.6895 with a satellite reference image

Step-by-Step Example (Mount Fuji)

Step 1 — Preview elevation
terrain_data(action="preview_elevation", lng=138.7274, lat=35.3606)

Response:

json
{
  "min_height": 340.0,
  "max_height": 3776.0,
  "height_range": 3436.0,
  "suggested_base_level": 340,
  "suggested_height_scale": 27,
  "suggestedZScale": 741,
  "suggestedXYScales": { "505": 3429, "1009": 1714, "2017": 857, "4033": 429, "8129": 213 },
  "tile_zoom": 13,
  "tile_count": 9
}

Use suggestedXYScales["1009"] (or whichever resolution you chose) as the X and Y scale when calling create_landscape. Use suggestedZScale for the Z scale.

Step 2 — Generate heightmap using suggested values
terrain_data(
  action="generate_heightmap",
  lng=138.7274, lat=35.3606,
  base_level=340,
  height_scale=27,
  format="png"
)

Response:

json
{
  "success": true,
  "file": "C:/Project/Saved/Terrain/heightmap_35.3606_138.7274.png",
  "min_height_m": 340.0,
  "max_height_m": 3776.0,
  "dimensions": "1081x1081"
}
Step 3 — Get satellite reference image
terrain_data(
  action="get_map_image",
  lng=138.7274, lat=35.3606,
  style="satellite-v9"
)

Response:

json
{
  "success": true,
  "file": "E:/Project/Saved/Terrain/map_satellite_v9_35.3606_138.7274.png",
  "style": "satellite-v9",
  "size_bytes": 1981147
}
Step 3b — Attach satellite image for vision analysis

⚠️ CRITICAL: After downloading a satellite image, ALWAYS attach it so you can see the terrain colors and features. This lets you make informed decisions about material layers and painting.

attach_image(file_path="E:/Project/Saved/Terrain/map_satellite_v9_35.3606_138.7274.png")

attach_image is a tool call (like terrain_data), NOT a Python function. Do NOT put it inside execute_python_code. Call it directly as a tool. If no attach_image tool is available in your session, skip this step and proceed using the saved file path returned by get_map_image.

After attaching, you will see the satellite image in your next response. Use it to:

  • Identify terrain features (rock, grassland, water, sand, forest, urban)
  • Choose appropriate material layer names and colors
  • Design accurate procedural painting rules (height/slope thresholds)
  • Match real-world color distribution to layer weights
Step 4 — Import into UE5

Use the landscape skill to import the heightmap file:

  • Component setup: QuadsPerSection=63, SectionsPerComponent=2, ComponentCount=8x8 → 1009×1009 resolution
  • X and Y scale: Use suggestedXYScales["1009"] from preview (e.g. 1714 for a 17.28km map). Do NOT use the default 100 — that makes the landscape ~17x too small!
  • Z scale: Use suggestedZScale from preview (e.g. 741 for Mount Fuji)
  • File: the .png path returned in step 2

Example:

python
result = unreal.LandscapeService.create_landscape(
    location=unreal.Vector(0, 0, 0),
    rotation=unreal.Rotator(0, 0, 0),
    scale=unreal.Vector(1714, 1714, 741),  # XY from suggestedXYScales["1009"], Z from suggestedZScale
    sections_per_component=2,
    quads_per_section=63,
    component_count_x=8,
    component_count_y=8,
    landscape_label="MyLandscape"
)

Parameters Reference

generate_heightmap
ParameterDefaultNotes
lng / latrequiredDecimal degrees. Positive = East/North
formatpngpng = 16-bit grayscale, raw = binary, zip = PNG + info
map_size17.28km — Cities: Skylines standard
base_level0Use suggested_base_level from preview
height_scale100Use suggested_height_scale from preview
water_depth40Cities: Skylines water units
gravity_center00=off, 2=N, 4=E, 6=S, 8=W (tilts terrain for water flow)
level_correction00=none, 2=flatten coastlines, 3=aggressive
blur_passes10Adjust per terrain character! 5–10=rugged, 15–25=hills, 25–40=smooth/flat. See Terrain Character Guide
plains_height140Meters — threshold between plains and mountains
save_pathautoSaves to <ProjectDir>/Saved/Terrain/ by default
get_map_image styles
StyleDescription
satellite-v9Aerial imagery (best for landscape texturing)
outdoors-v11Topo with trails and contours
streets-v11Street map
light-v10 / dark-v10Minimal

UE5 Landscape Import Settings

Valid Resolutions — Always Pass resolution=N

⚠️ Never use the default 1081×1081 for UE landscapes — it requires 36×36 components and will timeout. Always pass resolution= matching your landscape config.

resolution=ComponentsQuadsSectionskm at UE scale=100
5058×8631~0.5 km
10098×8632~1.0 km
100916×16631~1.0 km
201716×16632~2.0 km
403332×32632~4.0 km
812932×321272~8.1 km

"km at scale=100" is the UE world size when landscape XY scale = 100 cm/quad (default). Adjust scale to match real geography (see below).

Matching Real-World Scale

terrain_data's map_size (default: 17.28 km) controls the geographic area captured. To make the UE landscape match actual geography:

UE XY Scale (cm/quad) = (map_size_km × 100,000) / (resolution − 1)

Example: map_size=20, resolution=2017 → (20 × 100,000) / 2016 ≈ 992 cm/quad (~9.9 m/quad)

Set this as the landscape's X and Y scale when creating it.

Format and Z Scale
  • Format: 16-bit grayscale PNG
  • Z Scale: 20000 / height_scale cm — e.g., height_scale=27 → Z scale ≈ 741

⚠️ ALWAYS calculate Z Scale from height_scale. Do NOT guess. Use this formula when creating the landscape:

z_scale = 20000 / height_scale

Derivation: pixel encoding is pixel = elevation_m × heightScale × 64 / 100 and UE interprets height_cm = pixel × z_scale / 128. Setting height_cm = elevation_m × 100 (meters→cm) gives z_scale = 20000 / heightScale.

height_scaleZ ScaleTerrain Type Example
27741Tall mountains (Mt. Fuji, Alps)
50400Moderate mountains (Appalachians)
100200Hills, canyons (Grand Canyon)
150133Low hills, mesas
200100Gentle rolling terrain
25080Very flat terrain, gentle domes

For Cities: Skylines, export as PNG and import via the standard heightmap importer (1081 default is fine there).


Show full SKILL.md (571 more words)Show less

Terrain Character Guide

⚠️ CRITICAL: The suggested_height_scale from preview_elevation maximizes detail, but also amplifies noise. You MUST adjust blur_passes based on the terrain character.

Identifying Terrain Character

After preview_elevation, look at the height_range and think about what the terrain actually looks like:

height_rangesuggested_height_scaleTerrain Characterblur_passes
> 2000mLow (< 50)Rugged mountains — keep default blur5–10
500–2000mModerate (50–100)Mixed terrain — moderate smoothing10–15
100–500mHigh (100–200)Hills/mesas — needs more smoothing15–25
< 100mVery high (200–250)Flat/gentle — needs heavy smoothing25–40
Smooth vs Rugged Terrain

Smooth terrain (granite domes, rolling hills, plains, gentle slopes):

  • Use higher blur_passes (20–40) to remove data noise
  • The high height_scale amplifies every pixel of noise — smoothing counteracts this
  • Examples: Enchanted Rock, Uluru, sand dunes, prairies

Rugged terrain (jagged peaks, canyons, volcanic craters):

  • Use lower blur_passes (5–10) to preserve detail
  • Lower height_scale means less noise amplification, so less smoothing needed
  • Examples: Grand Canyon, Matterhorn, Iceland lava fields
Common Mistake: Jagged Smooth Terrain

If you get a terrain that looks jagged/spiky when the real place is smooth:

  1. The height_scale was too high without enough blur_passes
  2. Fix: Re-generate with blur_passes=30 or higher
  3. Also check: Z scale should be 20000 / height_scale, NOT an arbitrary value like 200

Water Features Reference

get_water_features

Fetches waterways and water bodies for a map area using the same Mapbox Vector Tile source as the heightmap. Use the exact same lng, lat, and map_size as your heightmap call.

terrain_data(action="get_water_features", lng=-105.0, lat=39.7, map_size=17.28)

Response includes:

  • file — path to the saved JSON file (e.g. Saved/Terrain/water_features_42.9720_-71.3480_10km.json)
  • num_waterways / num_water_bodies — counts
  • waterway_class_breakdown — object with class counts, e.g. {"stream": 191, "river": 26, "ditch": 12}
  • waterways[] — summary of each waterway: name, class, estimated_width_m, num_points
  • water_bodies[] — summary of each water body: name, class, num_ring_points
  • message — instructions on how to use the saved file, coordinate system info
  • ue5_coordinate_note — critical info about coordinate offset for water planes

The saved JSON file contains the full data with:

  • waterways[] — rivers, streams, canals. Each has name, class, estimated_width_m, points (lng/lat array), ue5_points (array of {x, y, z} objects in UE5 coords)
  • water_bodies[] — lakes, ponds, oceans. Each has name, class, rings (lng/lat array of arrays), ue5_rings (array of arrays of {x, y, z} objects in UE5 coords)

⚠️ CRITICAL FIELD NAMES:

  • Waterway positions: ue5_points (NOT points — those are lng/lat)
  • Water body polygons: ue5_rings (NOT polygon or ring)
  • Waterway type: class (NOT waterway_class or type)
Coordinate system

ue5_points and ue5_rings are landscape-center-relative (origin-centered):

  • Map geographic center = (0, 0, Z) in UE5 space
  • +X = East, +Y = North, 1 meter = 100 UU

Troubleshooting

IssueFix
429 rate limitThe Mapbox tile source is rate-limited — wait and retry, or reduce request frequency
Flat heightmapheight_range < 50m — use height_scale: 250 for detail
Clipped mountainsLower height_scale or increase base_level
Jagged/spiky terrainIncrease blur_passes (20–40 for smooth terrain) and check Z scale formula
Terrain doesn't match real placeCheck terrain character guide — smooth places need high blur_passes
TimeoutLarge map sizes at high zoom may hit Vercel's 10s limit — try smaller map_size
No waterways returnedArea may have no mapped water features (desert, urban grid) — check satellite image
Landscape too smallYou used XY scale=100 (default) instead of the correct value from suggestedXYScales. Recreate with the correct scale
Black screenshots after camera moveCamera inside terrain. Use ActorService.get_actor_view_camera() to frame from TOP view instead of guessing Z height
Water features timeoutPBF tile fetch uses 45s timeout — large map_size at high zoom may still be slow
Field name errorsUse ue5_points (not points), ue5_rings (not polygon), class (not waterway_class)

© kevinpbuckley, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in Content/Skills/terrain-data of kevinpbuckley/VibeUE.

Open the folder on GitHubat commit dc051be

Compare with similar skills

Terrain Data next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Terrain Data compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Terrain Data this skillkevinpbuckley/VibeUE726—~3.8kAutomated safety check: PassMIT
Extraction TimingThibautBaissac/rails_ai_agents665—~1.2kAutomated safety check: PassMIT
Ue Specifiersfjz13/UnrealSpecifiers1.1k—~1.4kAutomated safety check: PassCustom licence
Antv L7antvis/L74.1k—~4.4kAutomated safety check: PassMIT
Unreal BridgeTornLux/UnrealBridge305—~8.4kAutomated safety check: NotesMIT
Unreal Blueprint Authoringflopperam/unreal-engine-mcp1.1k—~1.6kAutomated safety check: PassNone

Similar skills

  • Extraction Timing

    ThibautBaissac/rails_ai_agents

    Guides decisions about when and how to extract code into services, queries, concerns, form objects, or other patterns.

    665 GitHub stars~1.2k tokensUpdated 4 mo ago
    Game DevelopmentAuto-check passed
  • Ue Specifiers

    fjz13/UnrealSpecifiers

    A skill your agent uses when writing, editing, reviewing, validating, or explaining Unreal Engine C++ reflected declarations: UCLASS, USTRUCT, UENUM, UINTERFACE, UPROPERTY, UFUNCTION, UPARAM, UMETA…

    1.1k GitHub stars~1.4k tokensUpdated 4 mo ago
    Game DevelopmentAuto-check passed
  • Antv L7

    antvis/L7

    基于 WebGL 的大规模地理空间数据可视化引擎。适用于: (1) 创建交互式 WebGL 地图应用 (2) 可视化地理空间数据(点、线、面、热力图) (3) 构建位置数据驾驶舱 (4) 添加地图图层、交互和动画效果 (5) 处理并展示 GeoJSON、CSV 等空间数据

    4.1k GitHub stars~4.4k tokensUpdated 1 mo ago
    Game DevelopmentAuto-check passed
  • Unreal Bridge

    TornLux/UnrealBridge

    Execute Python scripts inside a running Unreal Engine 5.3+ editor via TCP bridge.

    305 GitHub stars~8.4k tokensUpdated 9 days ago
    Game DevelopmentAuto-check: notes
  • Unreal Blueprint Authoring

    flopperam/unreal-engine-mcp

    Walks an agent through creating and editing Unreal Engine Blueprints with the Flopperam MCP's bp_* tools, from inspection to commit and verification.

    1.1k GitHub stars~1.6k tokensUpdated 3 mo ago
    Game DevelopmentAuto-check passed
  • Unreal Material and VFX Workflow

    flopperam/unreal-engine-mcp

    Walks an Unreal Engine MCP agent through building materials, Niagara particle systems, Chaos destruction, and curve assets with inspect-then-edit steps.

    1.1k GitHub stars~927 tokensUpdated 3 mo ago
    Game DevelopmentAuto-check passed

More from kevinpbuckley/VibeUE

All 39 skills in this repo
  • Unreal Animation Bone Editor

    kevinpbuckley/VibeUE

    Previews, validates and bakes bone-rotation edits on Unreal Engine AnimSequences, enforcing a coordinate space and a constraint-checked preview-validate-bake loop.

    726 GitHub stars~1.3k tokensUpdated 2 days ago
    Auto-check passed
  • Unreal Animation Montage

    kevinpbuckley/VibeUE

    Creates and edits Unreal Engine Animation Montages through AnimMontageService: sections, slots, segments, branching points, notifies and blend settings.

    726 GitHub stars~3.6k tokensUpdated 2 days ago
    Auto-check passed
  • Unreal AnimSequence Editor

    kevinpbuckley/VibeUE

    Creates and edits AnimSequence keyframes and bone tracks in Unreal Engine through AnimSequenceService, following an inspect, preview, validate and bake workflow with correct bone-space handling.

    726 GitHub stars~3.2k tokensUpdated 2 days ago
    Auto-check passed
  • Unreal Asset Import and Export

    kevinpbuckley/VibeUE

    Imports files into Unreal Engine, exports textures, reads the Content Browser selection and checks open assets via VibeUE, plus mesh reimport material fixes.

    726 GitHub stars~6.5k tokensUpdated 2 days ago
    Auto-check passed
  • Unreal Engine Settings Control

    kevinpbuckley/VibeUE

    Changes Unreal Engine console variables, scalability levels and raw INI values through VibeUE's Python API, now that registered settings moved to the engine's own toolset.

    726 GitHub stars~1.3k tokensUpdated 2 days ago
    Auto-check passed
  • Unreal Enhanced Input Setup

    kevinpbuckley/VibeUE

    Creates and wires Unreal Engine Enhanced Input assets through VibeUE's InputService: Input Actions, Mapping Contexts, key bindings, triggers and modifiers.

    726 GitHub stars~2.4k tokensUpdated 2 days ago
    Auto-check passed

Questions about Terrain Data

What does Terrain Data do?

Generate heightmaps, map reference images, and water feature splines (rivers, lakes, oceans) from real-world geographic data (terraindata tool). Terrain Data is an agent skill from kevinpbuckley/VibeUE. Generate heightmaps, map reference images, and water feature splines (rivers, lakes, oceans) from real-world geographic data (terraindata tool).

When should I use Terrain Data?

Terrain Data fits situations like: the user asks to build terrain from a real location/coordinates; download a real-world heightmap; add rivers/lakes/oceans from map data.

How do I install Terrain Data in Claude Code?

Run `npx skills add kevinpbuckley/VibeUE --skill terrain-data -a claude-code`. Or copy the skill folder (Content/Skills/terrain-data in kevinpbuckley/VibeUE) into .claude/skills/terrain-data in your project. Claude Code loads it when a task matches its description.

How do I install Terrain Data in Codex?

Run `npx skills add kevinpbuckley/VibeUE --skill terrain-data -a codex`. Or copy the skill folder (Content/Skills/terrain-data in kevinpbuckley/VibeUE) into .agents/skills/terrain-data in your project. Codex loads it when a task matches its description.

Can I use Terrain Data in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kevinpbuckley/VibeUE --skill terrain-data -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/terrain-data, .gemini/skills/terrain-data, .github/skills/terrain-data and .opencode/skills/terrain-data in your project.

What does Terrain Data need to run?

SKILL.md names no scripts, command-line tools or credentials: Terrain Data is instructions for the agent only. Our summary lists: Python 3.

Does Terrain Data access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Terrain Data safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Terrain Data use?

Terrain Data is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Terrain Data use?

About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Terrain Data?

Skills that share tags, products or a category with Terrain Data: Extraction Timing (ThibautBaissac/rails_ai_agents, 665 stars), Ue Specifiers (fjz13/UnrealSpecifiers, 1.1k stars), Antv L7 (antvis/L7, 4.1k stars) and Unreal Bridge (TornLux/UnrealBridge, 305 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Terrain Data?

kevinpbuckley (a GitHub user) maintains it in kevinpbuckley/VibeUE, which has 726 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on October 7, 2026.

Source: kevinpbuckley/VibeUE on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.