Configuración de geodata de Lineage 2: deja de atravesar paredes

La geodata de Lineage 2 es el mapa de altura y colisión del mundo. Sin ella el servidor arranca y los jugadores entran: simplemente atraviesan paredes, golpean mobs a través del suelo y se caen del mapa por ciertos bordes. Todos los síntomas parecen un fallo del cliente, y por eso los dueños pasan horas mirando la capa equivocada.
Esta es la configuración que cambia el comportamiento de verdad: los archivos correctos en la carpeta correcta, un modo de motor elegido a propósito y una prueba que demuestre que las paredes existen tras el reinicio.
Qué contiene realmente la geodata
El mundo se divide en una rejilla de regiones cuadradas, y cada región tiene su archivo. aCis documenta la rejilla como 176 regiones para su mundo soportado, con nombres como 22_16.l2j: los dos números son coordenadas de región, no una versión. Dentro de cada archivo están las capas de altura y las marcas de celdas bloqueadas que el servidor usa para tres tareas distintas:
- Movimiento — si un personaje puede estar en esa coordenada y puede caminar a la siguiente.
- Línea de visión — si una skill o una flecha alcanza un objetivo a través de ese espacio.
- Pathfinding — cuando la línea directa está bloqueada, qué ruta la rodea.
Los formatos difieren. .l2j es el formato Java estándar, .l2d es la variante diagonal que usan algunos paquetes y los archivos _conv.dat vienen del cliente oficial y los leen servidores basados en L2OFF y conversores. Un paquete que carga el formato equivocado ignora los archivos o llena la consola de errores de parseo.

Paso 1: pon los archivos donde el motor los busca
Todo servidor de la familia L2J espera una carpeta de geodata relativa al directorio de trabajo del servidor de juego, normalmente data/geodata. El ajuste que apunta a ella tiene nombres distintos según el paquete, y aquí es donde la gente se pierde:
| Paquete | Archivo de configuración | Ajuste de ruta |
|---|---|---|
| L2J Server | game/config/geodata.properties | GeoDataPath |
| L2JMobius | game/config/GeoData.properties | GeoDataPath |
| aCis | config/geoengine.properties | GeoDataPath |
Déjala relativa (./data/geodata) y arranca el servidor desde su propia carpeta. Una ruta absoluta en una máquina que luego se mueve, o una relativa resuelta desde el directorio de trabajo equivocado, dan el mismo resultado: ninguna región cargada y ningún error claro.
Para High Five, el proyecto oficial L2J distribuye un paquete compatible desde su repositorio de geodata (l2j_geodata). Usa el paquete que coincida con tu crónica y tu core; los archivos de otra crónica cargan pero colocan mal el terreno y las puertas.
Paso 2: elige el modo del motor a propósito
Los tres motores exponen la misma idea con claves distintas, y lo que importa es el comportamiento:
| Modo | aCis | L2J / L2JMobius | Resultado |
|---|---|---|---|
| Apagado | GeoData = 0 | geodata sin cargar (GeoDataPath mal o todas las regiones desactivadas) | Las paredes se ignoran; jugadores y mobs las atraviesan |
| Colisión + LoS | GeoData = 1 | PathFinding = 0 con geodata cargada | No se camina ni se lanza nada a través de paredes; los mobs no agreden a través de ellas |
| Pathfinding completo | GeoData = 2 | PathFinding = 2 (o 1 para archivos de nodos) | El movimiento bloqueado se rodea |
En aCis, GeoData = 2 es el valor correcto para un servidor abierto. En L2J y L2JMobius la capa de colisión viene de cargar geodata, y PathFinding = 2 añade el enrutado. Sin enrutado, un mob cuyo objetivo está detrás de una valla se queda quieto en lugar de rodearla. El coste es CPU, porque cada ruta directa fallida dispara una búsqueda. En un asedio concurrido eso se nota, y es lo primero que hay que probar bajo carga.
Dos ajustes compañeros merecen entenderse:
CoordSynchronize—-1sincroniza solo el eje Z;2es el valor pensado para geodata y permite al servidor corregir a un cliente que reporta una posición dentro de una pared. Pon2cuando actives geodata.ForceGeoData— carga los buffers en memoria física al arrancar. Más rápido y más estable, a cambio de RAM. Desactívalo en un VPS pequeño y vigila los tirones.
Activa la geodata antes de tu primera beta abierta, no después. Los jugadores que aprenden a atravesar la pared de un castillo no lo olvidan, y cada corrección posterior les parece un nerf.

