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.
LagWatch
Server lag monitor for admins: per-player ping/FPS/object load with traffic-light status, one-click notices, optional diagnostics.
| Last updated | 14 hours ago |
| Total downloads | 13 |
| Total rating | 0 |
| Categories | Ashlands Update World Generation Utility Mods Deep North Update AI Generated Tools Server-side Client-side |
| Dependency string | korCaptain-LagWatch-0.3.7 |
| Dependants | 0 other packages depend on this package |
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
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]에서 서버에 맞게 바꿔 주세요.
서버 상태 줄
패널 맨 위에서 서버 자체의 상태를 좋음(녹색) / 보통(노랑) / 힘듦(빨강) 신호등으로 보여줍니다.
| 칸 | 설명 | 상태 판정 기본값 (보통 / 힘듦) |
|---|---|---|
| 서버 상태 | CPU와 프레임 시간 중 나쁜 쪽 | - |
| 내 핑 | 이 관리자 PC에서 서버까지의 핑 | - |
| 프레임 평균/최대 | 서버 프레임 시간(ms)과 끊김 횟수 | 평균 50 / 100 ms |
| CPU | 서버 프로세스 CPU. 100 = 코어 1개 전부 사용 | 85 / 130 % |
| 메모리 | 서버 프로세스 메모리 | - |
| 접속자 / 전체 오브젝트 | 접속자 수와 월드 전체 오브젝트(ZDO) 수 | - |
| 트래픽 송/수 | 전체 접속자 합계 | - |
| 가동 시간 | 서버가 켜진 시간 | - |
- 패널을 연 관리자가 있을 때만 측정하므로, 아무도 패널을 열지 않으면 서버 부담이 없습니다.
- 서버와 서버 자신 사이의 핑은 의미가 없어서, 패널을 보는 관리자 PC에서 서버까지의 핑을 보여줍니다.
- 전용 서버가 아니라 플레이어 PC에서 게임을 호스트하는 경우에는 호스트 본인의 PC도 접속자 목록에 표시됩니다.
서버 클리어 (관리자 전용)
패널 오른쪽 아래 서버 클리어 버튼으로 서버에 쌓인 불필요한 오브젝트를 정리합니다. 되돌릴 수 없는 작업이라 아래 순서로만 실행됩니다.
- 버튼을 누르면 서버가 먼저 지울 개수를 세어 미리보기로 보여줍니다: "안정적인 서버 운영을 위해 필드의 아이템 N개, 몬스터 M마리를 지웁니다."
- 관리자가 실행을 눌러 확인해야 지워집니다(확인은 60초 안에).
- 실행이 시작되면 접속 중인 모든 유저에게 같은 안내가 표시됩니다(모드가 설치된 유저).
- 서버가 멈추지 않도록 프레임마다 일정 개수씩 나눠서 지웁니다.
| 지우는 것 | 지우지 않는 것 |
|---|---|
| 바닥에 떨어진 아이템 | 플레이어가 지은 건축물, 상자, 무덤(TombStone) |
| 길들이지 않은 적대 몬스터 (숲/언데드/산/바다/평원/안개땅/드베르거 등) | 길들인 동물, 보스, 플레이어, 상인 |
| 시체(ragdoll)와 스스로 사라지는 임시 이펙트/잔해 | 일반 동물(사슴, 멧돼지 등 비적대), 물고기 |
바닥에 떨어진 아이템에는 플레이어가 일부러 바닥에 둔 물건도 포함됩니다. 서버 컨피그
[Maintenance] AllowServerClear = false로 이 기능을 완전히 끌 수 있습니다.
메모리 정리 (관리자 전용)
메모리 정리 버튼은 ① LagWatch가 쌓은 에러 기록 비우기 ② 사용하지 않는 에셋 해제 ③ GC(가비지 컬렉션) 실행을 하고, 정리 전후의 프로세스 메모리와 관리 힙(GC) 을 보여줍니다.
- 서버가 1~2초 멈출 수 있어 자동 실행은 하지 않고 관리자가 직접 누를 때만 실행됩니다(쿨타임 60초).
- 프로세스 메모리는 OS로 바로 반환되지 않아 줄지 않을 수 있습니다. 줄어드는 것은 주로 관리 힙입니다.
- 다른 모드가 가진 캐시는 비울 수 없습니다.
안내 메시지 보내기
- 행의 안내 보내기 버튼을 누르면 해당 유저에게 어떤 종류의 랙을 유발하는지와 게임을 종료하고 조치한 뒤 다시 접속해 달라는 요청이 전송됩니다.
- 메시지는 받는 유저의 게임 언어(한국어 / 영어)에 맞춰 자동으로 표시됩니다.
- 원인별 조치 안내가 함께 표시됩니다: 네트워크 불안정, 주변 오브젝트 과다, 낮은 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 | 트래픽 기준 |
| Thresholds | ServerCpuWarn / ServerCpuBad | 85 / 130 | 서버 CPU 기준 (100 = 코어 1개) |
| Thresholds | ServerFrameWarnMs / BadMs | 50 / 100 | 서버 평균 프레임 시간 기준 |
| Maintenance | AllowServerClear | true | 서버 클리어 기능 허용 (false면 완전히 꺼짐) |
| Maintenance | ClearBatchPerFrame | 100 | 서버 클리어 시 프레임당 삭제 개수 |
| 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
- Owned objects is the number of objects the server has handed to that player to simulate. Static player-built pieces, containers and tombstones are excluded, so standing in a big base does not inflate the number (trees, monsters, items and so on are counted).
- 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.
Server status bar
The top of the panel shows the server itself with a Good (green) / Fair (yellow) / Struggling (red) light.
| Cell | Meaning | Default limits (Fair / Struggling) |
|---|---|---|
| Server | The worse of CPU and frame time | - |
| My ping | Ping from this admin's PC to the server | - |
| Frame avg/max | Server frame time (ms) and hitch count | avg 50 / 100 ms |
| CPU | Server process CPU. 100 = one full core | 85 / 130 % |
| Memory | Server process memory | - |
| Players / All objects | Player count and total world objects (ZDOs) | - |
| Traffic out/in | Sum over all players | - |
| Uptime | How long the server has been running | - |
- It only measures while an admin has the panel open, so it costs the server nothing when nobody is looking.
- A ping from the server to itself is meaningless, so the bar shows the ping from the admin's own PC to the server.
- When the game is hosted from a player's PC instead of a dedicated server, the host's own PC also appears in the player list.
Server Clear (admins only)
The Server clear button at the bottom right of the panel removes junk objects from the server. Because it cannot be undone, it only runs in this order:
- Pressing the button makes the server count what would be removed and show a preview: "For stable server operation, N items and M monsters in the field will be cleared."
- The admin must press Run to confirm (within 60 seconds).
- When it starts, every online player sees the same notice (players with the mod).
- It deletes a fixed number of objects per frame so the server does not stall.
| Removed | Never removed |
|---|---|
| Items lying on the ground | Player-built pieces, containers, tombstones |
| Untamed hostile monsters (forest / undead / mountain / sea / plains / mistlands / Dverger ...) | Tamed animals, bosses, players, traders |
| Corpses (ragdolls) and self-expiring temporary effects / debris | Non-hostile wildlife (deer, boars ...), fish |
Ground items include things a player deliberately dropped on the floor. Set
[Maintenance] AllowServerClear = falsein the server config to disable the feature completely.
Free memory (admins only)
The Free memory button (1) clears LagWatch's error records, (2) unloads unused assets and (3) runs garbage collection, then shows process memory and the managed (GC) heap before and after.
- It can stall the server for a second or two, so it never runs automatically; it only runs when an admin presses it (60 second cooldown).
- Process memory is not always returned to the OS right away and may not shrink; the managed heap is what usually drops.
- It cannot clear caches held by other mods.
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 |
| Thresholds | ServerCpuWarn / ServerCpuBad | 85 / 130 | Server CPU limits (100 = one core) |
| Thresholds | ServerFrameWarnMs / BadMs | 50 / 100 | Average server frame time limits |
| Maintenance | AllowServerClear | true | Allow Server Clear (false disables it completely) |
| Maintenance | ClearBatchPerFrame | 100 | Objects deleted per frame during Server Clear |
| 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! / 쾌적한 발헤임 서버를 즐기세요!