ブログに戻る
Guide

DiscordのAFKタイムアウト:非アクティブチャンネルのしくみとオフにする方法

DiscordのAFKタイムアウトはサーバーの設定です。サーバーにAFK用の非アクティブチャンネルがあると、ボイスで1分、5分、15分、30分、1時間何もしなかったメンバーはそこに移され、ミュートされます。タイムアウトを変えたりオフにしたりできるのはサーバーの管理者だけで、メンバーにはできません。

Slack Green Team
November 5, 2026
November 5, 2026
8 分で読める
Share:
discord
afk
voice channels
idle status

DiscordのAFKタイムアウトは、サーバーごとの設定です。サーバーのオーナーが Inactive Channel(AFK用の非アクティブチャンネル)を選んでいると、ボイスチャンネルで Inactive Timeout(非アクティブタイムアウト)のあいだ何もしなかった人を、Discordはそのチャンネルに移し、そこではミュートされます。タイムアウトは1分、5分、15分、30分、1時間のどれかで、それより長くはできません。変えたりオフにしたりできるのは「サーバー管理」の権限を持つ人だけで、Inactive Channelを「No Inactive Channel」にするとオフになります。メンバーはオフにできません。アクティブでいるか、AFKチャンネルのないサーバーを使うしかありません。

タイマーは設定より遅く動きます。2026年10月22日にDiscord自身のアプリのコードを読みました。移動を行うのはデスクトップアプリで、それもあなたが退席中(Idle)になったあとだけです。退席中になるのは、パソコンの操作が10分ないときか、画面をロックしたときです。そのうえで、最後の操作からInactive Timeoutがたったときに移します。つまり1分や5分のタイムアウトは、画面をロックしない限り10分と同じように働きます。

AFKタイムアウトは、黄色い月の退席中の状態とは別のものです。そちらは個人のもので、キーボードとマウスの操作で決まります。Discordの退席中の意味にまとめています。

DiscordのAFKチャンネルのしくみ

  • Inactive Channelが設定されたサーバーで、ボイスチャンネルにいます。
  • DiscordがInactive Timeoutのあいだ、あなたの動きを見ません。
  • DiscordがあなたをInactive Channelに移します。ボイスにはつながったままですが、そこでは話せません。
  • 戻ったら、どれかのボイスチャンネルをクリックすると入り直せます。
  • 何が「動き」に数えられるかは、下のコードにあります。パソコンのどこでのキーボードとマウスの操作も数えられ、話すことも数えられます。マイクが声を送ると、アプリはあなたをアクティブにします。自分をミュートすると、それは止まります。だから、パソコンを使い続けている人や話し続けている人はそのままで、席を離れた人は移されます。

    AFKチャンネルには、コストの理由もあります。Discordのフィードバックフォーラムの回答によると、ボイスで放置している人にもストリームは届き続け、その帯域にDiscordはお金を払っています。放置しているメンバーをミュートのチャンネルに移すと、それが節約できます。

    Discordのコードがすること(2026年10月22日に確認)

    ここまでのルールは、Discordがdiscord.com/appで配っているJavaScriptから読み取ったものです。このファイルには、デスクトップアプリの退席中とAFKのロジックが入っています。次のスクリプトはそれをダウンロードし、いつ退席中になり、いつ移されるかを決める行を表示します。

    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')

    2026年10月22日の出力:

    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

    各行の意味を順に書きます。

  • • 最後の操作から600,000ミリ秒(10分)で、またはパソコンがスリープするか画面がロックされるとすぐに、退席中になります。
  • • デスクトップアプリは10秒ごとにパソコンの操作のない時間を読むので、どのアプリでの操作も数えられます。ブラウザのタブでは、Discordが数えるのは自分のタブの中のクリック、スクロール、キー入力だけで、30秒ごとに確かめます。
  • • 退席中になったとき、AFKの移動が動くのはデスクトップアプリ(isPlatformEmbedded)だけです。最後の操作の時刻にサーバーのInactive Timeoutを足したタイマーをかけ、時間が来るとInactive Channelに移します。すでに過ぎているタイマーはすぐに動きます。
  • • アプリでGo Liveの配信をしているあいだは、どちらのタイマーも始まりません。AFKの移動はステージチャンネルを飛ばします。
  • • それとは別に、退席中になってから18,000,000ミリ秒(5時間)たつと、AFKチャンネルのないサーバーでも、デスクトップアプリはボイスチャンネルから完全に抜けます。
  • • 自分が話すことは動きに数えられます。
  • 私たちはコードを読みましたが、実際のサーバーで移動の時間を測ってはいません。ブラウザのタブではこのコードの移動は動きません。ブラウザの人が別の方法で移されるかどうかは試していません。

    DiscordのAFKタイムアウトの選択肢

    アプリでの設定APIの値(afk_timeout、秒)向いている場面
    1分60ボイスチャンネルを空けておきたいにぎやかなサーバー
    5分300Discord自身のAPIの例にある値
    15分900たいていのコミュニティのサーバー
    30分1800勉強やもくもく作業のサーバー
    1時間3600最大。「なし」はない

    Discordの開発者向けドキュメントは、使える値をこの5つだけとしています。誰も移さないようにするには、もっと長いタイムアウトを探すのではなく、Inactive Channelを外します。

    DiscordのAFKをオフにする・変える方法(サーバー管理者向け)

    「サーバー管理」の権限が必要です。

  • サーバーのメニュー(左上のサーバー名)を開き、サーバー設定 を選びます。
  • サーバーの概要の設定で、Inactive Channel と Inactive Timeout を探します。
  • AFKをオフにするには、Inactive Channelを No Inactive Channel にします。
  • AFKは残して時間を延ばすなら、Inactive Timeoutを30分か1時間にします。
  • 変更を保存します。
  • ボットもAPIで同じことができます。discord.pyで、「サーバー管理」の権限を持つボットの場合です。

    # 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)

    タイムアウトは60、300、900、1800、3600のどれかでなければならず、ほかの値は拒否されます。

    移されずにDiscordでAFKでいる方法

    メンバーで、サーバーにAFKチャンネルがあるなら、まっとうな方法は3つです。

  • • アクティブでいる。Discordかパソコンを使っていれば、非アクティブとは数えられません。
  • • サーバーの管理者に、もっと長いタイムアウトか、黙って座っているのが当たり前の作業用のボイスチャンネルを頼む。
  • • 友だちとのプライベートなサーバーのように、Inactive Channelのないサーバーを使う。そこではタイムアウトはかかりません。

