Agent skill

Landscape Auto Material

by kevinpbuckley in kevinpbuckley/VibeUE

Create production-quality landscape materials with the master-material + material-function + material-instance paradigm, RVT, and auto-layering.

MITAuto-check passedGame Development

Install Landscape Auto Material

skills CLI
$ npx skills add kevinpbuckley/VibeUE --skill landscape-auto-material -a claude-code

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

GitHub CLI
$ gh skill install kevinpbuckley/VibeUE landscape-auto-material --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/landscape-auto-material .claude/skills/landscape-auto-material && 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
landscape-auto-material
GitHub stars
730
Token cost
~2.4k tokens
SKILL.md length
749 words
Files
8
Skills in repo
39
Repo updated
First seen
Licence
MIT

At a glance

Create production-quality landscape materials with the master-material + material-function + material-instance paradigm, RVT, and auto-layering.

  • Works in 11 steps: Forgetting bUsedWithVirtualTexturing → No RVT Volume Actor → RVT MaterialType Mismatch → …
  • The user asks for an auto/procedural landscape material
  • SKILL.md covers When to Use This Skill, Architecture Overview, Critical Rules and Sub-docs available, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Landscape Auto Material is an agent skill from kevinpbuckley/VibeUE. Create production-quality landscape materials with the master-material + material-function + material-instance paradigm, RVT, and auto-layering. Use when the user asks for an auto/procedural landscape material, slope/altitude/distance-based layer blending, Runtime Virtual Textures, biome configuration via instances, or layer material functions. For basic layer-blend materials load landscape-materials.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files (for example `architecture-details.md`, `biomes-and-templates.md` and `material-functions.md`).

It sits in Game Development. The repository describes itself as: Unreal Engine Vibe Coding tool. The licence is MIT.

When your agent uses it

  • The user asks for an auto/procedural landscape material
  • Slope/altitude/distance-based layer blending
  • Runtime Virtual Textures
  • Biome configuration via instances

Example prompts

  • “/landscape-auto-material”

Requirements

  • Python 3

Workflow steps

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

  1. Forgetting bUsedWithVirtualTexturing
  2. No RVT Volume Actor
  3. RVT MaterialType Mismatch
  4. Not Saving Functions Before Referencing
  5. Missing bExposeToLibrary
  6. Compiling in Same Block as Creation
  7. Wrong Bulk Parameter Types
  8. Static Switch Parameters Need UpdateStaticPermutation
  9. Auto Layer Has Zero Weights
  10. Layer Info/Material Family Mismatch
  11. RVT Volume Missing or Mis-sized

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 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

Landscape Auto Material loads about 2.4k tokens when it runs. Until then it costs about 107 tokens; SKILL.md has 749 words of instructions outside code blocks.

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

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). 749 words, ~2,448 tokens.

Download SKILL.mdSave it as .claude/skills/landscape-auto-material/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
landscape-auto-material
description
Create production-quality landscape materials with the master-material + material-function + material-instance paradigm, RVT, and auto-layering. Use when the user asks for an auto/procedural landscape material, slope/altitude/distance-based layer blending, Runtime Virtual Textures, biome configuration via instances, or layer material functions. For basic layer-blend materials load landscape-materials.
display_name
Landscape Auto-Material System
vibeue_classes
MaterialService, MaterialNodeService, LandscapeMaterialService, RuntimeVirtualTextureService
unreal_classes
MaterialExpressionMaterialFunctionCall, MaterialExpressionRuntimeVirtualTextureOutput, MaterialExpressionRuntimeVirtualTextureSample, RuntimeVirtualTexture…
keywords
auto material, auto layer, master material, material function, material instance, runtime virtual texture, RVT, altitude blend, slope blend, distance blend…

Landscape Auto-Material System Skill

When to Use This Skill

Use this skill when you need production-quality landscape materials with:

  • A master material → material instance workflow (artists change parameters, not graphs)
  • Automatic layer blending by slope, altitude, or distance
  • Material functions for reusable logic (layer sampling, color correction, etc.)
  • Runtime Virtual Textures for scalable landscape rendering
  • Biome configuration through material instances (swap textures/thresholds, same master)

