# Raps — Forge 1.20.1 La compilación y publicación repetible usa [publicar-raps.ps1](publicar-raps.ps1). El resultado vigente está en [Entrega actual](docs/ENTREGA-ACTUAL.md); las instrucciones están en [PUBLICAR.md](PUBLICAR.md). Mod propio para experimentar con jugadores autónomos que sobreviven y construyen con recursos reales del mundo. La versión **0.3.2-dev** incorpora skins del huésped, un cuerpo alto que puede plegarse para pasos estrechos y locomoción articulada con apoyos. Conserva encuentros por mirada, voz española propia, herramientas corporales aprendidas, memoria, roles, comunicación, banderas y el proveedor de GPT-6 Luna. El artefacto se llama **Raps.jar**. La implementación sigue en desarrollo. Las validaciones físicas y sus límites se documentan en [VALIDACION.md](VALIDACION.md). Por solicitud del operador, la configuración entregada activa Luna, investigación web y la puerta estratégica de Sol para hasta diez bots, con USD 5 acumulados como máximo en el servidor. El gasto se guarda fuera de los mundos y no se restablece al reiniciar. Las respuestas reales requieren saldo en la API; un rechazo por falta de crédito o acceso deja una pausa de cinco minutos antes del siguiente intento. No se afirma supervivencia autónoma prolongada sin una prueba sostenida. El alcance de la base está en [Implementación 0.3](docs/IMPLEMENTACION-0.3.md) y los cambios de esta entrega en [Parásito 0.3.2](docs/PARASITO-0.3.2.md). ## Primer uso Para Neon y Xenon guardados: `/Raps join bot Neon` o `/Raps join bots`. La ayuda está en `/Raps ayuda` y en la [guía de uso](docs/GUIA-USO.md), incluidos roles, configuración editable, skins y memoria entre mundos. Instalar el mismo `Raps.jar` en servidor y clientes con Forge 1.20.1. En un mundo de prueba, un operador puede crear los dos jugadores iniciales: ```text /raps crear Helio /raps crear Neper /raps estado /raps inventario Helio ``` Los nombres admiten hasta 16 letras ASCII, números o guiones bajos. Los bots aparecen como jugadores del servidor y conservan su inventario al desconectarse. La aparición inicial carga el chunk antes de consultar su altura y elegir una posición segura; las posiciones ya guardadas se conservan. `/companeros` continúa como alias de `/raps` para los controles anteriores. La configuración se guarda en `config/raps/agents.json`. Esta entrega permite diez bots y reconexión automática de los activos; `modelsEnabled=true`, `maxSessionUsd=5` y `solEnabled=true`. El presupuesto es acumulado entre mundos. Se conserva el intervalo mínimo y el cupo global de llamadas. Las instalaciones nuevas sin archivos de operador mantienen desactivados los modelos por defecto. Una clave se obtiene únicamente mediante el servicio confiable del servidor: variable `OPENAI_API_KEY` o almacén local protegido. No se incluye en `agents.json`, en herramientas ni en el JAR. La configuración y los ejemplos están en la [guía de uso](docs/GUIA-USO.md). ## Controles ```text /raps conectar Helio /raps pausar Helio /raps quieto Helio /raps autonomo Helio /raps campamento Helio /raps entregar Helio /raps herramientas /raps fase 2 ``` `pausar` guarda y desconecta al jugador. `quieto` detiene sus planes y lo mantiene conectado. `campamento` registra la ubicación; la construcción necesita decisiones, materiales y acciones posteriores. `entregar` requiere proximidad y entrega objetos que realmente posee. `retirar` conserva los datos del jugador retirado. `fase 2|4|6|10` modifica el límite administrativo de población. No certifica rendimiento ni completa una fase experimental. Comenzar con dos y ampliar cuando las pruebas lo permitan. Para mandar una instrucción privada: ```text /botmalo Helio Necesitamos un refugio; evaluá primero el terreno y los materiales. /botmalo all ``` La segunda forma reserva el próximo mensaje del chat durante 120 segundos para los bots. `/botmalo cancelar` cancela la selección. Estos mensajes requieren operador, quedan registrados y no se publican en el chat global. Los agentes también pueden recibir el chat público y hablar mediante su herramienta de comunicación. ## Alcance actual Las herramientas locales permiten caminar, minar, colocar, fabricar recetas de crafting, comer, atacar, recoger, almacenar, observar y enviar mensajes. Consumen inventario y respetan alcance y permisos del mundo. La memoria conserva procedencia, confianza, ubicación, fechas y resultados; cada consulta recupera una selección relevante. Las propuestas de herramientas usan JSON en `config/raps/Tools`, con pasos, permisos, dependencias, versiones y límites. Las candidatas validadas pueden probarse por su autor sobre el mundo real; tres éxitos útiles y al menos 80% de éxito permiten compartirlas. La creación automática necesita activar Luna; no se ha observado invención autónoma con la API apagada. Los estandartes consumen materiales, requieren mesa y telar y conservan autoría. El acontecimiento del parásito incluye meteorito, un huésped único, cinco mutaciones y modelos y voces originales. Ignora a bots y humanos con `/sensitivity mode enabled`; estos últimos ven su variante amigable. Los comandos de ensayo están en `/Raps ayuda` y la guía. La voz y el lore aprobados siguen disponibles. Los efectos de ataque, trepada y persecución están deshabilitados; los pasos del juego conservan el sonido natural del bloque. Las cuatro tarjetas de efectos de la galería muestran **No disponible**, sin reproductores. La [galería principal](https://raps-huesped.pages.dev/) sigue en Cloudflare Pages. Se prepara una copia estática en Sites para revisar imágenes, animaciones y código público desde ChatGPT; todavía no se afirma su publicación ni acceso. El recorrido está en [Auditoría desde ChatGPT](docs/AUDITORIA-CHATGPT.md). El NPC anterior se conserva en `/raps crear_prototipo Nombre [radio]`, con inventario, refugio 5×5 y comportamiento local. El jugador nuevo no hereda una lista fija de tareas como sustituto de Luna. Todavía faltan validación sostenida de autonomía, industrialización con Create, facciones, liderazgo estratégico, modificaciones de la criatura mediante máquinas, especializaciones aprendidas y compatibilidad amplia con el modpack. [Arquitectura](docs/ARQUITECTURA.md) y [Etapas](docs/ETAPAS.md) describen el objetivo y sus criterios de aceptación. ## Código y pruebas | Carpeta bajo `src/main/java/ar/com/companeros/` | Responsabilidad | | --- | --- | | `body/` | Sesiones de jugadores y cuerpo persistente | | `identity/`, `memory/` | Identidades y recuerdos del mundo | | `runtime/` | Configuración, percepción, objetivos y ciclo del agente | | `decision/` | Responses API, validación, cupos y consultas estratégicas | | `world/`, `action/` | Operaciones físicas y resultados tipados | | `social/`, `tools/` | Buzones, chat administrativo y DSL de herramientas | | `flags/` | Diseños, fabricación, colocación y recuperación de banderas | | `horror/`, `horror/client/` | Acontecimiento persistente, criatura, preferencias y presentación | El identificador interno `companeros` se conserva para poder leer mundos y datos anteriores. El nombre visible y el JAR son Raps. Requiere JDK 17. Desde esta carpeta: ```powershell .\compilar.ps1 .\compilar.ps1 -Tarea runGameTestServer ``` La salida prevista es `build/libs/Raps.jar`. Las pruebas locales usan el entorno separado `run/`. Antes de subir una versión a Exaroton corresponde compilar, ejecutar pruebas y comprobar acciones en un mundo local de ensayo. El mundo principal se mantiene separado del experimento.