自分をミュートしたりスピーカーをミュートしたりしても、動きには数えられません。ほかの人に聞こえるものが変わるだけで、Discordがあなたをアクティブと見るかどうかは変わりません。移されたあとにボイスチャンネルに戻るのはいつでも自由で、AFKチャンネルは罰ではありません。

キーボードから離れても、いなくなったように見せたくないなら、状態を手で設定します。退席中、取り込み中、オフライン表示はDiscordのステータスアイコンの意味にあります。

DiscordのAFK、退席中、オフライン表示

AFKチャンネル退席中(黄色い月)オフライン表示
決めるものサーバーのルール操作がないことからDiscordが、またはあなたがあなた
対象そのサーバーのボイスチャンネルどこでもあなたの状態どこでもあなたの状態
効果移されてミュートされる月のアイコン。メッセージは届くオフラインに見える
解除管理者がInactive Channelを外すDiscordを使うか、別の状態にする別の状態を選ぶ

退席中になるのは、パソコンでキーボードとマウスの操作が10分ないときです(Discordのコードでは600,000ミリ秒)。ルールの全体と、Discordを退席中にしない方法はDiscordの退席中の意味にあります。Discordのオフラインに見せる方法の違いはDiscordのオフライン表示とオフラインの違いにあります。

DiscordのAFKについての質問

DiscordのAFKタイムアウトとは? メンバーがボイスで何もしないまま、サーバーのInactive Channelに移されるまでの時間で、1分、5分、15分、30分、1時間のどれかです。デスクトップアプリでは、移動はあなたが退席中になるのも待つので、画面をロックしない限り、実際には10分より早くなることはありません。

Discordは放置しているとボイスから追い出す? デスクトップアプリでは追い出します。退席中になってから5時間で、AFKチャンネルのないサーバーでもボイスチャンネルから抜けます。

DiscordのAFKをオフにするには? サーバーを運営しているなら、サーバー設定でInactive ChannelをNo Inactive Channelにします。メンバーにはできません。

DiscordのAFKタイムアウトを1時間より長くできる? できません。1時間が最大です。人を移すのをやめるには、Inactive Channelを外します。

AFKチャンネルで話せないのはなぜ? DiscordはInactive Channelにいる全員をミュートします。話すには別のボイスチャンネルに入ります。

関連記事

Guide

Discordの退席中(Idle)とは?黄色い月の意味

Discordの退席中(Idle)は黄色い三日月で、サインインしているのにパソコンを約10分使っていないか、AndroidでDiscordのアプリを離れたか、自分で退席中にしたという意味です。オンラインとの違い、色とアイコン、何分でなるか、サーバーのAFKタイムアウトの働き。

Slack Green Team
Guide

Discordでステータスを変えると通知される?

オンライン、退席中、取り込み中を切り替えても、通知は送られません。ただし、Discordのスマホアプリを使っているフレンドには、あなたがオンラインになったとき、新しいカスタムステータスを設定したとき、ゲームを始めたときにプッシュ通知が届くことがあり、送る側では止められません。受け取る側はオフにでき、送る側はオンライン状態を隠すことができます。

Slack Green Team
Troubleshooting

Discordでオフラインのはずの人がオンラインに見えるのはなぜ?

Discordは、その人がサインインしているすべての端末のうち、いちばん活発な状態を表示します。PCのトレイでDiscordが動いていたり、ブラウザーのタブが開いていたりすると、スマホを閉じても緑のままです。原因、自分の端末の確かめ方、逆に自分がオフラインに見えるバグをまとめます。

Slack Green Team