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.
On this page
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:
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.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 app | API value (afk_timeout, seconds) | Good for |
|---|---|---|
| 1 minute | 60 | Busy servers that want voice channels clear |
| 5 minutes | 300 | The value in Discord's own API examples |
| 15 minutes | 900 | Most community servers |
| 30 minutes | 1800 | Study or co-working servers |
| 1 hour | 3600 | The 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.
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:
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 channel | Idle (yellow moon) | Invisible | |
|---|---|---|---|
| Set by | Server rule | Discord, from your inactivity, or you | You |
| Applies to | Voice channels on that server | Your status everywhere | Your status everywhere |
| Effect | Moved and muted | Moon icon, messages still arrive | You look offline |
| Turn off | Admin removes the Inactive Channel | Use Discord, or set another status | Pick 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
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.
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.
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.