Untitled

Run Settings
LanguageLua
Language Version
Run Command
-- Converted using Mokiros's Model to Script Version 3 -- Converted string size: 5896 characters local function Decode(str) local StringLength = #str -- Base64 decoding do local decoder = {} for b64code, char in pairs(('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='):split('')) do decoder[char:byte()] = b64code-1 end local n = StringLength local t,k = table.create(math.floor(n/4)+1),1 local padding = str:sub(-2) == '==' and 2 or str:sub(-1) == '=' and 1 or 0 for i = 1, padding > 0 and n-4 or n, 4 do local a, b, c, d = str:byte(i,i+3) local v = decoder[a]*0x40000 + decoder[b]*0x1000 + decoder[c]*0x40 + decoder[d] t[k] = string.char(bit32.extract(v,16,8),bit32.extract(v,8,8),bit32.extract(v,0,8)) k = k + 1 end if padding == 1 then local a, b, c = str:byte(n-3,n-1) local v = decoder[a]*0x40000 + decoder[b]*0x1000 + decoder[c]*0x40 t[k] = string.char(bit32.extract(v,16,8),bit32.extract(v,8,8)) elseif padding == 2 then local a, b = str:byte(n-3,n-2) local v = decoder[a]*0x40000 + decoder[b]*0x1000 t[k] = string.char(bit32.extract(v,16,8)) end str = table.concat(t) end local Position = 1 local function Parse(fmt) local Values = {string.unpack(fmt,str,Position)} Position = table.remove(Values) return table.unpack(Values) end local Settings = Parse('B') local Flags = Parse('B') Flags = { --[[ValueIndexByteLength]] bit32.extract(Flags,6,2)+1, --[[InstanceIndexByteLength]] bit32.extract(Flags,4,2)+1, --[[ConnectionsIndexByteLength]] bit32.extract(Flags,2,2)+1, --[[MaxPropertiesLengthByteLength]] bit32.extract(Flags,0,2)+1, --[[Use Double instead of Float]] bit32.band(Settings,0b1) > 0 } local ValueFMT = ('I'..Flags[1]) local InstanceFMT = ('I'..Flags[2]) local ConnectionFMT = ('I'..Flags[3]) local PropertyLengthFMT = ('I'..Flags[4]) local ValuesLength = Parse(ValueFMT) local Values = table.create(ValuesLength) local CFrameIndexes = {} local ValueDecoders = { --!!Start [1] = function(Modifier) return Parse('s'..Modifier) end, --!!Split [2] = function(Modifier) return Modifier ~= 0 end, --!!Split [3] = function() return Parse('d') end, --!!Split [4] = function(_,Index) table.insert(CFrameIndexes,{Index,Parse(('I'..Flags[1]):rep(3))}) end, --!!Split [5] = {CFrame.new,Flags[5] and 'dddddddddddd' or 'ffffffffffff'}, --!!Split [6] = {Color3.fromRGB,'BBB'}, --!!Split [7] = {BrickColor.new,'I2'}, --!!Split [8] = function(Modifier) local len = Parse('I'..Modifier) local kpts = table.create(len) for i = 1,len do kpts[i] = ColorSequenceKeypoint.new(Parse('f'),Color3.fromRGB(Parse('BBB'))) end return ColorSequence.new(kpts) end, --!!Split [9] = function(Modifier) local len = Parse('I'..Modifier) local kpts = table.create(len) for i = 1,len do kpts[i] = NumberSequenceKeypoint.new(Parse(Flags[5] and 'ddd' or 'fff')) end return NumberSequence.new(kpts) end, --!!Split [10] = {Vector3.new,Flags[5] and 'ddd' or 'fff'}, --!!Split [11] = {Vector2.new,Flags[5] and 'dd' or 'ff'}, --!!Split [12] = {UDim2.new,Flags[5] and 'di2di2' or 'fi2fi2'}, --!!Split [13] = {Rect.new,Flags[5] and 'dddd' or 'ffff'}, --!!Split [14] = function() local flags = Parse('B') local ids = {"Top","Bottom","Left","Right","Front","Back"} local t = {} for i = 0,5 do if bit32.extract(flags,i,1)==1 then table.insert(t,Enum.NormalId[ids[i+1]]) end end return Axes.new(unpack(t)) end, --!!Split [15] = function() local flags = Parse('B') local ids = {"Top","Bottom","Left","Right","Front","Back"} local t = {} for i = 0,5 do if bit32.extract(flags,i,1)==1 then table.insert(t,Enum.NormalId[ids[i+1]]) end end return Faces.new(unpack(t)) end, --!!Split [16] = {PhysicalProperties.new,Flags[5] and 'ddddd' or 'fffff'}, --!!Split [17] = {NumberRange.new,Flags[5] and 'dd' or 'ff'}, --!!Split [18] = {UDim.new,Flags[5] and 'di2' or 'fi2'}, --!!Split [19] = function() return Ray.new(Vector3.new(Parse(Flags[5] and 'ddd' or 'fff')),Vector3.new(Parse(Flags[5] and 'ddd' or 'fff'))) end --!!End } for i = 1,ValuesLength do local TypeAndModifier = Parse('B') local Type = bit32.band(TypeAndModifier,0b11111) local Modifier = (TypeAndModifier - Type) / 0b100000 local Decoder = ValueDecoders[Type] if type(Decoder)=='function' then Values[i] = Decoder(Modifier,i) else Values[i] = Decoder[1](Parse(Decoder[2])) end end for i,t in pairs(CFrameIndexes) do Values[t[1]] = CFrame.fromMatrix(Values[t[2]],Values[t[3]],Values[t[4]]) end local InstancesLength = Parse(InstanceFMT) local Instances = {} local NoParent = {} for i = 1,InstancesLength do local ClassName = Values[Parse(ValueFMT)] local obj local MeshPartMesh,MeshPartScale if ClassName == "UnionOperation" then obj = DecodeUnion(Values,Flags,Parse) obj.UsePartColor = true elseif ClassName:find("Script") then obj = Instance.new("Folder") Script(obj,ClassName=='ModuleScript') elseif ClassName == "MeshPart" then obj = Instance.new("Part") MeshPartMesh = Instance.new("SpecialMesh") MeshPartMesh.MeshType = Enum.MeshType.FileMesh MeshPartMesh.Parent = obj else obj = Instance.new(ClassName) end local Parent = Instances[Parse(InstanceFMT)] local PropertiesLength = Parse(PropertyLengthFMT) local AttributesLength = Parse(PropertyLengthFMT) Instances[i] = obj for i = 1,PropertiesLength do local Prop,Value = Values[Parse(ValueFMT)],Values[Parse(ValueFMT)] -- ok this looks awful if MeshPartMesh then if Prop == "MeshId" then MeshPartMesh.MeshId = Value continue elseif Prop == "TextureID" then MeshPartMesh.TextureId = Value continue elseif Prop == "Size" then if not MeshPartScale then MeshPartScale = Value else MeshPartMesh.Scale = Value / MeshPartScale end elseif Prop == "MeshSize" then if not MeshPartScale then MeshPartScale = Value MeshPartMesh.Scale = obj.Size / Value else MeshPartMesh.Scale = MeshPartScale / Value end continue end end obj[Prop] = Value end if MeshPartMesh then if MeshPartMesh.MeshId=='' then if MeshPartMesh.TextureId=='' then MeshPartMesh.TextureId = 'rbxasset://textures/meshPartFallback.png' end MeshPartMesh.Scale = obj.Size end end for i = 1,AttributesLength do obj:SetAttribute(Values[Parse(ValueFMT)],Values[Parse(ValueFMT)]) end if not Parent then table.insert(NoParent,obj) else obj.Parent = Parent end end local ConnectionsLength = Parse(ConnectionFMT) for i = 1,ConnectionsLength do local a,b,c = Parse(InstanceFMT),Parse(ValueFMT),Parse(InstanceFMT) Instances[a][Values[b]] = Instances[c] end return NoParent end local Objects = Decode('AACjIQZGb2xkZXIhBE5hbWUhB2Zpc2hpZXMhBU1vZGVsIQpzbWFsbCBmaXNoIQtQcmltYXJ5UGFydCEKV29ybGRQaXZvdASOj5AhBFBhcnQhBGJvZHkhCEFuY2hvcmVkIiENQm90dG9tU3VyZmFjZQMAAAAAAAAAACEGQ0ZyYW1lBBSPkCEKQ2FuQ29sbGlkZQIhCFBv' ..'c2l0aW9uCnWTScIAALA/wzXuQiEEU2l6ZQqamZk/mpkZP83MzD4hClRvcFN1cmZhY2UhBFdlbGQhBkJUV2VsZCECQzEEkZKQIQVQYXJ0MCEFUGFydDEEk5SQBJWUkASWl5AhB2Zpbl90b3AEI5iQCnWTScLNzPw/wjXuQgqamZk/mpkZP28SgzohDFRyYW5zcGFyZW5j' ..'eQMAAAAAAADwPyEEdGFpbAQpmJAKdZNNwgAAsD/CNe5CCs3MTD+amRk/bxKDOiEIZmluX2xlZnQEL5mQIQtPcmllbnRhdGlvbgoAAAAAAAA0wgAAAAAKgZVJwjMzoz8AjO1CIQhSb3RhdGlvbgrNzMw+zczMPm8SgzohCWZpbl9yaWdodAQ1kpAKAAAAAAAANEIAAAAA' ..'CoCVScIzM6M/49ruQiEMYmFzZV90ZXh0dXJlIQpTdXJmYWNlR3VpIQ5aSW5kZXhCZWhhdmlvciEHQWRvcm5lZSEQQ2xpcHNEZXNjZW5kYW50cyEOTGlnaHRJbmZsdWVuY2UhClNpemluZ01vZGUhCkltYWdlTGFiZWwhB3RleHR1cmUhEEJhY2tncm91bmRDb2xvcjMG' ..'////IRZCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5IQxCb3JkZXJDb2xvcjMGAAAAIQ9Cb3JkZXJTaXplUGl4ZWwMAACAPwAAAACAPwAAIQVJbWFnZSEYcmJ4YXNzZXRpZDovLzE2MDg5NjU5NjMzIQ9JbWFnZVJlY3RPZmZzZXQLAAAAQQAAwEAhDUltYWdlUmVjdFNpemUL' ..'AADAQAAAQEAhBEZhY2UDAAAAAAAAAEALAAAAAAAAwEALAADAQAAAwEALAAAAQAAAQEADAAAAAAAACEALAABgQQAAwEALAADAQAAAAAALAAAAQAAAwEADAAAAAAAAEEALAAAAQQAAAAALAAAAQgAAAAALAACAwAAAQEALAADgQQAAAAALAACAQAAAQEALAACAQQAAAAAL' ..'AADAQAAAgEALAACwQQAAAAALAADAwAAAgEALAACAQAAAgEELAAAAwAAAAEALAAAAQAAAgEELAAAAQAAAAEALAAAAQAAAQEELAACAQAAAQEEhBmRldGFpbCEHWk9mZnNldCEIYmlnIGZpc2gEmo+QBGqPkAp1k0nCzczMP48C6UIKmpmZP5qZmT/NzMw+BJuckASdnpAE' ..'n56QBKCekAShnpAEcp6QCoGVScKbmZk/k1joQgR0opAKgZVJwpuZmT/wp+lCBHajkArc+U3CzczMP48C6UIKAACAP5qZmT9vEoM6BHmjkAp1k0nCZmYmQI8C6UIKmpmZP83MTD9vEoM6IQtmaW5fYm90dG9tIAR9o5AKdZNJwpaZGT+PAulCIRhyYnhhc3NldGlkOi8v' ..'MTYwODk2NTgyNjYLAACgQQAA2EELAADQQQAA2EELAADQQQAAiEELAACgQQAAiEELAADAQAAA0EELAAAAQQAAoEELAADAQAAAoEELAABgQQAA0EELAAAAAAAA0EELAAAAQQAA0EELAADQQQAAqEELAACgwAAAwEALAACoQQAAqEELAACgQAAAwEAhGHJieGFzc2V0aWQ6' ..'Ly8xNjA4OTY1ODA1OQoPLUvCZmbWP3Ez7kIKAACAPwAAAAAAAAAACgAAAAAAAIA/AAAAAAoAwAK70MzMvQAgpT4K9QQ1PwAAAAD1BDW/CkB9fz/QzMy9ACGlPgr0BDU/AAAAAPQENb8KAMACuzQzM78AIaU+CoDN7D4AAAAAAM3sPgoAAAAAAAAAAAEAgL8KAgCAPwAA' ..'AAAAAAAACvYENT8AAAAA9gQ1Pwp1k0vCzMzMP0EA6UIKACPtPgAAAAAAI+2+CgAAAAAAAAAA//9/PwoAAAO7MTOzvwD8qb4K8wQ1PwAAAADzBDU/CmCLjD/IzMy+APypvgoAAAO7oJkZPwD8qb4KAAADu8jMzL4A/Km+CvIENT8AAAAA8gQ1vwr//38/AAAAAAAAAACT' ..'AQABAAIDBAECAAIFBwgJAggAAgoLDA0ODxAREhMUFRYXDhgDAgACGRobGAMCAAIZGh4YAwIAAhkaHxgDAgACGRogCQIIAAIhDQ4PIhESEyMVJBcOJSYJAggAAicNDg8oERITKRUqFw4lJgkCCgACKw0ODywREi0uEy8wLhUxFw4lJgkCCgACMg0ODzMREi00EzUwNBUx' ..'Fw4lJgECAQACNjcMBAA4JjoMOyY8Jj0NCQACPj9AQSZCQ0QOFUVGR0hJSks3DAUAOCY6DExNOyY8Jj0PCQACPj9AQSZCQ0QOFUVGR0hOSks3DAUAOCY6DEwOOyY8Jj0RCQACPj9AQSZCQ0QOFUVGR0hPSlA3DAUAOCY6DExROyY8Jj0TCQACPj9AQSZCQ0QOFUVGR0hS' ..'SlA3DAUAOCY6DEwmOyY8Jj0VCQACPj9AQSZCQ0QOFUVGR0hTSlQ3DAUAOCY6DExVOyY8Jj0XCQACPj9AQSZCQ0QOFUVGR0hWSlQ3DAUAOCY6DExNOyY8Jj0ZCQACPj9AQSZCQ0QOFUVGR0hXSlg3DAQAOCY6DDsmPCY9GwkAAj4/QEEmQkNEDhVFRkdIWUpaNwwEADgm' ..'Ogw7JjwmPR0JAAI+P0BBJkJDRA4VRUZHSFtKXDcMBQA4JjoMTE07JjwmPR8JAAI+P0BBJkJDRA4VRUZHSF1KXjcMBAA4JjoMOyY8Jj0hCQACPj9AQSZCQ0QOFUVGR0hfSmA3DAUAOCY6DExNOyY8Jj0jCQACPj9AQSZCQ0QOFUVGR0hhSmI3DAQAOCY6DDsmPCY9JQkA' ..'Aj4/QEEmQkNEDhVFRkdIY0piNwwFADgmOgxMTTsmPCY9JwkAAj4/QEEmQkNEDhVFRkdIZEpgAQIBAAJlNykFADgmOgw7JjwmZiY9KgkAAj4/QEEmQkNEDhVFRkdISUpLNykGADgmOgxMTTsmPCZmJj0sCQACPj9AQSZCQ0QOFUVGR0hOSks3KQYAOCY6DEwOOyY8JmYm' ..'PS4JAAI+P0BBJkJDRA4VRUZHSE9KUDcpBgA4JjoMTFE7JjwmZiY9MAkAAj4/QEEmQkNEDhVFRkdIUkpQNykGADgmOgxMJjsmPCZmJj0yCQACPj9AQSZCQ0QOFUVGR0hTSlQ3KQYAOCY6DExVOyY8JmYmPTQJAAI+P0BBJkJDRA4VRUZHSFZKVDcpBgA4JjoMTE07Jjwm' ..'ZiY9NgkAAj4/QEEmQkNEDhVFRkdIV0pYNykFADgmOgw7JjwmZiY9OAkAAj4/QEEmQkNEDhVFRkdIWUpaNykFADgmOgw7JjwmZiY9OgkAAj4/QEEmQkNEDhVFRkdIW0pcNykGADgmOgxMTTsmPCZmJj08CQACPj9AQSZCQ0QOFUVGR0hdSl43KQUAOCY6DDsmPCZmJj0+' ..'CQACPj9AQSZCQ0QOFUVGR0hfSmA3KQYAOCY6DExNOyY8JmYmPUAJAAI+P0BBJkJDRA4VRUZHSGFKYjcpBQA4JjoMOyY8JmYmPUIJAAI+P0BBJkJDRA4VRUZHSGNKYjcpBgA4JjoMTE07JjwmZiY9RAkAAj4/QEEmQkNEDhVFRkdIZEpgBAECAAJnB2gJRggAAgoLDA0O' ..'D2kREhNqFWsXDhhHAgACGRpsGEcCAAIZGm0YRwIAAhkabhhHAgACGRpvGEcCAAIZGnAJRgoAAisNDg9xERItLhNyMC4VMRcOJSYJRgoAAjINDg9zERItNBN0MDQVMRcOJSYJRggAAicNDg91ERITdhV3Fw4lJglGCAACIQ0OD3gREhN5FXoXDiUmCUYIAAJ7DQ4PfBES' ..'E30VehcOJSYBRgEAAjY3UgUAOCY6DExNOyY8Jj1TCQACPj9AQSZCQ0QOFUVGfkhkSmA3UgQAOCY6DDsmPCY9VQkAAj4/QEEmQkNEDhVFRn5IY0piN1IFADgmOgxMTTsmPCY9VwkAAj4/QEEmQkNEDhVFRn5IYUpiN1IEADgmOgw7JjwmPVkJAAI+P0BBJkJDRA4VRUZ+' ..'SF9KYDdSBQA4JjoMTE07JjwmPVsJAAI+P0BBJkJDRA4VRUZ+SH9KXDdSBAA4JjoMOyY8Jj1dCQACPj9AQSZCQ0QOFUVGfkiASl43UgQAOCY6DDsmPCY9XwkAAj4/QEEmQkNEDhVFRn5IgUpeN1IFADgmOgxMTTsmPCY9YQkAAj4/QEEmQkNEDhVFRn5IgkpcN1IFADgm' ..'OgxMDjsmPCY9YwkAAj4/QEEmQkNEDhVFRn5Ig0pUN1IFADgmOgxMVTsmPCY9ZQkAAj4/QEEmQkNEDhVFRn5IhEpUN1IFADgmOgxMJjsmPCY9ZwkAAj4/QEEmQkNEDhVFRn5IhUpUN1IFADgmOgxMUTsmPCY9aQkAAj4/QEEmQkNEDhVFRn5IhkpUN1IFADgmOgxMTTsm' ..'PCY9awkAAj4/QEEmQkNEDhVFRn5Ih0pPN1IEADgmOgw7JjwmPW0JAAI+P0BBJkJDRA4VRUZ+SIhKTzdSBAA4JjoMOyY8Jj1vCQACPj9AQSZCQ0QOFUVGfkiJSoo3UgUAOCY6DExNOyY8Jj1xCQACPj9AQSZCQ0QOFUVGfkiLSowBRgEAAmU3cwYAOCY6DExNOyY8JmYm' ..'PXQJAAI+P0BBJkJDRA4VRUZ+SGRKYDdzBQA4JjoMOyY8JmYmPXYJAAI+P0BBJkJDRA4VRUZ+SGNKYjdzBgA4JjoMTE07JjwmZiY9eAkAAj4/QEEmQkNEDhVFRn5IYUpiN3MFADgmOgw7JjwmZiY9egkAAj4/QEEmQkNEDhVFRn5IX0pgN3MGADgmOgxMTTsmPCZmJj18' ..'CQACPj9AQSZCQ0QOFUVGfkh/Slw3cwUAOCY6DDsmPCZmJj1+CQACPj9AQSZCQ0QOFUVGfkiASl43cwUAOCY6DDsmPCZmJj2ACQACPj9AQSZCQ0QOFUVGfkiBSl43cwYAOCY6DExNOyY8JmYmPYIJAAI+P0BBJkJDRA4VRUZ+SIJKXDdzBgA4JjoMTA47JjwmZiY9hAkA' ..'Aj4/QEEmQkNEDhVFRn5Ig0pUN3MGADgmOgxMVTsmPCZmJj2GCQACPj9AQSZCQ0QOFUVGfkiESlQ3cwYAOCY6DEwmOyY8JmYmPYgJAAI+P0BBJkJDRA4VRUZ+SIVKVDdzBgA4JjoMTFE7JjwmZiY9igkAAj4/QEEmQkNEDhVFRn5IhkpUN3MGADgmOgxMTTsmPCZmJj2M' ..'CQACPj9AQSZCQ0QOFUVGjUiHSk83cwUAOCY6DDsmPCZmJj2OCQACPj9AQSZCQ0QOFUVGfkiISk83cwUAOCY6DDsmPCZmJj2QCQACPj9AQSZCQ0QOFUVGfkiJSoo3cwYAOCY6DExNOyY8JmYmPZIJAAI+P0BBJkJDRA4VRUZ+SItKjFACBgMEHAsEHQMFHAsFHQkGHAsG' ..'HQgHHAsHHQoNOQMPOQMROQMTOQMVOQMXOQMZOQkbOQkdOQgfOQghOQsjOQslOQonOQoqOQMsOQMuOQMwOQMyOQM0OQM2OQk4OQk6OQg8OQg+OQtAOQtCOQpEOQpGBkdIHE1IHU5JHE1JHVBKHE1KHU9LHE1LHVFMHE1MHUdTOU1VOU1XOU5ZOU5bOVFdOVFfOVBhOVBj' ..'OUdlOUdnOUdpOUdrOUdtOUdvOU9xOU90OU12OU14OU56OU58OVF+OVGAOVCCOVCEOUeGOUeIOUeKOUeMOUeOOUeQOU+SOU8=') return Objects
Editor Settings
Theme
Key bindings
Full width
Lines