Sincronización con SCP SL - Raul125/PanelWiki GitHub Wiki

🎮 Sincronización con SCP-SL

La sincronización con SCP: Secret Laboratory integra el panel web con los servidores de juego, permitiendo que los roles, permisos y sanciones se apliquen automáticamente en tiempo real. Este sistema garantiza que la experiencia de juego esté perfectamente alineada con el estado del usuario en la plataforma web.


🌐 Funcionamiento del Sistema

🔄 Integración Automática

📡 Cliente Unity .NET 4.8

  • Plugin del servidor → Cliente integrado en SCP:SL
  • Compatibilidad .NET 4.8 → Versión específica para Unity
  • API REST consumption → Conexión con panel web
  • Documentación Swagger → Endpoints auto-documentados
  • Comunicación bidireccional → Servidor ↔ Panel

🚫 Sin Opciones Manuales

  • Sincronización automática → No requiere intervención
  • Detección automática → Por Steam ID del jugador
  • Aplicación inmediata → Roles y permisos instantáneos
  • Sin bypass disponible → Sistema integral obligatorio

🎯 Elementos Sincronizados

🛡️ Roles y Rangos

📊 Mapeo de Roles (Ejemplo)

Panel Web              →  SCP:SL Server
Owner                 →  owner
Admin Senior          →  admin
Admin                 →  moderator
Mod Senior            →  helper
Mod                   →  vip
Donador VIP           →  premium
Donador Premium       →  supporter
Donador               →  member
Usuario Verificado    →  verified
Usuario Regular       →  (sin rango especial)

🎨 Configuración Personalizable

  • SlRole en base de datos → Campo específico por rol
  • Rangos flexibles → Configurables por administrador
  • Jerarquía respetada → Según peso del rol
  • Permisos específicos → Por rango en servidor

⚖️ Sanciones Activas

🚫 Tipos de Sanciones Sincronizadas

  • 🔴 Bans activos → Prohibición de acceso al servidor
  • 🔇 Mutes activos → Restricción de chat/voz
  • ⚠️ Warns activos → Advertencias visibles para staff
  • 📋 Historial completo → Accesible para moderadores

⏱️ Verificación Continua

  • Conexión del jugador → Verificación automática
  • Durante la partida → Monitoreo continuo
  • Cambios en tiempo real → Aplicación inmediata
  • Logs de aplicación → Registro de acciones

🔧 Cliente Unity Integrado

📡 Arquitectura del Cliente

🔗 Conexión API REST

  • HttpClient .NET 4.8 → Compatible con Unity
  • Endpoints documentados → Swagger/OpenAPI integration
  • Autenticación segura → Tokens de servidor
  • Rate limiting → Respeto a límites de API
  • Error handling → Reintentos automáticos

📊 Datos Consultados (Ejemplo, usa swagger para ver los reales)

// Ejemplo de endpoints utilizados
GET /api/users/{steamId}/profile     // Datos del usuario
GET /api/users/{steamId}/roles       // Roles SCP:SL del jugador
POST /api/users/{steamId}/playtime   // Enviar tiempo de juego
POST /api/sanctions/ban              // Registrar ban aplicado
POST /api/sanctions/kick             // Registrar kick aplicado

⚡ Procesos Automatizados

🚪 Al Conectar Jugador

  1. Detectar Steam ID → Identificación automática
  2. Consultar API Panel → GET roles SCP:SL del jugador
  3. Aplicar roles correspondientes → Según configuración del panel
  4. Usar panel administrativo nativo → Remote Admin del juego
  5. Registrar conexión → Log de actividad

🎮 Durante la Partida

  1. Monitoreo de sanciones → Panel administrativo nativo
  2. Detección de bans/kicks → Aplicados desde Remote Admin
  3. Preparar datos para envío → Al finalizar ronda
  4. Mantener sesión activa → Para cálculo de tiempo

🏁 Al Finalizar Ronda

  1. Calcular tiempo de sesión → Duración de la ronda
  2. Recopilar estadísticas cambiadas → Datos modificados
  3. Enviar a API Panel → POST con estadísticas actualizadas
  4. Registrar progreso → Tiempo jugado y actividad

