documentation hub

XYZnet docs

References for the software that powers this network: XYZircd, Rustic IRC Services, and the proxy / DNSBL scanner. In-channel help: /msg X HELP, /msg Y HELP, /msg Z HELP, /msg Monitor HELP.

ircd XYZircd Modes, snomasks, cloaking, connect info, and Solanum/TS6 notes. services Rustic IRC Services X (nicks/channels), Y (notes/vhosts), Z (opers), Weather, LastFM, portal. security Scanner · Monitor EFnet DNSBL, local bans/exempts, #scanner, public lists UI.
wiki · ircd

XYZircd

Solanum · TS6 · C

XYZircd is the network IRCd for XYZnet. It is based on Solanum (itself from charybdis/ircd-ratbox lineage) with XYZnet branding, cloaking style, and network-tuned defaults. Servers link with the modern TS6 protocol and expose standard CAPABs for SASL, account tags, and multi-prefix.

Connecting

  • Primary: irc.XYZnet.org
  • Plain: port 6667
  • TLS: port 6697 (preferred) — client URI: ircs://irc.xyznet.org:6697
  • Lobby: #XYZ

After connect, register and identify with services (see Rustic below), or use SASL if your client supports it.

User modes

ModeNameDescriptionWho
+iInvisibleHidden from WHO/NAMES unless sharing a channelAny (self)
+xCloakHost cloak via ip_cloaking_4.0 (XYZ- / .XYZ.IP)Any (self); often default
+ZSecureConnected via TLS — set automaticallyServer
+wWallopsReceive WALLOPS broadcastsAny (self)
+sServer noticeReceive server notices; details via snomaskAny / oper-only by config
+DDeafDo not receive channel messagesAny (self)
+QNo forwardRefuse channel +f redirectsAny (self)
+oIRC operatorSet by successful OPERServer
+aServer adminAdmin privileges (oper:admin)Opers
+lLocopsReceive local LOCOPSOpers
+zOperwallReceive OPERWALLOpers
+SServiceNetwork service agent — server onlyServer

Typical connect defaults include +i (and often +x). Oper-up umodes commonly include +lswz.

Channel modes

List modes (type A)

ModeDescription
+bBan — nick!user@host
+eBan exception
+IInvite exception
+qQuiet — can join, cannot speak

Parameter modes (type B / C)

ModeDescription
+kChannel key (password)
+fForward target when join fails
+jJoin throttle count:seconds (e.g. 5:10)
+lUser limit

Flag modes (type D)

ModeDescription
+iInvite only
+mModerated (need voice/halfop/op to speak)
+nNo external messages
+tTopic protection (ops/halfops only)
+s / +pSecret / private (mutually exclusive)
+rRegistered (identified) users only
+zOp moderated — blocked msgs go to ops instead of drop
+gFree invite — any member may INVITE
+FFree forward target
+QDisable being a forward target
+PPermanent channel (staff)
+LLarge ban lists (staff)

Membership prefixes

ModePrefixRole
+a!Channel admin (services / SAMODE)
+o@Operator
+h%Halfop
+v+Voice

ISUPPORT: PREFIX=(aohv)!@%+ · CHANMODES=beIq,kf,lj,FLPQcgimnprstz

Snomasks (+s)

Operators set snomasks with /MODE you +s ±flags. Lowercase often means local; uppercase network-wide for paired flags.

FlagNotices
+c / +CClient connect (basic / extended)
+kKills
+nNick changes (verbose)
+rRejects
+sGeneral server notices
+uUnauthorized connects
+bBots / floods
+fClass / server full
+ZOperSpy
+BBan matches (K/D/X-line)
+AAccount login/logout
+w / +WWHOIS on you (local / net)
+dDebug
+xExternal / remote events
+ySpy (STATS, LINKS, …)

Example standard oper set: +Zbfkrsuy. Optional colored snotices: colored_snotices = yes; in general {}.

Host cloaking

Module ip_cloaking_4.0 provides user mode +x. XYZnet cloaks use a distinctive brand style:

  • Hostname cloaks: prefix style XYZ-…
  • IP cloaks: include .XYZ.IP (or related .XYZ. forms)

Cloaking protects real hosts from casual exposure. Do not attempt to de-anonymize users for harassment — see the charter.

Config layout

  • 📁 ircd/
    • ircd.conf — server-local (auth, listen, classes)
    • XYZnet.conf — network-wide shared settings
    • modules / extensions/ — including cloaking, forcejoin helpers

Staff-oriented commands (SAJOIN, SAPART, etc.) require appropriate oper privileges. Full mode and snomask references ship with the XYZircd tree as MODES.md and SNOMASK.md.

wiki · services

Rustic IRC Services

Rust · TS6 · PostgreSQL

Rustic is XYZnet’s services package: nickname and channel registration, notes, vhosts, operator tools, weather, LastFM, and a browser portal at services.XYZnet.org. It links to XYZircd over TS6 as services.XYZnet.org.

Classic names (NickServ, ChanServ, OperServ, …) may appear as reserved stubs that point users to X / Y / Z and #XYZ. Prefer the real agents below.

Quick start

/msg X REGISTER <password> [email]
/msg X IDENTIFY <password>
# or: /IDENTIFY <password>   (client alias → X)

