The Overtchat bots

A “bot” holds a channel when nobody is around: it gives ops back, keeps the channel’s place, and obeys the network’s services. Overtchat runs three families of them, and they do the same job in three different ways. This page explains which does what, and above all what each one costs.

1. Eggdrop — the original bot

Eggdrop has existed since 1993. It is a program written in C, extended in Tcl. Our first loaner bots — the OverOp — were Eggdrops; today they run under OverPur and OverBot, and no Eggdrop is in service here any more: IriX, the network’s former bot, had not sat in any channel since 10 October 2026 and has been stopped since 18 October 2026.

What it brings, and what nothing else replaces:

  • Thirty years of modules. Almost anything you could want an IRC bot to do has already been written for Eggdrop.
  • Isolation. Each bot is a separate process: if one goes down, the others don’t even notice. It is a real strength, and nothing further down this page gets it back.
  • The partyline — one console per bot, and a network between bots (the botnet), built in.

What it costs, measured on our network on September 7, 2026:

  • setting up a bot writes 16 files, creates a directory and a system unit, and opens a port;
  • and above all: setup can’t finish without a human. Eggdrop waits for a person to send it a hello from IRC before it creates its user file. No automation can do it instead — that is the point that cost us the most;
  • four bots took up 95 MB, 59 of it for a single one.

2. OverBot — the same role, without the vicious circle

Written in JavaScript (Node.js), OverBot does exactly what an OverOp does, and that is deliberate: two bots that do the same thing can be compared; two bots that do different things cannot.

What actually changes:

  • It starts on its own. No user file, so no hello, so no human in the loop. That is the most concrete difference for whoever runs the service.
  • It says why it gets refused. An Eggdrop wearing a fallback nickname (OverBot_ instead of OverBot) gets turned away by the services… silently. Ours writes it in its log, plainly.

3. OverPur — the whole fleet in a single program

The third family doesn’t change the role: it changes what a bot is.

With Eggdrop, a bot is a running program. With OverPur, a bot is a line in a state — and a single program holds them all.

What that gives you:

  • Setting up a bot no longer sets anything up. No directory, no file, no service to declare, no port. One more entry, and it happens without restarting anything at all.
  • The panel drives it directly. The administrator sees the fleet in real time and acts on it from the website: the program answers back, so there is nothing to poll and nothing to guess.
  • A single clock tick for the whole fleet, instead of one per bot.

⚠ And what it costs — because it does cost something:

Isolation is lost. With Eggdrop, a bot that goes down doesn’t affect the others; here, one failure takes them all down. The program is restarted automatically and the bots reconnect — but that is not the same thing as isolation, and we don’t claim otherwise.

What makes the bet workable: the part that decides touches nothing. It opens no connection, reads no file, doesn’t even look at the clock — all of that is handed to it. So what usually crashes simply isn’t there, and it can be checked entirely offline: a week of operation replays in a few milliseconds.

At a glance

  Eggdrop OverBot OverPur
Language C + TclJavaScriptJavaScript
A bot is… a processa processa state entry
Automatic setup no — a human has to step in yes yes, and without writing anything to disk
Driven from the website indirectlyindirectly directly, in real time
A failure affects… a single bot a single bot the whole fleet
Existing modules thirty yearsour ownour own

Has your bot lost its op? The REOP command

A bot registered with the services — by an operator, with ADDBOT — can have its op given back on its channel. It is the only command its owner types, in a private message, to the network bot that holds that channel:

/msg <network bot> REOP <your bot> <#channel> <secret>

  • The secret is assigned at registration: it isn’t chosen, and it is never kept in clear text — only its fingerprint is.
  • The right secret is not enough. You must also be identified with the services, under the bot’s owner account: a third party who knew the secret is refused.
  • The network bot first checks that it is on that channel, that it has op there and that your bot is present; otherwise it says so, without asking the services anything.
  • A refusal from the services is deliberately terse: it doesn’t say whether the bot exists.

And the network’s bot? OverCore

IriX, the network’s bot, was an Eggdrop. Its successor, OverCore, is written in Node.js and is not a loaner bot: connected to the server by its own services link, it has brought the five services to life — OverNick, OverTchat, OverHub, OverBot, OverWeb — since 9 October 2026, and since 10 October 2026 OverTchat serves in channels the “!” commands still in use. IriX has been stopped since 18 October 2026: OverCore holds everything.

So, which one?

Two of the three run here, and that is deliberate. Nothing forces migrating everything at once: a network that works doesn’t have to be rebuilt to follow a fashion. Here, the loaner bots have moved to OverPur and OverBot; no Eggdrop has run since IriX was stopped, and an Eggdrop loaner bot can still be installed.

Our default choice for new loans is OverPur, for one specific reason: it is the only one of the three that can be set up and driven without an administrator having to open a console. For everything else, the difference is slimmer than you might think — and we would rather say so.

Which bots are running right now, in which family and for what: see the fleet, one page per bot.

The full technical detail, including the measurements and what they don’t prove, lives in the project repository, under Markdown/PRET-ROBOT.md.