⚖️ Al Aplicar Sanciones

  1. Usar Remote Admin nativo → Panel administrativo SCP:SL
  2. Detectar ban aplicado → Hook en sistema de sanciones
  3. Enviar información → POST ban details al panel
  4. Detectar kick aplicado → Hook en sistema de kicks
  5. Registrar en panel → Para historial unificado

🔐 Verificación de Sanciones

🚫 Sistema de Baneos

⚡ Verificación Instantánea

  • Al intentar conectar → Verificación previa al acceso
  • Consulta API en tiempo real → Estado actual del usuario
  • Cálculo de duración → Tiempo restante de ban
  • Mensaje personalizado → Información del baneo
  • Escalada automática → Según reincidencia

📊 Información Mostrada al Usuario (Ejemplo)

═══════════════════════════════════════
           ACCESO DENEGADO
═══════════════════════════════════════
🚫 Has sido baneado del servidor

📋 Motivo: [Razón específica del ban]
⏰ Duración: [Tiempo restante/Permanente]
👮 Staff: [Nombre del moderador]
📅 Fecha: [Cuando se aplicó]

🔗 Apelar en: panel.neoncommunity.gg
═══════════════════════════════════════

🔇 Sistema de Mutes

💬 Restricciones de Comunicación

  • Chat de texto → Bloqueado automáticamente
  • Chat de voz → Silenciado en juego
  • Comandos públicos → Restringidos según configuración
  • Radio SCP → Limitado si corresponde
  • Duración visible → Para staff y usuario

🎯 Aplicación Granular

  • Global mute → Todas las formas de comunicación
  • Text only → Solo chat escrito
  • Voice only → Solo comunicación de voz
  • Selective → Canales específicos según configuración

📊 Estadísticas y Monitoreo

⏱️ Tiempo de Juego

🎮 Tracking Automático

  • Sesiones individuales → Duración por conexión
  • Tiempo acumulado → Total histórico
  • Tiempo por servidor → Normal vs RolePlay
  • Promedio de sesión → Estadística calculada
  • Últimas conexiones → Historial reciente

📈 Métricas Avanzadas

  • Horas pico → Cuándo más juega el usuario
  • Días de la semana → Patrones de actividad
  • Duración promedio → Por tipo de servidor
  • Racha más larga → Sesión continua máxima
  • Actividad mensual → Tendencias temporales

🏆 Sistema de Logros

🎯 Achievements Automáticos

  • Tiempo de juego → Hitos de horas jugadas
  • Supervivencia → Tiempo vivo como D-Class, Scientist, etc.
  • Eliminaciones → Como diferentes SCPs
  • Escapes exitosos → Por cada clase
  • Eventos especiales → Participación en eventos

📋 Registro de Progreso

  • SlAchievements table → Base de datos específica
  • Fecha de desbloqueo → Timestamp exacto
  • Progreso parcial → Para logros graduales
  • Rareza → Porcentaje de jugadores que lo tienen
  • Recompensas → Beneficios asociados

🔄 Comunicación Bidireccional

📡 Panel → Servidor

⚡ Acciones Inmediatas

  • Aplicar ban → Kick automático si está conectado
  • Aplicar mute → Restricción inmediata de chat
  • Cambio de rol → Actualización de permisos
  • Warn aplicado → Notificación visible
  • Kick manual → Desconexión forzada

📊 Webhooks y Eventos (Ejemplo)

// Eventos enviados al servidor
OnBanApplied(userId, duration, reason)
OnMuteApplied(userId, duration, type)
OnRoleChanged(userId, newRole, oldRole)
OnWarnApplied(userId, reason, count)
OnUserKicked(userId, reason, staff)

📡 Servidor → Panel

📈 Datos Enviados

  • Conexiones/Desconexiones → Logs de actividad
  • Tiempo de sesión → Duración exacta
  • Acciones del jugador → Para estadísticas
  • Eventos especiales → Logros desbloqueados
  • Reportes automáticos → Comportamiento sospechoso

