Back to Blog
Guide

Discord AFK Timeout: How the Inactive Channel Works and How to Turn It Off

Discord's AFK timeout is a server setting. If a server has an Inactive (AFK) channel, members who stay inactive in voice for 1, 5, 15 or 30 minutes or 1 hour get moved there and muted. Server admins can change the timeout or turn it off; members cannot.

Slack Green Team
September 26, 2026
October 22, 2026
6 min read
Share:
discord
afk
voice channels
idle status

Discord's AFK timeout is a per-server setting. If a server owner has picked an Inactive Channel, Discord moves anyone who stays inactive in a voice channel for the Inactive Timeout into that channel, where they are muted. The timeout can be 1, 5, 15 or 30 minutes, or 1 hour, and nothing longer. Only people with the Manage Server permission can change it or turn it off, by setting the Inactive Channel to "No Inactive Channel". As a member you cannot turn it off; you can only stay active, or use a server without an AFK channel.

The timer runs later than the setting suggests. We read the code of Discord's own app on 22 October 2026: the desktop app makes the move itself, and only after you have also gone Idle, which takes 10 minutes without input on the computer or a locked screen. It then moves you once the Inactive Timeout has passed since your last input. So a 1-minute or 5-minute timeout acts like 10 minutes, unless you lock the screen.

The AFK timeout is separate from your Idle status, the yellow moon. That one is personal and follows your keyboard and mouse, as covered in what does idle mean on Discord.

