콘텐츠로 건너뛰기
작동 중

BEST SAVE INSTANCE SCRIPT FOR ROBLOX - SAVE ASSETS, DECOMPILE SCRIPTS & MORE! ANY ROBLOX GAME

CLclarkdevlinorg0 조회수Universal2026년 7월 26일
공유
BEST SAVE INSTANCE SCRIPT FOR ROBLOX - SAVE ASSETS, DECOMPILE SCRIPTS & MORE! ANY ROBLOX GAME

스크립트 코드

Lua
<!doctype html>
<html lang="en" dir="ltr" class="plugin-moonwave plugin-id-moonwave" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.1">
<title data-rh="true">SynSaveInstance | Universal Syn SaveInstance</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://luau.github.io/UniversalSynSaveInstance/api/SynSaveInstance"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="SynSaveInstance | Universal Syn SaveInstance"><meta data-rh="true" name="description" content="Represents the options for saving instances with custom settings using the synsaveinstance function."><meta data-rh="true" property="og:description" content="Represents the options for saving instances with custom settings using the synsaveinstance function."><link data-rh="true" rel="icon" href="/UniversalSynSaveInstance/favicon.png"><link data-rh="true" rel="canonical" href="https://luau.github.io/UniversalSynSaveInstance/api/SynSaveInstance"><link data-rh="true" rel="alternate" href="https://luau.github.io/UniversalSynSaveInstance/api/SynSaveInstance" hreflang="en"><link data-rh="true" rel="alternate" href="https://luau.github.io/UniversalSynSaveInstance/api/SynSaveInstance" hreflang="x-default"><link rel="stylesheet" href="/UniversalSynSaveInstance/assets/css/styles.0ed07045.css">
<script src="/UniversalSynSaveInstance/assets/js/runtime~main.0b0c72c4.js" defer="defer"></script>
<script src="/UniversalSynSaveInstance/assets/js/main.ef62c7e7.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/UniversalSynSaveInstance/"><div class="navbar__logo"><img src="/UniversalSynSaveInstance/favicon.png" alt="" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/UniversalSynSaveInstance/favicon.png" alt="" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">Universal Syn SaveInstance</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/UniversalSynSaveInstance/api/">API</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://discord.gg/wx4ThpAsmw" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Discord<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><a href="https://ko-fi.com/M4M1JNH5G" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Support<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><a href="https://github.com/luau/UniversalSynSaveInstance" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0 docPageContainer_wNNk"><div class="docPage_Dpn1"><div class="docSidebarContainer_o_re"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/UniversalSynSaveInstance/api/SynSaveInstance"><span title="SynSaveInstance" class="linkLabel_WmDU">SynSaveInstance</span></a></li></ul></nav></div></div><main class="docMainContainer_HJE1"><div class="container padding-vert--lg"><div class="row"><div class="col docItemCol_MU3C"><div class="docItemContainer_Wv98"><article><div class="member_J0w1 markdown"><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_oUs_"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><header><h1 class="docTitle_mZRt" style="text-decoration:none"><span style="display:inline-block">Syn</span><span style="display:inline-block">Save</span><span style="display:inline-block">Instance</span></h1><div class="luaClassTags_EipM"></div><div>
<p>Represents the options for saving instances with custom settings using the synsaveinstance function.</p>
</div></header><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="types">Types<a href="#types" class="hash-link" aria-label="Direct link to Types" title="Direct link to Types" translate="no"></a></h2><div class="divider_rE5g"></div><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="CustomOptions table"><code style="text-decoration:none">CustomOptions table</code><a href="#CustomOptions table" class="hash-link" aria-label="Direct link to CustomOptions table" title="Direct link to CustomOptions table" translate="no"></a></h3><div class="repositoryDetailsContainer_BPdw"><a class="sourceButton_sEho" href="https://github.com/luau/UniversalSynSaveInstance/blob/master/saveinstance.luau#L2899"><div class="sourceButtonText_Vh0m">&lt;/&gt;</div></a></div><div class="memberString_GwaU"><code class="purple_ieR2">interface</code> <code>CustomOptions table<!-- --> <!-- -->{</code><div class="inset_uKQm"><div><code>__DEBUG_MODE<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>This will print debug logs to console about unusual scenarios. Recommended to enable if you wish to help us improve our products and find bugs / issues with it! <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>ReadMe<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p><em><strong>Default:</strong></em> true</p>
</span></span></div><div><code>SafeMode<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Kicks you before Saving, which keeps you safe. <strong>HIGHLY RECOMMENDED TO KEEP ENABLED</strong>. <em><strong>Default:</strong></em> true</p>
</span></span></div><div><code>KillAllScripts<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Kills all scripts to further protect you. SafeMode also enables this by default. If you can't move after saving then this is the reason. <strong>HIGHLY RECOMMENDED TO KEEP ENABLED</strong>. <em><strong>Default:</strong></em> true</p>
</span></span></div><div><code>BoostFPS<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Massively boosts FPS by disabling 3D rendering. Other options also enable it, like: SafeMode. <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>ShutdownWhenDone<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Shuts the game down after saveinstance is finished. <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>AntiIdle<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Prevents the 20-minute-Idle Kick. <em><strong>Default:</strong></em> true</p>
</span></span></div><div><code>Anonymous<!-- -->:</code><code class="purple_ieR2">{</code><code class="blue_P4bS">boolean</code><code class="op_lSLc">|</code><code class="blue_P4bS">table</code><code class="green_DgR4">{</code><div class="inset_uKQm"><code class="blue_P4bS">UserId</code><code class="blue_P4bS">=</code><code class="blue_P4bS">string</code><code class="green_DgR4">,</code></div><div class="inset_uKQm"><code class="blue_P4bS">Name</code><code class="blue_P4bS">=</code><code class="blue_P4bS">string</code></div><code class="green_DgR4">}</code><code class="purple_ieR2">}</code><span class="inlineDescription_G7Er">-- <span>
<ul>
  <li><strong>RISKY:</strong> Cleans the file of any info related to your account like: Name, UserId. This is useful for some games that might store that info in GUIs or other Instances. Might potentially mess up parts of strings that contain characters that match your Name or parts of numbers that match your UserId. Can also be a table with UserId &#x26; Name keys. <em><strong>Default:</strong></em> false</li>
</ul>
</span></span></div><div><code>ShowStatus<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p><em><strong>Default:</strong></em> true</p>
</span></span></div><div><code>Callback<!-- -->:</code><code class="blue_P4bS">function</code><span class="inlineDescription_G7Er">-- <span>
<p>If set, the serialized data will be sent to the callback function instead of to file. <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>mode<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>Valid modes: full, optimized, scripts. Change this to invalid mode like "invalid" if you only want ExtraInstances. "optimized" mode is <strong>NOT</strong> supported with <em>@Object</em> option. <em><strong>Default:</strong></em> <code>"optimized"</code></p>
</span></span></div><div><code>Decompile<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Script decompiling. <em><strong>Default:</strong></em> true</p>
</span></span></div><div><code>scriptcache<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Use decompiled script cache to avoid decompiling duplicate scripts. <em><strong>Default:</strong></em> true</p>
</span></span></div><div><code>DecompileTimeout<!-- -->:</code><code class="blue_P4bS">number</code><span class="inlineDescription_G7Er">-- <span>
<p>If the decompilation run time exceeds this value it gets cancelled. Set to -1 to disable timeout. <em><strong>Default:</strong></em> 10</p>
</span></span></div><div><code>BytecodeTimeout<!-- -->:</code><code class="blue_P4bS">number</code><span class="inlineDescription_G7Er">-- <span>
<p>If the SaveBytecode run time exceeds this value it gets cancelled. Set to -1 to disable timeout. <em><strong>Default:</strong></em> 3</p>
</span></span></div><div><code>DecompileJobless<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Includes already decompiled code in the output. No new scripts are decompiled. <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>SaveBytecode<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Includes bytecode in the output. Useful if you wish to be able to decompile it yourself later. <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>DecompileIgnore<!-- -->:</code><code class="purple_ieR2">{</code><code class="blue_P4bS"><a style="text-decoration:underline;color:inherit" href="https://developer.roblox.com/en-us/api-reference/datatype/Instance" target="_blank" rel="noopener noreferrer">Instance<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound" style="color:gray;vertical-align:middle;margin-left:2px"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></code><code class="op_lSLc">|</code><code class="blue_P4bS">Instance.ClassName</code><code class="op_lSLc">|</code><span><code>[</code><code class="blue_P4bS">Instance.ClassName</code><code>]</code></span><code class="blue_P4bS">=</code><code class="green_DgR4">{</code><code class="blue_P4bS">Instance.Name</code><code class="green_DgR4">}</code><code class="purple_ieR2">}</code><span class="inlineDescription_G7Er">-- <span>
<ul>
  <li>Ignores match &#x26; it's descendants by default. To Ignore only the instance itself set the value to <code>= false</code>. Examples: "Chat", - Matches any instance with "Chat" ClassName, Players = {"MyPlayerName"} - Matches "Players" Class AND "MyPlayerName" Name ONLY, <code>workspace</code> - matches Instance by reference, <code>[workspace] = false</code> - matches Instance by reference and only ignores the instance itself and not it's descendants. <em><strong>Default:</strong></em> {TextChatService}</li>
</ul>
</span></span></div><div><code>IgnoreList<!-- -->:</code><code class="purple_ieR2">{</code><code class="blue_P4bS"><a style="text-decoration:underline;color:inherit" href="https://developer.roblox.com/en-us/api-reference/datatype/Instance" target="_blank" rel="noopener noreferrer">Instance<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound" style="color:gray;vertical-align:middle;margin-left:2px"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></code><code class="op_lSLc">|</code><code class="blue_P4bS">Instance.ClassName</code><code class="op_lSLc">|</code><span><code>[</code><code class="blue_P4bS">Instance.ClassName</code><code>]</code></span><code class="blue_P4bS">=</code><code class="green_DgR4">{</code><code class="blue_P4bS">Instance.Name</code><code class="green_DgR4">}</code><code class="purple_ieR2">}</code><span class="inlineDescription_G7Er">-- <span>
<p>Structure is similar to <strong>@DecompileIgnore</strong> except <code>= false</code> meaning save the instance but ignore it's descendants. <em><strong>Default:</strong></em> {CoreGui, CorePackages}</p>
</span></span></div><div><code>ExtraInstances<!-- -->:</code><code class="purple_ieR2">{</code><code class="blue_P4bS"><a style="text-decoration:underline;color:inherit" href="https://developer.roblox.com/en-us/api-reference/datatype/Instance" target="_blank" rel="noopener noreferrer">Instance<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound" style="color:gray;vertical-align:middle;margin-left:2px"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></code><code class="purple_ieR2">}</code><span class="inlineDescription_G7Er">-- <span>
<p>If used with any invalid mode (like "invalidmode") it will only save these instances. <em><strong>Default:</strong></em> {}</p>
</span></span></div><div><code>IgnoreProperties<!-- -->:</code><code class="blue_P4bS">table</code><span class="inlineDescription_G7Er">-- <span>
<p>Ignores properties by Name. <em><strong>Default:</strong></em> {}</p>
</span></span></div><div><code>SaveCacheInterval<!-- -->:</code><code class="blue_P4bS">number</code><span class="inlineDescription_G7Er">-- <span>
<p>The less the value the more often it saves, but that would mean less performance due to constantly saving. <em><strong>Default:</strong></em> 0x1600 * 10</p>
</span></span></div><div><code>FilePath<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>The name (can include a path) of the file to save to. If it has no extension, <code>.rbxmx/rbxm</code> (models) or <code>.rbxlx/rbxl</code> (places) is appended; an existing extension is left as-is. Ignores <code>OPTIONS.AvoidFileOverwrite</code>. <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>AvoidFileOverwrite<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Prevents writing to place file that already exists. <em><strong>Default:</strong></em> true</p>
</span></span></div><div><code>Object<!-- -->:</code><code class="blue_P4bS"><a style="text-decoration:underline;color:inherit" href="https://developer.roblox.com/en-us/api-reference/datatype/Instance" target="_blank" rel="noopener noreferrer">Instance<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound" style="color:gray;vertical-align:middle;margin-left:2px"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></code><span class="inlineDescription_G7Er">-- <span>
<ul>
  <li>If provided, saves as .rbxmx (Model file) instead. If Object is game, it will be saved as a .rbxl file. <strong>MUST BE AN INSTANCE REFERENCE, FOR EXAMPLE - <em>game.Workspace</em></strong>. <code>"optimized"</code> mode is <strong>NOT</strong> supported with this option. If IsModel is set to false then Object specified here will be saved as a place file. <em><strong>Default:</strong></em> false</li>
</ul>
</span></span></div><div><code>IsModel<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>If Object is specified then sets to true automatically, unless you set it to false. <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>NilInstances<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Save instances that aren't Parented (Parented to nil). <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>NilInstancesFixes<!-- -->:</code><code class="purple_ieR2">{</code><span><code>[</code><code class="blue_P4bS">Instance.ClassName</code><code>]</code></span><code class="blue_P4bS">=</code><code class="blue_P4bS">function</code><code class="purple_ieR2">}</code><span class="inlineDescription_G7Er">-- <span>
<ul>
  <li>This can cause some Classes to be fixed even though they might not need the fix (better be safe than sorry though). For example, Bones inherit from Attachment if we dont define them in the NilInstancesFixes then this will catch them anyways. <strong>TO AVOID THIS BEHAVIOR USE THIS EXAMPLE:</strong> {ClassName_That_Doesnt_Need_Fix = false}. <em><strong>Default:</strong></em> {Animator = function, AdPortal = function, BaseWrap = function, Attachment = function}</li>
</ul>
</span></span></div><div><code>IgnoreDefaultProperties<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Ignores default properties during saving. <em><strong>Default:</strong></em> true</p>
</span></span></div><div><code>IgnoreNotArchivable<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Ignores the Archivable property and saves Non-Archivable instances. <em><strong>Default:</strong></em> true</p>
</span></span></div><div><code>IgnorePropertiesOfNotScriptsOnScriptsMode<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Ignores property of every instance that is not a script in "scripts" mode. <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>IgnoreSpecialProperties<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Prevents calls to <code>gethiddenproperty</code> and uses fallback methods instead. This also helps with crashes. If your file is corrupted after saving, you can try turning this on. <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>IsolateStarterPlayer<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Saves StarterPlayer as separate folder, children of the original instance will be ignored. <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>IsolatePlayers<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Saves All Players as separate folder, children of the original instance will be ignored. <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>IsolateLocalPlayer<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Saves LocalPlayer as separate folder, original instance will be ignored. <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>IsolateLocalPlayerCharacter<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Saves LocalPlayer.Character as separate folder, original instance will be ignored. <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>SavePlayerCharacters<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<p>Ignore player characters while saving. <em><strong>Default:</strong></em> false</p>
</span></span></div><div><code>SaveNotCreatable<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<ul>
  <li>Includes non-serializable instances as Folder objects (Name is misleading as this is mostly a fix for certain NilInstances and isn't always related to NotCreatable). Other options also enable it, like: IsolatePlayers, IsolateLocalPlayer, etc. <em><strong>Default:</strong></em> false</li>
</ul>
</span></span></div><div><code>NotCreatableFixes<!-- -->:</code><code class="blue_P4bS">table</code><code class="op_lSLc">&lt;</code><code class="blue_P4bS">Instance.ClassName</code><code class="op_lSLc">&gt;</code><span class="inlineDescription_G7Er">-- <span>
<ul>
  <li>{"Player"} is the same as {Player = "Folder"}; Format like {SpawnLocation = "Part"} is only to be used when SpawnLocation inherits from "Part" AND "Part" is Creatable. <em><strong>Default:</strong></em> { "", "Player", "PlayerScripts", "PlayerGui", "TouchTransmitter" }</li>
</ul>
</span></span></div><div><code>AlternativeWritefile<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<ul>
  <li>Splits file content string into segments and writes them using appendfile. This might help with crashes when it starts writing to file. Though there is a risk of appendfile working incorrectly on some executors. <em><strong>Default:</strong></em> true</li>
</ul>
</span></span></div><div><code>IgnoreDefaultPlayerScripts<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<ul>
  <li><strong>RISKY</strong>: Ignores Default PlayerScripts like PlayerModule &#x26; RbxCharacterSounds. Prevents crashes on certain Executors. <em><strong>Default:</strong></em> true</li>
</ul>
</span></span></div><div><code>IgnoreSharedStrings<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<ul>
  <li><strong>RISKY</strong>: Might help with crashes on some executors. <em><strong>Default:</strong></em> false</li>
</ul>
</span></span></div><div><code>SharedStringOverwrite<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<ul>
  <li><strong>RISKY:</strong> if the process is not finished aka crashed then none of the affected values will be available. SharedStrings can also be used for ValueTypes that aren't <code>SharedString</code>, this behavior is not documented anywhere but makes sense (Could create issues though, due to <em>potential</em> ValueType mix-up, only works on certain types which are all base64 encoded so far). Reason: Allows for potential smaller file size (can also be bigger in some cases). <em><strong>Default:</strong></em> false</li>
</ul>
</span></span></div><div><code>TreatUnionsAsParts<!-- -->:</code><code class="blue_P4bS">boolean</code><span class="inlineDescription_G7Er">-- <span>
<ul>
  <li><strong>RISKY:</strong> Converts all UnionOperations to Parts. Useful if your Executor isn't able to save (read) Unions, because otherwise they will be invisible. <em><strong>Default:</strong></em> false (except Solara)</li>
</ul>
</span></span></div></div><code>}</code></div><div>
<ul>
  <li>Structure of the main CustomOptions table.</li>
  <li>Note: Options are case-insensitive, meaning you can type <code>NilInstances</code> option as <code>nilInStaNces</code> and it still will be valid.</li>
</ul>
</div><div class="divider_rE5g"></div><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="OptionsAliases"><code style="text-decoration:none">OptionsAliases</code><a href="#OptionsAliases" class="hash-link" aria-label="Direct link to OptionsAliases" title="Direct link to OptionsAliases" translate="no"></a></h3><div class="repositoryDetailsContainer_BPdw"><a class="sourceButton_sEho" href="https://github.com/luau/UniversalSynSaveInstance/blob/master/saveinstance.luau#L2919"><div class="sourceButtonText_Vh0m">&lt;/&gt;</div></a></div><div class="memberString_GwaU"><code class="purple_ieR2">interface</code> <code>OptionsAliases<!-- --> <!-- -->{</code><div class="inset_uKQm"><div><code>timeout<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>DecompileTimeout</p>
</span></span></div><div><code>DecompileScripts<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>Decompile</p>
</span></span></div><div><code>FileName<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>FilePath</p>
</span></span></div><div><code>IgnoreArchivable<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>IgnoreNotArchivable</p>
</span></span></div><div><code>IgnoreDefaultProps<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>IgnoreDefaultProperties</p>
</span></span></div><div><code>InstancesBlacklist<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>IgnoreList</p>
</span></span></div><div><code>SaveLocalPlayer<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>IsolateLocalPlayer</p>
</span></span></div><div><code>IsolatePlayerGui<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>IsolateLocalPlayer</p>
</span></span></div><div><code>SavePlayerGui<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>IsolateLocalPlayer</p>
</span></span></div><div><code>SavePlayers<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>IsolatePlayers</p>
</span></span></div><div><code>SaveNonCreatable<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>SaveNotCreatable</p>
</span></span></div><div><code>SaveNilInstances<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>NilInstances</p>
</span></span></div><div><code>SaveCharacters<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>SavePlayerCharacters</p>
</span></span></div><div><code>StatusText<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>ShowStatus</p>
</span></span></div></div><code>}</code></div><div>
<p>
  Alias  Canonical option mapping for the <a href="/UniversalSynSaveInstance/api/SynSaveInstance#CustomOptions">SynSaveInstance.CustomOptions</a> table.
  Format: { Alias = CanonicalOption }
  These are resolved before user options are processed and cannot be modified at runtime.
</p>
</div><div class="divider_rE5g"></div><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="OptionsAliasesInverse"><code style="text-decoration:none">OptionsAliasesInverse</code><a href="#OptionsAliasesInverse" class="hash-link" aria-label="Direct link to OptionsAliasesInverse" title="Direct link to OptionsAliasesInverse" translate="no"></a></h3><div class="repositoryDetailsContainer_BPdw"><a class="sourceButton_sEho" href="https://github.com/luau/UniversalSynSaveInstance/blob/master/saveinstance.luau#L2929"><div class="sourceButtonText_Vh0m">&lt;/&gt;</div></a></div><div class="memberString_GwaU"><code class="purple_ieR2">interface</code> <code>OptionsAliasesInverse<!-- --> <!-- -->{</code><div class="inset_uKQm"><div><code>noscripts<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>Decompile</p>
</span></span></div><div><code>RemovePlayers<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>IsolatePlayers</p>
</span></span></div><div><code>RemovePlayerCharacters<!-- -->:</code><code class="blue_P4bS">string</code><span class="inlineDescription_G7Er">-- <span>
<p>SavePlayerCharacters</p>
</span></span></div></div><code>}</code></div><div>
<p>
  Alias  Canonical option mapping with boolean inversion.
  Format: { Alias = CanonicalOption }
  These aliases invert the provided boolean value before applying it.
  Example: noscripts = true  Decompile = false
</p>
</div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="functions">Functions<a href="#functions" class="hash-link" aria-label="Direct link to Functions" title="Direct link to Functions" translate="no"></a></h2><div class="divider_rE5g"></div><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="saveinstance"><code style="text-decoration:none">saveinstance</code><a href="#saveinstance" class="hash-link" aria-label="Direct link to saveinstance" title="Direct link to saveinstance" translate="no"></a></h3><span class="badge_Ba2I" style="color:#f1c40f"><span class="badgeTooltip_cWXP">This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts.</span><span class="badgeToolTipTail_H9D_"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" fill="#f1c40f" role="img" aria-label="This is a yielding function. When called, it will pause the Lua thread that called the function until a result is ready to be returned, without interrupting other scripts."><path d="M96.4 11.9c-1.4-2.5-4-4-6.9-4H10.8c-2.9 0-5.4 1.5-6.9 4-1.4 2.5-1.4 5.5 0 7.9L43.3 88c1.4 2.5 4 4 6.9 4 2.9 0 5.4-1.5 6.9-4l39.3-68.2c1.4-2.4 1.4-5.4 0-7.9zM46.3 54.5c1.1-1.1 2.3-1.6 3.8-1.6s2.8.5 3.8 1.6c1.1 1.1 1.6 2.3 1.6 3.8s-.5 2.8-1.6 3.8c-1.1 1.1-2.3 1.6-3.8 1.6s-2.8-.5-3.8-1.6c-1.1-1.1-1.6-2.3-1.6-3.8.1-1.5.6-2.8 1.6-3.8zm-.5-4.9V21.8h8.8v27.8h-8.8z"></path></svg> <!-- -->Yields</span></span><div class="repositoryDetailsContainer_BPdw"><a class="sourceButton_sEho" href="https://github.com/luau/UniversalSynSaveInstance/blob/master/saveinstance.luau#L2950"><div class="sourceButtonText_Vh0m">&lt;/&gt;</div></a></div><div class="memberString_GwaU"><code>SynSaveInstance<!-- -->.</code><code class="green_DgR4">saveinstance</code><code>(</code><div class="inset_uKQm"><div><code>Parameter_1<!-- -->:</code><code class="blue_P4bS">variant</code><code class="op_lSLc">&lt;</code><code class="blue_P4bS">table,</code><code class="blue_P4bS">table</code><code class="op_lSLc">&lt;</code><code class="blue_P4bS"><a style="text-decoration:underline;color:inherit" href="https://developer.roblox.com/en-us/api-reference/datatype/Instance" target="_blank" rel="noopener noreferrer">Instance<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound" style="color:gray;vertical-align:middle;margin-left:2px"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></code><code class="op_lSLc">&gt;</code><code class="op_lSLc">&gt;</code><code>,</code><span class="inlineDescription_G7Er">-- <span>
<p>Can either be <a href="/UniversalSynSaveInstance/api/SynSaveInstance#CustomOptions%20table">SynSaveInstance.CustomOptions table</a> or a filled with instances ({Instance}), (then it will be treated as ExtraInstances with an invalid mode and IsModel will be true).</p>
</span></span></div><div><code>Parameter_2<!-- -->:</code><code class="blue_P4bS">table</code><span class="inlineDescription_G7Er">-- <span>
<p>[OPTIONAL] If present, then Parameter_2 will be assumed to be <a href="/UniversalSynSaveInstance/api/SynSaveInstance#CustomOptions%20table">SynSaveInstance.CustomOptions table</a>. And then if the Parameter_1 is an Instance, then it will be assumed to be <a href="/UniversalSynSaveInstance/api/SynSaveInstance#CustomOptions%20table">SynSaveInstance.CustomOptions table</a>.Object. If Parameter_1 is a table filled with instances ({Instance}), then it will be assumed to be <a href="/UniversalSynSaveInstance/api/SynSaveInstance#CustomOptions%20table">SynSaveInstance.CustomOptions table</a>.ExtraInstances and IsModel will be true). This exists for sake compatibility with <code>saveinstance(game, {})</code></p>
</span></span></div></div><code>) </code><code>(</code><code>)</code></div><div>
<p>Saves instances with specified options. Example:</p>
<pre class="language-lua"><code class="language-lua"><span class="token keyword">local</span> Params <span class="token operator">=</span> <span class="token punctuation">{</span>
	RepoURL <span class="token operator">=</span> <span class="token string">"https://raw.githubusercontent.com/luau/UniversalSynSaveInstance/main/"</span><span class="token punctuation">,</span>
	SSI <span class="token operator">=</span> <span class="token string">"saveinstance"</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span>

<span class="token keyword">local</span> synsaveinstance <span class="token operator">=</span> <span class="token function">loadstring</span><span class="token punctuation">(</span>game<span class="token punctuation">:</span><span class="token function">HttpGet</span><span class="token punctuation">(</span>Params<span class="token punctuation">.</span>RepoURL <span class="token operator">..</span> Params<span class="token punctuation">.</span>SSI <span class="token operator">..</span> <span class="token string">".luau"</span><span class="token punctuation">,</span> <span class="token keyword">true</span><span class="token punctuation">)</span><span class="token punctuation">,</span> Params<span class="token punctuation">.</span>SSI<span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">)</span>

<span class="token keyword">local</span> CustomOptions <span class="token operator">=</span> <span class="token punctuation">{</span> SafeMode <span class="token operator">=</span> <span class="token keyword">true</span><span class="token punctuation">,</span> DecompileTimeout <span class="token operator">=</span> <span class="token number">15</span><span class="token punctuation">,</span> SaveBytecode <span class="token operator">=</span> <span class="token keyword">true</span> <span class="token punctuation">}</span>

<span class="token function">synsaveinstance</span><span class="token punctuation">(</span>CustomOptions<span class="token punctuation">)</span>
</code></pre>
</div></div></article></div><details><summary>Show raw api</summary><pre style="max-width:100%;white-space:pre-wrap">{
    &quot;functions&quot;: [
        {
            &quot;name&quot;: &quot;saveinstance&quot;,
            &quot;desc&quot;: &quot;Saves instances with specified options. Example:\n```lua\nlocal Params = {\n\tRepoURL = \&quot;https://raw.githubusercontent.com/luau/UniversalSynSaveInstance/main/\&quot;,\n\tSSI = \&quot;saveinstance\&quot;,\n}\n\nlocal synsaveinstance = loadstring(game:HttpGet(Params.RepoURL .. Params.SSI .. \&quot;.luau\&quot;, true), Params.SSI)()\n\nlocal CustomOptions = { SafeMode = true, DecompileTimeout = 15, SaveBytecode = true }\n\nsynsaveinstance(CustomOptions)\n```&quot;,
            &quot;params&quot;: [
                {
                    &quot;name&quot;: &quot;Parameter_1&quot;,
                    &quot;desc&quot;: &quot;Can either be [SynSaveInstance.CustomOptions table] or a filled with instances ({Instance}), (then it will be treated as ExtraInstances with an invalid mode and IsModel will be true).&quot;,
                    &quot;lua_type&quot;: &quot;variant&lt;table, table&lt;Instance&gt;&gt;&quot;
                },
                {
                    &quot;name&quot;: &quot;Parameter_2&quot;,
                    &quot;desc&quot;: &quot;[OPTIONAL] If present, then Parameter_2 will be assumed to be [SynSaveInstance.CustomOptions table]. And then if the Parameter_1 is an Instance, then it will be assumed to be [SynSaveInstance.CustomOptions table].Object. If Parameter_1 is a table filled with instances ({Instance}), then it will be assumed to be [SynSaveInstance.CustomOptions table].ExtraInstances and IsModel will be true). This exists for sake compatibility with `saveinstance(game, {})`&quot;,
                    &quot;lua_type&quot;: &quot;table&quot;
                }
            ],
            &quot;returns&quot;: [],
            &quot;function_type&quot;: &quot;static&quot;,
            &quot;yields&quot;: true,
            &quot;source&quot;: {
                &quot;line&quot;: 2950,
                &quot;path&quot;: &quot;saveinstance.luau&quot;
            }
        }
    ],
    &quot;properties&quot;: [],
    &quot;types&quot;: [
        {
            &quot;name&quot;: &quot;CustomOptions table&quot;,
            &quot;desc&quot;: &quot;* Structure of the main CustomOptions table.\n* Note: Options are case-insensitive, meaning you can type `NilInstances` option as `nilInStaNces` and it still will be valid.&quot;,
            &quot;fields&quot;: [
                {
                    &quot;name&quot;: &quot;__DEBUG_MODE&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;This will print debug logs to console about unusual scenarios. Recommended to enable if you wish to help us improve our products and find bugs / issues with it! ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;ReadMe&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;___Default:___ true&quot;
                },
                {
                    &quot;name&quot;: &quot;SafeMode&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Kicks you before Saving, which keeps you safe. **HIGHLY RECOMMENDED TO KEEP ENABLED**. ___Default:___ true&quot;
                },
                {
                    &quot;name&quot;: &quot;KillAllScripts&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Kills all scripts to further protect you. SafeMode also enables this by default. If you can&#x27;t move after saving then this is the reason. **HIGHLY RECOMMENDED TO KEEP ENABLED**. ___Default:___ true&quot;
                },
                {
                    &quot;name&quot;: &quot;BoostFPS&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Massively boosts FPS by disabling 3D rendering. Other options also enable it, like: SafeMode. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;ShutdownWhenDone&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Shuts the game down after saveinstance is finished. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;AntiIdle&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Prevents the 20-minute-Idle Kick. ___Default:___ true&quot;
                },
                {
                    &quot;name&quot;: &quot;Anonymous&quot;,
                    &quot;lua_type&quot;: &quot;{boolean|table{UserId = string, Name = string}}&quot;,
                    &quot;desc&quot;: &quot;* **RISKY:** Cleans the file of any info related to your account like: Name, UserId. This is useful for some games that might store that info in GUIs or other Instances. Might potentially mess up parts of strings that contain characters that match your Name or parts of numbers that match your UserId. Can also be a table with UserId &amp; Name keys. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;ShowStatus&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;___Default:___ true&quot;
                },
                {
                    &quot;name&quot;: &quot;Callback&quot;,
                    &quot;lua_type&quot;: &quot;function&quot;,
                    &quot;desc&quot;: &quot;If set, the serialized data will be sent to the callback function instead of to file. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;mode&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;Valid modes: full, optimized, scripts. Change this to invalid mode like \&quot;invalid\&quot; if you only want ExtraInstances. \&quot;optimized\&quot; mode is **NOT** supported with *@Object* option. ___Default:___ `\&quot;optimized\&quot;`&quot;
                },
                {
                    &quot;name&quot;: &quot;Decompile&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Script decompiling. ___Default:___ true&quot;
                },
                {
                    &quot;name&quot;: &quot;scriptcache&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Use decompiled script cache to avoid decompiling duplicate scripts. ___Default:___ true&quot;
                },
                {
                    &quot;name&quot;: &quot;DecompileTimeout&quot;,
                    &quot;lua_type&quot;: &quot;number&quot;,
                    &quot;desc&quot;: &quot;If the decompilation run time exceeds this value it gets cancelled. Set to -1 to disable timeout. ___Default:___ 10&quot;
                },
                {
                    &quot;name&quot;: &quot;BytecodeTimeout&quot;,
                    &quot;lua_type&quot;: &quot;number&quot;,
                    &quot;desc&quot;: &quot;If the SaveBytecode run time exceeds this value it gets cancelled. Set to -1 to disable timeout. ___Default:___ 3&quot;
                },
                {
                    &quot;name&quot;: &quot;DecompileJobless&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Includes already decompiled code in the output. No new scripts are decompiled. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;SaveBytecode&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Includes bytecode in the output. Useful if you wish to be able to decompile it yourself later. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;DecompileIgnore&quot;,
                    &quot;lua_type&quot;: &quot;{Instance | Instance.ClassName | [Instance.ClassName] = {Instance.Name}}&quot;,
                    &quot;desc&quot;: &quot;* Ignores match &amp; it&#x27;s descendants by default. To Ignore only the instance itself set the value to `= false`. Examples: \&quot;Chat\&quot;, - Matches any instance with \&quot;Chat\&quot; ClassName, Players = {\&quot;MyPlayerName\&quot;} - Matches \&quot;Players\&quot; Class AND \&quot;MyPlayerName\&quot; Name ONLY, `workspace` - matches Instance by reference, `[workspace] = false` - matches Instance by reference and only ignores the instance itself and not it&#x27;s descendants. ___Default:___ {TextChatService}&quot;
                },
                {
                    &quot;name&quot;: &quot;IgnoreList&quot;,
                    &quot;lua_type&quot;: &quot;{Instance | Instance.ClassName | [Instance.ClassName] = {Instance.Name}}&quot;,
                    &quot;desc&quot;: &quot;Structure is similar to **@DecompileIgnore** except `= false` meaning save the instance but ignore it&#x27;s descendants. ___Default:___ {CoreGui, CorePackages}&quot;
                },
                {
                    &quot;name&quot;: &quot;ExtraInstances&quot;,
                    &quot;lua_type&quot;: &quot;{Instance}&quot;,
                    &quot;desc&quot;: &quot;If used with any invalid mode (like \&quot;invalidmode\&quot;) it will only save these instances. ___Default:___ {}&quot;
                },
                {
                    &quot;name&quot;: &quot;IgnoreProperties&quot;,
                    &quot;lua_type&quot;: &quot;table&quot;,
                    &quot;desc&quot;: &quot;Ignores properties by Name. ___Default:___ {}&quot;
                },
                {
                    &quot;name&quot;: &quot;SaveCacheInterval&quot;,
                    &quot;lua_type&quot;: &quot;number&quot;,
                    &quot;desc&quot;: &quot;The less the value the more often it saves, but that would mean less performance due to constantly saving. ___Default:___ 0x1600 * 10&quot;
                },
                {
                    &quot;name&quot;: &quot;FilePath&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;The name (can include a path) of the file to save to. If it has no extension, `.rbxmx/rbxm` (models) or `.rbxlx/rbxl` (places) is appended; an existing extension is left as-is. Ignores `OPTIONS.AvoidFileOverwrite`. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;AvoidFileOverwrite&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Prevents writing to place file that already exists. ___Default:___ true&quot;
                },
                {
                    &quot;name&quot;: &quot;Object&quot;,
                    &quot;lua_type&quot;: &quot;Instance&quot;,
                    &quot;desc&quot;: &quot;* If provided, saves as .rbxmx (Model file) instead. If Object is game, it will be saved as a .rbxl file. **MUST BE AN INSTANCE REFERENCE, FOR EXAMPLE - *game.Workspace***. `\&quot;optimized\&quot;` mode is **NOT** supported with this option. If IsModel is set to false then Object specified here will be saved as a place file. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;IsModel&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;If Object is specified then sets to true automatically, unless you set it to false. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;NilInstances&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Save instances that aren&#x27;t Parented (Parented to nil). ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;NilInstancesFixes&quot;,
                    &quot;lua_type&quot;: &quot;{[Instance.ClassName] = function}&quot;,
                    &quot;desc&quot;: &quot;* This can cause some Classes to be fixed even though they might not need the fix (better be safe than sorry though). For example, Bones inherit from Attachment if we dont define them in the NilInstancesFixes then this will catch them anyways. **TO AVOID THIS BEHAVIOR USE THIS EXAMPLE:** {ClassName_That_Doesnt_Need_Fix = false}. ___Default:___ {Animator = function, AdPortal = function, BaseWrap = function, Attachment = function}&quot;
                },
                {
                    &quot;name&quot;: &quot;IgnoreDefaultProperties&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Ignores default properties during saving.  ___Default:___ true&quot;
                },
                {
                    &quot;name&quot;: &quot;IgnoreNotArchivable&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Ignores the Archivable property and saves Non-Archivable instances. ___Default:___ true&quot;
                },
                {
                    &quot;name&quot;: &quot;IgnorePropertiesOfNotScriptsOnScriptsMode&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Ignores property of every instance that is not a script in \&quot;scripts\&quot; mode. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;IgnoreSpecialProperties&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Prevents calls to `gethiddenproperty` and uses fallback methods instead. This also helps with crashes. If your file is corrupted after saving, you can try turning this on. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;IsolateStarterPlayer&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Saves StarterPlayer as separate folder, children of the original instance will be ignored. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;IsolatePlayers&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Saves All Players as separate folder, children of the original instance will be ignored. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;IsolateLocalPlayer&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Saves LocalPlayer as separate folder, original instance will be ignored. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;IsolateLocalPlayerCharacter&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Saves LocalPlayer.Character as separate folder, original instance will be ignored. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;SavePlayerCharacters&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;Ignore player characters while saving. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;SaveNotCreatable&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;* Includes non-serializable instances as Folder objects (Name is misleading as this is mostly a fix for certain NilInstances and isn&#x27;t always related to NotCreatable). Other options also enable it, like: IsolatePlayers, IsolateLocalPlayer, etc. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;NotCreatableFixes&quot;,
                    &quot;lua_type&quot;: &quot;table&lt;Instance.ClassName&gt;&quot;,
                    &quot;desc&quot;: &quot;* {\&quot;Player\&quot;} is the same as {Player = \&quot;Folder\&quot;}; Format like {SpawnLocation = \&quot;Part\&quot;} is only to be used when SpawnLocation inherits from \&quot;Part\&quot; AND \&quot;Part\&quot; is Creatable. ___Default:___ { \&quot;\&quot;, \&quot;Player\&quot;, \&quot;PlayerScripts\&quot;, \&quot;PlayerGui\&quot;, \&quot;TouchTransmitter\&quot; }&quot;
                },
                {
                    &quot;name&quot;: &quot;AlternativeWritefile&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;* Splits file content string into segments and writes them using appendfile. This might help with crashes when it starts writing to file. Though there is a risk of appendfile working incorrectly on some executors. ___Default:___ true&quot;
                },
                {
                    &quot;name&quot;: &quot;IgnoreDefaultPlayerScripts&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;* **RISKY**: Ignores Default PlayerScripts like PlayerModule &amp; RbxCharacterSounds. Prevents crashes on certain Executors. ___Default:___ true&quot;
                },
                {
                    &quot;name&quot;: &quot;IgnoreSharedStrings&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;* **RISKY**: Might help with crashes on some executors. ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;SharedStringOverwrite&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;* **RISKY:** if the process is not finished aka crashed then none of the affected values will be available. SharedStrings can also be used for ValueTypes that aren&#x27;t `SharedString`, this behavior is not documented anywhere but makes sense (Could create issues though, due to _potential_ ValueType mix-up, only works on certain types which are all base64 encoded so far). Reason: Allows for potential smaller file size (can also be bigger in some cases). ___Default:___ false&quot;
                },
                {
                    &quot;name&quot;: &quot;TreatUnionsAsParts&quot;,
                    &quot;lua_type&quot;: &quot;boolean&quot;,
                    &quot;desc&quot;: &quot;* **RISKY:** Converts all UnionOperations to Parts. Useful if your Executor isn&#x27;t able to save (read) Unions, because otherwise they will be invisible. ___Default:___ false (except Solara)&quot;
                }
            ],
            &quot;source&quot;: {
                &quot;line&quot;: 2899,
                &quot;path&quot;: &quot;saveinstance.luau&quot;
            }
        },
        {
            &quot;name&quot;: &quot;OptionsAliases&quot;,
            &quot;desc&quot;: &quot;Alias  Canonical option mapping for the [SynSaveInstance.CustomOptions] table.\nFormat: { Alias = CanonicalOption }\nThese are resolved before user options are processed and cannot be modified at runtime.&quot;,
            &quot;fields&quot;: [
                {
                    &quot;name&quot;: &quot;timeout&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;DecompileTimeout&quot;
                },
                {
                    &quot;name&quot;: &quot;DecompileScripts&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;Decompile&quot;
                },
                {
                    &quot;name&quot;: &quot;FileName&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;FilePath&quot;
                },
                {
                    &quot;name&quot;: &quot;IgnoreArchivable&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;IgnoreNotArchivable&quot;
                },
                {
                    &quot;name&quot;: &quot;IgnoreDefaultProps&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;IgnoreDefaultProperties&quot;
                },
                {
                    &quot;name&quot;: &quot;InstancesBlacklist&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;IgnoreList&quot;
                },
                {
                    &quot;name&quot;: &quot;SaveLocalPlayer&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;IsolateLocalPlayer&quot;
                },
                {
                    &quot;name&quot;: &quot;IsolatePlayerGui&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;IsolateLocalPlayer&quot;
                },
                {
                    &quot;name&quot;: &quot;SavePlayerGui&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;IsolateLocalPlayer&quot;
                },
                {
                    &quot;name&quot;: &quot;SavePlayers&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;IsolatePlayers&quot;
                },
                {
                    &quot;name&quot;: &quot;SaveNonCreatable&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;SaveNotCreatable&quot;
                },
                {
                    &quot;name&quot;: &quot;SaveNilInstances&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;NilInstances&quot;
                },
                {
                    &quot;name&quot;: &quot;SaveCharacters&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;SavePlayerCharacters&quot;
                },
                {
                    &quot;name&quot;: &quot;StatusText&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;ShowStatus&quot;
                }
            ],
            &quot;source&quot;: {
                &quot;line&quot;: 2919,
                &quot;path&quot;: &quot;saveinstance.luau&quot;
            }
        },
        {
            &quot;name&quot;: &quot;OptionsAliasesInverse&quot;,
            &quot;desc&quot;: &quot;Alias  Canonical option mapping with boolean inversion.\nFormat: { Alias = CanonicalOption }\nThese aliases invert the provided boolean value before applying it.\nExample: noscripts = true  Decompile = false&quot;,
            &quot;fields&quot;: [
                {
                    &quot;name&quot;: &quot;noscripts&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;Decompile&quot;
                },
                {
                    &quot;name&quot;: &quot;RemovePlayers&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;IsolatePlayers&quot;
                },
                {
                    &quot;name&quot;: &quot;RemovePlayerCharacters&quot;,
                    &quot;lua_type&quot;: &quot;string&quot;,
                    &quot;desc&quot;: &quot;SavePlayerCharacters&quot;
                }
            ],
            &quot;source&quot;: {
                &quot;line&quot;: 2929,
                &quot;path&quot;: &quot;saveinstance.luau&quot;
            }
        }
    ],
    &quot;name&quot;: &quot;SynSaveInstance&quot;,
    &quot;desc&quot;: &quot;Represents the options for saving instances with custom settings using the synsaveinstance function.&quot;,
    &quot;source&quot;: {
        &quot;line&quot;: 2850,
        &quot;path&quot;: &quot;saveinstance.luau&quot;
    }
}</pre></details></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#types" class="table-of-contents__link toc-highlight">Types</a><ul><li><a href="#CustomOptions table" class="table-of-contents__link toc-highlight">CustomOptions table</a></li><li><a href="#OptionsAliases" class="table-of-contents__link toc-highlight">OptionsAliases</a></li><li><a href="#OptionsAliasesInverse" class="table-of-contents__link toc-highlight">OptionsAliasesInverse</a></li></ul></li><li><a href="#functions" class="table-of-contents__link toc-highlight">Functions</a><ul><li><a href="#saveinstance" class="table-of-contents__link toc-highlight">.saveinstance</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="footer__links text--center"><div class="footer__links"><a href="https://discord.gg/wx4ThpAsmw" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><span class="footer__link-separator"></span><a href="https://ko-fi.com/M4M1JNH5G" target="_blank" rel="noopener noreferrer" class="footer__link-item">Support<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/UniversalSynSaveInstance/favicon.png" class="footer__logo themedComponent_mlkZ themedComponent--light_NVdE" width="50" height="50"><img src="/UniversalSynSaveInstance/favicon.png" class="footer__logo themedComponent_mlkZ themedComponent--dark_xIcU" width="50" height="50"></div><div class="footer__copyright">Copyright  2026 luau. Built with Moonwave and Docusaurus.</div></div></div></footer></div>
</body>
</html>

설명

This is the absolutely best way to save instance Roblox games. You can save entire maps, assets, decompile local scripts, bypass anti-decompilation measures and more with this epic save instance script that is fully open source.

댓글 (0)

대화에 참여하려면 로그인하세요

  • 첫 댓글을 작성하세요.

자주 묻는 질문

BEST SAVE INSTANCE SCRIPT FOR ROBLOX - SAVE ASSETS, DECOMPILE SCRIPTS & MORE! ANY ROBLOX GAME 스크립트는 어떻게 사용하나요?
위의 스크립트 코드를 복사하고, Roblox 엑시큐터를 열어 붙여넣은 후, 게임 중에 실행을 누르세요. 스크립트가 실행되면 기능이 즉시 활성화됩니다.
BEST SAVE INSTANCE SCRIPT FOR ROBLOX - SAVE ASSETS, DECOMPILE SCRIPTS & MORE! ANY ROBLOX GAME 스크립트는 무료인가요?
네. 이 스크립트는 무료로 복사하고 사용할 수 있습니다. 키 시스템을 사용하는 경우, 링크를 통해 무료로 키를 받으세요.
BEST SAVE INSTANCE SCRIPT FOR ROBLOX - SAVE ASSETS, DECOMPILE SCRIPTS & MORE! ANY ROBLOX GAME 스크립트는 안전한가요?
전체 소스 코드가 이 페이지에 표시되어 실행 전에 정확히 무엇을 하는지 확인할 수 있습니다. 항상 신뢰할 수 있는 엑시큐터를 사용하고, 스크립트 사용은 Roblox 이용 약관에 위반되므로 자의적 위험으로 사용하세요.
BEST SAVE INSTANCE SCRIPT FOR ROBLOX - SAVE ASSETS, DECOMPILE SCRIPTS & MORE! ANY ROBLOX GAME에 호환되는 엑시큐터는?
이 스크립트는 대부분의 인기 Roblox 엑시큐터에서 작동합니다. 기기에 맞는 신뢰할 수 있는 무료 또는 유료 엑시큐터를 찾으려면 엑시큐터 페이지를 확인하세요.
BEST SAVE INSTANCE SCRIPT FOR ROBLOX - SAVE ASSETS, DECOMPILE SCRIPTS & MORE! ANY ROBLOX GAME | BloxScripter