Skip to content

JadlionHD/growtopia.js

Repository files navigation

GrowtopiaJS

Github Version NPM Version NPM Minified

A fork of GrowSockets to create a growtopia private servers.

Features

  • Stable
  • Plugins system
  • Built-in ItemsDat tools & Web server

Requirements

Installation

npm i growtopia.js

Example

import { Client, TextPacket, Peer } from "growtopia.js";

const client = new Client({
  enet: {
    ip: "0.0.0.0"
  }
});

client.on("ready", () => {
  console.log(
    `ENet server: port ${client.config.enet.port} on ${client.config.enet.ip}\nHttps server: port ${client.config.https.port} on ${client.config.https.ip}`
  );
});

client.on("error", (err) => {
  console.log("Something wrong", err);
});

client.on("connect", (netID) => {
  console.log(`Connected netID ${netID}`);
  const peer = new Peer(client, netID);
  peer.send(TextPacket.from(0x1));
});

client.on("disconnect", (netID) => {
  console.log(`Disconnected netID ${netID}`);
});

client.on("raw", (netID, data) => {
  const peer = new Peer(client, netID);
  console.log("raw", data);
  console.log(peer.ping, peer.state);
});

client.on("action", (peer, data) => {
  console.log(`Peer (${peer.data.netID}) action`, { data });
  if (data.action === "quit") {
    peer.disconnect();
  }
});

client.listen();

Plugins

To create your own plugin, take a look here

A example adding plugin to your server:

const client = new Client({
  // Add a plugin here
  plugins: [new IModule(), new WorldGen()]
});

Plugins list

Open a PR to add your plugin here

Name Link Description
HelloWorld Github Test sending hello world :D

Building

Requirements

npm i growtopia.js --build-from-source

Links

Credits

Give a thumbs to these cool people