Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
TimePlayerControl
Limita el tiempo de juego por jugador en servidores Valheim. HUD, top 5, pausa colectiva, tiempo total acumulado y bloques diarios configurables.
| Date uploaded | a month ago |
| Version | 1.0.3 |
| Download link | Pedro159_team-TimePlayerControl-1.0.3.zip |
| Downloads | 71 |
| Dependency string | Pedro159_team-TimePlayerControl-1.0.3 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.
Preferred version: 5.4.2202README
TimePlayerControl
Limita el tiempo de juego por jugador en servidores de Valheim (BepInEx). Incluye HUD en cliente, ranking top 5 y desconexión limpia al menú cuando se acaba el tiempo.
Características
- Tiempo diario (o por bloque) por SteamID, configurable en JSON
- Bloques y umbral de pausa por día de la semana (
DailyRules) - HUD compacto / detalle (tecla
F1por defecto, configurable) - Top 5 de mayor tiempo jugado acumulado (sigue contando en pausa colectiva)
- Auto-ocultado del HUD con inventario, mapa y menú
- Mensaje «Te has quedado sin tiempo» y vuelta al menú de inicio
- Jugadores VIP/admin exentos (
IsExempt)
Instalación
Con gestor (r2modman / Thunderstore Mod Manager)
- Instala el pack en el perfil del cliente y en el del servidor dedicado
- Asegúrate de que ambos usen la misma versión del mod
Manual
Copia el contenido de plugins/ a:
BepInEx/plugins/
Archivos incluidos:
TimePlayerControl.dllNewtonsoft.Json.dll
Reinicia cliente y servidor.
Importante: cliente + servidor
El mod debe estar en ambos. El servidor gestiona tiempos y kicks; el cliente muestra el HUD y recibe el sync.
Configuración
Al iniciar se crea:
BepInEx/config/TimePlayerControl.json
- Servidor: tiempos, resets, jugadores,
TotalPlayedSeconds, idioma de mensajes (Language) - Cliente: layout del HUD e idioma del HUD (
Language)
Idioma
"Language": "ES"
ES— español (default)EN— inglés
El del cliente afecta el HUD; el del servidor afecta kick/chat//tiempo.
Tiempo y pausa (servidor)
Los valores globales aplican a todos los días. Con DailyRules podés cambiar el bloque y el % de pausa solo algunos días. Los días que no listes siguen usando el global.
El día se calcula con la medianoche local de ResetHourUtc (con 3 = 00:00 Chile).
"DefaultBlockSeconds": 21600,
"PauseTimeMinOnlineRatio": 0.75,
"DailyRules": {
"Monday": {
"DefaultBlockSeconds": 18000,
"PauseTimeMinOnlineRatio": 0.8
},
"Friday": {
"DefaultBlockSeconds": 28800,
"PauseTimeMinOnlineRatio": 0.5
},
"Saturday": {
"DefaultBlockSeconds": 28800
}
}
DefaultBlockSeconds— segundos del bloque (21600 = 6 h, 18000 = 5 h)PauseTimeMinOnlineRatio— fracción online/registrados para pausar el descuento (0.75 = 75 %)- En un día podés omitir un campo: se usa el global
- Nombres de día:
Monday…SundayoLunes…Domingo
HUD (cliente)
| Campo | Descripción |
|---|---|
Language |
ES o EN |
HudAnchor |
TopLeft, TopRight, BottomLeft, BottomRight |
HudToggleKey |
Tecla para expandir/compactar (ej. F1, F6) |
HudAutoHideOverlays |
Oculta el HUD con UI del juego |
HudStartCompact |
Empieza en modo compacto |
HudOpacity |
Transparencia (0–1) |
HudSnapBelowMinimap |
Coloca el HUD bajo el minimapa |
HudUseCustomPosition |
Usa posición arrastrada (Escape) |
Jugadores (servidor)
RemainingSeconds/AssignedSeconds— bloque actualTotalPlayedSeconds— acumulado (no se resetea cada día; también suma durante la pausa colectiva)IsExempt— sin límiteNextResetTime— próxima renovación
Uso en juego
- F1 (o tu
HudToggleKey): compacto ↔ detalle - Panel detalle: restante, asignado, usado, total jugado, renovación y top 5
- Chat:
/tiempo,/tiempos,/hud
Código fuente
https://github.com/Pedrox1591/TimePlayerControl-Valheim
Notas
- Probado con BepInEx 5 (pack Valheim)
- Tras actualizar el mod, actualiza cliente y servidor
CHANGELOG
Changelog — TimePlayerControl
Los cambios más recientes primero.
Cliente y servidor deben usar la misma versión: el paquete TimePlayerControl_TimeSync cambió de layout.
1.0.3
Fixes: el HUD y el top ya no se congelan en pausa colectiva; el umbral «Pausa a N/M» usa el % del JSON (no el ratio actual); el bloque diario se renueva también si el jugador sigue dentro al cruzar ResetHourUtc; tras un join fallido (p. ej. password) el HUD vuelve a sincronizar; marco woodpanel_info y textos alineados (sin 9-slice ni bleed).
Features: TotalPlayedSeconds sigue sumando en pausa; DailyRules para bloque y % de pausa por día; el HUD muestra conectados/registrados y aviso de pausa.
1.0.2
Trabajo intermedio (parte no compilaba: llamadas a SendPlayerTimeSyncToPeer con 3 args y método de 2).
- Se quitó el
returntemprano deProcessTimeTicken pausa. - Se añadió
BroadcastTimeSyncToReadyPeersy_lastPauseActive. - El
bool pauseActiveen el paquete yClientTimeInfo.PauseActivese cerraron en 1.0.3.
1.0.1
- Límite por SteamID, JSON en
BepInEx/config/TimePlayerControl.json. - HUD IMGUI compacto/detalle (
HudToggleKey, default F1), top 5,LanguageES/EN. - RPC
TimePlayerControl_TimeSyncyTimePlayerControl_ForceMenu. - Pausa colectiva:
online / registered >= PauseTimeMinOnlineRatio(default 0.75) → no descontar. Sin heartbeat: HUD congelado (1.0.3). registeredCount = DataStore.Players.Count(todos los del JSON, no solo online).