🤖 Reportes Automáticos

  • Teamkill detectado → Posible freekill
  • Comportamiento anómalo → Patrones sospechosos
  • Desconexiones sospechosas → Evitar consecuencias
  • Uso de comandos → Para auditoria
  • Interacciones conflictivas → Entre jugadores

🎮 Panel Administrativo Nativo

🔧 Remote Admin Integration

🛠️ Herramientas Estándar del Juego

  • Remote Admin Panel → Panel administrativo nativo de SCP:SL
  • Botones predeterminados → Ban, Kick, Mute usando interfaz oficial
  • Hooks de integración → Detectar acciones del panel nativo
  • Sin comandos personalizados → Usa funcionalidades existentes
  • Interfaz familiar → Staff usa herramientas conocidas

⚖️ Sanciones Integradas

  • Ban aplicado → Detectado automáticamente por plugin
  • Kick ejecutado → Hook intercepta la acción
  • Información capturada → Razón, duración, staff responsable
  • Envío al panel → POST automático con detalles
  • Historial unificado → Visible en panel web

📊 Sincronización de Datos

🔄 Flujo de Información

Entrada al servidor → Consulta roles del jugador
Durante la partida  → Monitoreo con herramientas nativas
Fin de ronda       → Envío de estadísticas actualizadas
Sanción aplicada   → Registro automático en panel

📈 Estadísticas Enviadas

  • Tiempo de juego → Duración de la sesión/ronda
  • Estadísticas de rendimiento → Kills, deaths, escapes
  • Eventos especiales → Logros desbloqueados
  • Actividad del jugador → Comportamiento registrado
  • Métricas de servidor → Datos agregados

🚨 Solución de Problemas

❌ Problemas Comunes

🔗 Usuario No Reconocido

  • Verificar Steam ID → Formato correcto en base datos
  • Cache del servidor → Reiniciar plugin si necesario
  • API connectivity → Verificar conexión con panel
  • Logs del servidor → Revisar errores específicos
  • Sincronización forzada → Comando admin para refresh

🛡️ Roles No Aplicados

  • Verificar SlRole → Campo configurado en rol
  • Jerarquía del servidor → Orden de plugins
  • Permisos del plugin → Acceso para cambiar roles
  • Delay de aplicación → Puede tardar unos segundos
  • Conflicts con otros plugins → Verificar compatibilidad

⚖️ Sanciones No Efectivas

  • Verificar API endpoint → /sanctions funcionando
  • Cache de sanciones → Puede necesitar refresh
  • Sincronización timing → Verificar intervalos
  • Logs de aplicación → Revisar si se procesaron
  • Manual override → Comandos de staff como backup

🔧 Herramientas de Diagnóstico

📊 Verificación del Sistema

  • Estado del plugin → Verificar si está funcionando
  • Conexión API → Comprobar comunicación con panel
  • Logs del servidor → Revisar errores de integración
  • Sincronización manual → Forzar actualización si necesario
  • Remote Admin logs → Verificar acciones registradas

📋 Información de Debug

  • Connection logs → Intentos de conexión de jugadores
  • API request logs → Llamadas al panel web
  • Role query logs → Consultas de roles por jugador
  • Statistics send logs → Envío de datos al finalizar ronda
  • Sanction hook logs → Detección de bans/kicks
  • Error logs → Problemas específicos del plugin

🔗 Enlaces Relacionados


📞 Soporte y Ayuda

🆘 Obtener Ayuda

💡 Información Técnica

  • API Documentation/swagger endpoints específicos
  • Unity Client → Código fuente y configuración
  • Plugin compatibility → Otros plugins de SCP:SL
  • Performance metrics → Optimización del servidor

🛠️ Para Desarrolladores

  • Cliente .NET 4.8 → Código y ejemplos
  • API integration → Patrones de uso
  • Event handlers → Hooks disponibles
  • Testing tools → Herramientas de prueba

🎮 Del Panel al Juego, Experiencia Unificada

¿Problemas con la sincronización del servidor? Consulta en el canal staff de [Discord](https://discord.neoncommunity.eu/) o revisa Cliente Unity

⚠️ **GitHub.com Fallback** ⚠️