Web based viewer for servers and bots
Supports versions 1.8.8, 1.9.4, 1.10.2, 1.11.2, 1.12.2, 1.13.2, 1.14.4, 1.15.2, 1.16.1, 1.16.4, 1.17.1, 1.18.1, 1.19, 1.20.1.
npm install prismarine-viewer
const mineflayer = require('mineflayer')
const mineflayerViewer = require('prismarine-viewer').mineflayer
const bot = mineflayer.createBot({
username: 'Bot'
})
bot.once('spawn', () => {
mineflayerViewer(bot, { port: 3000 }) // Start the viewing server on port 3000
// Draw the path followed by the bot
const path = [bot.entity.position.clone()]
bot.on('move', () => {
if (path[path.length - 1].distanceTo(bot.entity.position) > 1) {
path.push(bot.entity.position.clone())
bot.viewer.drawLine('path', path)
}
})
})
More examples:
- First person bot example
- Record view as video file example
- Streaming video to a python script example
- Visualize a world, without a bot example
- Visualize the world coming from a proxy example
- Click to move example
- Use the core api for viewing worlds example
- Create an electron app with viewer example
- Create a fully front end viewer with an in memory world example
- A minecraft web client example, using mineflayer and a websocket proxy example
- Export parts of worlds as screenshot or 3d models example
- prismarine-web-client A minecraft client in your browser
The core rendering library. It provides Viewer and WorldView which together make it possible to render a minecraft world. Check its API
Serve a webserver allowing to visualize the bot surrounding, in first or third person. Comes with drawing functionnalities.
const { mineflayer } = require('prismarine-viewer')
Options:
viewDistance
view radius, in chunks, default:6
firstPerson
is the view first person ? default:false
port
the port for the webserver, default:3000
Serve a webserver allowing to visualize a world.
const { standalone } = require('prismarine-viewer')
Options:
version
the version to use, default:1.13.2
generator
a world generator function, default:(x, y, z) => 0
center
a vec3 to center the view on, default:new Vec3(0, 0, 0)
viewDistance
view radius, in chunks, default:6
port
the port for the webserver, default:3000
Render the bot view and stream it to a file or over TCP.
const { headless } = require('prismarine-viewer')
Options:
viewDistance
view radius, in chunks, default:6
output
the output file or ahost:port
address to stream to, default:output.mp4
frames
number of frames to record,-1
for infinite, default:200
width
the width of a frame, default:512
height
the height of a frame, default:512
All drawing function have a unique id that can be used to replace or erase the primitive.
Draw a line passing through all the points
.
Remove the primitive with the given id from the display.
Stop the server and disconnect users.
Provides an approximation of the current highest fps of any client connected to the server.
Use this event for events that should be fired at least once per render cycle.
npm run jestTest -- -t "1.9.4"