Documentation
Everything you need to get started with Archivist -- from installation to API usage.
What is Archivist?
Archivist is a client-side Fabric mod that silently captures every multiplayer server you join. It reads data that the server sends to every connected client and uses 4 detection methods running simultaneously to identify which plugins the server is running.
What data is collected
- Server IP address, port, and domain
- Server brand string (e.g. "Paper", "Spigot", "Purpur")
- Minecraft version and player count
- Detected plugins
- URLs and server addresses
- Worlds / dimensions you enter
- Resource packs
All collected data comes from information the server sends to every connected client during normal gameplay. Logs are saved locally as JSON files. Uploading to the Archivist platform is entirely optional.
Requirements
- Java 21 or newer
- Fabric Loader
- Fabric API
Supported Versions
1.21 - 1.21.11
Steps
- Download the latest
.jarfor your Minecraft version from the releases page - Place the
.jarfile in your.minecraft/modsfolder (Fabric API must also be in the mods folder) - Launch Minecraft with the Fabric loader profile
- Join any multiplayer server -- Archivist starts detecting automatically
- Open the Archivist GUI to view results
Keybinds
| Key | Action |
|---|---|
| Z | Open / close the Archivist GUI |
| X | Start GUI rule capture (while a server inventory is open) |
All settings are stored in .minecraft/archivist/config.json and can be edited in-game through the Settings window.
Core settings
| Setting | Default | Description |
|---|---|---|
| enabled | true | Master on/off toggle for the entire mod |
| logFolder | "archivist/logs" | Directory where session logs are saved |
| autoHandleResourcePacks | true | Automatically accept server resource packs |
GUI settings
| Setting | Default | Description |
|---|---|---|
| activeTheme | "Aurora" | Current color theme |
| layoutMode | "dynamic" | Layout mode: windows or dynamic |
| gradientsEnabled | true | Enable gradient rendering on UI elements |
| showHudSummary | true | Show plugin summary on the HUD |
| showScanOverlay | true | Show scan progress overlay on join |
| guiAnimations | true | Enable window open/close animations |
| passiveGuiDetection | true | Automatically scan server GUIs for plugins |
| taskbarPosition | "bottom" | Taskbar position: bottom, top, or left |
| sidebarPosition | "left" | Sidebar side in dynamic mode |
| sidebarOrder | [] | Custom ordering for sidebar buttons |
API settings
| Setting | Default | Description |
|---|---|---|
| apiEndpoints | [] | List of configured sync endpoints |
| autoUploadOnLog | false | Auto-push logs on disconnect |
| autoPushMinConfidence | 0.4 | Minimum session confidence required for auto-push (filters lobby data) |
Each API endpoint supports adapter types: REST and Discord. Endpoints are configured through the GUI with their own URL, auth headers, push/download/reset paths, and enable toggles.
When you connect to a server, Archivist kicks off four detection methods in parallel. Each detection carries a confidence score from 0.0 to 1.0. When the same plugin is detected by multiple methods, confidences are merged using: merged = 1.0 - (1.0 - a) * (1.0 - b) -- boosting confidence when independent sources agree.
Command tree scanner
Reads the server's full command list the moment you join and matches commands against a glossary of 500+ known plugin aliases. Namespaced commands (like pluginname:command) are detected with even higher confidence.
Namespace detector
Inspects registry and plugin channel data sent during the connection handshake. Many plugins register custom namespaces for their items, blocks, or network channels -- Archivist catches these and resolves them to plugin names.
Brand detector
Parses the server brand string to identify what server software is running. Detects Paper, Spigot, Purpur, Velocity, BungeeCord, Waterfall, Folia, and Pufferfish, along with their version numbers when available.
GUI fingerprinting
Passively watches every server GUI (chest menu, shop, etc.) you open and matches item patterns against 73 built-in heuristic rules. Detects plugins like AuctionHouse, ShopGUI+, CrazyAuctions, Jobs Reborn, mcMMO, and many more. You can also create your own custom rules by pressing X while a server inventory is open.
Confidence scores
| Detection Type | Confidence |
|---|---|
| Command Tree (namespaced) | 0.95 |
| Brand | 0.90 |
| Tab Complete | 0.85 |
| Channel / Namespace | 0.80 |
| Command Tree (glossary) | 0.70 |
| Registry | 0.65 |
| Chat URL | 0.55 |
| Heuristic (GUI) | 0.45 |
| Fingerprint (rule) | per-rule |
| Manual | 1.00 |
Lobby detection
A weighted multi-signal system determines whether you're on a real game server or a lobby/hub. It checks the command count, presence of lobby-related commands (/server, /hub, /lobby), survival commands (/sethome, /tpa, /claim), adventure mode, hotbar items, and player count. Lobby sessions are assigned low confidence so their data is filtered out from uploads and detection results. All detection confidences are multiplied by the session confidence before storage.
URL & address extraction
Archivist watches the Tab and Scoreboard for server addresses and URLs. It can handle different characters pretending to be Latin, Unicode dot variants, NFKC Unicode normalization, and automatic filtering of non-game domains (Mojang, Microsoft, Discord, YouTube, etc).
The Archivist GUI
Press Z to open the interface. Everything is built from scratch -- no vanilla Minecraft widgets, just a fully custom UI system.
Layout modes
- Windows Mode -- Desktop-style experience with independent draggable, resizable windows and a taskbar. Move them around, minimize them, stack them however you like.
- Dynamic Mode -- A cleaner sidebar + content panel layout. Sections can be detached into floating windows for a hybrid setup.
Windows include: Server Info, Plugin List, Console, Settings, Inspector, Server List, Manual Log, Account Manager, Proxy Manager, and Automation.
Console commands
Type these in the console panel inside the Archivist GUI:
| Command | Description |
|---|---|
| scan | Triggers a re-scan of the current server |
| plugins | Lists all detected plugins with detection methods |
| info | Shows current server summary |
| export | Exports current server log (json / csv / clipboard) |
| db | API sync management (status / sync / download / test / reset / set) |
| theme | Switches color theme (theme <name> / theme list) |
| inspector | Toggles GUI inspector mode |
| npc | NPC interaction automation (npc / npc stop / npc status) |
| clear | Clears the console output |
| help | Lists all available commands |
Creating custom GUI rules
- Open a server GUI that belongs to the plugin (like a shop menu or selector)
- Press
Xto enter capture mode - Click on the inventory slots that are unique to this plugin (items that always appear in the same spot)
- Type the plugin name in the text field
- Press Enter to save
Your rule is stored in archivist/rules/ and will match that GUI pattern on any server from now on. If you capture the same plugin again, it adds the new pattern alongside existing ones.
Archivist comes with 9 built-in themes: Aurora, Blue, Ember, Midnight, Monochrome, Monochrome Plus, Red, Slate, and and Sunset. There's also an animated Rainbow theme. Aurora is the default.
Creating your own theme
Theme files are JSON and go in .minecraft/archivist/themes/. Archivist picks them up automatically on next launch. You only need to define the colors you want to customize -- everything else falls back to sensible defaults.
Example theme
{
"name": "Sunset",
"colors": {
"accent": "0xFFFF7043",
"accentDim": "0xFFC0503A",
"windowBackground": "0xBB0F0F20",
"textPrimary": "0xFFFFEADD"
},
"gradient": {
"top": "0xBB101028",
"bottom": "0xBB050510"
},
"gradients": {
"titleBar": { "top": "0xDD2A1530", "bottom": "0xDD0A0810" },
"button": { "top": "0xFF251528", "bottom": "0xFF0E0A14" },
"windowBackground": { "top": "0xBB181020", "bottom": "0xBB0A0810" }
}
}Color format
Colors use the 0xAARRGGBB hex format (standard Minecraft convention). AA is alpha transparency, RR/GG/BB are red/green/blue.
Key properties
colors-- Core color palette. The full system supports 40+ color properties covering every UI element.gradient-- Screen background gradient (topandbottomcolors).gradients-- Per-component gradients fortitleBar,button,taskbar, andwindowBackground.animatedGradient-- Set totrueor a float value (speed) for animated HSL hue-rotating gradients.
Or skip JSON entirely and use the in-game theme creator in the Settings window, which gives you color wheels, sliders, and a live preview.
Every server session is automatically saved as a JSON file in archivist/logs/. Files are named by domain or IP, so reconnecting to the same server updates the existing log.
What each log captures
- Server IP, port, domain, brand, version, and player count
- All detected plugins with confidence scores
- GUI-detected plugins with inventory context
- URLs and game server addresses found in chat
- World info (dimensions visited, resource packs)
Export formats
JSON file, CSV file, or straight to your clipboard. Use the export command in the console or the GUI export button. Exports are saved to archivist/exports/.
Archivist includes a built-in account manager for switching between Minecraft accounts at runtime, though it is still under development.
Supported account types
- Offline / cracked accounts with custom usernames
- Token-based accounts for manual integration
- (Microsoft account logins are temporarily disabled)
All tokens and credentials are encrypted with AES-256-GCM and stored locally.
Connect through SOCKS5 proxies with per-profile configuration. Each proxy profile has its own host, port, and optional credentials (encrypted). Proxies are injected at the Netty level via mixin, so they work transparently with Minecraft's networking.
Archivist includes an automation engine for users who want to scan multiple servers in sequence when they're away. It runs a state machine that connects to servers from a list, waits for detection to complete, then disconnects and moves to the next one.
The automation system can also perform lobby tasks -- scanning hotbar items, navigating GUI menus, and interacting with NPCs to try and get past hub servers and reach the actual game server before scanning. All interactions use jittered delays to appear natural.
The system is configured through the GUI and is entirely optional.
This is an experimental feature. It might be removed or permanently added.
Generating your key
- Log in with your Discord account
- Navigate to your Dashboard
- Click Generate API Key
- Copy the key immediately -- it will not be shown again
Adding an endpoint in the config
Add an entry to the apiEndpoints array in .minecraft/archivist/config.json. Header values are Base64-encoded in the config file. This site accepts data at both /api/push and /api/sync:
{
"apiEndpoints": [
{
"name": "Archivist Platform",
"url": "https://archivist-web.net/api",
"method": "POST",
"pushEndpoint": "/push",
"downloadEndpoint": "/download",
"resetEndpoint": "/reset",
"adapterType": "REST",
"authHeadersEncoded": {
"X-API-Key": "<your key, Base64-encoded>"
},
"autoPush": false,
"enabled": true
}
]
}Uploading data is optional. The mod works fully offline -- all data is saved locally as JSON logs. Configuring an API endpoint is only needed if you want to contribute to the shared database.
You can also configure endpoints through the Archivist GUI (open the GUI, then use the settings/database panel). The mod supports multiple endpoints simultaneously.
When autoPush is enabled, data is automatically sent each time you disconnect from a server, subject to the confidence threshold. Failed pushes are queued and retried on the next successful push.
All API responses are JSON. Authenticated endpoints require either a session cookie (browser) or an X-API-Key header (mod / scripts).
Public Endpoints
/api/statsAuth: NonePlatform statistics: total servers, scans, plugins, and contributors.
curl https://archivist-web.net/api/stats{
"total_servers": 1234,
"total_scans": 56789,
"total_plugins": 890,
"total_contributors": 456
}/api/serversAuth: NonePaginated server list. Supports search, version filter, and sorting.
curl "https://archivist-web.net/api/servers?search=hypixel&page=1&limit=20"{
"servers": [...],
"total": 100,
"page": 1,
"limit": 20
}/api/servers/:idAuth: SessionServer detail by ID. Requires login.
curl https://archivist-web.net/api/servers/abc-123{
"server": { "ip": "mc.example.com", "port": 25565, ... },
"plugins": [...],
"worlds": [...]
}/api/servers/:id/pluginsAuth: SessionList of plugins detected on a server. Requires login.
curl https://archivist-web.net/api/servers/abc-123/plugins{
"plugins": [
{ "plugin_name": "EssentialsX", "detected_via": "command_tree" },
...
]
}/api/servers/:id/historyAuth: SessionHistorical scan data for a server. Requires login.
curl https://archivist-web.net/api/servers/abc-123/history{
"scans": [
{ "id": "...", "scanned_at": "...", "version": "1.21.1" },
...
]
}/api/servers/:id/worldsAuth: SessionWorlds / dimensions observed on a server. Requires login.
curl https://archivist-web.net/api/servers/abc-123/worlds{
"worlds": [
{ "dimension": "minecraft:overworld" },
...
]
}/api/rulesAuth: SessionList community GUI rules. Filter by plugin name with ?search= parameter.
curl "https://archivist-web.net/api/rules?search=essentials&page=1"{
"rules": [
{ "id": "...", "plugin_id": "essentialsx", "plugin_name": "EssentialsX", "patterns": [...], "contributor_username": "user123", ... },
...
],
"total": 42,
"page": 1,
"limit": 20
}Authenticated Endpoints
/api/syncAuth: X-API-KeySubmit a scan payload from the Archivist mod. Also available at /api/push.
curl -X POST https://archivist-web.net/api/sync \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d @scan_data.json{
"success": true,
"server_id": "abc-123",
"scan_id": "scan-456"
}/api/pushAuth: X-API-KeyAlias for /api/sync. Matches the mod's default pushEndpoint path (/push).
curl -X POST https://archivist-web.net/api/push \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d @scan_data.json{
"success": true,
"server_id": "abc-123",
"scan_id": "scan-456"
}/api/uploadAuth: X-API-KeyWeb upload endpoint. Same payload format as /api/sync.
curl -X POST https://archivist-web.net/api/upload \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d @scan_data.json{
"success": true,
"server_id": "abc-123",
"scan_id": "scan-789"
}/api/meAuth: Session cookieGet the authenticated user's profile, including upload count.
curl https://archivist-web.net/api/me \
-H "Cookie: sb-access-token=..."{
"id": "user-123",
"username": "agent_smith",
"status": "active",
"upload_count": 42,
"created_at": "2025-01-01T00:00:00Z"
}/api/me/api-keyAuth: Session cookieGenerate a new API key. Revokes any existing active key.
curl -X POST https://archivist-web.net/api/me/api-key \
-H "Cookie: sb-access-token=..."{
"key": "your_new_api_key",
"message": "Save this key -- it won't be shown again."
}/api/rulesAuth: Session cookieUpload a new GUI detection rule (JSON format from the Archivist mod).
curl -X POST https://archivist-web.net/api/rules \
-H "Cookie: sb-access-token=..." \
-H "Content-Type: application/json" \
-d '{"pluginId":"worldguard","pluginName":"WorldGuard","patterns":[...]}'{
"id": "...",
"plugin_id": "worldguard",
"plugin_name": "WorldGuard",
"patterns": [...],
"user_id": "user-123",
...
}/api/me/uploads/:idAuth: Session cookieDelete your own upload within 24 hours of submission.
curl -X DELETE https://archivist-web.net/api/me/uploads/scan-123 \
-H "Cookie: sb-access-token=..."(204 No Content)GUI rules are detection patterns used by the Archivist mod to identify plugins from inventory screens. Sharing rules helps the community detect more plugins automatically.
How to share a rule
- Navigate to the GUI Rules page
- Sign in if you are not already authenticated
- Click the Upload GUI Rule button
- Upload a JSON file from your
~/.minecraft/archivist/rules/folder or paste the JSON directly - Submit -- your rule will appear immediately for all users
Guidelines
- Use the official plugin name as listed on SpigotMC or Modrinth
- Include meaningful pattern labels that describe what the GUI screen looks like
- You can edit or delete your own rules within 24 hours of upload
- Maximum of 50 rules per user
- Downloaded rules go into
~/.minecraft/archivist/rules/
Read our full Terms & Privacy.