For simple prototyping with 2-5 painted layers, load the landscape-materials skill instead (the engine's AgentSkillToolset GetSkills exposes it).

Architecture Overview

The Master Material Paradigm
Master Material (M_Landscape_Master)
 ├── Material Functions (reusable logic blocks)
 │   ├── MF_AutoLayer     ── auto-selects layers by altitude/slope
 │   ├── MF_Slope_Blend   ── slope mask (0=flat, 1=steep)
 │   ├── MF_Altitude_Blend ── height mask (0=below, 1=above)
 │   ├── MF_Layer_Grass    ── per-layer texture sampling
 │   ├── MF_Layer_Rock     ── per-layer texture sampling
 │   ├── MF_RVT            ── Runtime Virtual Texture output
 │   └── MF_Distance_Blend ── LOD transitions
 ├── Exposed Parameters (50+ scalar/vector/texture/switch)
 └── Material Outputs (BaseColor, Normal, Roughness, WPO, RVT)

Material Instance (MI_Landscape_Biome_01)
 ├── Inherits master material graph
 ├── Overrides parameters only (no graph editing)
 └── Different biomes = different instances of same master

Why this is better than manual graph building:

  • Reusability: Material functions used across multiple masters
  • Artist-friendly: Biome artists edit parameters in instances, never touch the graph
  • Performance: Compiled once in master, instances are cheap
  • Maintainability: Fix a function → all materials using it update

Critical Rules

🚨 Inspect Before Modifying Existing Materials or Functions

Before modifying an existing master material or material function, MUST export and review its current state:

python
import unreal, json

# For materials:
graph = json.loads(unreal.MaterialNodeService.export_material_graph("/Game/Materials/M_Landscape_Master"))
print(f"Expressions: {len(graph['expressions'])}, Connections: {len(graph['connections'])}")
for expr in graph['expressions']:
    name = expr.get('parameter_name') or expr.get('function_path') or expr.get('class')
    print(f"  [{expr['id']}] {expr['class']} - {name}")

# For material functions:
func_info = unreal.MaterialNodeService.get_function_info("/Game/Functions/MF_AutoLayer")
func_graph = json.loads(unreal.MaterialNodeService.export_function_graph("/Game/Functions/MF_AutoLayer"))

Why: Auto-material master graphs can have 50+ expressions and complex function call chains. Adding nodes without reviewing first creates duplicates, broken connections, and compilation failures. Always export → review → plan → modify.

Four Services Work Together
ServiceRole
MaterialNodeServiceMaterial function creation/introspection, expression graphs
MaterialServiceMaterial/instance creation, properties, bulk parameters
LandscapeMaterialServiceCreateAutoMaterial, FindLandscapeTextures, layer infos
RuntimeVirtualTextureServiceRVT assets, volumes, landscape assignment
⚠️ compile_material Is Slow — Use Separate Code Blocks

Master materials with many function calls are very slow to compile. NEVER create + compile in the same block.

Split into steps:

  1. Block 1: Create material, add functions, connect graph, save
  2. Block 2: compile_material() alone (may take minutes)
  3. Block 3: Create instances, set parameters, assign to landscape
⚠️ Enable Virtual Texturing on Material

If using RVT, you MUST set bUsedWithVirtualTexturing = true on the master material:

python
unreal.MaterialService.set_property(mat_path, "bUsedWithVirtualTexturing", "true")
⚠️ Material Functions Must Be Saved Before Use

After creating a material function and adding inputs/outputs, save it before calling it from a material:

python
unreal.EditorAssetLibrary.save_asset(func_path)
⚠️ Function Inputs/Outputs Need Sort Priority

Set SortPriority to control pin ordering. Lower values appear first:

python
unreal.MaterialNodeService.add_function_input(func_path, "BaseColor", "Vector3", 0)
unreal.MaterialNodeService.add_function_input(func_path, "Normal", "Vector3", 1)
unreal.MaterialNodeService.add_function_input(func_path, "Roughness", "Scalar", 2)

Sub-docs available

Read these sibling files directly (the engine AgentSkillToolset GetSkills is the loader; this SKILL.md is the index, the deeper docs live alongside it):

Sub-docWhat's inside
reference-example.mdConcrete reference architecture: full master material function chain, biome instances, texture naming convention
workflows.mdStep-by-step recipes: auto-material creation, biome instances, building/inspecting material functions, RVT setup
material-functions.mdPatterns for common material functions (Slope_Blend, Altitude_Blend, Layer_*, RVT) + EFunctionInputType reference table
architecture-details.mdDeep dive on the auto-layer function chain, mask combination math, slope/altitude function creation, extension points
biomes-and-templates.mdBiome comparison table, static-switch feature toggles, naming conventions, standard layer function template (inputs/outputs/catalog)
parameter-reference.mdFull parameter catalog: layer textures, auto-blend, distance/LOD, color correction, feature toggles, displacement, RVT, FindLandscapeTextures suffix matching
rvt-setup.mdRVT material types, sizing guidelines, inspection code, common RVT issues with causes/fixes

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

Common Mistakes

1. Forgetting bUsedWithVirtualTexturing

Material has RVT output node but rendering fails → set the property before compiling.

2. No RVT Volume Actor

Material outputs to RVT but nothing reads it → create RuntimeVirtualTextureVolume covering the landscape.

3. RVT MaterialType Mismatch

Volume expects BaseColor_Normal_Roughness but material only outputs BaseColor → types must match.

4. Not Saving Functions Before Referencing

Create function → immediately create function call → fails because function not saved. Always save_asset() the function first.

5. Missing bExposeToLibrary

Material function created but doesn't appear in the material editor's function library → set bExposeToLibrary=True.

6. Compiling in Same Block as Creation

Master materials with many function calls take minutes to compile. Putting create + compile in one code block causes timeout.

7. Wrong Bulk Parameter Types

set_instance_parameters_bulk requires exact type strings: "Scalar", "Vector", "Texture", "StaticSwitch". Typos silently skip parameters.

8. Static Switch Parameters Need UpdateStaticPermutation

Static switches are compile-time. After setting via bulk set, the instance needs a static permutation update (handled internally by set_instance_parameters_bulk).

9. Auto Layer Has Zero Weights

Landscape looks unpainted or auto-blend never appears when all layer weights are 0. Verify with get_weights_in_region and fill/paint the base auto layer at least once.

10. Layer Info/Material Family Mismatch

If a landscape is switched to a different master/instance family, existing Layer Info assets may not match expected layer names/workflow. Recreate layer infos from the active material's layer list and reassign them.

11. RVT Volume Missing or Mis-sized

RVT asset assignment alone is not enough. Ensure each landscape has an RVT volume covering its bounds; recreate volume per landscape after major transform/scale changes.


TaskSkills to Load
Sculpt terrain onlylandscape
Simple painted material (2-5 layers)landscape + landscape-materials
Auto-blending material (production)landscape + landscape-auto-material
Material instances/biome configurationlandscape-auto-material
Material functions (non-landscape)materials
Full pipeline (terrain + auto-material + RVT)landscape + landscape-auto-material

© 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

SKILL.md and 7 other files in Content/Skills/landscape-auto-material of kevinpbuckley/VibeUE.

  • SKILL.md
  • architecture-details.md
  • biomes-and-templates.md
  • material-functions.md
  • parameter-reference.md
  • reference-example.md
  • rvt-setup.md
  • workflows.md

Open the folder on GitHubat commit dc051be

Compare with similar skills

Landscape Auto Material 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.

Landscape Auto Material compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Landscape Auto Material this skillkevinpbuckley/VibeUE730—~2.4kAutomated safety check: PassMIT
Image to Three.js Modelimg2threejs/img2threejs18k1 repos~8.2kAutomated safety check: PassApache-2.0
Web CloneJane-xiaoer/claude-skill-web-clone1k1 repos~2.7kAutomated safety check: PassMIT
Threejs Game Directormajidmanzarpour/threejs-game-skills2.5k—~2.2kAutomated safety check: PassMIT
Game Asset Generatorhtdt/godogen7.1k—~2.8kAutomated safety check: PassMIT
Threejs Gameplay Systemsvalkor-ai/loom1.2k1 repos~1.4kAutomated safety check: PassApache-2.0

Similar skills

  • Image to Three.js Model

    img2threejs/img2threejs

    Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.

    18k GitHub starsUsed in 1 repo~8.2k tokens
    Game DevelopmentAuto-check passed
  • Web Clone

    Jane-xiaoer/claude-skill-web-clone

    网站复刻 / 克隆方法论。USE WHEN 用户说 复刻网站、克隆网站、clone website、抄个站、仿站、 照着这个站做一个、reproduce site、还原某个网页效果、把这个站搬下来改成我的、 复刻某个交互/WebGL/Canvas/Three.js 效果。提供「先拿真源码 → 判路径 → 逆向拆解 → 搭工程 → 替换内容」的可移植决策树,覆盖静态站 /…

    1k GitHub starsUsed in 1 repo~2.7k tokens
    Game DevelopmentAuto-check passed
  • Threejs Game Director

    majidmanzarpour/threejs-game-skills

    Entrypoint for building, upgrading, and finishing Three.js browser games.

    2.5k GitHub stars~2.2k tokensUpdated 13 days ago
    Game DevelopmentAuto-check passed
  • Generates game art from text prompts: PNG images, GLB 3D models, rigged characters, animations and sprites, with background removal.

    7.1k GitHub stars~2.8k tokensUpdated 9 days ago
    Game DevelopmentAuto-check passed
  • Build and iterate playable Three.js game systems: starter scaffold, architecture, design briefs, core loops, level and encounter design, entities, input, camera, collision and physics, scoring…

    1.2k GitHub starsUsed in 1 repo~1.4k tokens
    Game DevelopmentAuto-check passed
  • Uloop Execute Dynamic Code

    CyberAgentGameEntertainment/NovaShader

    Execute C with Unity APIs when existing uloop tools cannot inspect or edit enough.

    1.6k GitHub starsUsed in 1 repo~1.9k tokens
    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.

    730 GitHub stars~1.3k tokensUpdated 3 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.

    730 GitHub stars~3.6k tokensUpdated 3 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.

    730 GitHub stars~3.2k tokensUpdated 3 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.

    730 GitHub stars~6.5k tokensUpdated 3 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.

    730 GitHub stars~1.3k tokensUpdated 3 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.

    730 GitHub stars~2.4k tokensUpdated 3 days ago
    Auto-check passed

Questions about Landscape Auto Material

What does Landscape Auto Material do?

Create production-quality landscape materials with the master-material + material-function + material-instance paradigm, RVT, and auto-layering. Landscape Auto Material is an agent skill from kevinpbuckley/VibeUE. Create production-quality landscape materials with the master-material + material-function + material-instance paradigm, RVT, and auto-layering.

When should I use Landscape Auto Material?

Landscape Auto Material fits situations like: the user asks for an auto/procedural landscape material; slope/altitude/distance-based layer blending; runtime Virtual Textures; biome configuration via instances.

How do I install Landscape Auto Material in Claude Code?

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

How do I install Landscape Auto Material in Codex?

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

Can I use Landscape Auto Material 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 landscape-auto-material -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/landscape-auto-material, .gemini/skills/landscape-auto-material, .github/skills/landscape-auto-material and .opencode/skills/landscape-auto-material in your project.

What does Landscape Auto Material need to run?

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

Does Landscape Auto Material 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 Landscape Auto Material 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 Landscape Auto Material use?

Landscape Auto Material 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 Landscape Auto Material use?

About 2.4k tokens (SKILL.md is roughly 9.8k 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 Landscape Auto Material?

Skills that share tags, products or a category with Landscape Auto Material: Image to Three.js Model (img2threejs/img2threejs, 18k stars), Web Clone (Jane-xiaoer/claude-skill-web-clone, 1k stars), Threejs Game Director (majidmanzarpour/threejs-game-skills, 2.5k stars) and Game Asset Generator (htdt/godogen, 7.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Landscape Auto Material?

kevinpbuckley (a GitHub user) maintains it in kevinpbuckley/VibeUE, which has 730 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.