
NetworkJS
A powerful KubeJS addon that enables internet connectivity and Discord integration for your Minecraft server scripts.
About this Mod
NetworkJS
A powerful KubeJS addon that enables internet connectivity and Discord integration for your Minecraft server scripts.
Note: This is my first Java mod! I'm still learning, so feedback and contributions are very welcome. :D
Features
- HTTP/FETCH Support - Make HTTP requests from your KubeJS scripts
- Discord Bot Integration - Send messages, embeds, and listen to Discord events
- Server Utilities - Send colored messages to players and get server info
- Easy Integration - Works seamlessly with KubeJS with both global functions and class access
Installation
- Download the latest jar from the releases page
- Place the jar in your
modsfolder - Make sure you have KubeJS installed
- Restart your server
API Reference
Global Functions
// HTTP Requests - Now available as global functions!
fetch('https://api.example.com/data')
fetchAsync('https://api.example.com/data', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ key: 'value' })
})
Global Classes
DiscordBot - Discord Integration
const config = {
token: "your-bot-token",
guild: "your-guild-id",
channels: {
chat: "channel-id",
announcements: "channel-id"
},
sanitizeMessages: true
};
const bot = new DiscordBot(config);
// Send messages
bot.sendMessage("chat", "Hello from Minecraft!");
// Send embeds
bot.sendEmbed("announcements", {
title: "Server Status",
description: "Server is online!",
color: 0x00ff00
});
// Listen for Discord messages
bot.onMessage(function(discordMessage) {
console.log("Message from " + discordMessage.getAuthor() + ": " + discordMessage.getContent());
});
// Set bot activity
bot.setActivity("Minecraft Server Online");
Server - Minecraft Server Utilities
// Send colored messages to all players
Server.sendRawMessage("&aWelcome to the server!");
// Send message to specific player
Server.sendRawMessageToPlayer("PlayerName", "&bHello there!");
// Get server info
const playerCount = Server.getPlayerCount();
const playerNames = Server.getPlayerNames(); // Returns array of strings
FetchBinding - HTTP Requests (Legacy)
// You can still use the class-based approach
const response = FetchBinding.fetch("https://api.example.com");
console.log("Status:", response.getStatus());
console.log("Response:", response.text());
// With options
const options = new FetchOptions("POST", {"Content-Type": "application/json"}, '{"data": "value"}');
const response = FetchBinding.fetch("https://api.example.com", options);
// Async requests
const futureResponse = FetchBinding.fetchAsync("https://api.example.com");
Complete API Exports
The following classes and functions are available globally in your KubeJS scripts:
| Export | Type | Description |
|---|---|---|
fetch() |
Function | Make HTTP requests (global function) |
fetchAsync() |
Function | Make async HTTP requests (global function) |
DiscordBot |
Class | Discord bot functionality |
Server |
Class | server utilities |
FetchBinding |
Class | HTTP request utilities (legacy) |
FetchOptions |
Class | HTTP request options |
FetchResponse |
Class | HTTP response object |
Example Usage
Discord-Minecraft Bridge
const discordConfig = {
token: "your-bot-token",
guild: "your-guild-id",
channels: { chat: "chat-channel-id" }
};
const bot = new DiscordBot(discordConfig);
// Relay Discord messages to Minecraft
bot.onMessage(function(msg) {
if (msg.isFromConfiguredChannel() && !msg.isBot()) {
Server.sendRawMessage(`&7[Discord] &f${msg.getAuthor()}: ${msg.getContent()}`);
}
});
// Relay Minecraft chat to Discord
PlayerEvents.chat(event => {
const playerName = event.player.name.getString();
const message = event.message;
bot.sendMessage("chat", `**${playerName}**: ${message}`);
});
Server Status API
// Create a simple API endpoint using fetch
ServerEvents.loaded(event => {
const statusData = {
online: true,
players: Server.getPlayerCount(),
playerList: Server.getPlayerNames()
};
// Post to your status API
fetchAsync('https://your-api.com/server-status', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(statusData)
});
});
Requirements
- Minecraft 1.21.1
- NeoForge 21.1.200+
- KubeJS 2101.7.1+
Building
git clone https://github.com/SSnowly/NetworkJS.git
cd NetworkJS
./gradlew build
The built jar will be in build/libs/networkjs-1.21.1-{version}.jar
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
As a new Java developer, I'm always looking to improve! Feel free to:
- Open issues for bugs or feature requests
- Submit pull requests with improvements
- Share feedback on the code structure
- Help with documentation
Support
- Open an issue for bugs
- Check the KubeJS Wiki for general KubeJS help
Made with <3 by ME!
Available Versions
How to Install NetworkJS on Your Server
Order Server
Order a Minecraft Java server with at least 3 GB RAM (4 GB recommended).
Set neoforge Loader
In the panel under "Egg", select the neoforge loader and matching Minecraft version (1.21.8).
Install Mod
Open the mod browser in the dashboard and search for "NetworkJS". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.
Compatibility
Mod Loaders
Minecraft Versions
1.21.8, 1.21.7, 1.21.6 (+5 more)
Server-side
✓ RequiredRecommended RAM
4 GB(min. 3 GB)Frequently Asked Questions
NetworkJS server crashes on startup – what to do?
Most common cause: wrong neoforge version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 3 GB RAM is allocated and the loader matches the mod version (1.21.8). You can switch loaders with one click in the panel.
Is NetworkJS compatible with neoforge?
NetworkJS officially supports neoforge for Minecraft 1.21.8, 1.21.7, 1.21.6. The Mado dashboard automatically detects incompatible loader combinations.
Server lagging with NetworkJS – how to optimize performance?
Recommended RAM: 4 GB (per 8 players). Use /spark profiler to check if NetworkJS consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.
Similar Mods
Rent Modded Server
Install NetworkJS with just one click on your server.