🛡 AxinClaimsRules

Reglas por claim para Vintage Story, con aliases, carpetas, orden, flags y TP por zona.

Portada de AxinClaimsRules
Versión documentada

La exportación fuente marca v0.6.5 y compatibilidad objetivo Vintage Story 1.21.6. Algunas notas técnicas mencionan comportamiento observado en v0.6.6.4.

Qué hace este mod

  • Registra claims del mundo en ClaimsRegistry.json con merge no destructivo.
  • Permite aliases, carpetas y orden manual para organizar zonas, incluyendo UI clicable en chat.
  • Expone flags por claim: fireSpread.enabled, fireIgnition.enabled, allowTorches, allowFirepit, allowCharcoalPit y allowFirestarterOnBlocks.
  • Implementa bloqueo real de propagación de fuego cuando fireSpread.enabled=false.
  • Permite guardar un TP por claim y teletransportarse por alias.
  • Incluye purge opcional de claims fantasma custommessage- y gestión configurable de claims de traders.
FireSpread y FireIgnition no son equivalentes

En v0.6.6.4 se detectó patch de gameplay para FireSpread. Los flags de FireIgnition existen, se guardan y aparecen en UI, pero la documentación fuente indica que no se encontró un patch de gameplay que los aplique; pueden depender de módulos, addons o versiones futuras.

Quick Start

  1. Instala el mod en servidor recomendado.
  2. Entra al juego y, dentro de un claim, ejecuta /ac id.
  3. Exporta todos los claims del mundo con /ac claims export.
  4. Lista y organiza con /ac list.
  5. Revisa o cambia flags con /ac flags.

Archivos que crea

Ruta base: VintagestoryData/ModConfig/AxinClaimsRules/

  • Config.json: idioma, permisos por comando y opciones de limpieza.
  • GlobalConfig.json: defaults globales.
  • ClaimsRegistry.json: aliases, carpetas, reglas por claim y TP.
  • Alias.json: alias de /ac y subcomandos.
  • ClaimsOverrides.json: legacy, deltas por claimId.

🚀 Installation Guide

Objetivo: que el servidor cargue el mod y los jugadores puedan usar /ac.

Requisitos

  • Vintage Story 1.21.6, según modinfo.json.
  • AxinClaimsRules v0.6.6.4, según la guía fuente.

Servidor dedicado / host

  1. Descarga el .zip del mod desde VS ModDB o desde tu release.
  2. Copia el ZIP a la carpeta de mods del servidor: VintagestoryData/Mods/ en Windows o ~/.config/VintagestoryData/Mods/ en Linux.
  3. Reinicia el servidor.
  4. Verifica en server-main.txt o server-debug.log que aparece [AxinClaimsRules] Loaded y /axinclaim REGISTERED (alias /ac).

Singleplayer

  1. Copia el ZIP a VintagestoryData/Mods/.
  2. Inicia el mundo.
  3. Prueba /ac.

Primera ejecución

El mod crea defaults en VintagestoryData/ModConfig/AxinClaimsRules/: Config.json, GlobalConfig.json, ClaimsRegistry.json y Alias.json.

💡
JSON válido

Edita esos archivos con un editor de texto para PC. Un JSON inválido puede romper la carga.

Actualizar o desinstalar

Para actualizar: detén el servidor, reemplaza el ZIP, arranca y ejecuta /ac reload o /ac refresh. Para desinstalar, elimina el ZIP; conserva la carpeta de ModConfig si quieres mantener registry, aliases, TP y flags.

📋 Commands

Root command: /ac, configurable en Alias.json. Puedes ejecutar /ac sin argumentos para ver ayuda.

Tabla rápida

ComandoUsoPara qué sirve
/ac idDentro de un claimRegistra el claim actual, asegura alias y TP por defecto.
/ac list[/ac list] [folder|page] [page]Lista claims registrados, Outside y carpetas.
/ac flags[/ac flags] [page]Muestra flags efectivos del claim actual con UI clicable.
/ac flag(alias) (flag) (true|false)Cambia un flag en un claim.
/ac claims exportExporta claims del mundoMerge no destructivo hacia ClaimsRegistry.json.
/ac settpDentro de un claimGuarda TP del claim.
/ac tp <alias>Alias o carpeta/aliasTeleporta al TP guardado.
/ac reload / /ac refreshAdminRecarga config, registry y lang desde disco.

Ejemplos

/ac id
/ac claims export
/ac list
/ac list Folders 1
/ac flags
/ac flag ExampleYandrack4 fireSpread.enabled false

Flags soportados por comando

  • fireSpread.enabled
  • fireIgnition.enabled
  • allowTorches
  • allowFirepit
  • allowCharcoalPit
  • allowFirestarterOnBlocks

🔥 Flags

Reglas por claim editables desde chat, comando o JSON avanzado.

Editar desde el chat

Ejecuta /ac flags dentro de un claim. El mod mostrará cada flag con su valor y dos opciones clicables: true y false.

Flags clicables en chat

Requisitos

  • Estar dentro de un claim.
  • Tener permisos.
  • Si editaste JSON a mano, usar /ac reload.

