Set up the bot your members authorize, so you can bring them back if your server is lost.
Restore lets you get your members back if your server gets deleted, nuked or taken over. Members verify once by authorizing a bot, and from then on you can add them to any server you run, even a brand new one.The bot they authorize isn’t mira. It’s a bot you make yourself in the Discord Developer Portal, which we call your restore bot. That way the authorizations belong to you, and you aren’t depending on anyone else’s application staying up.You only do this once. The same restore bot works for every server you set verification up in.
Use a fresh application for this. Don’t reuse a bot that already does other things, and don’t use a custom instance token.
Go to the Discord Developer Portal and press New Application. Name it whatever you want your members to see when they authorize, most people just use the server’s name.
Open the Bot tab and press Reset Token, then copy the token somewhere safe for a minute. Discord only shows it once.
Open the OAuth2 tab and press Reset Secret under Client Secret, then copy that too.
Still on the OAuth2 tab, press Add Redirect and paste this in:
https://x.mira.party/restore/callback
Then hit Save Changes at the bottom. If you forget to save, mira won’t accept the bot.
You don’t need to turn on any intents. The restore bot never actually comes online, mira just uses it in the background, so it’ll show as offline in your member list and that’s normal.Leave Requires OAuth2 Code Grant off on the Bot tab. You can turn Public Bot off if you don’t want anyone else adding it to their servers.
Pick Restore Bot from the menu and press Connect Bot. A form pops up asking for the bot token and the client secret. Paste them in and submit.The form is private, so nothing ends up in chat. mira checks the token works, that the secret belongs to the same application, and that the redirect URL is saved before it accepts anything. If something’s off it’ll tell you which one.Once it’s connected, press Invite Bot to add it to your server. The invite already has the permissions it needs, mainly Manage Roles so it can hand out your verified role.
Never post your token or client secret anywhere, including screenshots and screen recordings. Anyone with the token controls the bot. If one leaks, reset it in the Developer Portal and connect the bot again with the new one.
If you reset the token, reset the secret or remove the redirect URL, verification in your servers stops working and mira will DM you about it. Fix whatever changed, then press Connect Bot again with the current token and secret.Don’t delete the application. Every member who verified authorized that specific bot, so if it’s gone, those members can’t be pulled anymore. The same goes for switching to a different bot later: you can, but the members who verified with the old one stay tied to it.If you want to stop using restore, press Disconnect on the Restore Bot page. Your pools are kept, but nothing can be pulled until you connect the bot again.
You can give up to 10 people access to your member pools, so a co-owner can run a pull if you’re not around. They use your restore bot, they don’t need their own.
!restore allow @someone!restore revoke @someone
You can also pick them from the Restore Bot page. Only you can delete your pools, managers can just view and pull them.Next, set up verification in your server.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"mira","description":"Documentation for mira — moderation, security, social feeds, music, and everything in between.","colors":{"primary":"#5F6775","light":"#A0A7B4","dark":"#5F6775"},"logo":{"light":"https://mintcdn.com/juno/hhJ9tvfYJEf3czpl/images/logo-light.svg?fit=max\u0026auto=format\u0026n=hhJ9tvfYJEf3czpl\u0026q=85\u0026s=ca3efe63b08fb0b0ed4f7656c37d365c","dark":"https://mintcdn.com/juno/hhJ9tvfYJEf3czpl/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=hhJ9tvfYJEf3czpl\u0026q=85\u0026s=1652b85d7044871a45ed9cea607b9ff3","href":"https://mira.party/"},"favicon":"https://mintcdn.com/juno/hhJ9tvfYJEf3czpl/favicon.png?fit=max\u0026auto=format\u0026n=hhJ9tvfYJEf3czpl\u0026q=85\u0026s=e68173742a15b77523dd3e1b66146e04","appearance":{"default":"system"},"navbar":{"links":[{"href":"https://discord.gg/SFBA7WVCvw","label":"Discord Server"},{"href":"https://mira.party/commands","label":"Commands"}],"primary":{"type":"button","label":"Add App","href":"https://mira.party/invite"}},"footer":{"socials":{"discord":"https://discord.gg/SFBA7WVCvw","website":"https://mira.party"}},"seo":{"metatags":{"theme-color":"#828896","og:site_name":"mira.party"},"indexing":"navigable"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"juno","hasAudioNarration":false,"actualSubdomain":"juno","customDomains":["docs.mira.party"],"gitSource":{"type":"github","owner":"rxnk","repo":"mira-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad2aea2cf338efb0497414f","collectionId":"8ffba48e-afb8-4ef3-a921-ccb52d444047","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad2aea2cf338efb0497414f"},"entitlements":{},"buildId":"6ad2aea2cf338efb0497414f","clientVersion":"0.0.3964","searchFilterCounts":[{"language":"default","tag":"Guides","count":62},{"language":"default","tag":"Server setup","count":24},{"language":"default","tag":"Moderation","count":8},{"language":"default","tag":"Reference","count":8},{"language":"default","tag":"Security","count":8},{"language":"default","tag":"Utility","count":7},{"language":"default","tag":"Tickets","count":6},{"language":"default","tag":"Last.fm","count":5},{"language":"default","tag":"Scripting","count":5},{"language":"default","tag":"Embed scripting","count":5}]},"assistantConfig":{},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"restore/restore-bot","slug":"/restore/restore-bot","pageMetadata":{"title":"Restore bot","description":"Set up the bot your members authorize, so you can bring them back if your server is lost.","icon":"robot","href":"/restore/restore-bot"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Set up the bot your members authorize, so you can bring them back if your server is lost.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,OptimizedImage,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Restore lets you get your members back if your server gets deleted, nuked or taken over. Members verify once by authorizing a bot, and from then on you can add them to any server you run, even a brand new one.`}),`\n`,_jsxs(_components.p,{children:[`The bot they authorize isn’t mira. It’s a bot you make yourself in the Discord Developer Portal, which we call your `,_jsx(_components.strong,{children:`restore bot`}),`. That way the authorizations belong to you, and you aren’t depending on anyone else’s application staying up.`]}),`\n`,_jsx(_components.p,{children:`You only do this once. The same restore bot works for every server you set verification up in.`}),`\n`,_jsx(Heading,{level:`2`,id:`making-the-bot`,children:`Making the bot`}),`\n`,_jsx(_components.p,{children:`Use a fresh application for this. Don’t reuse a bot that already does other things, and don’t use a custom instance token.`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Go to the `,_jsx(_components.a,{href:`https://discord.com/developers/applications`,children:`Discord Developer Portal`}),` and press `,_jsx(_components.strong,{children:`New Application`}),`. Name it whatever you want your members to see when they authorize, most people just use the server’s name.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Open the `,_jsx(_components.strong,{children:`Bot`}),` tab and press `,_jsx(_components.strong,{children:`Reset Token`}),`, then copy the token somewhere safe for a minute. Discord only shows it once.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Open the `,_jsx(_components.strong,{children:`OAuth2`}),` tab and press `,_jsx(_components.strong,{children:`Reset Secret`}),` under Client Secret, then copy that too.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Still on the OAuth2 tab, press `,_jsx(_components.strong,{children:`Add Redirect`}),` and paste this in:`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://x.mira.party/restore/callback`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Then hit `,_jsx(_components.strong,{children:`Save Changes`}),` at the bottom. If you forget to save, mira won’t accept the bot.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://i.imgur.com/BQa6sqZ.gif`,alt:`Getting the bot token and client secret and adding the redirect URL in the Developer Portal`})}),`\n`,_jsx(_components.p,{children:`You don’t need to turn on any intents. The restore bot never actually comes online, mira just uses it in the background, so it’ll show as offline in your member list and that’s normal.`}),`\n`,_jsxs(_components.p,{children:[`Leave `,_jsx(_components.strong,{children:`Requires OAuth2 Code Grant`}),` off on the Bot tab. You can turn `,_jsx(_components.strong,{children:`Public Bot`}),` off if you don’t want anyone else adding it to their servers.`]}),`\n`,_jsx(Heading,{level:`2`,id:`connecting-it-to-mira`,children:`Connecting it to mira`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`restore`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Pick `,_jsx(_components.strong,{children:`Restore Bot`}),` from the menu and press `,_jsx(_components.strong,{children:`Connect Bot`}),`. A form pops up asking for the bot token and the client secret. Paste them in and submit.`]}),`\n`,_jsx(_components.p,{children:`The form is private, so nothing ends up in chat. mira checks the token works, that the secret belongs to the same application, and that the redirect URL is saved before it accepts anything. If something’s off it’ll tell you which one.`}),`\n`,_jsxs(_components.p,{children:[`Once it’s connected, press `,_jsx(_components.strong,{children:`Invite Bot`}),` to add it to your server. The invite already has the permissions it needs, mainly Manage Roles so it can hand out your verified role.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Never post your token or client secret anywhere, including screenshots and screen recordings. Anyone with the token controls the bot. If one leaks, reset it in the Developer Portal and connect the bot again with the new one.`})}),`\n`,_jsx(Heading,{level:`2`,id:`keeping-it-working`,children:`Keeping it working`}),`\n`,_jsxs(_components.p,{children:[`If you reset the token, reset the secret or remove the redirect URL, verification in your servers stops working and mira will DM you about it. Fix whatever changed, then press `,_jsx(_components.strong,{children:`Connect Bot`}),` again with the current token and secret.`]}),`\n`,_jsx(_components.p,{children:`Don’t delete the application. Every member who verified authorized that specific bot, so if it’s gone, those members can’t be pulled anymore. The same goes for switching to a different bot later: you can, but the members who verified with the old one stay tied to it.`}),`\n`,_jsxs(_components.p,{children:[`If you want to stop using restore, press `,_jsx(_components.strong,{children:`Disconnect`}),` on the Restore Bot page. Your pools are kept, but nothing can be pulled until you connect the bot again.`]}),`\n`,_jsx(Heading,{level:`2`,id:`letting-someone-else-pull`,children:`Letting someone else pull`}),`\n`,_jsx(_components.p,{children:`You can give up to 10 people access to your member pools, so a co-owner can run a pull if you’re not around. They use your restore bot, they don’t need their own.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`restore`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` allow`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` @`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`someone`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`restore`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` revoke`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` @`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`someone`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`You can also pick them from the Restore Bot page. Only you can delete your pools, managers can just view and pull them.`}),`\n`,_jsxs(_components.p,{children:[`Next, `,_jsx(_components.a,{href:`/restore/verification`,children:`set up verification`}),` in your server.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Restore bot","description":"Set up the bot your members authorize, so you can bring them back if your server is lost.","icon":"robot","href":"/restore/restore-bot"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Making the bot","slug":"making-the-bot","depth":2,"children":[]},{"title":"Connecting it to mira","slug":"connecting-it-to-mira","depth":2,"children":[]},{"title":"Keeping it working","slug":"keeping-it-working","depth":2,"children":[]},{"title":"Letting someone else pull","slug":"letting-someone-else-pull","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"juno","siteName":"mira","title":"Restore bot - mira","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-16T23:09:25.346Z","originalFileLocation":"restore/restore-bot.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Set up the bot your members authorize, so you can bring them back if your server is lost.\">\u003cmeta data-mint-head name=\"application-name\" content=\"mira\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/juno/VjbX_tSj9-a5EYK9/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/juno/VjbX_tSj9-a5EYK9/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/juno/VjbX_tSj9-a5EYK9/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/juno/VjbX_tSj9-a5EYK9/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/juno/VjbX_tSj9-a5EYK9/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/juno/VjbX_tSj9-a5EYK9/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/juno/VjbX_tSj9-a5EYK9/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/juno/VjbX_tSj9-a5EYK9/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/juno/VjbX_tSj9-a5EYK9/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Restore bot - mira\">\u003cmeta data-mint-head property=\"og:description\" content=\"Set up the bot your members authorize, so you can bring them back if your server is lost.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"mira.party\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.mira.party/restore/restore-bot\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://juno.mintlify.app/_mintlify/api/og/v2?division=Restore\u0026amp;title=Restore+bot\u0026amp;description=Set+up+the+bot+your+members+authorize%2C+so+you+can+bring+them+back+if+your+server+is+lost.\u0026amp;theme=7939c5f5274e4d5ec6916b4e\u0026amp;signature=f750ef8268da0ef0c83d4bdd28a0a1b66ff97208e8657f7869747bd4bc89451f\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Restore bot - mira\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Set up the bot your members authorize, so you can bring them back if your server is lost.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://juno.mintlify.app/_mintlify/api/og/v2?division=Restore\u0026amp;title=Restore+bot\u0026amp;description=Set+up+the+bot+your+members+authorize%2C+so+you+can+bring+them+back+if+your+server+is+lost.\u0026amp;theme=7939c5f5274e4d5ec6916b4e\u0026amp;signature=f750ef8268da0ef0c83d4bdd28a0a1b66ff97208e8657f7869747bd4bc89451f\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/juno/VjbX_tSj9-a5EYK9/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"mira\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5F6775\">\u003cmeta data-mint-head name=\"theme-color\" content=\"#828896\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.mira.party/restore/restore-bot\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/restore/restore-bot.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.mira.party/#organization\",\"name\":\"mira\",\"url\":\"https://docs.mira.party\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/juno/hhJ9tvfYJEf3czpl/images/logo-light.svg?fit=max\u0026auto=format\u0026n=hhJ9tvfYJEf3czpl\u0026q=85\u0026s=ca3efe63b08fb0b0ed4f7656c37d365c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.mira.party#website\",\"name\":\"mira\",\"url\":\"https://docs.mira.party\",\"publisher\":{\"@id\":\"https://docs.mira.party/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.mira.party/restore/restore-bot#webpage\",\"url\":\"https://docs.mira.party/restore/restore-bot\",\"name\":\"Restore bot\",\"description\":\"Set up the bot your members authorize, so you can bring them back if your server is lost.\",\"dateModified\":\"2026-10-16T23:09:25.346Z\",\"isPartOf\":{\"@id\":\"https://docs.mira.party#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mira.party/restore/restore-bot#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mira.party/restore/restore-bot#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"mira\",\"item\":\"https://docs.mira.party\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Restore bot\",\"item\":\"https://docs.mira.party/restore/restore-bot\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.mira.party/restore/restore-bot#article\",\"headline\":\"Restore bot\",\"name\":\"Restore bot\",\"description\":\"Set up the bot your members authorize, so you can bring them back if your server is lost.\",\"url\":\"https://docs.mira.party/restore/restore-bot\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mira.party/restore/restore-bot#webpage\"},\"dateModified\":\"2026-10-16T23:09:25.346Z\",\"publisher\":{\"@id\":\"https://docs.mira.party/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.mira.party#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"mira\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"mira","nav":{"global":null,"tabs":[{"tab":"Guides","groups":[{"group":"Start here","pages":[{"title":"Introduction","icon":"hand-wave","href":"/getting-started/introduction"},{"title":"Quickstart","icon":"rocket","href":"/getting-started/quickstart"},{"title":"Finding commands","icon":"magnifying-glass","href":"/getting-started/finding-commands"}]},{"group":"Security","icon":"shield-halved","pages":[{"title":"Security overview","icon":"shield-halved","href":"/security/overview"},{"title":"Antinuke","icon":"explosion","href":"/security/antinuke"},{"title":"Antiraid","icon":"users-slash","href":"/security/antiraid"},{"title":"Automod","icon":"filter","href":"/security/automod"},{"title":"Honeypot","icon":"crosshairs","href":"/security/honeypot"},{"title":"Panic","icon":"lock","href":"/security/panic"},{"title":"Fake permissions","icon":"key","href":"/security/fake-permissions"},{"title":"Command access","description":"Disable commands per channel, restrict them to roles, and ignore people entirely.","icon":"lock","href":"/security/command-access"}]},{"group":"Restore","icon":"user-shield","pages":[{"title":"Restore bot","icon":"robot","href":"/restore/restore-bot"},{"title":"Verification","description":"Get members to authorize your restore bot, and decide who's allowed through.","icon":"fingerprint","href":"/restore/verification"},{"title":"Pulling members","icon":"user-plus","href":"/restore/pulling"}]},{"group":"Moderation","icon":"gavel","pages":[{"title":"Moderation overview","icon":"gavel","href":"/moderation/overview"},{"title":"Punishments","icon":"hammer","href":"/moderation/punishments"},{"title":"Warnings","icon":"triangle-exclamation","href":"/moderation/warnings"},{"title":"Cases \u0026 history","icon":"folder-open","href":"/moderation/cases"},{"title":"Purging messages","icon":"broom","href":"/moderation/purge"},{"title":"Channels \u0026 threads","icon":"hashtag","href":"/moderation/channels"},{"title":"Managing roles","icon":"user-tag","href":"/moderation/roles"},{"title":"Emojis \u0026 stickers","icon":"face-smile","href":"/moderation/expressions"}]},{"group":"Server setup","icon":"gear","pages":[{"title":"Welcome \u0026 system messages","icon":"door-open","href":"/setup/system-messages"},{"title":"Self-assignable roles","icon":"hand-pointer","href":"/setup/self-roles"},{"title":"Automatic roles","icon":"wand-magic-sparkles","href":"/setup/automatic-roles"},{"title":"Levels","icon":"chart-line","href":"/setup/levels"},{"title":"Starboard","icon":"star","href":"/setup/starboard"},{"title":"VoiceMaster","icon":"microphone","href":"/setup/voicemaster"},{"group":"Tickets","icon":"ticket","pages":[{"title":"Tickets overview","icon":"ticket","href":"/setup/tickets/overview"},{"title":"Panels","icon":"window-maximize","href":"/setup/tickets/panels"},{"title":"Options","icon":"list","href":"/setup/tickets/options"},{"title":"Access \u0026 permissions","icon":"lock","href":"/setup/tickets/access"},{"title":"Messages \u0026 forms","icon":"message","href":"/setup/tickets/messages"},{"title":"Transcripts \u0026 statistics","icon":"file-lines","href":"/setup/tickets/transcripts"}]},{"title":"Confessions","icon":"user-secret","href":"/setup/confessions"},{"title":"Counting","icon":"list-ol","href":"/setup/counting"},{"title":"Counter channels","icon":"hashtag","href":"/setup/counters"},{"title":"Channel behaviours","icon":"hashtag","href":"/setup/channels"},{"title":"Automatic messages","icon":"clock","href":"/setup/auto-messages"},{"title":"Triggers \u0026 shortcuts","icon":"bolt","href":"/setup/triggers"},{"title":"Logging","icon":"scroll","href":"/setup/logging"},{"title":"Giveaways","icon":"gift","href":"/setup/giveaways"},{"title":"Birthdays","icon":"cake-candles","href":"/setup/birthdays"},{"title":"Bump reminders","icon":"bell","href":"/setup/bump-reminders"},{"title":"Backups","icon":"floppy-disk","href":"/setup/backups"},{"title":"Custom instances","icon":"robot","href":"/setup/custom-instance"}]},{"group":"Last.fm","icon":"chart-simple","pages":[{"title":"Getting started","icon":"play","href":"/lastfm/setup"},{"title":"Now playing","icon":"play","href":"/lastfm/now-playing"},{"title":"Charts \u0026 collages","icon":"chart-simple","href":"/lastfm/charts"},{"title":"Who knows \u0026 crowns","icon":"crown","href":"/lastfm/whoknows"},{"title":"Taste \u0026 discovery","icon":"users","href":"/lastfm/social"}]},{"group":"Social","icon":"share-nodes","pages":[{"title":"Link reposter","icon":"link","href":"/social/reposter"},{"title":"Social feeds","icon":"rss","href":"/social/feeds"},{"title":"Profile lookups","icon":"magnifying-glass","href":"/social/lookups"},{"title":"Pinterest \u0026 avatar feeds","icon":"pinterest","href":"/social/pinterest"}]},{"group":"Utility","icon":"wrench","pages":[{"title":"Everyday tools","icon":"wrench","href":"/utility/everyday"},{"title":"Server insight","icon":"chart-line","href":"/utility/server-insight"},{"title":"Images, GIFs \u0026 audio","icon":"palette","href":"/utility/media"},{"title":"AI, search \u0026 reference","icon":"magnifying-glass","href":"/utility/ai-and-search"},{"title":"Minecraft","icon":"cube","href":"/utility/minecraft"},{"title":"Fortnite","icon":"gamepad","href":"/utility/fortnite"},{"title":"Games \u0026 fun","icon":"dice","href":"/utility/games"}]}]},{"tab":"Scripting","pages":[{"title":"Scripting","href":"/scripting/overview"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/reference/permissions"}]}]},"title":"Restore bot - mira","buildId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","deploymentId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-D1UCVuPB.js","DynamicMarkdown-Crwq6WG_.js","zoom-image-lightbox-CFBqa0On.js","lightbox-handle-r17bVUz3.js"]}