TypeScript fork of Flying Squid with a focus on better DX experince for plugins!
Minecraft lightweight server written in TypeScript (JS).
- Supports latest versions (up to ~1.20)
- Easily customizable in every aspect
If you have Node.js installed, you can install pnpm or npm:
npm i -g @zardoy/flying-squidflying-squidIt's recommended to also install pm2 for process auto-restart on crashes and system reboots.
| Feature | Status |
|---|---|
| WebSocket | Not started |
| Plugin API | Done. Needs polishing |
| World Generation | Few simple generators available. Needs more |
| World Saving | ✅ Doesn't support latest versions |
| World Loading | ✅ Full support for all versions, but writing can broke existing saves |
| Redstone | Not started |
| Command Blocks | ✅ Needs all commands implementation (50%) |
| Pvp | Not started |
| Mobs | ✅ Needs spawning, ai, a few physics fixes |
- Clone, setup Node.js (at least v18.6.0)
- Install dependencies:
npm installorpnpm install - Run
npm run dev,npm run startfor without watch ornpm run watchfor watch mode (for prismarine-web-client) 2.1. If using Bun (experimental) instead:bun --watch src/app.jsorbun --hot src/app.js(preview)
import { createMCServer } from 'flying-squid'
const serv = createMCServer({
port: 25565,
version: '1.18.2',
motd: 'A basic flying squid server',
maxPlayers: 10,
logging: true,
onlineMode: false,
worldFolder: './world',
})
serv.on('listening', (port) => {
console.log(`Server is listening on port ${port}`)
})pnpm add express
import { serveWithExpress } from 'flying-squid/dist/lib/resourcePackServer'
const resourcePack = await serveWithExpress('./resource-pack.zip')
serv.setResourcePack(resourcePack)