Paso 3: carga solo lo que necesitas, o verifica todo
L2J y L2JMobius permiten controlar el conjunto de regiones. TryLoadUnspecifiedRegions = True carga toda región presente en la carpeta, incluidas las que no listaste, y no hace fallar el arranque si falta un archivo; ponerlo en False limita la carga a las regiones que listes, lo que mantiene el arranque rápido mientras construyes un mapa propio. aCis usa directamente el enfoque de lista: su configuración enumera nombres de región y comenta las que el cliente no soporta.
Cargar parcialmente tiene una trampa. Una región sin cargar se comporta como el modo 0 en esa parte del mundo: las paredes desaparecen ahí. Si los jugadores dicen que un castillo concreto no tiene colisión, comprueba si la línea de esa región está comentada antes de sospechar del paquete.
Paso 4: demuestra que funcionó
Reinicia el servidor de juego tras cualquier cambio: la geodata se lee una vez al arrancar. Después confirma, en este orden:
- El log de arranque informa regiones cargadas sin una pared de errores de parseo. Un archivo ilegible es normal; cientos significan formato equivocado.
- Camina con un personaje contra una pared conocida en un pueblo inicial. El movimiento bloqueado es la prueba base.
- Ponte detrás de una valla y atrae a un mob. Debe rodearla, no quedarse quieto ni golpearte a través.
- Lanza una skill dirigida a través de una pared contra un compañero de clan. Debe fallar al adquirir objetivo o en línea de visión.
- Salta desde una cornisa que antes te tiraba fuera del mundo. Debes aterrizar, no caer.
En aCis, una pared que atraviesas con logs limpios significa que GeoData sigue en 0. En L2J y L2JMobius el mismo síntoma significa que esa región nunca se cargó: revisa la lista de regiones antes de tocar PathFinding. Si las paredes bloquean pero los mobs se quedan quietos detrás, la colisión está activa y el enrutado no.
Errores que rompen la geodata
- Mezclar formatos. Cargar
_conv.daten un motor que espera.l2j, o al revés, sin ajuste de formato. aCis tieneGeoDataFormatjusto para esto: ponlo enL2J,L2OFFoL2Dsegún los archivos que tengas. - Probar con teleport. El teleport de GM salta la comprobación de colisión que sí hace caminar. Prueba siempre caminando.
- Editar la configuración con el servidor en marcha. Nada se recarga, y el siguiente reinicio "lo arregla por arte de magia", lo que enseña la lección equivocada.
- Copiar una carpeta de geodata entre crónicas. Carga, y luego puertas, puentes y bordes del terreno están mal de formas que solo los jugadores notan.
- Ignorar la RAM. Geodata completa más carga forzada es un compromiso real de memoria. Dimensiona el VPS para ello: mira requisitos de VPS y hardware.
Qué viene después
La geodata es lo primero que hace que un servidor se sienta como Lineage 2 y no como un banco de pruebas. Después, ajusta rates y drops a lo que anuncias y mete jugadores: un listado gratuito en L2Calendar pone tu servidor en las páginas de crónica y rate donde la gente busca: añade tu servidor. Si quieres la colocación por encima del listado gratuito, el listado VIP es la vía de pago, y este análisis cubre cuándo se amortiza.
