premium af lol

Wazakindjes 18ac03d49b Auto-upd00t modules.list [=[=[== 1 month ago
avy 936f1beed5 Let AppVeyor ign0re missing modules while we transitionan to U5 ;];];]];]; 3 years ago
malv c34ed279e8 Fix parameter issue =] 1 month ago
man 7e508aa579 man/fixhop: renamed disallow_* shit to deny_*, also deny_chmodes now takes "directions" 1 year ago
skrip c34ed279e8 Fix parameter issue =] 1 month ago
spec 2e620f5c9f Updated all documentation to match Unreal 6, also made the few mods (and templates) still here compatibru with it 0fc =]]] 1 year ago
templates 2e620f5c9f Updated all documentation to match Unreal 6, also made the few mods (and templates) still here compatibru with it 0fc =]]] 1 year ago
.editorconfig 8bc7f267f8 Added editorc0nfig =] 1 year ago
.gitignore 2780c71229 Ported all remaining fucking m0ds over to U5, including templ8s y0 (doing some misc optimisation/bugfixing in the pr0cess), also m_forward's OperOverride hecks is now implemented in operoverride_ext.c =]]]]]]]]]]]]]]]]] 3 years ago
HALP.md 01590b3175 HALP: upd00ted "index" lel 1 year ago
LICENSE 1344e3f1cc initial commit 7 years ago
README.md 2e620f5c9f Updated all documentation to match Unreal 6, also made the few mods (and templates) still here compatibru with it 0fc =]]] 1 year ago
appveyor.yml fb4b678f23 Added .dll zip to em readme + appvey0r build matrix for Unreal v4.2.4.1 4 years ago
modules.list 18ac03d49b Auto-upd00t modules.list [=[=[== 1 month ago

README.md

This repo used to be a giant collection of the modules I've written, but since the advent of UnrealIRCd v5 there's now a centralised repo for that shit instead. Many of my mods can be found there, so if you're a *NIX user then use Unreal's own module manager to install them and keep them up to date. ;]

When modules aren't in that central repo, it usually means it's something tailored to very specific needs and there's no real reason to include it on there. For those, you still need to do a couple of manual steps (see below).

For troubleshooting etc, view the HALP.md fiel. You can also find (some) discussion in the 3rd party mods board on the Unreal forums. =]

Windows users: you're currently shit out of luck when it comes to using my modules. I need to hack my AppVeyor to build modules from all the new locations first. :DDDDDDD Unless you're feeling brave and wanna try manually compiling them yourself of course. ;]

All modules should be loaded on all servers, unless explicitly specified otherwise

The shown config block snippets are just examples of the structure, it's up to you to integrate it properly with your existing config

Module compilation (*NIX only)

This repo now rocks a modules.list file, which can be used with Unreal's mod manager. ;];] Simply edit <Unreal install dir>/conf/modules.sources.list and add the following URL to the bottom of that file: https://gottem.nl/unreal/modlist. Then run <Unreal install dir>/unrealircd module list and verify that modules from this repo are included in the output.

Repo structure

  • skrip: Some miscellaneous scripts that might be of use (see readme in the dir for deetz) ;]
  • templates: Muh templ8s for Unreal m0ds m8, everything is explained inside the .c files there
  • spec: Specifically written for someone by request, as such it's tailored to them/their network and is probably not very useful to you (see readme in the dir for deetz)
  • malv: Specifically written for Malvager; move along, nothing to see here =]

Paid modules

I also started writing modules with the intention of selling them, as those are generally very complex and take up a lot of my spare time. ;] For more information about those, simply go to my shop sort of thing.

If you don't need these but still want to support me, feel free to donate through PayPal or use the custom job fee option in my shop if you want to donate with credit card or iDEAL. :>

Log events

Unreal 6 now uses log events rather than just plain notices, so we had to create a bunch of new events. Snomasks were also redone entirely so we no longer use custom snomasks for this, but rather Unreal's log block now determines what is broadcast globally. You can still create your own snomasks with these events. ;]

To achieve similar global noticing behaviour as in Unreal 5 you'll need to add this to your unrealircd.conf:

log {
    source {
        autovhost.AUTOVHOST_INVALID;
        block_masshighlight.BLOCK_MASSHIGHLIGHT_DETECTED;
        block_masshighlight.BLOCK_MASSHIGHLIGHT_OPERMSG;
        commandsno.COMMANDSNO_USAGE;
        modmanager_irc.MODMANAGER_IRC_USAGE;
        rtkl.RTKL_USAGE;
        sacmds.SACMDS_NICK_USAGE;
        sacmds.SACMDS_UMODE_USAGE;
        textshun.TEXTSHUN_MATCH;
    }
    destination {
        remote;
    }
}

An overview of all new/custom log events (grouped by module):

  • autovhost.AUTOVHOST_INVALID
  • block_masshighlight.BLOCK_MASSHIGHLIGHT_DETECTED, block_masshighlight.BLOCK_MASSHIGHLIGHT_OPERMSG
  • block_no_tls.BLOCK_NO_TLS_CHANGED
  • commandsno.COMMANDSNO_USAGE
  • fantasy.FANTASY_INVALID, fantasy.FANTASY_OUT_OF_SPACE
  • gecos_replace.GECOS_REPLACE_TRUNCATED
  • geoip.GEOIP_LOOKUP_ERROR, geoip.GEOIP_ACCEPTED, geoip.GEOIP_OPERMSG
  • ldapauth.LDAPAUTH_ACCEPTED, ldapauth.LDAPAUTH_OPERMSG
  • modmanager_irc.MODMANAGER_IRC_USAGE, modmanager_irc.MODMANAGER_IRC_RELAYEDOUTPUT
  • mshun.MSHUN_EXPIRE, mshun.MSHUN_CHANGED
  • operoverride_ext.OPEROVERRIDE_EXT_UNKNOWN, operoverride_ext.OPEROVERRIDE_EXT_BAN, operoverride_ext.OPEROVERRIDE_EXT_REGONLY, operoverride_ext.OPEROVERRIDE_EXT_INVITE
  • otkl.OTKL_MATCH, otkl.OTKL_REPLACE, otkl.OTKL_ADD, otkl.OTKL_DEL
  • repeatprot.REPEATPROT_TRIGGERED
  • report.REPORT_SYNC_ERROR
  • rtkl.RTKL_USAGE
  • sacmds.SACMDS_NICK_USAGE, sacmds.SACMDS_UMODE_USAGE
  • signore.SIGNORE_ADD, signore.SIGNORE_DEL, signore.SIGNORE_EXPIRE
  • textshun.TEXTSHUN_ADD, textshun.TEXTSHUN_DEL, textshun.TEXTSHUN_EXPIRE, textshun.TEXTSHUN_MATCH

Certain modules also reuse already existing events:

  • block_masshighlight: kill.KILL_COMMAND, tkl.TKL_ADD_TEMPSHUN
  • block_no_tls: kill.KILL_COMMAND
  • block_notlsident: kill.KILL_COMMAND
  • fixhop: operoverride.OPEROVERRIDE_INVITE
  • rehashgem: config.CONFIG_RELOAD
  • repeatprot: kill.KILL_COMMAND