Editar por comando

/ac flag <aliasZona> <flag> true
/ac flag <aliasZona> <flag> false

/ac flag ExampleYandrack4 fireSpread.enabled false
/ac flag ExampleYandrack4 allowTorches false

Editar desde ClaimsRegistry.json

Ruta: VintagestoryData/ModConfig/AxinClaimsRules/ClaimsRegistry.json. Edita el bloque claimRules, guarda JSON válido y ejecuta /ac reload.

Lista de flags CORE

FlagTipoQué hace
fireSpread.enabledboolPermite o bloquea propagación del fuego dentro del claim.
fireIgnition.enabledboolControl de ignición según módulos/addons instalados.
allowTorchesboolSub-flag de ignición.
allowFirepitboolSub-flag de ignición.
allowCharcoalPitboolSub-flag de ignición.
allowFirestarterOnBlocksboolSub-flag de ignición.

Cómo se aplican

  • fireSpread.enabled: cuando está en false, el mod bloquea la propagación de fuego dentro del claim.
  • fireIgnition / sub-flags: se gestionan en UI/registry y pueden ser aplicadas por módulos/addons según tu setup.

📁 Folders & Ordering

Organiza claims en carpetas y controla el orden del listado con UI clicable, comandos o JSON.

UI clicable desde el chat

Ejecuta /ac list. El chat muestra secciones [Folders], [Outside] y filas con botones ^[Up], v[Down], Add to folder y Sacar.

Añadir un claim a una carpeta

  1. Ejecuta /ac list.
  2. En la fila del claim, haz click en Add to folder.
  3. Elige la carpeta.
  4. El claim pasará a verse como Carpeta/Alias.
Añadir claim a carpeta
/ac folder add <NombreCarpeta>

Sacar un claim de una carpeta

Cuando un claim está dentro de una carpeta, el listado muestra Sacar. Al pulsarlo, el claim vuelve a Outside.

Sacar claim de carpeta

Subir y bajar posición

^[Up] sube una posición y v[Down] baja una posición. Afecta a outsideOrder y folderOrders[NombreCarpeta].

Reordenar claims con botones Up Down

Comandos manuales

/ac folder add <folderName>
/ac folder up <folderName>
/ac folder down <folderName>
/ac folder assign <folderName> <alias>
/ac claim extract <folder/alias>
/ac claim up <aliasOrFolder/alias>
/ac claim down <aliasOrFolder/alias>

Persistencia

Todo se guarda en ClaimsRegistry.json: foldersOrder, outsideOrder y folderOrders. Tras editar a mano, usa /ac reload.

🧭 Teleport

Cada claim puede tener un TP guardado en el registry.

Guardar TP del claim actual

/ac settp

Teleport por alias

/ac tp <alias>
/ac tp home1
/ac tp Spawns/home1
TP por defecto

La primera vez que uses /ac id dentro de un claim, el mod intenta asegurar un TP por defecto si no existe.

Configuration

Mapa de archivos en VintagestoryData/ModConfig/AxinClaimsRules/.

  • Default Configuration: Config.json, idioma, permisos y toggles de limpieza.
  • Global Defaults: GlobalConfig.json, defaults globales.
  • Alias Configuration: Alias.json, root /ac y alias de subcomandos.
  • Registry Format: ClaimsRegistry.json, schema v2.
  • ClaimsOverrides.json: legacy, deltas por claimId.
💡
Regla operativa

La documentación fuente indica que el mod intenta ser no destructivo y no debería pisar cambios manuales del admin al recargar.

🧾 Default Configuration

Config.json controla idioma, permisos, allowlists y opciones de limpieza.

Campos principales

  • language: idioma del mod.
  • commandPrivileges: privilegio requerido por subcomando.
  • commandPrivilegeAllowPlayers: allowlist para comandos controlserver.
  • exportTraderClaims: incluye claims de traders en export.
  • purgeGhostCustomMessageClaims: purga claims fantasma.
  • uiColorMoveButtons y uiColorFolderButtons: colores de UI de chat.

Ejemplo mínimo

{
  "schemaVersion": 5,
  "language": "en",
  "exportTraderClaims": false,
  "purgeGhostCustomMessageClaims": true,
  "uiColorMoveButtons": "#66aaff",
  "uiColorFolderButtons": "#b07a3a",
  "debugFlagCommands": false,
  "debugRegistryNoOpHarness": false,
  "debugFireSpreadLog": false,
  "claimFlightLeaveDelaySeconds": 5,
  "commandPrivileges": {
    "id": "chat",
    "list": "chat",
    "folder": "chat",
    "claim": "chat",
    "flags": "chat",
    "flag": "controlserver",
    "claims": "controlserver",
    "tp": "controlserver",
    "settp": "controlserver",
    "reload": "controlserver"
  },
  "commandPrivilegeAllowPlayers": {
    "reload": "",
    "flag": "",
    "claims": "",
    "tp": ""
  }
}

Allowlist

Admins con controlserver siempre pueden usar comandos elevados. Jugadores normales solo pueden si están en allowlist por UID, nombre o separadores / , ; | y espacios.

