A modular and extensible BotServer server inspired by otcv8botserver, built with Node.js.
- 📡 WebSocket interface for real-time bot communication
- 🌐 Optional HTTP web UI for monitoring
- 🧱 Modular architecture (drop plugins in
/modules) - 🪵 Auto file logging to
logs/output.log - 🧠 Auto-install missing dependencies
- 🔌 Built-in plugin hook system (WS + lifecycle)
See Plugin Documentation for a list of available modules.
-
Download & Install Node.js
- Install it from nodejs.org
-
Run the Server
- Launch
start-server.bat - Automatically installs dependencies on first run
- Launch
-
Logging
- All console output (stdout & errors) is logged to
logs/output.log - Colors are stripped from log files for clean reading
- All console output (stdout & errors) is logged to
💡 Optional:
Don’t want a module/plugin?
- Disable the web interface: rename
modules/server/http.js→modules/server/http.js.disabled
or- Modify the meta data at the bottom of the module to enabled: true/false
- Open
_Loader.lua - Add the following at the top:
BotServer.url = "ws://localhost:8000/" -- add this line -- load all otui files, order doesn't matter
To allow the server to register your character data, you can send character information from your bot using a Lua script.
Add the following to your bot script (e.g., inside a Macro):
macro(10000, "Send Char Info", function()
if not BotServer._websocket then return end
BotServer.send("char_info", {
name = player:getName(),
level = player:getLevel(),
vocation = player:getVocation(),
health = player:getHealth(),
maxHealth = player:getMaxHealth(),
mana = player:getMana(),
maxMana = player:getMaxMana(),
experience = player:getExperience(),
expPercent = player:getLevelPercent(),
location = pos() and string.format("%d, %d, %d", pos().x, pos().y, pos().z)
})
end)
