prismarine-inspector

Minecraft network packet logger

Usage no npm install needed!

<script type="module">
  import prismarineInspector from 'https://cdn.skypack.dev/prismarine-inspector';
</script>

README

prismarine-inspector

Minecraft protocol packet viewer using Chrome DevTools.

Supports mineflayer, node-minecraft-protocol, prismarine-proxy and bedrock-protocol.

If you have Chrome installed, you can use your existing Chrome browser or a bundled copy of DevTools.

NPM version Build Status Discord


Install

As a developer tool, you probably want to install it globally:

npm install -g prismarine-inspector

or usable with npx if you just want to run the standalone client (see below):

npx prismarine-inspector

Usage

as a library

The default export takes emitter and options arguments. If useBundledDevTools is false you will get a link to open in Chrome, otherwise if true you will get an Electron window.

netlog(emitter, options)

with mineflayer...

const netlog = require('prismarine-inspector')
const mineflayer = require('mineflayer')

const bot = mineflayer.createBot({ 'host': 'localhost' })
netlog(bot, { useBundledDevTools: false })

// ...
bot.on('spawn', () => console.log('spawned'))

with prismarine-proxy

See examples/

with node-minecraft-protocol client

const nmp = require('minecraft-protocol')
const netlog = require('prismarine-inspector')

const client = nmp.createClient(...)
netlog(client)

with bedrock-protocol client

const bp = require('bedrock-protocol')
const netlog = require('prismarine-inspector')

const client = bp.createClient(...)
netlog(client)

as a standalone client

The package comes with a basic standalone client for quick debugging with limited functionality.

Install the package locally or globally and run:

npx prismarine-inspector

You will get a small wizard screen to setup a simple proxy. The server you are connecting to must be offline.

Features

  • log in-bound/out-bound packets with timestamps
  • view JSON data
  • usable as a library

Thanks to @kdzwinel's betwixt for the baseline implementation

Setup

Enabling the Name, Method and Protocol tabs will show you the packet name, time of packet send, time since last packet, and Size of a packet. The colors indicate which side the packet is bound to. When using Chrome DevTools, the XHR and Script categories correspond to Clientbound/Serverbound (we can't change them there).

image

License

  • See LICENSE - this repo contains a bundled copy of Chromium DevTools, Copyright 2014 The Chromium Authors.

(repo formerly known as MC-NetLog)