
LagWatch
Server lag monitor for admins: per-player ping/FPS/object load with traffic-light status, one-click notices, optional diagnostics.LagWatch - Valheim Server Lag Monitor
한국어 설명 보기 | English Description
#Language support: 한국어, English (notices sent to players are shown in each player's own game language)
🇰🇷 한국어 (Korean)
개요
LagWatch는 한 명의 접속 환경이나 PC 때문에 서버 전체가 랙이 걸릴 때, 누가 왜 그런지 관리자가 한눈에 확인할 수 있게 해주는 서버 관리 모드입니다. 접속자별 핑, FPS, 소유 오브젝트, 송신 대기, 트래픽을 녹색 / 주황 / 빨강 신호등으로 보여주고, 버튼 한 번으로 해당 유저에게 "게임을 종료하고 조치해 주세요" 안내를 보낼 수 있습니다.
📦 필수 모드 (Dependencies)
| 모드 | 버전 | 필수 여부 |
|---|---|---|
| BepInExPack_Valheim | 5.4.2202+ | 필수 |
| ConfigurationManager | 최신 | 권장 (F1 GUI 설정용) |
중요: 전용 서버와 모든 클라이언트 양쪽에 설치하세요. 모드가 없는 유저도 패널에는 표시되지만(핑, 오브젝트, 트래픽) FPS / 모드 정보가 없고 안내 메시지를 받을 수 없습니다. 관리자는 서버
adminlist.txt에 등록된 유저입니다.
✨ 주요 기능
관리자 랙 패널
- 기본 단축키 F10 (컨피그
[Client] PanelHotkey에서 변경), 관리자만 열 수 있습니다. - 접속자 한 명이 한 줄: 핑 / FPS / 소유 오브젝트 / 송신 대기 / 트래픽 / 설치 모드 수 / 상태
- 나쁜 상태의 유저가 맨 위에 오도록 자동 정렬됩니다.
- 서버가 변화가 있을 때 보내주는 방식이라 패널을 열어 두어도 매 프레임 조회하지 않습니다.
- 행을 클릭하면 아래에 상세 정보(핑 평균/최대, FPS 평균/최저, 상위 소유 오브젝트, 설치 모드 목록)가 표시됩니다.
신호등 상태
색만으로 구분하지 않도록 신호등 색 + 글자 라벨을 함께 표시합니다. 가장 나쁜 지표가 종합 상태가 됩니다.
| 지표 | 주의 (주황) 기본값 | 위험 (빨강) 기본값 | 측정 위치 |
|---|---|---|---|
| 핑 (평균) | 150 ms 이상 | 300 ms 이상 | 서버 |
| 소유 오브젝트 | 3000개 이상 | 8000개 이상 | 서버 |
| 송신 대기 | 50 KB 이상 | 200 KB 이상 | 서버 |
| 트래픽 (송수신 합) | 150 KB/s 이상 | 400 KB/s 이상 | 서버 |
| FPS (평균) | 30 이하 | 15 이하 | 클라이언트 보고 |
기본값은 아직 서버 환경에 맞게 조정되지 않은 시작값입니다.
[Thresholds]에서 서버에 맞게 바꿔 주세요.
안내 메시지 보내기
- 행의 안내 보내기 버튼을 누르면 해당 유저에게 어떤 종류의 랙을 유발하는지와 게임을 종료하고 조치한 뒤 다시 접속해 달라는 요청이 전송됩니다.
- 메시지는 받는 유저의 게임 언어(한국어 / 영어)에 맞춰 자동으로 표시됩니다.
- 원인별 조치 안내가 함께 표시됩니다: 네트워크 불안정, 주변 오브젝트 과다, 낮은 FPS, 송신 대기, 과다 트래픽
- 같은 유저에게 반복 전송되지 않도록 쿨타임이 적용됩니다.
자동 경고 (선택)
- 상태가 빨강인 유저에게 안내를 자동으로 보냅니다. 기본 꺼짐이며 관리자가 패널 상단 버튼이나 컨피그(
[Server] AutoWarnEnabled)로 켜고 끌 수 있습니다. - 자동 킥/차단은 하지 않습니다.
서버 진단 기록 (선택)
- 서버 랙의 원인을 나중에 분석할 수 있도록 서버 부하 요소와 자주 나는 에러를 파일로 기록합니다. 기본 꺼짐, 컨피그
[Diagnostics] Enabled로 켜고 끄며 서버 재시작이 필요 없습니다. - 기록 위치: 서버의
BepInEx/LagWatch/diag-날짜.jsonl(주기마다 한 줄) - 기록 항목: 서버 프레임 평균/최대 시간, 끊김 횟수, GC 메모리, 씬 오브젝트 수, ZDO 총 개수와 상위 프리팹, 자주 나는 에러 상위 10개(어느 플러그인에서 났는지 포함), 접속자별 상태
- 서버에 부하를 주지 않도록 초당 로그 처리 상한, 에러 종류 개수 상한, 하루 파일 크기 상한, 보관 일수(기본 7일)가 내장되어 있습니다. 꺼져 있으면 로그 수집 자체를 하지 않습니다.
⚙️ 설정 (Config)
설정 파일: BepInEx/config/captain.LagWatch.cfg (서버와 클라이언트 각각)
| 섹션 | 항목 | 기본값 | 설명 |
|---|---|---|---|
| Server | SampleIntervalSec | 5 | 핑/트래픽 측정 주기(초) |
| Server | ZdoScanIntervalSec | 30 | 소유 오브젝트 전체 집계 주기(초) |
| Server | AutoWarnEnabled | false | 빨강 상태 유저에게 자동 안내 |
| Server | WarnCooldownSec | 120 | 같은 유저에게 안내 사이 최소 간격 |
| Thresholds | PingWarnMs / PingBadMs | 150 / 300 | 핑 기준 |
| Thresholds | OwnedObjectsWarn / Bad | 3000 / 8000 | 소유 오브젝트 기준 |
| Thresholds | FpsWarn / FpsBad | 30 / 15 | FPS 기준 |
| Thresholds | SendQueueWarnKB / BadKB | 50 / 200 | 송신 대기 기준 |
| Thresholds | TrafficWarnKBs / BadKBs | 150 / 400 | 트래픽 기준 |
| Diagnostics | Enabled | false | 서버 진단 기록 |
| Diagnostics | ReportIntervalMin | 10 | 기록 주기(분) |
| Diagnostics | IncludeWarnings | false | 경고도 집계 |
| Diagnostics | HitchMs | 100 | 이 시간 이상 걸린 프레임을 끊김으로 집계 |
| Diagnostics | MaxLogsPerSec | 500 | 초당 로그 처리 상한 |
| Diagnostics | MaxDistinctErrors | 300 | 추적하는 에러 종류 상한 |
| Diagnostics | RetainDays / MaxFileMB | 7 / 5 | 보관 일수 / 하루 파일 크기 상한 |
| Client | PanelHotkey | F10 | 패널 단축키 |
| Client | ReportEnabled | true | FPS와 모드 목록을 서버로 보고 |
| Client | ReportIntervalSec | 5 | 보고 주기(초) |
🔒 개인정보 및 한계
- 클라이언트는 평균/최저 FPS와 설치된 모드 이름(이름+버전) 을 서버로 보냅니다. 다른 정보는 보내지 않으며, 유저는
[Client] ReportEnabled = false로 끌 수 있습니다. - FPS와 모드 목록은 클라이언트가 직접 보고한 값이라 조작될 수 있습니다. 참고용으로만 사용하세요.
- 신호등은 원인 후보를 보여주는 참고 지표이며 원인을 단정하지 않습니다.
- 패널은 마우스 조작을 위해 열 때 인벤토리를 함께 엽니다(발헤임은 인벤토리가 열려야 마우스가 동작합니다). 게임패드 조작은 아직 검증되지 않았습니다.
- 서버와 클라이언트의 통신 규약 버전이 다르면 서로의 메시지를 무시하고 로그에 경고를 남깁니다. 통신 규약이 바뀌는 업데이트는 양쪽을 함께 업데이트하세요.
🇺🇸 English
Overview
LagWatch is a server admin mod that shows who is making the whole server lag, and why, at a glance when one player's connection or PC drags everyone down. It displays each player's ping, FPS, owned objects, send queue and traffic with a green / orange / red traffic light, and lets you send that player a "please quit the game and fix this" notice with one click.
📦 Dependencies
| Mod | Version | Required |
|---|---|---|
| BepInExPack_Valheim | 5.4.2202+ | Required |
| ConfigurationManager | Latest | Recommended (F1 GUI settings) |
Important: install on both the dedicated server and every client. Players without the mod still appear in the panel (ping, objects, traffic) but have no FPS / mod data and cannot receive notices. Admins are the players listed in the server's
adminlist.txt.
✨ Features
Admin lag panel
- Default hotkey F10 (change it in
[Client] PanelHotkey). Admins only. - One row per player: ping / FPS / owned objects / send queue / traffic / installed mods / status
- Worst players are sorted to the top.
- The server pushes updates when data changes, so the panel does not poll every frame while open.
- Click a row to see details below: ping avg / max, FPS avg / min, top owned objects and the installed mod list.
Traffic-light status
Each row shows a light color plus a text label so the state is not conveyed by color alone. The worst metric decides the overall status.
| Metric | Caution (orange) default | Critical (red) default | Measured on |
|---|---|---|---|
| Ping (average) | 150 ms or more | 300 ms or more | Server |
| Owned objects | 3000 or more | 8000 or more | Server |
| Send queue | 50 KB or more | 200 KB or more | Server |
| Traffic (in + out) | 150 KB/s or more | 400 KB/s or more | Server |
| FPS (average) | 30 or less | 15 or less | Client report |
The defaults are untuned starting points. Adjust them under
[Thresholds]for your server.
Send a notice
- Press Send notice on a row to tell that player what kind of lag they cause and ask them to quit the game, fix it and rejoin.
- The text is shown automatically in the receiving player's own game language (Korean / English).
- Each cause comes with a fix hint: unstable network, too many objects nearby, low FPS, send queue, heavy traffic.
- A cooldown prevents sending to the same player repeatedly.
Auto warning (optional)
- Automatically sends the notice to players whose status is red. Off by default; admins toggle it with the button at the top of the panel or in the config (
[Server] AutoWarnEnabled). - It never kicks or bans anyone.
Server diagnostics (optional)
- Records server load factors and frequent error messages to a file for later analysis. Off by default; toggle
[Diagnostics] Enabledin the config, no restart needed. - Location:
BepInEx/LagWatch/diag-YYYY-MM-DD.jsonlon the server (one line per interval) - Recorded: server frame avg / max time, hitch count, GC memory, scene object count, total ZDOs and top prefabs, the top 10 frequent errors (including which plugin logged them) and per-player status
- Built to not load the server: a per-second log processing cap, a cap on distinct error types, a daily file size cap and retention days (default 7). When off, no log collection happens at all.
⚙️ Config
Config file: BepInEx/config/captain.LagWatch.cfg (on the server and on each client)
| Section | Entry | Default | Description |
|---|---|---|---|
| Server | SampleIntervalSec | 5 | Seconds between ping / traffic samples |
| Server | ZdoScanIntervalSec | 30 | Seconds between full owned-object scans |
| Server | AutoWarnEnabled | false | Automatically notify red players |
| Server | WarnCooldownSec | 120 | Minimum seconds between notices to the same player |
| Thresholds | PingWarnMs / PingBadMs | 150 / 300 | Ping limits |
| Thresholds | OwnedObjectsWarn / Bad | 3000 / 8000 | Owned object limits |
| Thresholds | FpsWarn / FpsBad | 30 / 15 | FPS limits |
| Thresholds | SendQueueWarnKB / BadKB | 50 / 200 | Send queue limits |
| Thresholds | TrafficWarnKBs / BadKBs | 150 / 400 | Traffic limits |
| Diagnostics | Enabled | false | Server diagnostics recording |
| Diagnostics | ReportIntervalMin | 10 | Minutes between records |
| Diagnostics | IncludeWarnings | false | Also count warnings |
| Diagnostics | HitchMs | 100 | Frames at or above this many ms count as hitches |
| Diagnostics | MaxLogsPerSec | 500 | Log events processed per second |
| Diagnostics | MaxDistinctErrors | 300 | Cap on distinct error types tracked |
| Diagnostics | RetainDays / MaxFileMB | 7 / 5 | Retention days / daily file size cap |
| Client | PanelHotkey | F10 | Panel hotkey |
| Client | ReportEnabled | true | Report FPS and mod list to the server |
| Client | ReportIntervalSec | 5 | Seconds between reports |
🔒 Privacy and limitations
- Clients send their average / minimum FPS and installed mod names (name + version) to the server. Nothing else is sent, and players can turn it off with
[Client] ReportEnabled = false. - FPS and the mod list are self-reported by the client and can be faked. Use them as hints only.
- The traffic light shows likely causes for reference; it does not prove one.
- The panel opens the inventory with it so the mouse works (Valheim only accepts mouse input while the inventory is open). Gamepad use has not been verified.
- If the server and client use different protocol versions they ignore each other's messages and log a warning. Update both sides together when an update changes the protocol.
🎮 My Other Mods / 함께 즐기면 더 좋은 모드
🌳 CaptainSkillTree
전문가 트리, 무기 트리, 직업 시스템으로 바이킹을 성장시키는 종합 스킬트리 모드입니다.
A comprehensive skill tree mod with expert trees, weapon trees and a class system for your Viking.
🎵 CaptainAudio
🎶 발헤임의 전투를 음악으로 더욱 생동감 있게!
🎶 Bring your Valheim battles to life with music!
👹 MonsterModifiers
몬스터에게 랜덤 속성을 부여해 난이도 균형을 맞출 수 있습니다.
Give monsters random modifiers to keep the challenge up.
🗺️ PotalMap
포탈을 지도에서 선택해 이동하고 길드원끼리 공유할 수 있습니다.
Pick portals on the map to travel, and share them with your guild.
🪦 FindTomb
사망 후 무덤 위치를 지도 핀과 방향 안내로 알려 줍니다.
Shows where your grave is with map pins and a direction guide after you die.
🏰 Captain Territorial
거점 구역의 건축·상호작용·침입을 제어하는 영토 와드 모드입니다.
A territory ward mod that controls building, interaction and intrusion inside a zone.
🛠️ NullReferenceFix
여러 모드를 함께 쓸 때 생기는 NullReferenceException과 로그 스팸을 줄여 줍니다.
Reduces NullReferenceException crashes and log spam when running many mods together.
📝 Credits / 크레딧
- Developer / 개발자: KorCaptain
- Framework / 프레임워크: BepInEx, Harmony
💬 Support / 지원
- Discord: KorCaptainSkillTree_MOD_Server - https://discord.gg/W26PTxYhug
- Ko-fi: https://ko-fi.com/korcaptain
- Issues: Report bugs and suggestions on Discord
- 문제 보고: Discord에서 버그 및 제안사항 보고
📜 License / 라이선스
Developer - KorCaptain
Keep your Valheim server smooth! / 쾌적한 발헤임 서버를 즐기세요!