Skip to content

Client Detector Module

The Client Detector Module detects what client type players are using when they join the server (Vanilla, Fabric, Forge, etc.).

  • Client Detection - Detects client type on join
  • Brand Identification - Identifies client brands (Vanilla, Fabric, Forge, etc.)
  • Version Detection - Shows Minecraft version
  • Staff Notifications - Alerts staff to client information
  • Hover Information - Detailed player info on hover
  • IP Tracking - Tracks IP addresses
  • Ping Display - Shows player ping
  • Location Tracking - Shows player coordinates
  • Health Display - Shows player health and food

No commands - automatic detection on join.

Notifications are automatic when players join the server.

modules/client-detector.yml
enabled: true
notifications:
enabled: true
message_format: "{prefix}&#FFFFFF{player} &#7F7F7Fjoined using &#FFFF00{client}"
hover:
enabled: true
text:
- "&#FFAA00Player Information"
- "&#FFFFFFName: &#FFFF00{player} &#FFFFFF| &#FFFF00{uuid}"
- "&#FFFFFFIP: &#FFFF00{ip} &#FFFFFF| Ping: &#FFFF00{ping}ms"
- "&#FFFFFFClient: &#FFFF00{client} &#FFFFFF| Version: &#FFFF00{version}"
- "&#FFFFFFWorld: &#FFFF00{world} &#FFFFFF| Mode: &#FFFF00{gamemode}"
- "&#FFFFFFHealth: &#FFFF00{health}/20 &#FFFFFF| Food: &#FFFF00{food}/20"
- "&#FFFFFFLocation: &#FFFF00{x}, {y}, {z}"
notifications:
enabled: true
message_format: "{prefix}&#FFFFFF{player} &#7F7F7Fjoined using &#FFFF00{client}"
hover:
enabled: false

Result:

  • Simple one-line notification
  • Client type visible
  • No hover information
PermissionDescription
zenith.join.client.notifyReceive client detection notifications
zenith.join.client.bypassBypass client detection (won’t trigger notification)
permissions:
- zenith.join.client.notify: true

What they receive:

  • ✅ Client detection notifications
  • ✅ Hover information (if enabled)
  • ✅ Player join alerts
VariableDescriptionExample
{player}Player namePlayer123
{client}Client brandVanilla, Fabric, Forge
{version}Minecraft version1.21.4
{uuid}Player UUID12345...
{ip}Player IP address192.168.1.1
{ping}Player ping in ms50
{world}Current world nameworld
{gamemode}Player gamemodeSURVIVAL
{health}Player health (0-20)20
{food}Player food level (0-20)20
{x}Player X coordinate100
{y}Player Y coordinate64
{z}Player Z coordinate200

Hover text can include all available variables:

hover:
enabled: true
text:
- "&#FFAA00Player Information"
- "&#FFFFFFName: &#FFFF00{player}"
- "&#FFFFFFUUID: &#FFFF00{uuid}"
- "&#FFFFFFIP: &#FFFF00{ip} &#FFFFFF| Ping: &#FFFF00{ping}ms"
- "&#FFFFFFClient: &#FFFF00{client} &#FFFFFF| Version: &#FFFF00{version}"
- "&#FFFFFFWorld: &#FFFF00{world} &#FFFFFF| Mode: &#FFFF00{gamemode}"
- "&#FFFFFFHealth: &#FFFF00{health}/20 &#FFFFFF| Food: &#FFFF00{food}/20"
- "&#FFFFFFLocation: &#FFFF00{x}, {y}, {z}"

The module can detect various client brands:

ClientDisplay NameNotes
VanillaVanillaStandard Minecraft client
FabricFabricFabric modded client
ForgeForgeForge modded client
QuiltQuiltQuilt modded client
Bukkit APIBukkit APISpigot/Bukkit server detection
CustomCustomCustom branded clients

The client detection works best with:

  • Vanilla clients (always accurate)
  • Most modded clients (if they send brand info)
  • Standard Minecraft protocol clients

When a player joins, staff receive a notification with client information.

Example:

[Zenith] Player123 joined using Fabric

Hover Information:

  • Player name and UUID
  • IP address and ping
  • Client type and version
  • Location and health

To disable client detection notifications:

notifications:
enabled: false

Or disable hover only:

notifications:
hover:
enabled: false

Issue: No detection notifications

  • Check if module is enabled
  • Verify zenith.join.client.notify permission
  • Check notification configuration

Issue: Wrong client detected

  • Client may be spoofing brand
  • Check for custom client modifications
  • Verify client is sending brand information

Issue: No hover information

  • Check if hover is enabled
  • Verify hover text configuration
  • Check for syntax errors in text array

Issue: “Unknown” client shown

  • Client not sending brand information
  • Custom or modified client
  • Protocol version mismatch

Enable debug mode for detailed logging:

debug:
enabled: true
console: true
file: true
  • Lightweight Detection - Minimal overhead
  • No Database - No queries required
  • Event-Based - Only triggers on join
  • Efficient Parsing - Quick brand extraction
  • Track client distribution
  • Monitor detection accuracy
  • Review unknown clients
  • Analyze client patterns

Need help with the Client Detector Module? Join our Discord: https://discord.gg/2qCMn6KHj4