How the Discord AFK channel works

  • You sit in a voice channel on a server that has an Inactive Channel set.
  • Discord sees no activity from you for the length of the Inactive Timeout.
  • Discord moves you into the Inactive Channel. You stay connected to voice, but you cannot speak there.
  • When you come back, click any voice channel to rejoin it.
  • What counts as activity is in the code, below. Keyboard and mouse input anywhere on the computer counts, and so does speaking: when your microphone sends voice, the app marks you active. Muting yourself stops that. So a person who keeps using the computer, or keeps talking, stays put, and a person who walks away gets moved.

    The AFK channel exists partly for cost. A reply on Discord's feedback forum explained that someone idling in voice still receives the stream, and that bandwidth costs Discord money. Moving idle members into a muted channel saves it.

    What Discord's code does, checked 22 October 2026

    The rules above come from the JavaScript Discord serves at discord.com/app, which carries the idle and AFK logic of its desktop app. This script downloads it and prints the lines that decide when you go idle and when you are moved:

    import re, urllib.request
    
    UA = {"User-Agent": "Mozilla/5.0 (Macintosh) Chrome/141"}
    get = lambda u: urllib.request.urlopen(urllib.request.Request(u, headers=UA), timeout=60).read().decode("utf-8", "ignore")
    html = get("https://discord.com/app")
    print("build", re.search(r"BUILD_NUMBER\W+(\d+)", html).group(1))
    web = [s for s in re.findall(r'src="(/assets/[^"]+\.js)"', html) if "/web." in s][0]
    js = get("https://discord.com" + web)
    
    def show(label, pattern):
        m = re.search(pattern, js)
        print(f"{label}: {m.group(0) if m else 'not found'}")
    
    show("idle after (ms)", r"\b\w{1,3}=6e5(?=,)")
    show("idle rule", r'Date\.now\(\)-\w+>\w+\.\w+\|\|\w+\(\)\?\w+\|\|\w+\.\w+\.dispatch\(\{type:"IDLE",idle:!0')
    show("idle at once when", r"function \w+\(\)\{return \w+\|\|\w+\|\|\(0,\w+\.isAndroid\)\(\)&&\w+\}")
    show("Android background flag", r"APP_STATE_UPDATE:function\(e\)\{let\{state:t\}=e;return \w+=t===\w+\.\w+\.BACKGROUND")
    show("desktop app reads system idle every", r"setTimeout\(e,10\*\w+\.\w+\.Millis\.SECOND\)")
    show("desktop screen lock", r'powerMonitor\.on\("lock-screen",\(\)=>\{\w+=!0')
    show("browser checks every", r"setInterval\(\w+,30\*\w+\.\w+\.Millis\.SECOND\)")
    show("browser input", r'addEventListener\("mouseup",\w+\),window\.addEventListener\("wheel",\w+\),window\.addEventListener\("keypress",\w+\)')
    show("AFK move runs only in", r"handleIdleUpdate\(\)\{let \w+=\w+\.\w+\.getIdleSince\(\);if\(!\w+\.isPlatformEmbedded\)return")
    show("AFK move timer", r"\w+\.start\(\w+\+\w+\.afkTimeout\*\w+\.\w+\.Millis\.SECOND-Date\.now\(\)")
    show("leave voice after idle (ms)", r"\w+\.start\(18e6,\(\)=>\{\w+\.default\.selectVoiceChannel\(null\)\}\)")
    show("speaking counts as input", r'SPEAKING:function\(e\)\{let\{userId:t,speakingFlags:n\}=e;return n!==\w+\.\w+\.NONE&&t===\w+\.default\.getId\(\)&&\w+\(\{\}\)')
    show("no AFK move while streaming", r'for\(let e of\(\w+\.stop\(\),\w+\.stop\(\),\w+\.\w+\.getAllActiveStreams\(\)\)\)if\(e\.state!==\w+\.\w+\.ENDED\)return')

    The output on 22 October 2026:

    build 643186
    idle after (ms): n3=6e5
    idle rule: Date.now()-f>A.sdF||S()?I||l.h.dispatch({type:"IDLE",idle:!0
    idle at once when: function S(){return T||m||(0,_.isAndroid)()&&g}
    Android background flag: APP_STATE_UPDATE:function(e){let{state:t}=e;return g=t===A.g6G.BACKGROUND
    desktop app reads system idle every: setTimeout(e,10*u.A.Millis.SECOND)
    desktop screen lock: powerMonitor.on("lock-screen",()=>{m=!0
    browser checks every: setInterval(N,30*u.A.Millis.SECOND)
    browser input: addEventListener("mouseup",e),window.addEventListener("wheel",e),window.addEventListener("keypress",e)
    AFK move runs only in: handleIdleUpdate(){let e=Vz.A.getIdleSince();if(!eV.isPlatformEmbedded)return
    AFK move timer: VX.start(e+n.afkTimeout*iI.A.Millis.SECOND-Date.now()
    leave voice after idle (ms): Vq.start(18e6,()=>{t5.default.selectVoiceChannel(null)})
    speaking counts as input: SPEAKING:function(e){let{userId:t,speakingFlags:n}=e;return n!==h.ME.NONE&&t===E.default.getId()&&O({})
    no AFK move while streaming: for(let e of(VX.stop(),Vq.stop(),d5.A.getAllActiveStreams()))if(e.state!==W.XYD.ENDED)return

    What the lines mean, in order:

  • • You go idle 600,000 ms (10 minutes) after your last input, or at once when the computer sleeps or the screen locks.
  • • The desktop app reads the computer's idle time every 10 seconds, so input in any app counts. In a browser tab, Discord counts only clicks, scrolls and key presses in its own tab, checked every 30 seconds.
  • • When you go idle, the AFK move runs only in the desktop app (isPlatformEmbedded). It sets a timer for your last input plus the server's Inactive Timeout, then moves you to the Inactive Channel. A timer that is already past fires at once.
  • • Neither timer starts while a Go Live stream is active in your app, and the AFK move skips Stage channels.
  • • Separately, 18,000,000 ms (5 hours) after you go idle, the desktop app leaves the voice channel completely, even on a server with no AFK channel.
  • • Your own speaking counts as activity.
  • We read the code; we did not time a move on a live server. In a browser tab the move in this code does not run, and we did not test whether a browser user is moved another way.

    Discord AFK timeout options

    Setting in the appAPI value (afk_timeout, seconds)Good for
    1 minute60Busy servers that want voice channels clear
    5 minutes300The value in Discord's own API examples
    15 minutes900Most community servers
    30 minutes1800Study or co-working servers
    1 hour3600The maximum; there is no "never"

    Discord's developer documentation lists those five values as the only ones allowed. To never move anyone, remove the Inactive Channel instead of looking for a longer timeout.

    How to turn off or change AFK on Discord (server admins)

    You need the Manage Server permission.

  • Open the server menu (the server name at the top left) and choose Server Settings.
  • In the settings for the server's overview, find Inactive Channel and Inactive Timeout.
  • To turn AFK off, set Inactive Channel to No Inactive Channel.
  • To keep it but give people longer, set Inactive Timeout to 30 minutes or 1 hour.
  • Save the changes.
  • Bots can do the same through the API. With discord.py, for a bot that has Manage Server:

    # set the AFK channel and a 30-minute timeout
    await guild.edit(afk_channel=afk_voice_channel, afk_timeout=1800)
    
    # turn AFK off
    await guild.edit(afk_channel=None)

    The timeout must be one of 60, 300, 900, 1800 or 3600. Other values are rejected.

    How to stay AFK on Discord without getting moved

    If you are a member and the server has an AFK channel, you have three honest options:

  • • Stay active. Using Discord or the computer keeps you from counting as inactive.
  • • Ask the server admins for a longer timeout, or for a voice channel set up for co-working, where people are expected to sit quietly.
  • • Use a server with no Inactive Channel, such as a private server with friends, where no timeout applies.

Muting or deafening yourself does not count as activity. It changes what others hear, not whether Discord sees you as active. And moving back into the voice channel after you are moved is always allowed; the AFK channel is not a penalty.

If you want to look away from the keyboard without looking gone, set your status by hand. Idle, Do Not Disturb and Invisible are covered in Discord status icons meaning.

AFK, Idle and Invisible on Discord

AFK channelIdle (yellow moon)Invisible
Set byServer ruleDiscord, from your inactivity, or youYou
Applies toVoice channels on that serverYour status everywhereYour status everywhere
EffectMoved and mutedMoon icon, messages still arriveYou look offline
Turn offAdmin removes the Inactive ChannelUse Discord, or set another statusPick another status

Idle turns on after 10 minutes without keyboard or mouse input on a computer (600,000 ms in Discord's code). The full rules, and how to keep Discord from going idle, are in what does idle mean on Discord. How Discord's appear-offline options differ is in Discord invisible vs offline.

Discord AFK questions

What is the AFK timeout on Discord? How long a member can stay inactive in voice before Discord moves them to the server's Inactive Channel: 1, 5, 15 or 30 minutes, or 1 hour. In the desktop app the move also waits until you are Idle, so in practice it is never sooner than 10 minutes unless your screen locks.

Does Discord kick you out of voice for being idle? Yes, in the desktop app: 5 hours after you go idle it leaves the voice channel, even on a server with no AFK channel.

How do I turn off AFK on Discord? If you run the server, set Inactive Channel to No Inactive Channel in Server Settings. As a member you cannot.

Can you set the Discord AFK timeout longer than 1 hour? No. One hour is the maximum. Remove the Inactive Channel to stop moving people at all.

Why can't I talk in the AFK channel? Discord mutes everyone in the Inactive Channel. Join another voice channel to speak again.

Related Articles

Guide

How to Make an Emoji From a Video (Slack and Discord)

To turn a video into an emoji, cut 1 to 3 seconds, crop it to a square, scale it to 128 x 128 and save it as a GIF under 128 KB for Slack or 256 KB for Discord. One tested ffmpeg command, a script that finds the frame rate and colors that fit, and a free browser tool that shrinks the GIF for you.

Slack Green Team
Guide

How to Make a Custom Emoji for Discord, With a Free Emoji Maker

To make a custom Discord emoji, crop an image to a square, keep it under 256 KB, name it with letters, numbers and underscores, and upload it with Add Emoji in the emoji picker or Server Settings, Emoji. How to make one from a photo, a GIF or text for free, add animation, and use it in other servers.

Slack Green Team
Guide

Does Discord Notify When You Change Your Status?

Switching between Online, Idle and Do Not Disturb sends no notification. But friends on the Discord mobile app can get a push when you come online, set a new custom status, or start a game, and you cannot stop Discord from sending it. They can turn it off on their side; you can go Invisible.

Slack Green Team