一键导入
locations
Schema and rules for creating locations
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Schema and rules for creating locations
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Schema and rules for editing AI instructions
Check character counts and limits for Voyage World config files. Use when checking how much space is used, before adding large content, or when approaching size limits.
Schema and rules for editing settings
Schema and rules for creating traits
Schema and rules for creating triggers
Schema and rules for creating narrative events
| 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.