InspIRCd v4 is still early in development!

If you use this branch you may experience crashes, weird behaviour, and unannounced breaking changes.

You probably want to use InspIRCd v3 instead.

The "permchannels" Module (v4)

Description

This module adds channel mode P (permanent) which prevents the channel from being deleted when the last user leaves.

Configuration

To load this module use the following <module> tag:

<module name="permchannels">

<permchanneldb>

The <permchanneldb> tag defines settings about how the permchannels module should behave. This tag can only be defined once.

Name Type Default Value Description
filename Text None If defined then the location to write a permchannels configuration file to.
listmodes Boolean No Whether to save list modes to the permchannels configuration file.
operonly Boolean Yes Whether channel mode P (permanent) can only be set by server operators. Changing this is not recommended.
saveperiod Duration 5s The time period between attempts to check whether the permchannel database needs to be written.
backoff Number 0 The value to multiply the saveperiod by every time a save fails. When the save succeeds the period will be reset.
maxbackoff Duration 0s The maximum write period that should be allowed even if incremental backoff is enabled.
writeversion Number 2 The version of the permchannel database format to write.

The format field should be set to one of the following values:

Value Description
1 Write a database compatible with v2 or newer.
2 Write a database compatible with v4 or newer. This preserves the setter and set time of list modes by moving list modes to their own field.
Example Usage
<permchanneldb filename="permchannels.conf"
               listmodes="yes"
               operonly="yes"
               saveperiod="5s"
               backoff="2"
               maxbackoff="5m"
               writeversion="2">

<permchannels>

The <permchannels> tag defines a permanent channel. This tag can be defined as many times as required.

Name Type Default Value Description
channel Text None Required! The name of the channel.
modes Text None If defined then the modes set on the channel.
topic Text None If defined then the topic of the channel.
topicsetby Text The server name The nickname of the user who set the channel topic.
topicts Number The current UNIX time The UNIX time at which the channel topic was set.
ts Number The current UNIX time The UNIX time at which the channel was created.
Example Usage
<permchannels channel="#example"
              modes="+bnt *!*@example.com"
              topic="Welcome to the Example channel!"
              topicsetby="Sadie"
              topicts="956188800"
              ts="726192000">

Channel Modes

Name Character Type Parameter Syntax Usable By Description
permanent P Switch None Server operators Prevents the channel from being deleted when the last user leaves.

Special Notes

You should remember to <include> the file specified in <permchannels:filename> in your server configuration.

It is recommended that you set channel mode +P (permanent) on channels and let InspIRCd write a configuration file rather than manually defining permanent channels in your server configuration.