# Is MODE still shown to IRC clients?

**URL:** <https://staging-discuss.dev.twitch.com/t/is-mode-still-shown-to-irc-clients/24942>\
**Category:** API\
**Created:** [April 12, 2020, 5:04pm UTC](https://staging-discuss.dev.twitch.com/t/is-mode-still-shown-to-irc-clients/24942 "2020-04-12T17:04:04Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![vanosg](https://avatars.discourse-cdn.com/v4/letter/v/e47774/32.png) [@vanosg](https://staging-discuss.dev.twitch.com/u/vanosg)\
**Post date:** [April 12, 2020, 5:04pm UTC](https://staging-discuss.dev.twitch.com/t/is-mode-still-shown-to-irc-clients/24942/1 "2020-04-12T17:04:04Z")

</div>

Hi, dual-pronged question. I’m working on modifying Eggdrop to work better with Twitch. According to the docs

```auto
:jtv MODE #<channel> +o <user>

```

is the prototype used to detect mode changes.

Question 1: Is this a notification-only message, or should IRC clients be able to send those MODE changes themselves, ie if the bot wants to grant (or take) moderator status to a user?

Question 2: Giving moderator status to a user via the web interface does not generate a MODE message from the server for me. I have all the CAP features enabled, so I would expect to be able to see it:

```auto
[@] :tmi.twitch.tv CAP * ACK :twitch.tv/commands twitch.tv/membership twitch.tv/tags

```

Can anyone confirm they are able to still see MODE changes via the IRC interface, and if they are able to send (not just read) those messages? If so… any thoughts on why I can’t? Thank you.

---

<div class="post-metadata">

**Author:** ![BarryCarlyon](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/barrycarlyon/32/253_2.png) [@BarryCarlyon](https://staging-discuss.dev.twitch.com/u/BarryCarlyon)\
**Post date:** [April 12, 2020, 5:05pm UTC](https://staging-discuss.dev.twitch.com/t/is-mode-still-shown-to-irc-clients/24942/2 "2020-04-12T17:05:57Z")

</div>

> [@vanosg](#):
>
> Question 1: Is this a notification-only message, or should IRC clients be able to send those MODE changes themselves, ie if the bot wants to grant (or take) moderator status to a user?

Notification/read only

to mod someone it is

> PRIVMSG #channel : .mod username

> [@vanosg](#):
>
> Question 2: Giving moderator status to a user via the web interface does not generate a MODE message from the server for me. I have all the CAP features enabled, so I would expect to be able to see it:

Generally these messages are batched up so they don’t occur instantly.  
Secondly, they don’t work at all in channels with 1k+ people present (even with the cap on) and is generally considered unreliable.

The correct method is to test for the presence of the moderator badge in tags → bages

> [@vanosg](#):
>
> Hi, dual-pronged question. I’m working on modifying Eggdrop to work better with Twitch. According to the docs

Worth nothing that whilst TMI (Twitch messaging interface) looks like IRC, it isn’t it just implements parts of IRC and uses the IRC messaging format. So don’t expect it to _behave_ like IRC.

---

<div class="post-metadata">

**Author:** ![vanosg](https://avatars.discourse-cdn.com/v4/letter/v/e47774/32.png) [@vanosg](https://staging-discuss.dev.twitch.com/u/vanosg)\
**Post date:** [April 12, 2020, 5:08pm UTC](https://staging-discuss.dev.twitch.com/t/is-mode-still-shown-to-irc-clients/24942/3 "2020-04-12T17:08:09Z")

</div>

Thanks for the clarification- the MODE messages never appear though, even over the span of an hour. Can you confirm you still actually get these?

Is there a way to suggest document improvements to staff here, to clariy the read-only nature of MODE?

---

<div class="post-metadata">

**Author:** ![BarryCarlyon](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/barrycarlyon/32/253_2.png) [@BarryCarlyon](https://staging-discuss.dev.twitch.com/u/BarryCarlyon)\
**Post date:** [April 12, 2020, 5:11pm UTC](https://staging-discuss.dev.twitch.com/t/is-mode-still-shown-to-irc-clients/24942/4 "2020-04-12T17:11:40Z")

</div>

> [@vanosg](#):
>
> Thanks for the clarification- the MODE messages never appear though, even over the span of an hour. Can you confirm you still actually get these?

Most of the channels I work in have 1k+ chatters so all the “normal” IRC MODE stuff just doesn’t work, you should be reading TAGs instead

> [@BarryCarlyon](#):
>
> The correct method is to test for the presence of the moderator badge in tags -\> bages

> [@vanosg](#):
>
> Is there a way to suggest document improvements to staff here, to clariy the read-only nature of MODE?

The documentation no where says you can send MODE messages.

> **[Twitch IRC Membership Messages](https://dev.twitch.tv/docs/irc/membership/)**
>
> Twitch IRC Membership Commands

The main Dev Documentation do not cover the available chat commands, that is covered in the general help guide (for everyone not jsut devs) here

[https://help.twitch.tv/s/article/chat-commands?language=en\_US](https://help.twitch.tv/s/article/chat-commands?language=en_US)

These commands can be sent a `/command` or `.command` to avoid IRC library conflicts that interrupt `/` and sends as a command instead of a PRIVMSG

---

<div class="post-metadata">

**Author:** ![vanosg](https://avatars.discourse-cdn.com/v4/letter/v/e47774/32.png) [@vanosg](https://staging-discuss.dev.twitch.com/u/vanosg)\
**Post date:** [April 12, 2020, 5:26pm UTC](https://staging-discuss.dev.twitch.com/t/is-mode-still-shown-to-irc-clients/24942/5 "2020-04-12T17:26:53Z")

</div>

I appreciate the feedback regarding parsing tag messages, I’m already doing that, and thank you for the reference to sending commands via PRIVMSG. What I’m interested in here though is also parsing based on mode messages when they appear. Again from the docs,

```auto
If there are more than 1000 chatters in a room, NAMES return only the list of operator privileges currently in the room. The code stops sending JOIN/PART updates when the room size exceeds 1k. After that, it only sends “MODE changes” (any of the +o and -o commands above).

```

And regardless of channel size, it seems that MODE messages should be generated, but I still can’t see them even in a 3-user channel. I’m still trying to validate why they are not appearing, if anyone has any theories or can confirm they also do not see MODE messages. It would be much appreciated.

@xangold I’ve seen your name in some of these posts, my two cents for improving documentation would be to clarify that clients can’t send MODE messages on Twitch, as this is a deviation from IRC RFC and IRC devs might expect that functionality without something saying it is read-only. If there is a better way to submit such requests for consideration/improvement? Just trying to give back where I can, thanks!

---

<div class="post-metadata">

**Author:** ![BarryCarlyon](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/barrycarlyon/32/253_2.png) [@BarryCarlyon](https://staging-discuss.dev.twitch.com/u/BarryCarlyon)\
**Post date:** [April 12, 2020, 5:29pm UTC](https://staging-discuss.dev.twitch.com/t/is-mode-still-shown-to-irc-clients/24942/6 "2020-04-12T17:29:50Z")

</div>

> [@vanosg](#):
>
> @xangold I’ve seen your name in some of these posts, my two cents for improving documentation would be to clarify that clients can’t send MODE messages on Twitch, as this is a deviation from IRC RFC and IRC devs might expect that functionality without something saying it is read-only. If there is a better way to submit such requests for consideration/improvement? Just trying to give back where I can, thanks!

Documentation fixes can be suggested on the uservoice, not by pinging staff

[https://twitch.uservoice.com/forums/310213-developers?category\_id=358000](https://twitch.uservoice.com/forums/310213-developers?category_id=358000)

(which is also linked at the bottom of the documentation pages)

Twitch doesn’t (fully) implement the RFC, TMI is a custom chat implementation that is available via an IRC port (and over websockets) that looks like IRC but it isn’t.

> [@vanosg](#):
>
> And regardless of channel size, it seems that MODE messages should be generated, but I still can’t see them even in a 3-user channel. I’m still trying to validate why they are not appearing, if anyone has any theories or can confirm they also do not see MODE messages. It would be much appreciated.

The general consensus is that they stop working in 1k+, and are generally not reliable, as tags/badges should be used instead. If you are not getting them, sounds like that sub system has dropped offline again (it’s no reliable, as again, tags/badges are the correct method to check for op status or other roles). I don’t bother even parsing for them (modes), as Tags/Badges are the correct way to check for moderator status (or other roles) in a channel

---

<div class="post-metadata">

**Author:** ![Dist](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/dist/32/7192_2.png) [@Dist](https://staging-discuss.dev.twitch.com/u/Dist)\
**Post date:** [April 12, 2020, 5:31pm UTC](https://staging-discuss.dev.twitch.com/t/is-mode-still-shown-to-irc-clients/24942/7 "2020-04-12T17:31:29Z")

</div>

> [@vanosg](#):
>
> clarify that clients can’t send MODE messages on Twitch, as this is a deviation from IRC RFC and IRC devs might expect that functionality without something saying it is read-only.

Twitch Chat provides an IRC compatible interface, but it is not designed to be compliant with the IRC RFC as it is it’s own system, just with support for IRC clients. As such you shouldn’t make assumptions beyond anything which is not mentioned specifically in the documentation.

---

<div class="post-metadata">

**Author:** ![vanosg](https://avatars.discourse-cdn.com/v4/letter/v/e47774/32.png) [@vanosg](https://staging-discuss.dev.twitch.com/u/vanosg)\
**Post date:** [April 16, 2020, 9:38pm UTC](https://staging-discuss.dev.twitch.com/t/is-mode-still-shown-to-irc-clients/24942/8 "2020-04-16T21:38:22Z")

</div>

Before this thread ages out (and back to the original subject line), can anyone confirm with first-hand knowledge that the MODE command is still supposed to (or not supposed) be shown to clients? I am unable to view a MODE command being generated when mod’ing someone, which seems to run counter to the documentation as an expected functionality.

---

<div class="post-metadata">

**Author:** ![matt\_thomas](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/matt_thomas/32/710_2.png) [@matt\_thomas](https://staging-discuss.dev.twitch.com/u/matt_thomas)\
**Post date:** [April 17, 2020, 12:20am UTC](https://staging-discuss.dev.twitch.com/t/is-mode-still-shown-to-irc-clients/24942/9 "2020-04-17T00:20:18Z")

</div>

## TL;DR - Maybe… but people have known MODE is unreliable for years. Use TAGS.

* * *

First-hand knowledge would come from Twitch staff via documentation which includes this in the Intro:

> While our IRC server generally follows [RFC1459](https://tools.ietf.org/html/rfc1459.html), there are several cases where it behaves slightly differently than other IRC servers; as described below, there are many Twitch-specific IRC capabilities. The differences are necessary to accommodate:
> 
> - The massive scale at which our chat servers operate, and
> - Complex Twitch-specific features that we provide (to viewers, broadcasters, and developers).

We already know that the MODE/JOIN/PART/NAMES work in a non-standard fashion for a fact. They are all “batched” and run at intervals, and the MODE/JOIN/PART stop functioning after 1000 users.

It does state:

> The code stops sending JOIN/PART updates when the room size exceeds 1k. After that, it only sends “MODE changes” (any of the +o and -o commands above).

Which I think you can take as, “it probably should continue to function” - but as others have said, there have been implementations that render the need for MODE moot. Anyone that maintains a bot knows that MODE is very unreliable.

Using the IRCv3 tags has been considered the efficient way of handling moderator status checks.

> **[IRC Concepts](https://dev.twitch.tv/docs/chat/irc)**
>
> IRC Concepts

EDIT: googled for eggdrop IRCv3 support and found: [https://gist.github.com/grawity/4455067/eb63e5e1764df2a4d9979fbdb52554e698da3ce1](https://gist.github.com/grawity/4455067/eb63e5e1764df2a4d9979fbdb52554e698da3ce1)

Where [**g\_cap.tcl**](https://gist.github.com/grawity/4455067/eb63e5e1764df2a4d9979fbdb52554e698da3ce1#file-g_cap-tcl) references “Experimental IRCv3 capability support”

---

<div class="post-metadata">

**Author:** ![vanosg](https://avatars.discourse-cdn.com/v4/letter/v/e47774/32.png) [@vanosg](https://staging-discuss.dev.twitch.com/u/vanosg)\
**Post date:** [May 13, 2020, 10:29pm UTC](https://staging-discuss.dev.twitch.com/t/is-mode-still-shown-to-irc-clients/24942/10 "2020-05-13T22:29:14Z")

</div>

To close this topic out, after engaging with the staff, they now plan to officially remove this functionality

> [@IRC update: removing MODE and NAMES capabilities](https://staging-discuss.dev.twitch.com/t/irc-update-removing-mode-and-names-capabilities/25568):
>
> Update: We will eventually remove the NAMES functionality as planned due to its unreliability. However, given the usage discussed below, we will postpone the removal until there is replacement functionality. This post will be updated when it is available and a timeline has been set for a migration and shutdown of NAMES. The MODE and NAMES IRC capabilities that have been documented in the [Chatbots & IRC](https://dev.twitch.tv/docs/irc/membership) section have not functioned correctly for some time and will not be supported. Since we do …

From my conversation with them: “Thanks for pointing this out. NAMES and MODE have not functioned properly for some time and will not be supported. As such, we have removed this from the documentation and the functionally will soon be removed from the IRC interface.”

---

<div class="post-metadata">

**Author:** ![system](https://d2spem0quai2ol.cloudfront.net/original/2X/0/05909729875cce3b53e59d5561c4d23bb14948fc.png) [@system](https://staging-discuss.dev.twitch.com/u/system)\
**Post date:** [June 12, 2020, 10:29pm UTC](https://staging-discuss.dev.twitch.com/t/is-mode-still-shown-to-irc-clients/24942/11 "2020-06-12T22:29:17Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
