=head1 IRCD-specific notes =head2 asuka You need U:lines for services on all servers on the network. You must enable join_chans as P10 is designed for services to work that way. P10 does not support logout, so users are killed (from the services server) when they log out. It is suggested that the logout module is not loaded. Users dropping their account will be killed; this cannot be avoided. Furthermore, Ermyth assumes it is the only entity on the network sending ACCOUNT messages. Asuka's +N (no notices/wallchops) mode is turned off whenever a notice/wallchops is to be sent to a channel (it should not block notices from remotes or wallchops, really). If you want a channel to be +N always, leave verbose disabled. For host hiding (umode +x, .) to work, the hosthidesuffix in serverinfo{} must be correct (same value as F:HIDDEN_HOST in ircd.conf). SETHOST (umode +h [ident@]host) is supported. When changing the ident via +h, ermyth will not restore the ident on -h. This can be worked around by never changing ident with +h, never doing -h or doing a +h with the original ident@ before -h. =head2 bahamut You need U:lines/super{} entries for services on all servers on the network. Bahamut is designed for services not joining channels, not having the ability to prevent services being kicked/deopped and the like. If you want to use fantasy commands, you will have to enable join_chans anyway; beware of bots fighting with chanserv. Do not use the "services hub" server type. =head2 bircd You need U:lines for services on all servers on the network. You must enable join_chans as P10 is designed for services to work that way. P10 does not support logout, so users are killed (from the services server) when they log out. It is suggested that the logout module is not loaded. Users dropping their account will be killed; this cannot be avoided. Furthermore, Ermyth assumes it is the only entity on the network sending ACCOUNT messages. For host hiding (umode +x, .) to work, the hosthidesuffix in serverinfo{} must be correct. =head2 charybdis You will need a service{} block on all servers. If you want to use akills, you need shared{} blocks for services on all servers on the network. Ermyth supports both TS5 and TS6 protocol. It is recommended to use TS6 as it reduces ghosts/desyncs and propagates user IP addresses. Although Ermyth does not support IPv6 connections itself, user IPv6 addresses will be properly stored and logged. =head2 dreamforge You need U:lines for services on all servers on the network. If a server lacks U:lines, a storm of mode changes may result. Dreamforge is designed for services not joining channels, not having the ability to prevent services being kicked/deopped and the like. If you want to use fantasy commands, you will have to enable join_chans anyway; beware of bots fighting with chanserv. The TOPIC and TOPICAPPEND commands cannot be used to change topics as dreamforge does not allow services to set newer topics. KEEPTOPIC and TOPICLOCK can be used, however. Dreamforge is a dated IRCd, you should probably upgrade to a more modern one. =head2 hyperion The channel mode +D is not supported and will be ignored. Bans with forward channels will not be recognized properly. This may lead to problems like users still being banned after a chanserv unban command. There are two methods to allow services to remember users after a netsplit or restart and to enable things like channels only accessible for registered users. The traditional dancer method is umode +e; it only works if the user is logged in to the nick they are currently using. The new hyperion method using SVSLOGIN and SIGNON does not have this restriction. It also allows changing nick/ident/host at the same time, but Ermyth does not use that yet. Consequently, NOIDPREFIX is not supported in a useful way. Ermyth will always set +e appropriately; if SVSLOGIN support is available, it will be used (this assumes the whole network has it). SVSLOGIN support can also be disabled with a simple source file change. The wallops option will report via +s server notices. Although Ermyth does not support IPv6 connections itself, user IPv6 addresses will be properly stored and logged. =head2 inspircd You should use inspircd11 for inspircd 1.1.x. InspIRCd 1.0.x support (inspircd10) has been dropped. You need tags for services on all servers on the network. Several of the modes supported by Ermyth are in optional modules. It should usually not be a problem if those modules are not loaded. The exceptions to this are the m_globops.so and m_services_account.so modules, which must be loaded at all times on your inspircd servers if you wish to use this version of ermyth. If the servers are protocol 1102 or newer, m_globops.so is not required, although it will be used if loaded. The inspircd support is developed in cooperation with the inspircd developers. =head2 ircnet Ermyth links as a server (C:, N:, H: lines), not as a service. IRCnet-style services cannot do enough (like manipulating channel modes). Nick delay will lock any nicks killed, so /ns ghost is worthless; it is probably best to use userserv instead of nickserv. Only # channels are supported. Tklines are used for /os akill but this only works on the server Ermyth is directly linked to. It is recommended to enable join_chans, otherwise many things will be sent from the server (possibly generating nasty server notices) or chanserv will join and part to do the action. Alternatively, disable it and avoid commands that cause Ermyth to kick as much as possible. Jupes will use SIDs numerically following services's SID, make sure to leave plenty of space. =head2 nefarious You need U:lines for services on all servers on the network. You must enable join_chans as P10 is designed for services to work that way. Ermyth assumes it is the only entity on the network sending ACCOUNT messages. Login-on-connect is not supported. For host hiding (umode +x, .) to work, the hosthidesuffix in serverinfo{} must be correct (same value as F:HIDDEN_HOST in ircd.conf). Only F:HOST_HIDING_STYLE:1 (.) is supported, F:HOST_HIDING_STYLE:2 (scrambled hostname/IP) is not. SETHOST (umode +h [ident@]host) is supported. When changing the ident via +h, ermyth will not restore the ident on -h. This can be worked around by never changing ident with +h, never doing -h or doing a +h with the original ident@ before -h. Ban exceptions are supported, although some Nefarious versions have bugs where they are not sent properly. =head2 officeirc Unlike other IRCds, OfficeIRC server names do not necessarily have a period in them; this may cause some warnings about the config file which can safely be ignored. =head2 plexus PleXusIRCd 3 is the only version supported. If you want services to function properly, you will need a shared { } block for services, without any usermask entries, tagged for services: shared { name = "services.int"; type = all, services; }; The above block should do the trick. =head2 ptlink Ermyth's server name must match ServicesServer in network.dconf (on all servers on the network). The following options/features are not recommended: HideServerOnWhois (not effective), SecureModes (Ermyth does not set channels +r), RestrictedChans (not implemented by Ermyth), user mode +H (various bugs and tricks allow users to see the oper status anyway), stealth mode (highly unethical and various bugs and tricks allow users to get around it). PTlink ircd allows services to do various special things like restarting the server; write a module if you want to use those. By default, Ermyth assumes cmode +a (channel admin/protect, AdminWithDot in network.dconf) and cmode +h (halfops, compile time option) are enabled. If this is not the case, compile and load the ircd_noprotect and/or ircd_nohalfops modules from contrib. Although Ermyth does not support IPv6 connections itself, user IPv6 addresses will be properly stored and logged. =head2 ratbox If you want to use operserv kline, you need shared{} blocks or U:lines for services on all servers on the network. Note that only hybrid 7.1 and ratbox support remote unkline, although it may appear to sort of work in hybrid 7.0. If you use ratbox 2.1.x or newer, it is recommended to compile with ratbox-services support as this will allow remembering logged-in state across netsplits and services restarts, prevent deopping/kicking chanserv, etc. You will need a service{} block on all servers. Hybrid 6.x or csircd should also work but they are not recommended; you must leave join_chans enabled for full functionality. Ermyth supports both TS5 and TS6 protocol. It is recommended to use TS6 as it reduces ghosts/desyncs and propagates user IP addresses. Although Ermyth does not support IPv6 connections itself, user IPv6 addresses will be properly stored and logged. =head2 shadowircd Ermyth does not support the "modern" ShadowIRCd protocol, revisions 3400 and 4000. You will need to use compatibility mode with Ermyth. Proper care has been taken to ensure that Ermyth complies with all requirements necessary for compatibility mode. Note that only ShadowIRCd 3.2 and later properly support the removal of AKILLs, although it may appear to sort of work in earlier versions. =head2 sorcery You need U:lines for services on all servers on the network. If a server lacks U:lines, a storm of mode changes may result. ircd-sor is designed for services not joining channels, not having the ability to prevent services being kicked/deopped and the like. If you want to use fantasy commands, you will have to enable join_chans anyway; beware of bots fighting with chanserv. The TOPIC and TOPICAPPEND commands cannot be used to change topics as ircd-sor does not allow services to set newer topics. KEEPTOPIC and TOPICLOCK can be used, however. =head2 ultimate3 You will need U:lines for services on all services on the network. =head2 undernet You need U:lines for services on all servers on the network. You must enable join_chans as P10 is designed for services to work that way. P10 does not support logout, so users are killed (from the services server) when they log out. It is suggested that the logout module is not loaded. Users dropping their account will be killed; this cannot be avoided. Furthermore, Ermyth assumes it is the only entity on the network sending ACCOUNT messages. For host hiding (umode +x, .) to work, the hosthidesuffix in serverinfo{} must be correct (same value as F:HIDDEN_HOST in ircd.conf). Ermyth does not support IPv6 (neither IPv6 connections nor IPv6 IPs in P10 protocol). IPs of IPv6 clients will not be stored or logged. Ermyth does not support oplevels; they should be disabled. chanserv::changets can be used with ircu version 2.10.12.06 or newer; if any server on the network is 2.10.11.x, netsplits will occur whenever Ermyth tries to lower TS. =head2 unreal You need ulines{} for services on all servers on the network. If a server lacks U:lines, a storm of mode changes may result.