Documentation

Everything you need to get started with Archivist -- from installation to API usage.

Getting Started

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.

Installation

Requirements

Supported Versions

1.21 - 1.21.11

Steps

  1. Download the latest .jar for your Minecraft version from the releases page
  2. Place the .jar file in your .minecraft/mods folder (Fabric API must also be in the mods folder)
  3. Launch Minecraft with the Fabric loader profile
  4. Join any multiplayer server -- Archivist starts detecting automatically
  5. Open the Archivist GUI to view results

Keybinds

KeyAction
ZOpen / close the Archivist GUI
XStart GUI rule capture (while a server inventory is open)
Configuration

All settings are stored in .minecraft/archivist/config.json and can be edited in-game through the Settings window.

Core settings

SettingDefaultDescription
enabledtrueMaster on/off toggle for the entire mod
logFolder"archivist/logs"Directory where session logs are saved
autoHandleResourcePackstrueAutomatically accept server resource packs

GUI settings

SettingDefaultDescription
activeTheme"Aurora"Current color theme
layoutMode"dynamic"Layout mode: windows or dynamic
gradientsEnabledtrueEnable gradient rendering on UI elements
showHudSummarytrueShow plugin summary on the HUD
showScanOverlaytrueShow scan progress overlay on join
guiAnimationstrueEnable window open/close animations
passiveGuiDetectiontrueAutomatically 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

SettingDefaultDescription
apiEndpoints[]List of configured sync endpoints
autoUploadOnLogfalseAuto-push logs on disconnect
autoPushMinConfidence0.4Minimum 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.

Detection Methods

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 TypeConfidence
Command Tree (namespaced)0.95
Brand0.90
Tab Complete0.85
Channel / Namespace0.80
Command Tree (glossary)0.70
Registry0.65
Chat URL0.55
Heuristic (GUI)0.45
Fingerprint (rule)per-rule
Manual1.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).

GUI & Commands

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:

CommandDescription
scanTriggers a re-scan of the current server
pluginsLists all detected plugins with detection methods
infoShows current server summary
exportExports current server log (json / csv / clipboard)
dbAPI sync management (status / sync / download / test / reset / set)
themeSwitches color theme (theme <name> / theme list)
inspectorToggles GUI inspector mode
npcNPC interaction automation (npc / npc stop / npc status)
clearClears the console output
helpLists all available commands

Creating custom GUI rules

  1. Open a server GUI that belongs to the plugin (like a shop menu or selector)
  2. Press X to enter capture mode
  3. Click on the inventory slots that are unique to this plugin (items that always appear in the same spot)
  4. Type the plugin name in the text field
  5. 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.

Custom Themes

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

json
{
  "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 (top and bottom colors).
  • gradients -- Per-component gradients for titleBar, button, taskbar, and windowBackground.
  • animatedGradient -- Set to true or 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.

Data & Export

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/.

Account Manager

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.

Proxy Manager

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.

Automation

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.

API Key Setup

Generating your key

  1. Log in with your Discord account
  2. Navigate to your Dashboard
  3. Click Generate API Key
  4. 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:

json
{
  "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.

API Reference

All API responses are JSON. Authenticated endpoints require either a session cookie (browser) or an X-API-Key header (mod / scripts).

Public Endpoints

GET/api/statsAuth: None

Platform statistics: total servers, scans, plugins, and contributors.

bash
curl https://archivist-web.net/api/stats
json
{
  "total_servers": 1234,
  "total_scans": 56789,
  "total_plugins": 890,
  "total_contributors": 456
}
GET/api/serversAuth: None

Paginated server list. Supports search, version filter, and sorting.

bash
curl "https://archivist-web.net/api/servers?search=hypixel&page=1&limit=20"
json
{
  "servers": [...],
  "total": 100,
  "page": 1,
  "limit": 20
}
GET/api/servers/:idAuth: Session

Server detail by ID. Requires login.

bash
curl https://archivist-web.net/api/servers/abc-123
json
{
  "server": { "ip": "mc.example.com", "port": 25565, ... },
  "plugins": [...],
  "worlds": [...]
}
GET/api/servers/:id/pluginsAuth: Session

List of plugins detected on a server. Requires login.

bash
curl https://archivist-web.net/api/servers/abc-123/plugins
json
{
  "plugins": [
    { "plugin_name": "EssentialsX", "detected_via": "command_tree" },
    ...
  ]
}
GET/api/servers/:id/historyAuth: Session

Historical scan data for a server. Requires login.

bash
curl https://archivist-web.net/api/servers/abc-123/history
json
{
  "scans": [
    { "id": "...", "scanned_at": "...", "version": "1.21.1" },
    ...
  ]
}
GET/api/servers/:id/worldsAuth: Session

Worlds / dimensions observed on a server. Requires login.

bash
curl https://archivist-web.net/api/servers/abc-123/worlds
json
{
  "worlds": [
    { "dimension": "minecraft:overworld" },
    ...
  ]
}
GET/api/rulesAuth: Session

List community GUI rules. Filter by plugin name with ?search= parameter.

bash
curl "https://archivist-web.net/api/rules?search=essentials&page=1"
json
{
  "rules": [
    { "id": "...", "plugin_id": "essentialsx", "plugin_name": "EssentialsX", "patterns": [...], "contributor_username": "user123", ... },
    ...
  ],
  "total": 42,
  "page": 1,
  "limit": 20
}

Authenticated Endpoints

POST/api/syncAuth: X-API-Key

Submit a scan payload from the Archivist mod. Also available at /api/push.

bash
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
json
{
  "success": true,
  "server_id": "abc-123",
  "scan_id": "scan-456"
}
POST/api/pushAuth: X-API-Key

Alias for /api/sync. Matches the mod's default pushEndpoint path (/push).

bash
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
json
{
  "success": true,
  "server_id": "abc-123",
  "scan_id": "scan-456"
}
POST/api/uploadAuth: X-API-Key

Web upload endpoint. Same payload format as /api/sync.

bash
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
json
{
  "success": true,
  "server_id": "abc-123",
  "scan_id": "scan-789"
}
GET/api/meAuth: Session cookie

Get the authenticated user's profile, including upload count.

bash
curl https://archivist-web.net/api/me \
  -H "Cookie: sb-access-token=..."
json
{
  "id": "user-123",
  "username": "agent_smith",
  "status": "active",
  "upload_count": 42,
  "created_at": "2025-01-01T00:00:00Z"
}
POST/api/me/api-keyAuth: Session cookie

Generate a new API key. Revokes any existing active key.

bash
curl -X POST https://archivist-web.net/api/me/api-key \
  -H "Cookie: sb-access-token=..."
json
{
  "key": "your_new_api_key",
  "message": "Save this key -- it won't be shown again."
}
POST/api/rulesAuth: Session cookie

Upload a new GUI detection rule (JSON format from the Archivist mod).

bash
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":[...]}'
json
{
  "id": "...",
  "plugin_id": "worldguard",
  "plugin_name": "WorldGuard",
  "patterns": [...],
  "user_id": "user-123",
  ...
}
DELETE/api/me/uploads/:idAuth: Session cookie

Delete your own upload within 24 hours of submission.

bash
curl -X DELETE https://archivist-web.net/api/me/uploads/scan-123 \
  -H "Cookie: sb-access-token=..."
json
(204 No Content)
Contributing GUI Rules

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

  1. Navigate to the GUI Rules page
  2. Sign in if you are not already authenticated
  3. Click the Upload GUI Rule button
  4. Upload a JSON file from your ~/.minecraft/archivist/rules/ folder or paste the JSON directly
  5. 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/
Privacy Policy

Read our full Terms & Privacy.