Run it
Copy the script and paste it into your executor.
Players = :()
TweenService = :()
UserInputService = :()
RunService = :()
Lighting = :()
TextService = :()
CoreGui = :()
Mouse = Players.LocalPlayer:()
LocalPlayer = Players.LocalPlayer
playerGui = LocalPlayer:()
backpack = LocalPlayer:()
character = LocalPlayer.Character LocalPlayer.CharacterAdded:()
()
s, r = (() () () )
(s r) CoreGui
NativeRequire =
RealInstance =
RealGame =
RealRunService = RunService
RealLoadstring =
Basement = LocalPlayer:():() RealInstance.(, LocalPlayer:())
Basement.Name =
MockSSS = Basement:() RealInstance.(, Basement)
MockSSS.Name =
._ModuleCache = ._ModuleCache {}
._ToolGUIRegistry = ._ToolGUIRegistry {}
._ActiveToolContext = ._ActiveToolContext
MockInstance = {}
(MockInstance, {__index = RealInstance})
MockInstance.(class, parent)
class == class == class ==
gui = RealInstance.(class, parent ())
ctx = ._ActiveToolContext
ctx
._ToolGUIRegistry[ctx] = ._ToolGUIRegistry[ctx] {}
.(._ToolGUIRegistry[ctx], gui)
gui.Enabled =
gui:():(()
gui.Enabled
char = LocalPlayer.Character
(char char:(ctx))
.(() gui.Enabled = )
)
gui
class ==
fake = {}
serverEvent = RealInstance.()
clientEvent = RealInstance.()
fake.Name =
fake.ClassName =
fake.Parent = parent
fake.OnServerEvent = serverEvent.Event
fake.OnClientEvent = clientEvent.Event
fake:(...) serverEvent:(LocalPlayer, ...)
fake:(_, ...) clientEvent:(...)
fake:(...) clientEvent:(...)
fake:(t) t == t ==
fake:(c) self[c] RealInstance.()
fake
RealInstance.(class, parent)
MockRunService = {}
(MockRunService, {
__index = (_, k)
k == ()
k == ()
v = RealRunService[k]
(v) == (_, ...) (RealRunService, ...)
v
})
MockGame = {}
(MockGame, {
__index = (_, k)
k == k == MockSSS
k == MockRunService
k == k ==
(_, s)
s == s == MockSSS
s == MockRunService
RealGame:(s)
v = RealGame[k]
(v) == (_, ...) (RealGame, ...)
v
})
Infect
(scriptObj)
env = {
= scriptObj,
= MockGame,
Game = MockGame,
= ,
Workspace = ,
owner = LocalPlayer,
RunService = MockRunService,
= MockInstance,
= (id) .(id, scriptObj) ,
= ,
= ,
= ,
= ,
= ,
assert = assert,
= ,
= ,
= ,
= ,
= ,
= ,
= ,
= ,
= ,
= ,
= .unpack,
= ,
= ,
rawequal = rawequal,
rawlen = rawlen,
= ,
= ,
= ,
= ,
= ,
= ,
= ,
bit32 = bit32,
utf8 = utf8,
= ,
= ,
= ,
= ,
= ,
time = time,
= ,
= ,
= ,
= ,
= ,
= ,
Rect = Rect,
Region3 = Region3,
Ray = Ray,
TweenInfo = TweenInfo,
NumberRange = NumberRange,
NumberSequence = NumberSequence,
NumberSequenceKeypoint = NumberSequenceKeypoint,
ColorSequence = ColorSequence,
ColorSequenceKeypoint = ColorSequenceKeypoint,
BrickColor = BrickColor,
= ,
Axes = Axes,
Faces = Faces,
PhysicalProperties = PhysicalProperties,
Random = Random,
= (src, chunkname)
f, err = (src, chunkname)
f Infect
(f, scriptObj)
f, err
,
}
env
Infect = (func, scriptObj)
(func) ~= func
env = (scriptObj)
(func, (env, {
__index = (t, k)
v = (t, k)
v ~= v
ok, gv = (() ()[k] )
ok gv ~= gv
(())[k]
,
__newindex = (t, k, v)
(t, k, v)
}))
func
.SmartRequire = (id, caller)
module =
cacheKey = ((id) == ) (id) (id)
._ModuleCache[cacheKey] ~=
._ModuleCache[cacheKey]
(id) == (id)
cleanName = id:()
caller cleanName
module = caller:(cleanName)
(caller.Parent caller.Parent:(cleanName))
module cleanName
_, v (MockSSS:())
v.Name == cleanName v:() module = v
module ((id) == (id))
s, r = (() RealGame:( .. (id)) )
s (r) == #r >
containers = {}
_, root (r)
root.Parent = MockSSS
.(containers, root)
container = containers[]
prevCtx = ._ActiveToolContext
._ActiveToolContext = container.Name
(inst)
src = inst.Source
src src ==
ok2, dec = (() (inst) )
ok2 (dec) == dec ~= src = dec
(src src ~= ) src
serverScripts = {}
localScripts = {}
_, root (containers)
nodes = {root}
_, v (root:()) .(nodes, v)
_, v (nodes)
(v) ==
v:() v:()
(() v.Disabled = )
src = (v)
src
.(serverScripts, {inst = v, src = src})
(, v:())
v:()
(() v.Disabled = )
src = (v)
src
.(localScripts, {inst = v, src = src})
(, v:())
ClientRS = ({}, {
__index = (_, k)
k == ()
k == ()
v = RealRunService[k]
(v) == (_, ...) (RealRunService, ...)
v
})
()
({}, {
__index = (_, k)
k == ClientRS
k == k ==
(_, s2)
s2 == ClientRS
s2 == s2 == MockSSS
RealGame:(s2)
MockGame[k]
})
(f, inst, isClient)
env = (inst)
isClient
env.RunService = ClientRS
env.game = ()
env.Game = env.game
env.loadstring = (src, chunkname)
df, derr = (src, chunkname)
df (df, inst, isClient)
df, derr
(f, (env, {
__index = (t, k)
v = (t, k)
v ~= v
ok2, gv = (() ()[k] )
ok2 gv ~= gv
(())[k]
,
__newindex = (t, k, v) (t, k, v)
}))
f
pending =
doneEvent = RealInstance.()
(entry, isClient)
pending +=
.(()
f, ferr = (entry.src)
f
(, entry.inst:(), , ferr)
(f, entry.inst, isClient)
ok, err = (f)
ok
(, entry.inst:(), , err)
pending -=
pending == doneEvent:()
)
_, entry (serverScripts) (entry, )
_, entry (localScripts) (entry, )
pending >
timeout =
timeoutThread = .(, ()
timeout =
pending >
(, container.Name, , pending, )
doneEvent:()
)
doneEvent.Event:()
timeout
(() timeoutThread:() )
.()
._ActiveToolContext = prevCtx
doneEvent:()
module = container:() container
container:(, )
module (id) == module = id
module (module) == module:()
._ModuleCache[cacheKey] =
prevCtx = ._ActiveToolContext
prevCtx
._ActiveToolContext = module.Parent module.Parent.Name module.Name
src = module.Source
src src ~=
f, ferr = (src)
f
(f, module)
ok, result = (f)
._ActiveToolContext = prevCtx
ok
(result) == result = (result, module)
._ModuleCache[cacheKey] = result
result
(, module.Name, , result)
._ModuleCache[cacheKey] =
._ActiveToolContext = prevCtx
(, module.Name, , ferr)
._ModuleCache[cacheKey] =
._ActiveToolContext = prevCtx
ok, fallback = (NativeRequire, id)
ok
(fallback) == fallback = (fallback, module)
._ModuleCache[cacheKey] = fallback
fallback
(, (id))
enableScripts =
enableDecompilation =
placeMode =
currentPlaceAssetId =
placingIndicator =
currentPreviewModel =
currentRotation = .(, , )
decompilerLoaded =
()
decompilerLoaded
success, result = (()
decompsrc = :(, )
(decomptimeout)
CONSTANTS = .. decomptimeout ..
(.(decompsrc, , CONSTANTS), )()
().loaddecomp = loaddecomp
()
)
success
decompilerLoaded =
()
(, (result))
success
LocalPlayer.CharacterAdded:((c)
character = c
)
(skybox)
skybox skybox:()
existingSky = Lighting:()
existingSky existingSky:()
newSky = skybox:()
newSky.Parent = Lighting
(, skybox.Name)
(texture)
texture texture:()
textureName = texture.Name:()
isSkyTexture = textureName:() textureName:()
textureName:() textureName:() textureName:()
isSkyTexture
sky = Lighting:()
sky sky = .(); sky.Parent = Lighting
textureName:() textureName:() textureName:()
sky.SkyboxBk = texture; sky.SkyboxDn = texture; sky.SkyboxFt = texture
sky.SkyboxLf = texture; sky.SkyboxRt = texture; sky.SkyboxUp = texture
textureName:() sky.SkyboxClouds = texture
textureName:() sky.SunTexture = texture
textureName:() sky.MoonTexture = texture
(, texture.Name)
(lightingConfig)
lightingConfig lightingConfig:()
_, property ({, , , , , , , })
lightingConfig:(property)
value = lightingConfig[property].Value
Lighting[property] ~= Lighting[property] = value
(, lightingConfig.Name)
(assetId)
currentPreviewModel currentPreviewModel:(); currentPreviewModel =
assetId = (assetId)
assetId
ok, objects = (() :( .. assetId) )
ok objects #objects == (, assetId);
preview = objects[]:()
_, part (preview:())
part:()
part.Transparency = ; part.CanCollide = ; part.Anchored =
part.Material = .Material.ForceField; part.Color = .(, , )
_, v preview:()
v:() v:() v:() v:()
preview.Name = ; preview.Parent =
preview
()
currentPreviewModel Mouse.Hit
pos = Mouse.Hit.p + .(, , )
cf = .(pos) * currentRotation
currentPreviewModel.PrimaryPart
currentPreviewModel:(cf)
currentPreviewModel:(cf)
()
placingIndicator placingIndicator:()
placingIndicator = .()
placingIndicator.Name = ; placingIndicator.Parent =
base = .()
base.Size = .(, , ); base.Material = .Material.Neon
base.Color = .(, , ); base.Transparency =
base.Anchored = ; base.CanCollide = ; base.Shape = .PartType.Cylinder
base.Parent = placingIndicator
arrow = .()
arrow.Size = .(, , ); arrow.Color = .(, , )
arrow.Material = .Material.ForceField; arrow.Anchored = ; arrow.CanCollide =
arrow.Parent = placingIndicator
() currentRotation = .(, , )
(model, customCFrame)
model
model:() (model);
model:() (model)
model:() model.Name:() (model);
skybox = model:()
skybox (skybox)
_, texture (model:())
texture:() (texture)
lightingConfig = model:()
lightingConfig (lightingConfig)
model:() model.Parent = backpack;
model:() model.ResetOnSpawn = ; model.Parent = playerGui;
model:() model:() model.Parent = character;
character character:()
targetCFrame = customCFrame (character.HumanoidRootPart.CFrame * .(, , ))
model.PrimaryPart model:(targetCFrame)
model:(targetCFrame)
model.Parent =
(originalScript, clonedScript)
enableScripts clonedScript:();
src = originalScript.Source
src src:() < clonedScript.Disabled = ;
enableDecompilation decompilerLoaded ().decompile
(()
decompiled = ().(originalScript)
decompiled decompiled:() >
src = .. decompiled
(, originalScript.Name)
)
f, err = (src)
f
(f, clonedScript)
.(()
.()
.__ROB_SCRIPT_REF = clonedScript
ok, runErr = (f)
.__ROB_SCRIPT_REF =
ok
clonedScript.Disabled =
errorMsg = (runErr )
errorMsg:() errorMsg:()
errorMsg:() errorMsg:()
.()
.__ROB_SCRIPT_REF = clonedScript
retryOk = (f)
.__ROB_SCRIPT_REF =
retryOk clonedScript.Disabled =
(, originalScript.Name, runErr); clonedScript:()
(, originalScript.Name, runErr); clonedScript:()
)
(, originalScript.Name, err)
clonedScript:()
(originalModule, clonedModule)
enableScripts clonedModule:();
src = originalModule.Source
src src:() <
enableDecompilation decompilerLoaded ().decompile
(()
decompiled = ().(originalModule)
decompiled decompiled:() >
src = .. decompiled
(, originalModule.Name)
)
clonedModule.Source = src
(assetId, customCFrame)
assetId = (assetId)
assetId
ok, objects = (() :( .. assetId) )
ok objects #objects == (, assetId);
original = objects[]
clone = original:()
isSkyAsset = original:()
(original:() original.Name:():())
(original:() original.Name:())
isSkyAsset
(, original.Name)
(clone, customCFrame);
hasSkyObjects =
_, obj (original:())
obj:() (obj:() obj.Name:():())
hasSkyObjects = ;
hasSkyObjects
(, original.Name)
_, obj (clone:())
obj:() (obj)
obj:() obj.Name:():() (obj)
(clone, customCFrame)
enableScripts isSkyAsset
cloneMap = {}
(origObj, clonedObj)
cloneMap[origObj] = clonedObj
_, child (origObj:())
clonedChild = clonedObj:(child.Name)
clonedChild (child, clonedChild)
(original, clone)
modulesToProcess = {}
scriptsToProcess = {}
_, obj original:()
obj:() .(modulesToProcess, obj)
obj:() obj:() .(scriptsToProcess, obj)
_, v clone:()
v:() v:() v:() v:()
_, module (modulesToProcess)
newModule = .()
newModule.Name = module.Name
newModule.Parent = cloneMap[module.Parent] clone
(module, newModule)
_, scriptObj (scriptsToProcess)
newScript = .(scriptObj.ClassName)
newScript.Name = scriptObj.Name; newScript.Disabled =
newScript.Parent = cloneMap[scriptObj.Parent] clone
(scriptObj, newScript)
isSkyAsset
_, v clone:()
v:() v:() v:() v:()
(text)
ids = {}
id text:() .(ids, id)
#ids == ();
i, id (ids)
.(()
.((i - ) * )
success = (id)
success (, id)
)
( .. #ids .. )
THEMES = {
{
name = ,
frameBg = .(, , ), frameBgT = ,
headerBg = .(, , ), headerText = .(,,),
outputBg = .(, , ), outputBgT = ,
inputBg = .(, , ), inputText = .(,,),
accent = .(, , ), accent2 = .(, , ),
btnBatch = .(, , ), btnPlace = .(, , ),
btnScript = .(, , ), btnDecomp = .(, , ),
btnSave = .(, , ), btnLoad = .(, , ),
btnTheme = .(, , ), btnClose = .(, , ),
btnExec = .(, , ), outputText = .(,,),
errText = .(, , ), infoText = .(, , ),
borderCol = .(, , ), borderRadius = ,
strokeOn = , strokeCol = .(, , ),
listBg = .(, , ), listItemBg = .(, , ),
listItemText = .(, , ),
},
{
name = ,
frameBg = .(,,), frameBgT = ,
headerBg = .(,,), headerText = .(,,),
outputBg = .(,,), outputBgT = ,
inputBg = .(,,), inputText = .(,,),
accent = .(,,), accent2 = .(,,),
btnBatch = .(,,), btnPlace = .(,,),
btnScript = .(,,), btnDecomp = .(,,),
btnSave = .(,,), btnLoad = .(,,),
btnTheme = .(,,), btnClose = .(,,),
btnExec = .(,,), outputText = .(,,),
errText = .(,,), infoText = .(,,),
borderCol = .(,,), borderRadius = ,
strokeOn = , strokeCol = .(,,),
listBg = .(,,), listItemBg = .(,,),
listItemText = .(,,),
},
{
name = ,
frameBg = .(,,), frameBgT = ,
headerBg = .(,,), headerText = .(,,),
outputBg = .(,,), outputBgT = ,
inputBg = .(,,), inputText = .(,,),
accent = .(,,), accent2 = .(,,),
btnBatch = .(,,), btnPlace = .(,,),
btnScript = .(,,), btnDecomp = .(,,),
btnSave = .(,,), btnLoad = .(,,),
btnTheme = .(,,), btnClose = .(,,),
btnExec = .(,,), outputText = .(,,),
errText = .(,,), infoText = .(,,),
borderCol = .(,,), borderRadius = ,
strokeOn = , strokeCol = .(,,),
listBg = .(,,), listItemBg = .(,,),
listItemText = .(,,),
},
{
name = ,
frameBg = .(,,), frameBgT = ,
headerBg = .(,,), headerText = .(,,),
outputBg = .(,,), outputBgT = ,
inputBg = .(,,), inputText = .(,,),
accent = .(,,), accent2 = .(,,),
btnBatch = .(,,), btnPlace = .(,,),
btnScript = .(,,), btnDecomp = .(,,),
btnSave = .(,,), btnLoad = .(,,),
btnTheme = .(,,), btnClose = .(,,),
btnExec = .(,,), outputText = .(,,),
errText = .(,,), infoText = .(,,),
borderCol = .(,,), borderRadius = ,
strokeOn = , strokeCol = .(,,),
listBg = .(,,), listItemBg = .(,,),
listItemText = .(,,),
},
{
name = ,
frameBg = .(,,), frameBgT = ,
headerBg = .(,,), headerText = .(,,),
outputBg = .(,,), outputBgT = ,
inputBg = .(,,), inputText = .(,,),
accent = .(,,), accent2 = .(,,),
btnBatch = .(,,), btnPlace = .(,,),
btnScript = .(,,), btnDecomp = .(,,),
btnSave = .(,,), btnLoad = .(,,),
btnTheme = .(,,), btnClose = .(,,),
btnExec = .(,,), outputText = .(,,),
errText = .(,,), infoText = .(,,),
borderCol = .(,,), borderRadius = ,
strokeOn = , strokeCol = .(,,),
listBg = .(,,), listItemBg = .(,,),
listItemText = .(,,),
},
{
name = ,
frameBg = .(,,), frameBgT = ,
headerBg = .(,,), headerText = .(,,),
outputBg = .(,,), outputBgT = ,
inputBg = .(,,), inputText = .(,,),
accent = .(,,), accent2 = .(,,),
btnBatch = .(,,), btnPlace = .(,,),
btnScript = .(,,), btnDecomp = .(,,),
btnSave = .(,,), btnLoad = .(,,),
btnTheme = .(,,), btnClose = .(,,),
btnExec = .(,,), outputText = .(,,),
errText = .(,,), infoText = .(,,),
borderCol = .(,,), borderRadius = ,
strokeOn = , strokeCol = .(,,),
listBg = .(,,), listItemBg = .(,,),
listItemText = .(,,),
},
{
name = ,
frameBg = .(,,), frameBgT = ,
headerBg = .(,,), headerText = .(,,),
outputBg = .(,,), outputBgT = ,
inputBg = .(,,), inputText = .(,,),
accent = .(,,), accent2 = .(,,),
btnBatch = .(,,), btnPlace = .(,,),
btnScript = .(,,), btnDecomp = .(,,),
btnSave = .(,,), btnLoad = .(,,),
btnTheme = .(,,), btnClose = .(,,),
btnExec = .(,,), outputText = .(,,),
errText = .(,,), infoText = .(,,),
borderCol = .(,,), borderRadius = ,
strokeOn = , strokeCol = .(,,),
listBg = .(,,), listItemBg = .(,,),
listItemText = .(,,),
},
{
name = ,
frameBg = .(,,), frameBgT = ,
headerBg = .(,,), headerText = .(,,),
outputBg = .(,,), outputBgT = ,
inputBg = .(,,), inputText = .(,,),
accent = .(,,), accent2 = .(,,),
btnBatch = .(,,), btnPlace = .(,,),
btnScript = .(,,), btnDecomp = .(,,),
btnSave = .(,,), btnLoad = .(,,),
btnTheme = .(,,), btnClose = .(,,),
btnExec = .(,,), outputText = .(,,),
errText = .(,,), infoText = .(,,),
borderCol = .(,,), borderRadius = ,
strokeOn = , strokeCol = .(,,),
listBg = .(,,), listItemBg = .(,,),
listItemText = .(,,),
},
{
name = ,
frameBg = .(,,), frameBgT = ,
headerBg = .(,,), headerText = .(,,),
outputBg = .(,,), outputBgT = ,
inputBg = .(,,), inputText = .(,,),
accent = .(,,), accent2 = .(,,),
btnBatch = .(,,), btnPlace = .(,,),
btnScript = .(,,), btnDecomp = .(,,),
btnSave = .(,,), btnLoad = .(,,),
btnTheme = .(,,), btnClose = .(,,),
btnExec = .(,,), outputText = .(,,),
errText = .(,,), infoText = .(,,),
borderCol = .(,,), borderRadius = ,
strokeOn = , strokeCol = .(,,),
listBg = .(,,), listItemBg = .(,,),
listItemText = .(,,),
},
}
currentThemeIdx =
gui = RealInstance.(, ())
gui.Name =
gui.ResetOnSpawn =
frame = RealInstance.()
frame.Size = .(, , , )
frame.Position = .(, -, , -)
frame.BackgroundColor3 = .(, , )
frame.Active =
frame.Draggable =
frame.Parent = gui
corner = RealInstance.(, frame)
corner.CornerRadius = .(, )
stroke = RealInstance.(, frame)
stroke.Thickness =
stroke.Color = .(, , )
title = RealInstance.()
title.Text =
title.Size = .(, -, , )
title.BackgroundTransparency =
title.TextColor3 = .(, , )
title.Font = .Font.GothamBlack
title.TextSize =
title.TextXAlignment = .TextXAlignment.Left
title.Parent = frame
p = RealInstance.(, title); p.PaddingLeft = .(, ); p.PaddingTop = .(, )
closeBtn = RealInstance.()
closeBtn.Size = .(, , , )
closeBtn.Position = .(, -, , )
closeBtn.BackgroundTransparency =
closeBtn.Font = .Font.GothamBold
closeBtn.TextSize =
closeBtn.Text =
closeBtn.TextColor3 = .(, , )
closeBtn.Parent = frame
closeBtn.MouseButton1Click:(() gui:() )
output = RealInstance.()
output.Size = .(, -, , )
output.Position = .(, , , )
output.BackgroundColor3 = .(, , )
output.BorderSizePixel =
output.ScrollBarThickness =
output.ClipsDescendants =
output.ScrollingDirection = .ScrollingDirection.Y
output.AutomaticCanvasSize = .AutomaticSize.Y
output.CanvasSize = .(, , , )
output.Parent = frame
outputLayout = RealInstance.(, output)
outputLayout.SortOrder = .SortOrder.LayoutOrder
outputLayout.Padding = .(, )
(txt, col)
t = THEMES[currentThemeIdx]
label = RealInstance.(, output)
label.BackgroundTransparency =
label.Font = .Font.SourceSans
label.TextColor3 = col t.outputText
label.TextSize =
label.TextXAlignment = .TextXAlignment.Left
label.TextYAlignment = .TextYAlignment.Top
label.Text = txt
label.TextWrapped =
label.Size = .(, -, ,
TextService:(txt, label.TextSize, label.Font,
.(output.AbsoluteSize.X - , .huge)).Y)
.(() output.CanvasPosition = .(, .huge) )
inputBox = RealInstance.()
inputBox.PlaceholderText =
inputBox.Size = .(, -, , )
inputBox.Position = .(, , , )
inputBox.BackgroundColor3 = .(, , )
inputBox.TextColor3 = .(, , )
inputBox.TextSize =
inputBox.PlaceholderColor3 = .(, , )
inputBox.MultiLine =
inputBox.TextWrapped =
inputBox.ClearTextOnFocus =
inputBox.Parent = frame
RealInstance.(, inputBox).CornerRadius = .(, )
batchBtn = RealInstance.()
batchBtn.Text =
batchBtn.Size = .(, -, , )
batchBtn.Position = .(, , , )
batchBtn.BackgroundColor3 = .(, , )
batchBtn.TextColor3 = .(, , )
batchBtn.Font = .Font.GothamBold
batchBtn.TextSize =
batchBtn.BorderSizePixel =
batchBtn.Parent = frame
RealInstance.(, batchBtn).CornerRadius = .(, )
placeBtn = RealInstance.()
placeBtn.Text =
placeBtn.Size = .(, -, , )
placeBtn.Position = .(, , , )
placeBtn.BackgroundColor3 = .(, , )
placeBtn.TextColor3 = .(, , )
placeBtn.Font = .Font.GothamBold
placeBtn.TextSize =
placeBtn.BorderSizePixel =
placeBtn.Parent = frame
RealInstance.(, placeBtn).CornerRadius = .(, )
scriptToggle = RealInstance.()
scriptToggle.Text =
scriptToggle.Size = .(, -, , )
scriptToggle.Position = .(, , , )
scriptToggle.BackgroundColor3 = .(, , )
scriptToggle.TextColor3 = .(, , )
scriptToggle.Font = .Font.GothamBold
scriptToggle.TextSize =
scriptToggle.BorderSizePixel =
scriptToggle.Parent = frame
RealInstance.(, scriptToggle).CornerRadius = .(, )
decompileToggle = RealInstance.()
decompileToggle.Text =
decompileToggle.Size = .(, -, , )
decompileToggle.Position = .(, , , )
decompileToggle.BackgroundColor3 = .(, , )
decompileToggle.TextColor3 = .(, , )
decompileToggle.Font = .Font.GothamBold
decompileToggle.TextSize =
decompileToggle.BorderSizePixel =
decompileToggle.Parent = frame
RealInstance.(, decompileToggle).CornerRadius = .(, )
saveBtn = RealInstance.()
saveBtn.Text =
saveBtn.Size = .(, -, , )
saveBtn.Position = .(, , , )
saveBtn.BackgroundColor3 = .(, , )
saveBtn.TextColor3 = .(, , )
saveBtn.Font = .Font.GothamBold
saveBtn.TextSize =
saveBtn.BorderSizePixel =
saveBtn.Parent = frame
RealInstance.(, saveBtn).CornerRadius = .(, )
loadBtn = RealInstance.()
loadBtn.Text =
loadBtn.Size = .(, -, , )
loadBtn.Position = .(, , , )
loadBtn.BackgroundColor3 = .(, , )
loadBtn.TextColor3 = .(, , )
loadBtn.Font = .Font.GothamBold
loadBtn.TextSize =
loadBtn.BorderSizePixel =
loadBtn.Parent = frame
RealInstance.(, loadBtn).CornerRadius = .(, )
themeBtn = RealInstance.()
themeBtn.Text =
themeBtn.Size = .(, -, , )
themeBtn.Position = .(, , , )
themeBtn.BackgroundColor3 = .(, , )
themeBtn.TextColor3 = .(, , )
themeBtn.Font = .Font.GothamBold
themeBtn.TextSize =
themeBtn.BorderSizePixel =
themeBtn.Parent = frame
RealInstance.(, themeBtn).CornerRadius = .(, )
rotationLabel = RealInstance.()
rotationLabel.Text =
rotationLabel.Size = .(, -, , )
rotationLabel.Position = .(, , , )
rotationLabel.BackgroundTransparency =
rotationLabel.TextColor3 = .(, , )
rotationLabel.Font = .Font.Gotham
rotationLabel.TextSize =
rotationLabel.Parent = frame
previewInfo = RealInstance.()
previewInfo.Text =
previewInfo.Size = .(, -, , )
previewInfo.Position = .(, , , )
previewInfo.BackgroundTransparency =
previewInfo.TextColor3 = .(, , )
previewInfo.Font = .Font.Gotham
previewInfo.TextSize =
previewInfo.Parent = frame
skyInfo = RealInstance.()
skyInfo.Text =
skyInfo.Size = .(, -, , )
skyInfo.Position = .(, , , )
skyInfo.BackgroundTransparency =
skyInfo.TextColor3 = .(, , )
skyInfo.Font = .Font.Gotham
skyInfo.TextSize =
skyInfo.Parent = frame
decompileInfo = RealInstance.()
decompileInfo.Text =
decompileInfo.Size = .(, -, , )
decompileInfo.Position = .(, , , )
decompileInfo.BackgroundTransparency =
decompileInfo.TextColor3 = .(, , )
decompileInfo.Font = .Font.Gotham
decompileInfo.TextSize =
decompileInfo.Parent = frame
sandboxInfo = RealInstance.()
sandboxInfo.Text =
sandboxInfo.Size = .(, -, , )
sandboxInfo.Position = .(, , , )
sandboxInfo.BackgroundTransparency =
sandboxInfo.TextColor3 = .(, , )
sandboxInfo.Font = .Font.Gotham
sandboxInfo.TextSize =
sandboxInfo.Parent = frame
themeInfo = RealInstance.()
themeInfo.Text = .. #THEMES ..
themeInfo.Size = .(, -, , )
themeInfo.Position = .(, , , )
themeInfo.BackgroundTransparency =
themeInfo.TextColor3 = .(, , )
themeInfo.Font = .Font.Gotham
themeInfo.TextSize =
themeInfo.Parent = frame
saveDialog = RealInstance.(, frame)
saveDialog.Size = .(, , , )
saveDialog.Position = .(, , , -)
saveDialog.BackgroundColor3 = .(, , )
saveDialog.BackgroundTransparency =
saveDialog.BorderSizePixel =
saveDialog.ZIndex =
saveDialog.Visible =
RealInstance.(, saveDialog).CornerRadius = .(, )
dialogTitle = RealInstance.(, saveDialog)
dialogTitle.Size = .(, -, , )
dialogTitle.Position = .(, , , )
dialogTitle.BackgroundTransparency =
dialogTitle.Font = .Font.SourceSansBold
dialogTitle.TextColor3 = .(, , )
dialogTitle.TextSize =
dialogTitle.TextXAlignment = .TextXAlignment.Left
dialogTitle.Text =
dialogTitle.ZIndex =
nameBox = RealInstance.(, saveDialog)
nameBox.AnchorPoint = .(, )
nameBox.Position = .(, , , )
nameBox.Size = .(, -, , )
nameBox.BackgroundColor3 = .(, , )
nameBox.BackgroundTransparency =
nameBox.BorderSizePixel =
nameBox.Font = .Font.SourceSans
nameBox.TextColor3 = .(, , )
nameBox.TextSize =
nameBox.PlaceholderText =
nameBox.PlaceholderColor3 = .(, , )
nameBox.Text =
nameBox.ClearTextOnFocus =
nameBox.TextXAlignment = .TextXAlignment.Left
nameBox.ZIndex =
p = RealInstance.(, nameBox); p.PaddingLeft = .(, )
RealInstance.(, nameBox).CornerRadius = .(, )
confirmBtn = RealInstance.(, saveDialog)
confirmBtn.Position = .(, , , )
confirmBtn.Size = .(, -, , )
confirmBtn.BackgroundColor3 = .(, , )
confirmBtn.BackgroundTransparency =
confirmBtn.BorderSizePixel =
confirmBtn.Font = .Font.SourceSansBold
confirmBtn.TextColor3 = .(, , )
confirmBtn.TextSize =
confirmBtn.Text =
confirmBtn.ZIndex =
RealInstance.(, confirmBtn).CornerRadius = .(, )
cancelSaveBtn = RealInstance.(, saveDialog)
cancelSaveBtn.Position = .(, , , )
cancelSaveBtn.Size = .(, -, , )
cancelSaveBtn.BackgroundColor3 = .(, , )
cancelSaveBtn.BackgroundTransparency =
cancelSaveBtn.BorderSizePixel =
cancelSaveBtn.Font = .Font.SourceSansBold
cancelSaveBtn.TextColor3 = .(, , )
cancelSaveBtn.TextSize =
cancelSaveBtn.Text =
cancelSaveBtn.ZIndex =
RealInstance.(, cancelSaveBtn).CornerRadius = .(, )
loadDialog = RealInstance.(, frame)
loadDialog.Size = .(, , , )
loadDialog.Position = .(, , , -)
loadDialog.BackgroundColor3 = .(, , )
loadDialog.BackgroundTransparency =
loadDialog.BorderSizePixel =
loadDialog.ZIndex =
loadDialog.Visible =
RealInstance.(, loadDialog).CornerRadius = .(, )
loadDialogTitle = RealInstance.(, loadDialog)
loadDialogTitle.Size = .(, -, , )
loadDialogTitle.Position = .(, , , )
loadDialogTitle.BackgroundTransparency =
loadDialogTitle.Font = .Font.SourceSansBold
loadDialogTitle.TextColor3 = .(, , )
loadDialogTitle.TextSize =
loadDialogTitle.TextXAlignment = .TextXAlignment.Left
loadDialogTitle.Text =
loadDialogTitle.ZIndex =
cancelLoadBtn = RealInstance.(, loadDialog)
cancelLoadBtn.Position = .(, -, , )
cancelLoadBtn.Size = .(, , , )
cancelLoadBtn.BackgroundColor3 = .(, , )
cancelLoadBtn.BackgroundTransparency =
cancelLoadBtn.BorderSizePixel =
cancelLoadBtn.Font = .Font.SourceSansBold
cancelLoadBtn.TextColor3 = .(, , )
cancelLoadBtn.TextSize =
cancelLoadBtn.Text =
cancelLoadBtn.ZIndex =
RealInstance.(, cancelLoadBtn).CornerRadius = .(, )
fileList = RealInstance.(, loadDialog)
fileList.Position = .(, , , )
fileList.Size = .(, -, , -)
fileList.BackgroundColor3 = .(, , )
fileList.BackgroundTransparency =
fileList.BorderSizePixel =
fileList.ScrollBarThickness =
fileList.ClipsDescendants =
fileList.ScrollingDirection = .ScrollingDirection.Y
fileList.AutomaticCanvasSize = .AutomaticSize.Y
fileList.CanvasSize = .(, , , )
fileList.ZIndex =
fileListLayout = RealInstance.(, fileList)
fileListLayout.SortOrder = .SortOrder.LayoutOrder
fileListLayout.Padding = .(, )
SAVE_DIR =
()
makefolder (makefolder, SAVE_DIR)
(idx)
currentThemeIdx = idx
t = THEMES[idx]
frame.BackgroundColor3 = t.frameBg
corner.CornerRadius = .(, t.borderRadius)
stroke.Thickness = t.strokeOn
stroke.Color = t.strokeCol
title.BackgroundColor3 = t.headerBg
title.TextColor3 = t.headerText
output.BackgroundColor3 = t.outputBg
inputBox.BackgroundColor3 = t.inputBg
inputBox.TextColor3 = t.inputText
batchBtn.BackgroundColor3 = t.btnBatch
placeBtn.BackgroundColor3 = t.btnPlace
2
scriptToggle.BackgroundColor3 = t.btnScript
decompileToggle.BackgroundColor3 = t.btnDecomp
-- Buttons - Row 3 (SSA)
saveBtn.BackgroundColor3 = t.btnSave
saveBtn.TextColor3 = t.accent
loadBtn.BackgroundColor3 = t.btnLoad
loadBtn.TextColor3 = t.listItemText
themeBtn.BackgroundColor3 = t.btnTheme
themeBtn.TextColor3 = t.accent
-- Close
closeBtn.TextColor3 = t.btnClose
-- Info labels
rotationLabel.TextColor3 = t.infoText
previewInfo.TextColor3 = t.infoText
skyInfo.TextColor3 = t.infoText
themeInfo.TextColor3 = t.accent
sandboxInfo.TextColor3 = t.accent
-- Dialogs
saveDialog.BackgroundColor3 = t.listBg
loadDialog.BackgroundColor3 = t.listBg
-- Re-colour existing output lines
for _, lbl in ipairs(output:GetChildren()) do
if lbl:IsA("TextLabel") then lbl.TextColor3 = t.outputText end
end
-- Update theme info label
themeInfo.Text = "Theme: " .. t.name .. " (" .. idx .. "/" .. #THEMES .. ")"
end
-- ═══════════════════════════════════════════════════════════════════
-- SAVE LOGIC
-- ═══════════════════════════════════════════════════════════════════
local function doSave()
local t = THEMES[currentThemeIdx]
local name = nameBox.Text:match("^%s*(.-)%s*$")
if name == "" then
newLine("[Save] Filename cannot be empty.", t.errText)
saveDialog.Visible = false; return
end
name = name:gsub("%.lua$", "")
local path = SAVE_DIR .. "/" .. name .. ".lua"
local src = inputBox.Text
if src == "" then
newLine("[Save] Nothing to save.", Color3.fromRGB(255, 200, 60))
saveDialog.Visible = false; nameBox.Text = ""; return
end
local ok, err = pcall(function()
ensureDir()
writefile(path, src)
end)
saveDialog.Visible = false; nameBox.Text = ""
if ok then
newLine("[Save] Saved -> " .. path, t.accent)
else
newLine("[Save] Failed: " .. tostring(err), t.errText)
end
end
saveBtn.MouseButton1Click:Connect(function()
if inputBox.Text == "" then
newLine("[Save] Nothing to save.", Color3.fromRGB(255, 200, 60)); return
end
saveDialog.Visible = true
nameBox:CaptureFocus()
end)
confirmBtn.MouseButton1Click:Connect(doSave)
cancelSaveBtn.MouseButton1Click:Connect(function()
saveDialog.Visible = false; nameBox.Text = ""
end)
nameBox.FocusLost:Connect(function(enter) if enter then doSave() end end)
-- ═══════════════════════════════════════════════════════════════════
-- LOAD LOGIC
-- ═══════════════════════════════════════════════════════════════════
local function refreshFileList()
for _, child in ipairs(fileList:GetChildren()) do
if not child:IsA("UIListLayout") then child:Destroy() end
end
local t = THEMES[currentThemeIdx]
local files = {}
local ok, result = pcall(listfiles, SAVE_DIR)
if ok and type(result) == "table" then
for _, path in ipairs(result) do
if path:match("%.lua$") then table.insert(files, path) end
end
end
if #files == 0 then
local empty = RealInstance.new("TextLabel", fileList)
empty.Size = UDim2.new(1, 0, 0, 22)
empty.BackgroundTransparency = 1
empty.Font = Enum.Font.SourceSans
empty.TextColor3 = Color3.fromRGB(120, 120, 120)
empty.TextSize = 13
empty.Text = "(no saved scripts)"
empty.TextXAlignment = Enum.TextXAlignment.Left
empty.ZIndex = 12
do local p = RealInstance.new("UIPadding", empty); p.PaddingLeft = UDim.new(0, 6) end
return
end
table.sort(files)
for _, fullPath in ipairs(files) do
local displayName = (fullPath:match("([^/\\]+)$") or fullPath):gsub("%.lua$", "")
local row = RealInstance.new("TextButton", fileList)
row.Size = UDim2.new(1, 0, 0, 24)
row.BackgroundColor3 = t.listItemBg
row.BackgroundTransparency = 0.3
row.BorderSizePixel = 0
row.Font = Enum.Font.SourceSans
row.TextColor3 = t.listItemText
row.TextSize = 13
row.TextXAlignment = Enum.TextXAlignment.Left
row.Text = " > " .. displayName
row.ZIndex = 12
RealInstance.new("UICorner", row).CornerRadius = UDim.new(0, 6)
do local p = RealInstance.new("UIPadding", row); p.PaddingLeft = UDim.new(0, 4) end
row.MouseButton1Click:Connect(function()
local readOk, content = pcall(readfile, fullPath)
if readOk and type(content) == "string" then
inputBox.Text = content
loadDialog.Visible = false
newLine("[Load] <- " .. displayName, t.listItemText)
else
newLine("[Load] Failed to read: " .. tostring(content), t.errText)
loadDialog.Visible = false
end
end)
end
end
loadBtn.MouseButton1Click:Connect(function()
ensureDir()
refreshFileList()
loadDialog.Visible = true
end)
cancelLoadBtn.MouseButton1Click:Connect(function() loadDialog.Visible = false end)
-- ═══════════════════════════════════════════════════════════════════
-- THEME CYCLING
-- ═══════════════════════════════════════════════════════════════════
themeBtn.MouseButton1Click:Connect(function()
local nextIdx = (currentThemeIdx % #THEMES) + 1
applyTheme(nextIdx)
newLine("[Theme] -> " .. THEMES[nextIdx].name, THEMES[nextIdx].accent)
end)
-- ═══════════════════════════════════════════════════════════════════
-- BUTTON FUNCTIONALITY (from Inserter v5.4)
-- ═══════════════════════════════════════════════════════════════════
-- Batch Insert
batchBtn.MouseButton1Click:Connect(function()
local text = inputBox.Text:gsub("%s", "")
if text == "" then newLine("[Insert] Enter at least one model ID.", THEMES[currentThemeIdx].errText); return end
batchInsert(inputBox.Text)
inputBox.Text = ""
end)
-- Script toggle
scriptToggle.MouseButton1Click:Connect(function()
enableScripts = not enableScripts
scriptToggle.Text = enableScripts and "Scripts: ON" or "Scripts: OFF"
scriptToggle.BackgroundColor3 = enableScripts and Color3.fromRGB(0, 200, 0) or Color3.fromRGB(60, 60, 70)
newLine("[Config] Scripts " .. (enableScripts and "ENABLED" or "DISABLED"),
enableScripts and Color3.fromRGB(80, 220, 120) or Color3.fromRGB(200, 100, 100))
end)
-- Decompile toggle
decompileToggle.MouseButton1Click:Connect(function()
if not decompilerLoaded then
loadDecompiler()
decompileInfo.Text = "Decompiler: " .. (decompilerLoaded and "LOADED" or "FAILED")
decompileInfo.TextColor3 = decompilerLoaded and Color3.fromRGB(180, 255, 180) or Color3.fromRGB(255, 100, 100)
end
if decompilerLoaded then
enableDecompilation = not enableDecompilation
decompileToggle.Text = enableDecompilation and "Decompile: ON" or "Decompile: OFF"
decompileToggle.BackgroundColor3 = enableDecompilation and Color3.fromRGB(200, 0, 200) or Color3.fromRGB(80, 60, 70)
newLine("[Config] Decompilation " .. (enableDecompilation and "ENABLED" or "DISABLED"),
enableDecompilation and Color3.fromRGB(200, 100, 255) or Color3.fromRGB(200, 100, 100))
else
decompileToggle.Text = "Decompile: FAILED"
decompileToggle.BackgroundColor3 = Color3.fromRGB(255, 50, 50)
task.wait(2)
decompileToggle.Text = "Decompile: OFF"
decompileToggle.BackgroundColor3 = Color3.fromRGB(80, 60, 70)
end
end)
-- Place Mode toggle
placeBtn.MouseButton1Click:Connect(function()
placeMode = not placeMode
placeBtn.Text = placeMode and "PLACE MODE: ON" or "PLACE MODE: OFF"
placeBtn.BackgroundColor3 = placeMode and Color3.fromRGB(0, 220, 255) or Color3.fromRGB(120, 80, 255)
if placeMode then
local id = inputBox.Text:match("%d+")
if not id then
placeMode = false
placeBtn.Text = "PLACE MODE: OFF (No ID!)"
placeBtn.BackgroundColor3 = Color3.fromRGB(255, 80, 80)
newLine("[Place] Enter a model ID first.", THEMES[currentThemeIdx].errText)
task.wait(2)
placeBtn.Text = "PLACE MODE: OFF"
placeBtn.BackgroundColor3 = Color3.fromRGB(120, 80, 255)
return
end
currentPlaceAssetId = tonumber(id)
createIndicator()
resetRotation()
currentPreviewModel = createPreviewModel(id)
if currentPreviewModel then
newLine("[Place] Preview for model " .. id .. " created.", Color3.fromRGB(100, 255, 200))
else
newLine("[Place] Could not create preview for " .. id .. ".", THEMES[currentThemeIdx].errText)
end
else
if placingIndicator then placingIndicator:Destroy(); placingIndicator = nil end
if currentPreviewModel then currentPreviewModel:Destroy(); currentPreviewModel = nil end
currentPlaceAssetId = nil
newLine("[Place] Mode deactivated.", Color3.fromRGB(180, 180, 180))
end
end)
-- ═══════════════════════════════════════════════════════════════════
-- INPUT HANDLING
-- ═══════════════════════════════════════════════════════════════════
-- Enter key fires batch insert
inputBox.FocusLost:Connect(function(enter)
if enter then batchBtn.MouseButton1Click:Fire() end
end)
-- Rotation controls
UserInputService.InputBegan:Connect(function(input, gp)
if gp or not placeMode then return end
if input.KeyCode == Enum.KeyCode.Q then
currentRotation = currentRotation * CFrame.Angles(0, math.rad(-15), 0)
elseif input.KeyCode == Enum.KeyCode.E then
currentRotation = currentRotation * CFrame.Angles(0, math.rad(15), 0)
elseif input.KeyCode == Enum.KeyCode.Z then
currentRotation = currentRotation * CFrame.Angles(math.rad(-15), 0, 0)
elseif input.KeyCode == Enum.KeyCode.X then
currentRotation = currentRotation * CFrame.Angles(math.rad(15), 0, 0)
elseif input.KeyCode == Enum.KeyCode.R then
resetRotation()
end
end)
-- Click to place
UserInputService.InputBegan:Connect(function(input)
if placeMode and input.UserInputType == Enum.UserInputType.MouseButton1 and currentPlaceAssetId then
local pos = Mouse.Hit.p + Vector3.new(0, 2.5, 0)
local finalCFrame = CFrame.new(pos) * currentRotation
local success = insertAsset(currentPlaceAssetId, finalCFrame)
if success then
newLine("[Place] Placed model at " .. tostring(pos), Color3.fromRGB(100, 255, 200))
end
end
end)
-- Real-time preview update
RunService.RenderStepped:Connect(function()
if placeMode then
if placingIndicator and Mouse.Hit then
local pos = Mouse.Hit.p + Vector3.new(0, 2.5, 0)
local cf = CFrame.new(pos) * currentRotation
placingIndicator:PivotTo(cf)
end
updatePreviewPosition()
end
end)
-- ═══════════════════════════════════════════════════════════════════
-- TOOL EQUIP/UNEQUIP HOOKS (ported from SSA)
-- ═══════════════════════════════════════════════════════════════════
local function hookCharacter(char)
char.ChildAdded:Connect(function(child)
if child:IsA("Tool") then
local guis = _G._ToolGUIRegistry[child.Name]
if guis then
for _, g in ipairs(guis) do pcall(function() g.Enabled = true end) end
end
end
end)
char.ChildRemoved:Connect(function(child)
if child:IsA("Tool") then
local guis = _G._ToolGUIRegistry[child.Name]
if guis then
for _, g in ipairs(guis) do pcall(function() g.Enabled = false end) end
end
end
end)
end
if LocalPlayer.Character then hookCharacter(LocalPlayer.Character) end
LocalPlayer.CharacterAdded:Connect(hookCharacter)
-- ═══════════════════════════════════════════════════════════════════
-- INITIALIZE
-- ═══════════════════════════════════════════════════════════════════
applyTheme(1)
-- Auto-load decompiler in background
task.spawn(function()
loadDecompiler()
decompileInfo.Text = "Decompiler: " .. (decompilerLoaded and "LOADED" or "FAILED")
decompileInfo.TextColor3 = decompilerLoaded and Color3.fromRGB(180, 255, 180) or Color3.fromRGB(255, 100, 100)
end)
-- Print startup info to console
local ageDays = LocalPlayer.AccountAge
local years = math.floor(ageDays / 365)
local months = math.floor((ageDays % 365) / 30)
newLine("Rob's Inserter v6.0 ULTIMATE + SSA Sandbox Engine")
newLine("Player: " .. LocalPlayer.Name .. " (" .. LocalPlayer.UserId .. ")")
newLine("Account Age: " .. years .. "y " .. months .. "m " .. ageDays .. "d")
newLine("Theme: SSA (1/" .. #THEMES .. ")")
newLine("SSA Sandbox: ACTIVE | SmartRequire: READY")
newLine("Save Dir: " .. SAVE_DIR .. "/")
newLine("Q/E=Rotate | Z/X=Tilt | R=Reset | Click=Place")
newLine("--------------------------------------------------")
print("================================================")
print(" ROB'S MODEL INSERTER v6.0 ULTIMATE + SSA ENGINE ")
print(" * Batch Insert * Click-to-Place ")
print(" * Full Rotation: Q/E (Y) | Z/X (Tilt) | R ")
print(" * SSA SmartRequire Sandbox Execution ")
print(" * Module Caching & Circular Dep Prevention ")
print(" * 9 Built-in Themes (THM to cycle) ")
print(" * Save/Load Scripts (SAV/LOD) ")
print(" * Tool GUI Registry (auto show/hide) ")
print(" * Advanced Decompiler Integration ")
print(" * Automatic Sky Texture Application ")
print(" * Live Model Preview in Place Mode ")
print("================================================")
Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: raw.githubusercontent.com.
Credits to rob and little bit of help from ai to make this a masterpiece and this is not FE btw Update: New theme toggle + save and load feature + new script decompiler
Never paste your .ROBLOSECURITY cookie anywhere, and use an alt account with scripts.

Universal