NamelessIPLogger
Velocity/Paper plugin that correlates player UUIDs, usernames, and IPs over time. Logs connection events with session durations and enriches records with local GeoIP data for moderation, security auditing, and ban-evasion investigation.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
NamelessIPLogger
NamelessIPLogger is a local GeoIP MMDB data for moderation and security auditing. It builds historical correlations between player local GeoIP MMDB data, logs connection activity, and enriches IP records with local GeoIP MMDB data. Player lookups are local; no per-player external API requests are made.
---
Please be aware, this plugin is licensed under the PolyForm Noncommercial License 1.0.0 and as such cannot be used by servers/proxies that participate in/allow/facilitate any of the following to occur with real-world money:
- and/or the generation of any other form of revenue - and/or the generation of any other form of revenue - and/or the generation of any other form of revenue - and/or the generation of any other form of revenue - and/or the generation of any other form of revenue - and/or the generation of any other form of revenue
---
(Please see the GitHub README for the latest info; this description may lag behind slightly)
What it does
- Builds long-term UUID, username, and IP correlation records. - Logs connection and disconnection events with timestamps, session IDs, and session duration. - Enriches IP records with country, region, city, timezone, ISP, ASN, latitude, longitude, and lookup status when GeoIP logging is enabled. - Stores data in plain TSV files under `plugins/namelessiplogger/` for review, export, and external analysis. - Supports configurable logging controls for usernames, IPs, GeoIP enrichment, TSV outputs, console logs, command access, and retention pruning. - Caches GeoIP lookups in memory for faster repeated lookups.
Why you would want it
If you investigate ban evasion, alt accounts, account sharing, or suspicious activity, this plugin gives you fast historical identity/IP evidence for operational moderation workflows.
GeoIP providers
Two providers are supported through `config.yml`:
- MaxMind GeoLite2 (default): no account required, uses DB-IP City Lite and ASN Lite MMDB downloads. - MaxMind GeoLite2: requires a MaxMind account/license key, uses GeoLite2 City and ASN downloads.
Databases are downloaded when needed, refreshed after the configured staleness interval, and can be forced immediately with `/niplookup updatedb`.
Commands
Commands are console-only by default. Set `commands.allow-admin-permission: "true"` to also allow players with `namelessiplogger.admin` to use them.
| Command | Description | |---|---| | `/niplookup uuid <uuid>` | Look up all data for a UUID | | `/niplookup username <name>` | Look up all data for a username | | `/niplookup ip <ip>` | Look up all data for an IP | | `/niplookup reload` | Reload config without restarting the platform | | `/niplookup updatedb` | Force immediate GeoIP database redownload | | `/niplookup checkupdates` | Manually check GitHub Releases for a newer stable version |
Aliases: `/niplog`, `/iplookup`, `/iplog`
Additional subcommand aliases are also accepted: `user`, `name`, `update-db`, `refreshdb`, `checkupdate`, `updatecheck`, `update-check`, and `updates`.
Privacy and network disclosure
This plugin can store UUIDs, usernames, IPs, connection timestamps, session durations, and optional GeoIP enrichment. Logging fields, TSV outputs, console output, retention, and player command access are configurable.
Outbound network activity is limited to:
- GeoIP database downloads when needed. - Optional scheduled stable-release update checks against GitHub Releases, enabled by default. - Manual update checks when `/niplookup checkupdates` is run. - Optional anonymous telemetry pings to NamelessTelemetry, enabled by default.
Telemetry does not send player UUIDs, usernames, player IPs, connection logs, or GeoIP data. It sends only a hashed local instance ID, UTC date, project name, and count. Set `telemetry.enabled: "false"` to disable it.
Treat stored identity/IP data as sensitive and set retention policies appropriate for your jurisdiction and server policy.
Nightly auto-builds
Nightly development builds are published automatically from the latest `main` or `master` branch changes, and can also be triggered manually.
https://github.com/NanashiTheNameless/NamelessIPLogger/releases/tag/nightly
Nightly builds are intended for testing and may change more frequently than stable versioned releases. Built-in update checks ignore prereleases and the `nightly` tag.