Development update for Mjolnir IRC Services

Posted by Abel on Saturday 14 March 2026

We’ve continued expanding Mjolnir IRC Services with a strong mix of service features, moderation tools, backend improvements, and quality-of-life updates. This round includes more operator tooling, broader Help and Stats coverage, tighter SpamScan and TrojanScan controls, new web/API improvements, and a new MarketBot module.

We’ve also continued the service naming cleanup, moving core references from Q to X, aligning SpamScan under F, and using S for Stats. Documentation, help text, and command references were updated to match, and language coverage has now been expanded to EN, ES, DE, FR, IT, RO, and TR.

On top of that, Mjolnir now includes a MarketBot with quote/news lookups, per-user watchlists, persistent alerts, and daily/weekly recap reporting. The web API and UI have also been tightened up with better access editing, session expiry handling, and more resilient live-stats fallback behaviour.

50 Updates

  1. Added multi-bot services for the main service stack.
  2. Added per-bot config sections.
  3. Added service autojoin handling.
  4. Added auto-op handling for service bots in configured channels.
  5. Implemented core Oper service commands for account and channel management.
  6. Added Oper service commands for KICK, KILL, MODE, and UMODE.
  7. Added Oper service support for SVSJOIN, SVSPART, and SVSNICK.
  8. Added Oper management commands for AKILL, EXCEPTION, FORBID, IGNORE, JUPE, and LOGONNEWS.
  9. Added Oper support for CHANKILL.
  10. Enforced operator-only access for sensitive services like Oper, ProxyScan, and TrojanScan.
  11. Added kill-on-repeat behaviour for repeated unauthorized access attempts.
  12. Added NewsServ with global-style notices and logon news delivery.
  13. Added automatic NewsServ channel joining.
  14. Added automatic self-op for NewsServ on autojoin channels.
  15. Added date stamps to LogonNews entries when they are created.
  16. Persisted SpamScan channel registrations for reconnect autojoin.
  17. Added service module control commands.
  18. Modules now start unloaded by default.
  19. Module load state now persists across reconnects.
  20. Added Help service command listing and help output.
  21. Added Stats service tracking and reporting commands.
  22. Added request, SpamScan, ProxyScan, and TrojanScan routing in command listings.
  23. Expanded X command coverage with improved help/list formatting.
  24. Added channel access and flags scaffolding.
  25. Added auto-op, auto-voice, and protect scaffolding.
  26. Added forced topic restore/enforce scaffolding.
  27. Added autolimit controls with float-based tuning.
  28. Added SQLite-backed storage.
  29. Added Anope import support.
  30. Added OperNews support with oper-only delivery on auth.
  31. Added Oper service support for SEEN.
  32. Added Oper service support for SNLINE and SQLINE.
  33. Added Oper service support for UPDATE, RELOAD, RESTART, SHUTDOWN, and QUIT.
  34. Unauthorized service abuse now triggers a temporary ignore after repeated kills.
  35. Added Chanfix service.
  36. Added Request-side CHANFIX support.
  37. Added op restoration for eligible channel users.
  38. Chanfix now tracks unregistered channels.
  39. Chanfix now uses op-score history for REQUESTOP and CHANFIX decisions.
  40. Fixed op tracking on unregistered channels so deops are seen correctly.
  41. Service logging now flushes immediately to keep logs current.
  42. Added extra REQUESTOP state logging when Chanfix refuses a fix because ops already exist.
  43. Chanfix now records op history as soon as channels hit the minimum user threshold.
  44. Chanfix no longer requires the old minimum active age before attempting a fix.
  45. Fixed a crash on unregistered channel joins involving authed users.
  46. Chanfix now parts channels after handling REQUESTOP and CHANFIX unless autojoined.
  47. Added SpamScan enforcement for flood, repeat, amsg, and URL abuse.
  48. Fixed a startup crash when SpamScan autojoin loaded before channel case-map init.
  49. Restricted SpamScan requests to channel owners/masters and kept direct add-channel actions oper-only.
  50. Added per-channel SpamScan tuning, plus the newer naming/docs cleanup, expanded language support, MarketBot features, and web/API reliability updates.

← Back to news

Reactions & Comments