Synapse
Synapse v1.3.0 — API moderna de marcadores de posición (¡Ahora con soporte para Hytale!) Synapse es un poderoso y modern...

Construido para el servidor de supervivencia europeo de Hytale en play.hyfyve.net
Un mapa web en vivo para tu servidor de Hytale. Visualiza tu mundo en un navegador, rastrea jugadores en tiempo real e intégralo fácilmente con la página web de tu comunidad.
Quick Start
EasyWebMap.jar desde Releasesmods de tu servidorhttp://localhost:8080 en tu navegadorWhat You Can Do
Incorpora el mapa directamente en la página web de tu comunidad usando un iframe:
<iframe src="http://your-server-ip:8080" width="100%" height="600"></iframe>
O enlázalo desde la página web de tu servidor, Discord o foros.
Crea herramientas personalizadas utilizando la API integrada:
Endpoint
Devuelve
GET /api/worlds
Lista de mundos disponibles
GET /api/players/{world}
Todos los jugadores en un mundo (nombre, posición, dirección)
GET /api/tiles/{world}/{z}/{x}/{y}.png
Imagen del mosaico del mapa
WS /ws
Actualizaciones de posición de jugadores en tiempo real
Ejemplo: Obtener posiciones de jugadores
const response = await fetch('http://your-server:8080/api/players/world');
const players = await response.json();
// [{ name: "Steve", x: 100, y: 64, z: -200, yaw: 1.57 }, ...]
Ejemplo: WebSocket para actualizaciones en vivo
const ws = new WebSocket('ws://your-server:8080/ws');
ws.onmessage = (e) => {
const data = JSON.parse(e.data);
console.log(data.worlds); // Todas las posiciones de jugadores por mundo
};
Commands
Comando
Qué hace
/easywebmap status
Muestra el conteo de conexiones, información de caché, estado de SSL y estado del servidor
/easywebmap reload
Recarga el archivo de configuración
/easywebmap clearcache
Borra todas las cachés (memoria + disco)
/easywebmap pregenerate <radius>
Pre-genera mosaicos alrededor de tu posición
/easywebmap renewssl
Forzar renovación inmediata del certificado SSL
Todos los comandos requieren el permiso easywebmap.admin.
HTTPS con Let’s Encrypt (SSL Gratis)
EasyWebMap puede obtener y renovar automáticamente certificados SSL de Let’s Encrypt. ¡No se requiere gestión manual de certificados!
Apunta tu dominio a tu servidor – Asegúrate de que map.yourserver.com (o el dominio que elijas) apunte a la dirección IP de tu servidor.
Abre el puerto 80 – Let’s Encrypt necesita verificar que eres el propietario del dominio conectándose al puerto 80. Asegúrate de que tu firewall lo permita.
Agrega a tu config.json:
{
"enableHttps": true,
"httpsPort": 8443,
"domain": "map.yourserver.com",
"acmeEmail": "[email protected]"
}
¡Eso es todo! Tu mapa ahora está disponible en https://map.yourserver.com:8443
Cuando habilitas HTTPS, el plugin:
ssl/account.key)ssl/domain.crt y la clave en ssl/domain.keyConfiguración
Predeterminado
Qué hace
enableHttps
false
Habilitar/deshabilitar HTTPS
httpsPort
8443
Puerto para HTTPS (usa 443 si tienes permiso)
domain
“”
Tu nombre de dominio (requerido para HTTPS)
acmeEmail
“”
Correo electrónico para notificaciones de Let’s Encrypt (opcional pero recomendado)
useProductionAcme
true
Establecer en false para pruebas (usa el servidor de staging, evita límites de tasa)
Comando
Qué hace
/easywebmap status
Muestra el estado de HTTPS, dominio y fecha de caducidad del certificado
/easywebmap renewssl
Forzar renovación inmediata del certificado
Antes de salir en vivo, prueba con el servidor de staging de Let’s Encrypt para evitar límites de tasa:
{
"enableHttps": true,
"domain": "map.yourserver.com",
"useProductionAcme": false
}
El servidor de staging emite certificados de prueba que los navegadores no confiarán, pero prueba que todo funcione. Una vez verificado, establece useProductionAcme de nuevo en true y reinicia.
Por defecto, HTTPS se ejecuta en el puerto 8443. Si deseas usar el puerto estándar de HTTPS (443):
{
"httpsPort": 443
}
Nota: Vincular al puerto 443 puede requerir ejecutar el servidor como root/administrador, o usar un proxy inverso.
Si estás usando nginx o Apache como proxy inverso, puedes dejar que el proxy maneje SSL y mantener EasyWebMap solo en HTTP. Ejemplo de configuración de nginx:
server {
listen 443 ssl;
server_name map.yourserver.com;
ssl_certificate /etc/letsencrypt/live/map.yourserver.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/map.yourserver.com/privkey.pem;
location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
Configuración
Archivo de configuración: mods/cryptobench_EasyWebMap/config.json
{
"httpPort": 8080,
"updateIntervalMs": 1000,
"tileCacheSize": 20000,
"enabledWorlds": [],
"tileSize": 256,
"maxZoom": 4,
"renderExploredChunksOnly": true,
"chunkIndexCacheMs": 30000,
"useDiskCache": true,
"tileRefreshRadius": 5,
"tileRefreshIntervalMs": 60000,
"enableHttps": false,
"httpsPort": 8443,
"domain": "",
"acmeEmail": "",
"useProductionAcme": true
}
Configuración
Predeterminado
Qué hace
httpPort
8080
Puerto del servidor web
updateIntervalMs
1000
Frecuencia de actualización de jugadores (ms)
tileCacheSize
20000
Máximo de mosaicos a almacenar en memoria (~200MB a 10KB/mosaico)
enabledWorlds
[]
Lista blanca de mundos (vacío = todos)
renderExploredChunksOnly
true
Renderiza solo los trozos que los jugadores han explorado (previene lag/abuso)
chunkIndexCacheMs
30000
Cuánto tiempo almacenar en caché el índice de trozos explorados (ms)
useDiskCache
true
Guardar mosaicos en disco para persistencia entre reinicios
tileRefreshRadius
5
El jugador debe estar dentro de N trozos para que el mosaico se actualice
tileRefreshIntervalMs
60000
Tiempo mínimo entre actualizaciones de mosaicos (ms)
enableHttps
false
Habilitar HTTPS automático con Let’s Encrypt
httpsPort
8443
Puerto para conexiones HTTPS
domain
“”
Tu nombre de dominio para el certificado SSL
acmeEmail
“”
Correo electrónico para notificaciones de Let’s Encrypt
useProductionAcme
true
Usar Let’s Encrypt de producción (false = staging para pruebas)
chunkIndexCacheMs)Cuando renderExploredChunksOnly está habilitado, el plugin necesita verificar qué trozos han sido explorados. Esto requiere leer un índice del disco. Para evitar leer el disco en cada solicitud de mosaico, el índice se almacena en caché.
Compensación:
Lo que esto significa en la práctica:
Tiempo de Caché
Lecturas de Disco
Frescura del Mapa
5000 (5s)
~12/min por mundo
Nuevos trozos visibles en 5 segundos
30000 (30s)
~2/min por mundo
Nuevos trozos visibles en 30 segundos
60000 (1min)
~1/min por mundo
Nuevos trozos visibles en 1 minuto
Escenario de ejemplo: Un jugador explora una nueva área. Con chunkIndexCacheMs: 30000, los nuevos trozos no aparecerán en el mapa web hasta que la caché expire (hasta 30 segundos). El mosaico se mostrará como vacío hasta entonces.
Nota: Esto solo afecta a los trozos nuevos explorados. Los trozos ya explorados siempre son visibles. El comando /easywebmap clearcache borra esta caché inmediatamente si es necesario
El plugin utiliza un sistema de caché inteligente para minimizar la carga del servidor:
Caché en Disco: Los mosaicos se guardan como archivos PNG en mods/cryptobench_EasyWebMap/tilecache/. Estos persisten entre reinicios del servidor, por lo que el primer visitante después de un reinicio no activa una generación masiva de mosaicos.
Actualización Inteligente: Los mosaicos solo se regeneran cuando:
tileRefreshIntervalMs (predeterminado: 60 segundos), YtileRefreshRadius trozos (predeterminado: 5 trozos)Por qué esto es importante:
Flujo:
Solicitud de mosaico → ¿Caché de memoria? → Servir instantáneamente
↓ no
¿Caché en disco? → ¿Suficientemente fresco? → Servir desde disco
↓ no ↓ viejo
Generar nuevo ¿Jugadores cerca? → No: Servir obsoleto (terreno sin cambios)
↓ sí
Regenerar mosaico
Usa /easywebmap pregenerate <radius> para calentar la caché:
/easywebmap pregenerate 50 genera hasta 10,201 mosaicosCasos de Uso Comunes
Mapa de servidor público – Permite a los jugadores ver dónde están todos… [Truncado]
Synapse v1.3.0 — API moderna de marcadores de posición (¡Ahora con soporte para Hytale!) Synapse es un poderoso y modern...
Una poderosa biblioteca de plugins de Hytale para crear, gestionar y orquestar mundos temporales con facilidad. Bridge p...
HyDB – API de Base de Datos SQLite Profesional para Hytale 📊 Resumen HyDB es un plugin base profesional para Hyta...
⚠️ Trabajo en Progreso ⚠️AdvancedParties está en desarrollo activo. Se planean características como la interfaz gráfica ...
Una API de abstracción de plataforma para plugins de Hytale, que proporciona interfaces de economía, permisos y chat. De...
Hytale Coins Mod Un sencillo mod de economía para Hytale que añade monedas físicas y un sistema de cartera digital. Cara...