Support a new server
What differs between servers, where it goes in the module, and how to check it works.
What differs
Every server ships its own client. The base, OTClientV8, is the same, but these often differ:
- the bot: which one, and how it names routes, labels and supplies;
- server features: tasks, blessings, redemption, autoloot;
- where the client keeps its files, and which modules it already has.
The module reads the basics itself: name, level, experience, position, capacity, stamina and skulls in view. Everything else comes from an adapter.
Write an adapter
An adapter is a Lua table with functions. The module asks each adapter in turn and takes the first answer.
table.insert(Voidwatch.adapters, {
server = function() return 'myserver' end,
route = function() return CaveBot and CaveBot.getCurrentProfile() end,
routeOn = function() return CaveBot and CaveBot.isOn() end,
supplies = function()
return { { name = 'great mana potion', have = itemAmount(238), want = 800 } }
end,
action = function(name)
if name == 'toggle_cavebot' then
return function(args) if args.on then CaveBot.setOn() else CaveBot.setOff() end; return true end
end
end,
})
A field no adapter answers stays out of the payload, and the dashboard hides it.
Check it
- Pair a client on the server and open Live: level, position and capacity show up.
- Your adapter fields show up too: route, supplies, tasks.
- Send pause and resume from the dashboard; the command log shows done.
- Open the live view and watch the capture refresh every few seconds.
When a server passes these checks and players use it, it shows as supported on the server list. Share your adapter on our Discord so other players on the server get it.