Sincronización con SCP SL - Raul125/PanelWiki GitHub Wiki
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.
- 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
- 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
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)
- 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
- 🔴 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
- 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
- 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
// 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
- Detectar Steam ID → Identificación automática
- Consultar API Panel → GET roles SCP:SL del jugador
- Aplicar roles correspondientes → Según configuración del panel
- Usar panel administrativo nativo → Remote Admin del juego
- Registrar conexión → Log de actividad
- Monitoreo de sanciones → Panel administrativo nativo
- Detección de bans/kicks → Aplicados desde Remote Admin
- Preparar datos para envío → Al finalizar ronda
- Mantener sesión activa → Para cálculo de tiempo
- Calcular tiempo de sesión → Duración de la ronda
- Recopilar estadísticas cambiadas → Datos modificados
- Enviar a API Panel → POST con estadísticas actualizadas
- Registrar progreso → Tiempo jugado y actividad
- Usar Remote Admin nativo → Panel administrativo SCP:SL
- Detectar ban aplicado → Hook en sistema de sanciones
- Enviar información → POST ban details al panel
- Detectar kick aplicado → Hook en sistema de kicks
- Registrar en panel → Para historial unificado
- 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
═══════════════════════════════════════
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
═══════════════════════════════════════
- 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
- 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
- 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
- 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
- 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
- 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
- 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
// Eventos enviados al servidor
OnBanApplied(userId, duration, reason)
OnMuteApplied(userId, duration, type)
OnRoleChanged(userId, newRole, oldRole)
OnWarnApplied(userId, reason, count)
OnUserKicked(userId, reason, staff)
- 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
- Teamkill detectado → Posible freekill
- Comportamiento anómalo → Patrones sospechosos
- Desconexiones sospechosas → Evitar consecuencias
- Uso de comandos → Para auditoria
- Interacciones conflictivas → Entre jugadores
- 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
- 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
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
- 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
- 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
- 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
- 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
- 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
- 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
- Sincronización con Discord y Steam - Integración con Discord
- Sistema de Roles - Configuración de SlRole
- Crear Ban - Sanciones aplicadas al servidor
- Crear Mute - Restricciones de comunicación
- Logs de Auditoría - Registro de acciones del servidor
- Cliente Unity - Documentación técnica del plugin
- Canal Staff Discord → [discord.neoncommunity.eu](https://discord.neoncommunity.eu/)
- Servidor de juego → Comandos !help para staff
- Issues GitHub → Reportar problemas del plugin
-
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
- 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