.squad/skills/minecraft-block-facing/SKILL.md
Correctly place directional blocks (doors, levers, torches, signs, banners, stairs) in Minecraft via RCON
npx skillsauth add csharpfritz/aspire-minecraft minecraft-block-facingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
When placing wall-mounted blocks (levers, torches, ladders, signs, wall banners) in Minecraft via RCON setblock commands, the facing property determines both the visual direction and which adjacent block provides structural support. Getting this wrong causes blocks to float or immediately pop off.
facing=X means the item visually extends/points in direction X.facing.Direction reference (Minecraft coordinates):
For a lever on a building's south-facing front wall (wall at Z-min side):
wallZ - 1 (one block in front of the wall)facing=north (lever extends toward camera/player)(wallZ - 1) + 1 = wallZ (the wall itself)// Lever on front wall (Z-min side), one block in front of wall face
var leverZ = door.FaceZ - 1;
await rcon.SendCommandAsync(
$"setblock {x} {y} {leverZ} minecraft:lever[face=wall,facing=north,powered=false]");
// Support block is at leverZ + 1 = door.FaceZ (the wall)
// Wall banner on east wall (X-max side)
var bannerX = wallX + 1;
await rcon.SendCommandAsync(
$"setblock {bannerX} {y} {z} minecraft:purple_wall_banner[facing=east]");
// Support block at bannerX - 1 = wallX (the wall)
facing=south when the wall is to the south — support would be to the north (away from wall), causing the item to float.facing with "the direction the wall is in" — facing is the direction the item EXTENDS, not where the wall is.A door's facing property indicates where the FRONT face of the door points. For an entrance on a building wall, the door's front face should point into the building (toward the interior).
facing=south — front face points south (into the building)facing=north — front face points north (into the building)facing=east — front face points east (into the building)facing=west — front face points west (into the building)Wall signs near doors follow the same convention: facing points toward the viewer (into the room for interior signs).
// Door on south wall (max-Z), entrance facing into the building
await rcon.SendCommandAsync(
$"setblock {midX} {y + 1} {z2} minecraft:oak_door[facing=north,half=lower,hinge=left]");
await rcon.SendCommandAsync(
$"setblock {midX} {y + 2} {z2} minecraft:oak_door[facing=north,half=upper,hinge=left]");
// Interior welcome sign above the south-wall entrance (one block inside)
await rcon.SendCommandAsync(
$"setblock {midX} {y + 4} {z2 - 1} minecraft:oak_wall_sign[facing=north]");
Stairs have a facing property that controls the ascent direction. facing=X means the stair's full-block back faces direction X, and the step opens in the opposite direction.
For a south-to-north ramp (player walks toward +Z and goes up):
facing=north — back faces north, step faces south, player steps up walking northFor a north-to-south ramp (player walks toward -Z and goes up):
facing=south — back faces south, step faces north, player steps up walking south// South approach ramp — player walks north (+Z) and ascends
await rcon.SendCommandAsync(
$"fill {x1} {y} {z} {x2} {y} {z} minecraft:stone_brick_stairs[facing=north,half=bottom]");
// North exit ramp — symmetric descent (also works as approach from north)
await rcon.SendCommandAsync(
$"fill {x1} {y} {z} {x2} {y} {z} minecraft:stone_brick_stairs[facing=south,half=bottom]");
tools
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
tools
Techniques for visually connecting water bodies (canals, lakes, rivers) in Minecraft
development
# Static Configuration Pattern **Confidence:** low **Source:** earned ## When to Use When a class has compile-time constants (`const`) that need to become runtime-configurable without breaking existing consumers. ## Pattern 1. Convert `const` fields to `static T { get; private set; } = <original value>`. 2. Add a public `Configure*()` method that sets the new values. Call once at startup. 3. Add an `internal static Reset*()` method that restores defaults — needed for test isolation since `p
development
Core conventions and patterns used in the Squad codebase