Skip to content

GeorgesOatesLarsen/flying-squid

 
 

Repository files navigation

flying-squid

NPM version Join the chat at https://gitter.im/PrismarineJS/flying-squid License Minecraft version Github issues Build Status

A semi-functional minecraft server in Node.js

Features

  • Support for Minecraft 1.8
  • 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

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 flying-squid server autonomous-squid

You can also install flying-squid globally with sudo npm install -g flying-squid and then run it with flying-squid command.

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 flying-squid 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

  • flying-squid-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)
  • flying-squid-schematic Flying-squid 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 flying-squid.rom1504.fr
  • flying-squid-modpe load modpe plugins
  • flying-squid-essentials Plugin that in a future will be like Essentials of bukkit/spigot. All the basic commands that a server should have

Documentation

For development see API.md, CONTRIBUTE.md and HISTORY.md

Using as a lib

flying-squid is also a server lib. Here is a basic example of usage:

var mcServer = require("flying-squid");

mcServer.createMCServer({
  "motd": "A Minecraft Server \nRunning flying-squid",
  "port": 25565,
  "max-players": 10,
  "online-mode": true,
  "logging": true,
  "gameMode": 1,
  "generation": {
    "name": "diamond_square",
    "options":{
      "worldHeight": 80
    }
  },
  "kickTimeout": 10000,
  "plugins": {

  },
  "modpe": false,
  "view-distance": 10
});

You can add server plugins and player plugins in your package, following CONTRIBUTE.md.

Contributors

  • @roblabla for helping out with the protocols
  • @rom1504 for massive contributions to the code
  • @demipixel
  • The PrismarineJS team for creating prismarine-chunk and node-minecraft-protocol
  • wiki.vg for documenting minecraft protocols
  • All of our other awesome contributors!

About

A Minecraft server written in JavaScript, modularized

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%