# Channel modes Set with `MODE <#channel> + [param]`. Modes are grouped by the four CHANMODES types the server advertises in ISUPPORT: **A** (list modes, always take a parameter), **B** (always take a parameter), **C** (parameter only when set), **D** (flag, no parameter). Membership **prefixes** are listed at the end. ## Type A — list modes Each takes a parameter; using it with no parameter queries the list. | Mode | Name | Description | | --- | --- | --- | | `b` | ban | Ban a matching `nick!user@host` or [extban](/docs/extbans) from the channel | | `e` | ban exception | Exempt a matching mask from bans | | `I` | invite exception | A matching mask may join a `+i` channel without an invite | | `g` | spamfilter | Per-channel message word/glob filters (matches message text) | | `X` | exemptchanops | `:` — exempt members at/above a rank from a named restriction | | `w` | autoop | `:` — auto-grant a status prefix on join | ## Type B — always take a parameter | Mode | Name | Description | | --- | --- | --- | | `k` | key | Channel password required to join | ## Type C — parameter only when set | Mode | Name | Param | Description | | --- | --- | --- | --- | | `l` | limit | `` | Maximum member count | | `f` | message flood | `[*]:` | Kick a user exceeding the rate; leading `*` also bans | | `j` | join flood | `:` | Lock new joins for 60s after the threshold | | `F` | nick flood | `:` | Block nick changes for 60s after the threshold | | `L` | redirect | `<#target>` | Send joiners to another channel when `+l`-full | | `H` | history | `[:]` | Replay recent messages to joiners | | `B` | anticaps | `<1..100>` | Reject messages that are ≥ this % uppercase (ops exempt) | | `J` | kicknorejoin | `` | Block rejoin for N seconds after a kick | | `d` | delaymsg | `` | New members can't speak for N seconds (voiced+ exempt) | | `K` | norepeat | `` | Block a message identical to one of the sender's previous N lines | ## Type D — flag modes | Mode | Name | Description | | --- | --- | --- | | `A` | allowinvite | Any member may use `INVITE` | | `C` | noctcp | Block CTCPs to the channel | | `D` | delayjoin | Hide joining members until they speak or gain a prefix | | `G` | censor | Apply the network word censor to messages | | `M` | regmoderated | Only registered (logged-in) users may speak | | `N` | nonick | Block nick changes by members while in the channel | | `O` | operonly | Only IRC operators may join (oper-set) | | `P` | permanent | Channel persists with no members (oper-set) | | `Q` | nokicks | Block `KICK` in the channel | | `R` | regonly | Only registered users may join | | `S` | stripcolor | Strip mIRC colour/formatting from messages | | `T` | nonotice | Block `NOTICE`s to the channel | | `U` | opmoderated | Messages from unprivileged users go only to ops | | `c` | nocolor | Block messages containing colour/formatting | | `i` | inviteonly | Require an invite (or `+I` match) to join | | `m` | moderated | Only voiced+ may speak | | `n` | noexternal | Block messages from users not in the channel | | `p` | private | Private channel | | `r` | registered | Registered channel — set only by services | | `s` | secret | Secret channel (hidden from LIST/WHOIS) | | `t` | topiclock | Only ops may change the topic | | `z` | secureonly | Only TLS users may join (settable only when all members are on TLS) | ## Prefix / status modes Take a nick parameter; ordered high → low rank. Sigils and the ranks required to grant/revoke are configurable via `customprefix`. | Mode | Prefix | Name | Rank | | --- | --- | --- | --- | | `y` | `!` | oper prefix (network staff) | 60 | | `q` | `~` | owner / founder | 50 | | `a` | `&` | admin / protected | 40 | | `o` | `@` | op | 30 | | `h` | `%` | halfop | 20 | | `v` | `+` | voice | 10 | The `!` oper prefix only exists when `operprefix` or `ojoin` is enabled. Granting or removing a prefix requires out-ranking both the configured set/unset rank and the target's current top rank.