/msg X REGISTER #mychannel     # you must be op
/join #XYZ

SASL PLAIN is supported for clients that authenticate before join.

X — Channel & Nick Services

X combines NickServ- and ChanServ-style features.

Registration

CommandDescription
REGISTER <password> [email]Register your current nickname
REGISTER #<channel>Register a channel (you must be op)

Nickname commands

CommandDescription
IDENTIFY [nick] <password>Identify (aliases: ID)
LOGOUTClear identification
STATUS [nick]Identify status 0–3
INFO <nick>Nickname information
SET <option> <value>PASSWORD, ENFORCE, EMAIL, ACTION, …
DROP <password>Drop nick registration
GHOST / RECOVER / RELEASEReclaim or free a held nick
GROUP / UNGROUP / GLISTAccount nick grouping
NACCESS ADD|DEL|LISTAuto-recognize hostmasks
ALISTChannels you have access on
RESETPASS / CONFIRMPassword reset flow
SUSPEND / UNSUSPENDOper: suspend a nick
TRANSFER #chan <nick>Transfer channel founder

ENFORCE: OFF | ON | QUICK | IMMED | WARN · ACTION: KILL | NICK

Channel commands

CommandDescription
DROP / INFO #channelDrop registration / view info
ACCESS #chan ADD|DEL|LISTAccess list with levels
AKICK #chan …Auto-kick list (ADD|DEL|LIST|ENFORCE|CLEAR)
OP / DEOP / HALFOP / VOICE …Status modes
UP / DOWN / SYNCRestore or strip / re-apply access
ENFORCE #chan <what>SECUREOPS | RESTRICTED | REGONLY | BANS
CSET #chan <opt> [val]MLOCK, ENTRYMSG, KEEPTOPIC, …
INVITE / KICK / BAN / TOPIC / GETKEYChannel management helpers
SEEK #channelNotify & invite access list

Channel triggers (in-channel): !op !deop !halfop !voice !kick !ban !unban !topic !invite !seek

Y — Notes, Info & Host Services

CommandDescription
SEND <nick> <message>Send a note (memo)
LIST / READ / DELList, read, or delete notes
INFO [key] / SETINFONetwork info lines (set: opers)
REQUEST <vhost>Request a virtual host
ON / OFFActivate / deactivate vhost
VHOST APPROVE|REJECT|LISTAdmin vhost queue

Notes require identification to X first.

Z — Operator Services

Any IRCop (+o) may use OperServ-style tools. RootServ commands require the services admin list.

CommandDescription
AKILL ADD|DEL|LISTNetwork bans (mask, duration, reason)
GLOBAL <message>Notice all users
STATS / MAPServices stats / server map
KILL / MODE / KICKForce disconnect or modes
CHANFIX #channelRepair opless registered channels
OPER ADD|DEL|LISTRootServ: services admin list
JUPE / CLEARCHAN / REHASHRootServ admin tools
PLUGIN LIST|LOAD|…Plugin system (TOML / native)

Built-in plugin examples when loaded: HELLO, TIME, UPTIME.

Weather · LastFM

  • Weather — real-time weather via geocoding + forecast APIs; channel triggers such as !w, !weather, !forecast.
  • LastFM — now playing / recent / top tracks; channel trigger !np.

Message the agents directly for HELP, or use configured channel triggers where enabled.

Web portal

The Rustic web UI is published at https://services.xyznet.org (proxied to the services HTTP listener). Use the same credentials as your registered IRC nick. The site header Login / Members buttons open this portal.

  • Profile and account overview
  • Channel and notes summary
  • In-app service documentation
wiki · security

Proxy & DNSBL scanner

TS6 · Monitor · Python

scanner.XYZnet.org is a linked TS6 server that introduces Monitor!Proxy@scanner.XYZnet.org. On each new client connection, Monitor checks the IP against:

  • The EFnet DNSBL (rbl.efnetrbl.org)
  • XYZnet local ban list (oper-managed)
  • XYZnet exempt list (oper-managed — allows EFnet-listed hosts when needed)

Listed hosts (unless exempt) receive a temporary network KLINE and disconnect. Clean hosts are unaffected. Light open-port probes may be noted in #scanner without automatic bans.

What users see

  • Notices from Monitor explaining the security check
  • Lobby force-join to #XYZ still applies as usual
  • Public policy lists at scanner.XYZnet.org (IPs / reasons only — no nicknames)

Public lists

TabContents
EFnet RBLUnique IPs confirmed listed, with category & totals (searchable)
Local bansOper-added hosts/IPs and reasons
ExemptsHosts allowed despite EFnet listing

Connection scan logs (nicks, user hosts) are not published on the website.

Oper commands

/msg Monitor HELP
/msg Monitor ADDBAN <host|ip> <reason>   (alias: ADDBANN)
/msg Monitor DELBAN <host|ip>
/msg Monitor EXEMPT <host|ip> <reason>
/msg Monitor DELEXEMPT <host|ip>
/msg Monitor CHECK <ip>
/msg Monitor STATS

Announcements: #scanner · also joins #XYZ and #services.

Open scanner.XYZnet.org →

also see