Nogot
Create Minecraft servers with a powerful, stable, and high level JavaScript API.
Features
- Support for Minecraft 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15 and 1.16
- Players can see the world
- Players see each other in-game and in tab
- Digging
- Placing blocks
- Player movement
- World generation
- Anvil loading
- Multi-world
Test server
- mc.nogot.org (Port 25565) : hosted by @64bit
Building / Running
Before running or building it is recommended that you configure the server in config/settings.json
npm install
node app.js
Or try our autoupdating nogot server autonomous-squid
You can also install nogot globally with sudo npm install -g nogot
and then run it with nogot
command.
Docker
Docker allows a higer level of isolation, compatibily and consistency. You can learn how to install Docker here
docker run prismarinejs/nogot
With specific nogot configuration, container name and the most important, opening the port to nogot:
docker run -p 25565:25565 -v $(pwd)/config:/config --name my-nogot --rm prismarinejs/nogot
docker-compose is useful to quickly launch & stop a single container with a specific configuration.
version: '3.8'
services:
nogot:
image: prismarinejs/nogot
volumes:
- ${PWD}/config:/config
ports:
- "25565:25565"
volumes:
nogot:
docker-compose -f path/to/docker-compose.yaml up
World generation
There are several modules than can be used to generate the world. The default one is called diamond-square
- node-voxel-worldgen a voxel world generator written in Rust, compatible with nogot and allows basic minecraft-like generation including caves.
- diamond-square a diamond square minecraft generation
To install a world generation, all you have to do is npm install it and then change the generation option in settings.json.
Plugins
- nogot-irc a bridge between a irc chan and the minecraft server. Currently used between our test server (rom1504.fr) and our gitter room (through the official gitter irc bridge)
- nogot-schematic nogot plugin providing /listSchemas and /loadSchema commands. You can add schema through a simple http api and then add them in your world by just calling /loadSchema in game. Http api available in the test instance at nogot.rom1504.fr
- nogot-essentials Plugin that in a future will be like Essentials of bukkit/spigot. All the basic commands that a server should have
- squidcord a bridge between a discord channel and the minecraft server.
-
authme an auth plugin for
online-mode=false
servers.
Documentation
For development see the API documentation, CONTRIBUTE.md and HISTORY.md
Using as a lib
Nogot is also a server lib. Here is a basic example of usage:
const mcServer = require('nogot')
mcServer.createMCServer({
'motd': 'A Minecraft Server \nRunning Nogot',
'port': 25565,
'max-players': 10,
'online-mode': true,
'logging': true,
'gameMode': 1,
'difficulty': 1,
'worldFolder':'world',
'generation': {
'name': 'diamond_square',
'options':{
'worldHeight': 80
}
},
'kickTimeout': 10000,
'plugins': {
},
'modpe': false,
'view-distance': 10,
'player-list-text': {
'header':'Nogot',
'footer':'Test server'
},
'everybody-op': false,
'max-entities': 100,
'version': '1.16.1'
})
You can add server plugins and player plugins in your package, following CONTRIBUTE.md.
For further examples, see the examples page.
Contributors
- @64bit creator of nogot
- Originally created by PrismarineJS
- The PrismarineJS team for creating prismarine-chunk and node-minecraft-protocol
- wiki.vg for documenting minecraft protocols
- All of our other awesome contributors!