mc-netlog

minecraft network packet logger

Usage no npm install needed!

<script type="module">
  import mcNetlog from 'https://cdn.skypack.dev/mc-netlog';
</script>

README

mc-netlog

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.


Install

npm i extremeheat/mc-netlog

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

npx extremeheat/mc-netlog

Usage

as a library

with mineflayer...

const netlog = require('mc-netlog')
const mineflayer = require('mineflayer')

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

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

with prismarine-proxy

const netlog = require('mc-netlog')
const mineflayer = require('mineflayer')

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

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

with node-minecraft-protocol client

const nmp = require('minecraft-protocol')
const netlog = require('mc-netlog')

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

with bedrock-protocol client

const bp = require('bedrock-protocol')
const netlog = require('mc-netlog')

const client = bp.createClient(...)
netlog.listen(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 mc-netlog

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.