用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/csharpfritz/Aspire-Minecraft --skill minecraft-forceload命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
How to create reference documentation for complex coordinate systems and building constraints
Manage Azure DevOps resources via CLI including projects, repos, pipelines, builds, pull requests, work items, artifacts, and service endpoints. Use when working with Azure DevOps, az commands, devops automation, CI/CD, or when user mentions Azure DevOps CLI.
Prevents subsystems from modifying blocks within placed building volumes using 3D bounding box clipping
正在显示 SKILL.md
基于 SOC 职业分类
| name | minecraft-forceload |
| description | Ensures all build areas are chunk-loaded before placing blocks via /fill commands |
| domain | minecraft-world-building |
| confidence | high |
| source | earned |
Minecraft's /fill command silently fails in unloaded chunks — no error is returned, the blocks simply aren't placed. This makes forceload bugs extremely difficult to diagnose because the server reports success.
Any system that places blocks in the world MUST ensure the target chunks are forceloaded before issuing /fill commands.
The village layout may change during initialization (e.g., PlanNeighborhoods() spreads buildings into 4 quadrants with ZoneGap=20). Forceload must happen AFTER the final layout is computed, not before.
// ❌ WRONG — bounds computed before layout finalization
var bounds = layout.GetFencePerimeter(10);
await ForceloadArea(bounds);
layout.PlanNeighborhoods(); // spreads buildings beyond forceloaded area
// ✅ CORRECT — bounds computed after layout finalization
layout.PlanNeighborhoods();
var bounds = layout.GetFencePerimeter(resourceCount);
await ForceloadArea(bounds);
DetectSurfaceAsync needs a few chunks loaded to probe the terrain height. Use a minimal forceload around the probe point before the full village forceload.
// Small area for terrain detection
await rcon.SendCommandAsync($"forceload add {baseX - 5} {baseZ - 5} {baseX + 5} {baseZ + 5}");
var surfaceY = await DetectSurfaceAsync();
// Full area after layout planning
await rcon.SendCommandAsync($"forceload add {minX} {minZ} {maxX} {maxZ}");
Any area where blocks will be placed needs forceloading — not just the main village grid:
FenceClearance)LakeGap beyond the last building row)Always log the forceload area for debugging, since failures are silent.
logger.LogInformation("Forceloading area: ({MinX},{MinZ}) to ({MaxX},{MaxZ})", minX, minZ, maxX, maxZ);