用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/nikolaj-lat/World-Puppeteer --skill locations命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | locations |
| description | Schema and rules for creating locations |
| context | fork |
| agent | locations |
Edit tabs/locations.json.
| Field | Requirement |
|---|---|
name | Must match object key exactly |
basicInfo | Freeform descriptive paragraph about the location |
x | X coordinate - generate random value within the region |
y | Y coordinate - generate random value within the region |
radius | Infer from description (see radius guidelines below) |
region | Must exist in tabs/regions.json |
complexityType | Always "complex" |
detailType | Always "detailed" |
hiddenInfo | Full paragraph with location secrets - always include |
imageUrl | URL for the location's image |
| Field | When to Include |
|---|---|
known | Set to false to hide from map at game start. Omit or set true for visible by default |
areas | Optional - include when the location has distinct internal spaces |
factions | Only for major plot-relevant faction presence |
npcLevelRange | { min, max } band for NPCs generated here whose level you don't set explicitly. Use it to keep a low-level village or a high-level dungeon on-theme regardless of party level |
Omit these fields (auto-set at runtime):
visited, lastVisitedTick, visitedAreasvisualTags, embeddingIdFor locations with distinct internal spaces, define interconnected areas.
Each area needs:
description: Freeform description of the areapaths: Array of connected area namesimageUrl: URL for the area's image. When absent, the engine generates one during play and saves it back; an existing image is never regeneratedDo not set visualTags on areas.
Rules:
locationSettings.regionSize in tabs/settings.json to determine bounds-regionSize/2 to regionSize/2tabs/locations.json for existing locations and their coordinates to avoid overlapRadius is a size class — author exactly 1, 2, or 3:
| Radius | Size | Use for |
|---|---|---|
1 | small | Rooms, single buildings, small structures |
2 | medium | Villages, camps, modest settlements |
3 | large | Towns, cities, sprawling sites |
Values above 3 don't make the map marker bigger (everything above 2 renders as large) — they only inflate the location's travel catchment (arrivals within 2×radius km resolve to it) and its encounter-free zone.
interface Location {
name: string
basicInfo: string
x: number
y: number
radius: number
region: string
complexityType: 'complex'
detailType: 'detailed'
hiddenInfo: string
known?: boolean
areas?: Record<string, Area>
factions?: string[]
npcLevelRange?: { min: number; max: number }
imageUrl?: string
}
interface Area {
description: string
paths: string[]
imageUrl?: string
visualTags?: string[]
}
For detailed documentation, see locations-reference.md.