Install any skill in seconds. Free to start, no credit card required.
Get Started Free →jame581/procedural-generation
Use when implementing procedural generation — noise-based terrain, BSP dungeons, cellular automata caves, wave function collapse, and seeded randomness in Godot 4.3+
Passed 23 of 23 test cases with the skill, and 19 of 23 without it.
and 2 more in the full report
4 fixed19 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
Write a GDScript script for Godot 4.3 that generates organic cave layouts on a grid using cellular automata. The script should populate an initial grid with random wall and floor cells and apply iterative neighbor-smoothing rules to shape natural cavern structures.
| Checked | Without skill | With skill |
|---|---|---|
| Uses a RandomNumberGenerator instance for random fills instead of global randf or randomize | Missed | Passed |
| Applies neighbor-smoothing threshold checking for 5 or more neighbor walls | Passed | Passed |
The instructions your model reads when the skill loads.
All examples target Godot 4.3+ with no deprecated APIs. GDScript is shown first, then C#.
Related skills: 2d-essentials for TileMapLayer usage, 3d-essentials for 3D terrain meshes, math-essentials for vectors and transforms, godot-optimization for chunk loading and performance.
Always use seeds for reproducible generation. This enables shareable seeds, replay, and deterministic testing.
# RandomNumberGenerator — per-instance, seedable
var rng := RandomNumberGenerator.new()
func generate_level(level_seed: int) -> void:
rng.seed = level_seed
var width: int = rng.randi_range(20, 40)
var height: int = rng.randi_range(15, 30)
var enemy_count: int = rng.randi_range(3, 8)
var treasure_chance: float = rng.randf_range(0.05, 0.15)
# AVOID: Global randf()/randi() — not reproducible across calls
# USE: rng.randf(), rng.randi(), rng.randf_range(), rng.randi_range()
private RandomNumberGenerator _rng = new();
public void GenerateLevel(ulong levelSeed)
{
_rng.Seed = levelSeed;
int width = _rng.RandiRange(20, 40);
test cases passed, vs 19 / 23 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.