{
  "commandPrivilegeAllowPlayers": {
    "tp": "elYandrack/1234-abcd-uid",
    "flagfireSpread.enabled": "Moderador1/Moderador2"
  }
}

🌐 Global Defaults

GlobalConfig.json define defaults globales si un claim no tiene reglas en ClaimsRegistry.json.

Defaults relevantes v0.6.6.4

  • defaults.fireSpread.enabled, por defecto false.
  • defaults.fireIgnition.*, por defecto true en enabled y sub-opciones.
{
  "version": "0.3.0",
  "defaults": {
    "fireSpread": {
      "enabled": false
    },
    "fireIgnition": {
      "enabled": true,
      "allowTorches": true,
      "allowFirepit": true,
      "allowCharcoalPit": true,
      "allowFirestarterOnBlocks": true
    }
  }
}
Importante

Aunque fireIgnition existe como regla y flag, en v0.6.6.4 no se detectó un patch de gameplay que lo aplique.

🔤 Alias Configuration

Alias.json controla el alias raíz y subcomandos.

Qué puedes cambiar

  • rootAlias: alias principal del comando, por defecto ac.
  • subAliases: alias de subcomandos; por ejemplo, reload usa refresh.
{
  "schemaVersion": 2,
  "rootAlias": "ac",
  "subAliases": {
    "id": "id",
    "list": "list",
    "claims": "claims",
    "tp": "tp",
    "settp": "settp",
    "flags": "flags",
    "flag": "flag",
    "folder": "folder",
    "reload": "refresh"
  },
  "extraRootAliases": {}
}

Compatibilidad

Además de rootAlias, el mod mantiene alias de compatibilidad: /axinclaim y /axinclaims.

🛡 Permissions

Permisos por comando usando Config.json.

Privilegios típicos

  • chat: jugadores normales.
  • controlserver: admins/operadores.

Regla de evaluación

  1. Si el comando no requiere controlserver, se chequea el privilegio normal.
  2. Si requiere controlserver, el jugador debe tenerlo o estar en allowlist.

Allowlist por comando y por flag

{
  "commandPrivileges": {
    "tp": "controlserver",
    "flag": "controlserver"
  },
  "commandPrivilegeAllowPlayers": {
    "tp": "Moderador1/Moderador2",
    "flagfireSpread.enabled": "Moderador1"
  }
}

🗂 Registry Format

ClaimsRegistry.json, schema documentado en código: v2.

Captura relacionada con registry de claims

Estructura de alto nivel

  • aliases: aliasKey -> axinClaimId.
  • foldersOrder: lista de carpetas.
  • outsideOrder: orden de alias fuera de carpetas.
  • folderOrders: folderName -> [aliasKey...].
  • players: playerUid -> { lastKnownName, claims }.

ClaimEntry

  • info: dueño y áreas observadas, como cuboids, bounds o center.
  • claimRules: flags por claim, editable.
  • tp: TP por claim, editable.

Recomendaciones

  • Haz backup antes de editar.
  • Mantén JSON válido.
  • Refresca desde disco con /ac reload o /ac refresh.

🧩 Addons & Extensions

El core detecta extensiones si otro mod implementa IRuleExtension.

ClaimFlight opcional

En el modelo de reglas existe claimRules.claimFlight, pero solo se crea si está cargada la extensión/mod axinclaimsrulesflight.

Sin extensión no afecta al juego

Si la extensión no está cargada, claimFlight será null y no tendrá efecto.

Cómo saber si hay addons cargados

Revisa server-main.txt o server-debug.log buscando [AxinClaimsRules] Loading extension: ... o [AxinClaimsRules] No rule extensions detected.

🩺 Troubleshooting

/ac no existe

  • Verifica que el ZIP está en VintagestoryData/Mods/.
  • Revisa logs: debe aparecer /axinclaim REGISTERED (alias /ac).

“Players only”

Los comandos están pensados para ser ejecutados por un jugador.

“No tienes privilegios...”

Edita Config.json: commandPrivileges para subir/bajar permisos y commandPrivilegeAllowPlayers para allowlistear jugadores.

No se crean archivos en ModConfig

  • El servidor necesita permisos de escritura en VintagestoryData/ModConfig/.
  • Si el JSON está corrupto, el mod puede fallar al cargarlo. Revisa formato.

Fire spread sigue propagándose dentro de un claim

  1. Entra al claim y ejecuta /ac flags.
  2. Asegúrate de que fireSpread.enabled=false.
  3. Recarga con /ac reload.

Para logs, activa debugFireSpreadLog=true en Config.json. La guía avisa que está rate-limited, pero puede generar logs.

🗒 Changelog

v0.6.5

  • Purge de claims fantasma custommessage-, con skip export y purge en reload/export.
  • Config.json en ModConfig/AxinClaimsRules/.
  • UI, flags y registry modularizados según IA-ARCH.
Historial limitado

La exportación fuente indica que para generar un changelog automático haría falta el repo o historial como canon.


AxinClaimsRules · Wiki integrada AXIN. Si encuentras un bug, adjunta server-debug.log, Config.json y el fragmento relevante de ClaimsRegistry.json.