Source-checkedAdmin & protection

LagWatch

by korCaptain · for Valheim

Server lag monitor for admins: per-player ping/FPS/object load with traffic-light status, one-click notices, optional diagnostics.

26Downloads
todayLast updated
BepInExLoaders
ThunderstoreSource

About LagWatch

From Thunderstore

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

Ko-fi Discord

한국어 설명 보기 | 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도 접속자 목록에 표시됩니다.

서버 클리어 (관리자 전용)

패널 오른쪽 아래 서버 클리어 버튼으로 서버에 쌓인 불필요한 오브젝트를 정리합니다. 되돌릴 수 없는 작업이라 아래 순서로만 실행됩니다.

  1. 버튼을 누르면 서버가 먼저 지울 개수를 세어 미리보기로 보여줍니다: "안정적인 서버 운영을 위해 필드의 아이템 N개, 몬스터 M마리를 지웁니다."
  2. 관리자가 실행을 눌러 확인해야 지워집니다(확인은 60초 안에).
  3. 실행이 시작되면 접속 중인 모든 유저에게 같은 안내가 표시됩니다(모드가 설치된 유저).
  4. 서버가 멈추지 않도록 프레임마다 일정 개수씩 나눠서 지웁니다.

| 지우는 것 | 지우지 않는 것 | |------|------| | 바닥에 떨어진 아이템 | 플레이어가 지은 건축물, 상자, 무덤(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 | 보고 주기(초) |


🔒 개인정보 및 한계

Read the full description on Thunderstore →

Highlights

From source data

Loaders

Runs on BepInEx.

Footprint

Rated a light load on a server.

Last update

Its author last shipped an update today.

LagWatch on Nxeon

From our catalogue
One-click install
Supported on Nxeon Valheim servers, for BepInEx servers. We download it from Thunderstore, place it, and restart the server.
Server side
Optional on the server
Server type needed
BepInEx
Server load
light
Smallest plan we suggest
Valheim — 4 GB (4 GB RAM). This follows our own load rating above, not a benchmark.
Latest build
0.3.9, released 2026-11-03

Game versions by loader

LoaderGame versionsNewest
BepInEx

From 4 recorded builds of LagWatch.

Recent builds

BuildReleasedGame versionsLoaders
0.3.92026-11-03n/aBepInEx
0.3.82026-11-03n/aBepInEx
0.3.72026-11-02n/aBepInEx
0.3.22026-11-02n/aBepInEx

Dependencies

Declared by the newest build that lists any. Required ones are installed with it on one-click installs.

Run LagWatch on a Valheim server

Pick a server or deploy a new one above; it is installed in one click.

What kind of mod it is

From the catalog
Listed on Thunderstore as “Admin”

Admin & protection

Permissions, moderation, anti-cheat and land protection for the people running the server.

Works on a server

From source side support

Thunderstore lists server-side support for LagWatch as optional: it can run on a server, but isn’t required there.

Compatibility

Game
Valheim
Loaders
BepInEx
Runs on
Serveroptional on the server
Requires
One-click install needs a BepInEx server.

Verified at the source

  • ✓ThunderstoreOfficial listing, checked 2026-11-03Open ↗
  • ✓AuthorkorCaptain, as published on Thunderstore
  • ✓LicenseNot published by the sourceFree

LagWatch, answered

Generated from the mod’s own source data.

Do my players need to install LagWatch?

Thunderstore lists server-side support for LagWatch as optional: it can run on a server, but isn’t required there.

Which loaders does it support?

BepInEx.

Is it free?

Yes. LagWatch is free to download from Thunderstore.

How do I add it to my Nxeon server?

Use “Add to a server” on this page, or open NxLabs from your dashboard. We install it, restart your server and switch it on.

NxLabs

Run LagWatch on a Valheim server.

Deploy in about a minute from $9.99 a month, then add LagWatch in one click.