From 009d84f49f90d0fcf1f16f84ce7fb7fe20786bab Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 1 May 2021 17:40:09 -0500 Subject: [PATCH] 0.476.0.421371 --- BinaryFormat/BinaryRobloxFile.cs | 19 +- BinaryFormat/Chunks/PROP.cs | 331 +- Generated/Classes.cs | 28 +- Generated/Enums.cs | 9 +- Plugins/GenerateApiDump.rbxm | Bin 15847 -> 15958 bytes Plugins/GenerateApiDump/PropertyPatches.lua | 2 + Plugins/GenerateApiDump/init.server.lua | 13 +- RobloxFileFormat.csproj | 1 + RobloxFileFormat.dll | Bin 372224 -> 388096 bytes Tokens/CFrame.cs | 31 +- Tokens/OptionalCFrame.cs | 33 + Tokens/ProtectedString.cs | 4 +- Tree/Attributes.cs | 35 +- Tree/Property.cs | 36 +- UnitTest/Files/Binary.rbxl | Bin 269183 -> 271031 bytes UnitTest/Files/Xml.rbxlx | 4659 +++++++++---------- UnitTest/RobloxFileFormat.UnitTest.csproj | 2 +- XmlFormat/XmlRobloxFile.cs | 4 + 18 files changed, 2513 insertions(+), 2694 deletions(-) create mode 100644 Tokens/OptionalCFrame.cs diff --git a/BinaryFormat/BinaryRobloxFile.cs b/BinaryFormat/BinaryRobloxFile.cs index 345f711..cb4b79c 100644 --- a/BinaryFormat/BinaryRobloxFile.cs +++ b/BinaryFormat/BinaryRobloxFile.cs @@ -82,31 +82,46 @@ namespace RobloxFiles switch (chunk.ChunkType) { case "INST": + { handler = new INST(); break; + } case "PROP": + { handler = new PROP(); break; + } case "PRNT": + { handler = new PRNT(); break; + } case "META": + { handler = new META(); break; + } case "SSTR": + { handler = new SSTR(); break; + } case "SIGN": + { handler = new SIGN(); break; + } case "END\0": + { ChunksImpl.Add(chunk); reading = false; break; + } case string unhandled: - Console.Error.WriteLine("BinaryRobloxFile - Unhandled chunk-type: {0}!", unhandled); + { + LogError($"BinaryRobloxFile - Unhandled chunk-type: {unhandled}!"); break; - default: break; + } } if (handler != null) diff --git a/BinaryFormat/Chunks/PROP.cs b/BinaryFormat/Chunks/PROP.cs index ece1580..62f8185 100644 --- a/BinaryFormat/Chunks/PROP.cs +++ b/BinaryFormat/Chunks/PROP.cs @@ -1,31 +1,32 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Reflection; using System.Text; using RobloxFiles.Enums; using RobloxFiles.DataTypes; using RobloxFiles.Utility; - using System.Diagnostics; +using System.IO; namespace RobloxFiles.BinaryFormat.Chunks { public class PROP : IBinaryFileChunk { private BinaryRobloxFile File; + public string Name { get; internal set; } - public int ClassIndex { get; internal set; } - public string ClassName { get; private set; } + + private INST Class => File.Classes[ClassIndex]; + public string ClassName => Class?.ClassName; public PropertyType Type { get; internal set; } - public byte TypeId + internal byte TypeId { get { return (byte)Type; } - internal set { Type = (PropertyType)value; } + set { Type = (PropertyType)value; } } public override string ToString() @@ -35,26 +36,29 @@ namespace RobloxFiles.BinaryFormat.Chunks public void Load(BinaryRobloxFileReader reader) { - BinaryRobloxFile file = reader.File; - File = file; - + File = reader.File; ClassIndex = reader.ReadInt32(); Name = reader.ReadString(); - byte propType = reader.ReadByte(); - Type = (PropertyType)propType; - - INST inst = file.Classes[ClassIndex]; - ClassName = inst.ClassName; + try + { + byte propType = reader.ReadByte(); + Type = (PropertyType)propType; + } + catch (EndOfStreamException) + { + RobloxFile.LogError($"Got corrupted PROP chunk (@ {this})!"); + return; + } - var ids = inst.InstanceIds; - int instCount = inst.NumInstances; - var props = new Property[inst.NumInstances]; + var ids = Class.InstanceIds; + int instCount = Class.NumInstances; + var props = new Property[instCount]; for (int i = 0; i < instCount; i++) { int id = ids[i]; - Instance instance = file.Instances[id]; + Instance instance = File.Instances[id]; if (instance == null) { @@ -62,7 +66,7 @@ namespace RobloxFiles.BinaryFormat.Chunks continue; } - Property prop = new Property(instance, this); + var prop = new Property(instance, this); props[i] = prop; instance.AddProperty(ref prop); @@ -88,10 +92,11 @@ namespace RobloxFiles.BinaryFormat.Chunks switch (Type) { case PropertyType.String: + { readProperties(i => { string value = reader.ReadString(); - + // Leave an access point for the original byte sequence, in case this is a BinaryString. // This will allow the developer to read the sequence without any mangling from C# strings. byte[] buffer = reader.GetLastStringBuffer(); @@ -104,7 +109,9 @@ namespace RobloxFiles.BinaryFormat.Chunks { case "Tags": case "AttributesSerialize": + { return buffer; + } default: { Property prop = props[i]; @@ -130,21 +137,31 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.Bool: + { readProperties(i => reader.ReadBoolean()); break; + } case PropertyType.Int: + { int[] ints = readInts(); readProperties(i => ints[i]); break; + } case PropertyType.Float: + { float[] floats = readFloats(); readProperties(i => floats[i]); break; + } case PropertyType.Double: + { readProperties(i => reader.ReadDouble()); break; + } case PropertyType.UDim: + { float[] UDim_Scales = readFloats(); int[] UDim_Offsets = readInts(); @@ -156,11 +173,13 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.UDim2: - float[] UDim2_Scales_X = readFloats(), + { + float[] UDim2_Scales_X = readFloats(), UDim2_Scales_Y = readFloats(); - int[] UDim2_Offsets_X = readInts(), + int[] UDim2_Offsets_X = readInts(), UDim2_Offsets_Y = readInts(); readProperties(i => @@ -175,7 +194,9 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.Ray: + { readProperties(i => { float posX = reader.ReadFloat(), @@ -186,14 +207,16 @@ namespace RobloxFiles.BinaryFormat.Chunks dirY = reader.ReadFloat(), dirZ = reader.ReadFloat(); - Vector3 origin = new Vector3(posX, posY, posZ); - Vector3 direction = new Vector3(dirX, dirY, dirZ); + var origin = new Vector3(posX, posY, posZ); + var direction = new Vector3(dirX, dirY, dirZ); return new Ray(origin, direction); }); break; + } case PropertyType.Faces: + { readProperties(i => { byte faces = reader.ReadByte(); @@ -201,7 +224,9 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.Axes: + { readProperties(i => { byte axes = reader.ReadByte(); @@ -209,17 +234,21 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.BrickColor: + { int[] BrickColorIds = readInts(); readProperties(i => { - int number = BrickColorIds[i]; - return BrickColor.FromNumber(number); + BrickColor color = BrickColorIds[i]; + return color; }); break; + } case PropertyType.Color3: + { float[] Color3_R = readFloats(), Color3_G = readFloats(), Color3_B = readFloats(); @@ -234,7 +263,9 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.Vector2: + { float[] Vector2_X = readFloats(), Vector2_Y = readFloats(); @@ -247,7 +278,9 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.Vector3: + { float[] Vector3_X = readFloats(), Vector3_Y = readFloats(), Vector3_Z = readFloats(); @@ -262,16 +295,30 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.CFrame: case PropertyType.Quaternion: - // Temporarily load the rotation matrices into their properties. - // We'll update them to CFrames once we iterate over the position data. + case PropertyType.OptionalCFrame: + { float[][] matrices = new float[instCount][]; + if (Type == PropertyType.OptionalCFrame) + { + byte cframeType = (byte)PropertyType.CFrame; + byte readType = reader.ReadByte(); + + if (readType != cframeType) + { + RobloxFile.LogError($"Unexpected property type in OptionalCFrame (expected {cframeType}, got {readType})"); + readProperties(i => null); + break; + } + } + for (int i = 0; i < instCount; i++) { byte rawOrientId = reader.ReadByte(); - + if (rawOrientId > 0) { // Make sure this value is in a safe range. @@ -296,11 +343,14 @@ namespace RobloxFiles.BinaryFormat.Chunks } else if (Type == PropertyType.Quaternion) { - float qx = reader.ReadFloat(), qy = reader.ReadFloat(), - qz = reader.ReadFloat(), qw = reader.ReadFloat(); + float qx = reader.ReadFloat(), + qy = reader.ReadFloat(), + qz = reader.ReadFloat(), + qw = reader.ReadFloat(); - Quaternion quaternion = new Quaternion(qx, qy, qz, qw); + var quaternion = new Quaternion(qx, qy, qz, qw); var rotation = quaternion.ToCFrame(); + matrices[i] = rotation.GetComponents(); } else @@ -321,7 +371,9 @@ namespace RobloxFiles.BinaryFormat.Chunks CFrame_Y = readFloats(), CFrame_Z = readFloats(); - readProperties(i => + var CFrames = new CFrame[instCount]; + + for (int i = 0; i < instCount; i++) { float[] matrix = matrices[i]; @@ -345,11 +397,34 @@ namespace RobloxFiles.BinaryFormat.Chunks components = position.Concat(matrix).ToArray(); } - return new CFrame(components); - }); + CFrames[i] = new CFrame(components); + } + if (Type == PropertyType.OptionalCFrame) + { + byte boolType = (byte)PropertyType.Bool; + byte readType = reader.ReadByte(); + + if (readType != boolType) + { + RobloxFile.LogError($"Unexpected property type in OptionalCFrame (expected {boolType}, got {readType})"); + readProperties(i => null); + break; + } + + for (int i = 0; i < instCount; i++) + { + var cf = CFrames[i]; + bool active = reader.ReadBoolean(); + CFrames[i] = active ? cf : null; + } + } + + readProperties(i => CFrames[i]); break; + } case PropertyType.Enum: + { uint[] enums = reader.ReadUInts(instCount); readProperties(i => @@ -366,31 +441,35 @@ namespace RobloxFiles.BinaryFormat.Chunks if (info == null) { - RobloxFile.LogError($"Enum cast failed for {inst.ClassName}.{Name} using value {value}!"); + RobloxFile.LogError($"Enum cast failed for {ClassName}.{Name} using value {value}!"); return value; } - + return Enum.Parse(info.MemberType, value.ToInvariantString()); } catch { - RobloxFile.LogError($"Enum cast failed for {inst.ClassName}.{Name} using value {value}!"); + RobloxFile.LogError($"Enum cast failed for {ClassName}.{Name} using value {value}!"); return value; } }); break; + } case PropertyType.Ref: + { var instIds = reader.ReadInstanceIds(instCount); readProperties(i => { int instId = instIds[i]; - return instId >= 0 ? file.Instances[instId] : null; + return instId >= 0 ? File.Instances[instId] : null; }); break; + } case PropertyType.Vector3int16: + { readProperties(i => { short x = reader.ReadInt16(), @@ -401,7 +480,9 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.NumberSequence: + { readProperties(i => { int numKeys = reader.ReadInt32(); @@ -420,7 +501,9 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.ColorSequence: + { readProperties(i => { int numKeys = reader.ReadInt32(); @@ -443,7 +526,9 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.NumberRange: + { readProperties(i => { float min = reader.ReadFloat(); @@ -453,7 +538,9 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.Rect: + { float[] Rect_X0 = readFloats(), Rect_Y0 = readFloats(), Rect_X1 = readFloats(), Rect_Y1 = readFloats(); @@ -466,11 +553,13 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.PhysicalProperties: + { readProperties(i => { bool custom = reader.ReadBoolean(); - + if (custom) { float Density = reader.ReadFloat(), @@ -493,11 +582,13 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.Color3uint8: + { byte[] Color3uint8_R = reader.ReadBytes(instCount), Color3uint8_G = reader.ReadBytes(instCount), Color3uint8_B = reader.ReadBytes(instCount); - + readProperties(i => { byte r = Color3uint8_R[i], @@ -509,26 +600,32 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.Int64: - long[] Int64s = reader.ReadInterleaved(instCount, (buffer, start) => + { + long[] longs = reader.ReadInterleaved(instCount, (buffer, start) => { long result = BitConverter.ToInt64(buffer, start); return (long)((ulong)result >> 1) ^ (-(result & 1)); }); - readProperties(i => Int64s[i]); + readProperties(i => longs[i]); break; + } case PropertyType.SharedString: + { uint[] SharedKeys = reader.ReadUInts(instCount); readProperties(i => { uint key = SharedKeys[i]; - return file.SharedStrings[key]; + return File.SharedStrings[key]; }); break; + } case PropertyType.ProtectedString: + { readProperties(i => { int length = reader.ReadInt32(); @@ -538,10 +635,12 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } default: - RobloxFile.LogError($"Unhandled property type: {Type}!"); + { + RobloxFile.LogError($"Unhandled property type: {Type} in {this}!"); break; - // + } } reader.Dispose(); @@ -574,7 +673,7 @@ namespace RobloxFiles.BinaryFormat.Chunks Name = prop.Name, Type = prop.Type, - ClassName = inst.ClassName, + File = writer.File, ClassIndex = inst.ClassIndex }; @@ -630,6 +729,7 @@ namespace RobloxFiles.BinaryFormat.Chunks break; case PropertyType.Bool: + { props.ForEach(prop => { bool value = prop.CastValue(); @@ -637,29 +737,27 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.Int: - var ints = new List(); - - props.ForEach(prop => - { - int value = prop.CastValue(); - ints.Add(value); - }); + { + var ints = props + .Select(prop => prop.CastValue()) + .ToList(); writer.WriteInts(ints); break; + } case PropertyType.Float: - var floats = new List(); - - props.ForEach(prop => - { - float value = prop.CastValue(); - floats.Add(value); - }); + { + var floats = props + .Select(prop => prop.CastValue()) + .ToList(); writer.WriteFloats(floats); break; + } case PropertyType.Double: + { props.ForEach(prop => { double value = prop.CastValue(); @@ -667,7 +765,9 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.UDim: + { var UDim_Scales = new List(); var UDim_Offsets = new List(); @@ -682,7 +782,9 @@ namespace RobloxFiles.BinaryFormat.Chunks writer.WriteInts(UDim_Offsets); break; + } case PropertyType.UDim2: + { var UDim2_Scales_X = new List(); var UDim2_Scales_Y = new List(); @@ -707,7 +809,9 @@ namespace RobloxFiles.BinaryFormat.Chunks writer.WriteInts(UDim2_Offsets_Y); break; + } case PropertyType.Ray: + { props.ForEach(prop => { Ray ray = prop.CastValue(); @@ -724,27 +828,30 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.Faces: case PropertyType.Axes: + { props.ForEach(prop => { byte value = prop.CastValue(); writer.Write(value); }); - + break; + } case PropertyType.BrickColor: - var BrickColorIds = new List(); + { + var brickColorIds = props + .Select(prop => prop.CastValue()) + .Select(value => value.Number) + .ToList(); - props.ForEach(prop => - { - BrickColor value = prop.CastValue(); - BrickColorIds.Add(value.Number); - }); - - writer.WriteInts(BrickColorIds); + writer.WriteInts(brickColorIds); break; + } case PropertyType.Color3: + { var Color3_R = new List(); var Color3_G = new List(); var Color3_B = new List(); @@ -762,7 +869,9 @@ namespace RobloxFiles.BinaryFormat.Chunks writer.WriteFloats(Color3_B); break; + } case PropertyType.Vector2: + { var Vector2_X = new List(); var Vector2_Y = new List(); @@ -777,7 +886,9 @@ namespace RobloxFiles.BinaryFormat.Chunks writer.WriteFloats(Vector2_Y); break; + } case PropertyType.Vector3: + { var Vector3_X = new List(); var Vector3_Y = new List(); var Vector3_Z = new List(); @@ -795,12 +906,18 @@ namespace RobloxFiles.BinaryFormat.Chunks writer.WriteFloats(Vector3_Z); break; + } case PropertyType.CFrame: case PropertyType.Quaternion: + case PropertyType.OptionalCFrame: + { var CFrame_X = new List(); var CFrame_Y = new List(); var CFrame_Z = new List(); + if (Type == PropertyType.OptionalCFrame) + writer.Write((byte)PropertyType.CFrame); + props.ForEach(prop => { CFrame value = null; @@ -809,7 +926,10 @@ namespace RobloxFiles.BinaryFormat.Chunks value = q.ToCFrame(); else value = prop.CastValue(); - + + if (value == null) + value = new CFrame(); + Vector3 pos = value.Position; CFrame_X.Add(pos.X); CFrame_Y.Add(pos.Y); @@ -845,27 +965,47 @@ namespace RobloxFiles.BinaryFormat.Chunks writer.WriteFloats(CFrame_Y); writer.WriteFloats(CFrame_Z); + if (Type == PropertyType.OptionalCFrame) + { + writer.Write((byte)PropertyType.Bool); + + props.ForEach(prop => + { + if (prop.Value is null) + { + writer.Write(false); + return; + } + + writer.Write(true); + }); + } + break; + } case PropertyType.Enum: - var Enums = new List(); + { + var enums = new List(); props.ForEach(prop => { if (prop.Value is uint raw) { - Enums.Add(raw); + enums.Add(raw); return; } int signed = (int)prop.Value; uint value = (uint)signed; - Enums.Add(value); + enums.Add(value); }); - writer.WriteInterleaved(Enums); + writer.WriteInterleaved(enums); break; + } case PropertyType.Ref: + { var InstanceIds = new List(); props.ForEach(prop => @@ -883,7 +1023,9 @@ namespace RobloxFiles.BinaryFormat.Chunks writer.WriteInstanceIds(InstanceIds); break; + } case PropertyType.Vector3int16: + { props.ForEach(prop => { Vector3int16 value = prop.CastValue(); @@ -891,9 +1033,11 @@ namespace RobloxFiles.BinaryFormat.Chunks writer.Write(value.Y); writer.Write(value.Z); }); - + break; + } case PropertyType.NumberSequence: + { props.ForEach(prop => { NumberSequence value = prop.CastValue(); @@ -910,7 +1054,9 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.ColorSequence: + { props.ForEach(prop => { ColorSequence value = prop.CastValue(); @@ -932,7 +1078,9 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.NumberRange: + { props.ForEach(prop => { NumberRange value = prop.CastValue(); @@ -941,7 +1089,9 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.Rect: + { var Rect_X0 = new List(); var Rect_Y0 = new List(); @@ -966,9 +1116,11 @@ namespace RobloxFiles.BinaryFormat.Chunks writer.WriteFloats(Rect_X1); writer.WriteFloats(Rect_Y1); - + break; + } case PropertyType.PhysicalProperties: + { props.ForEach(prop => { bool custom = (prop.Value != null); @@ -988,7 +1140,9 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; + } case PropertyType.Color3uint8: + { var Color3uint8_R = new List(); var Color3uint8_G = new List(); var Color3uint8_B = new List(); @@ -1011,23 +1165,27 @@ namespace RobloxFiles.BinaryFormat.Chunks writer.Write(bBuffer); break; + } case PropertyType.Int64: - var Int64s = new List(); + { + var longs = new List(); props.ForEach(prop => { long value = prop.CastValue(); - Int64s.Add(value); + longs.Add(value); }); - writer.WriteInterleaved(Int64s, value => + writer.WriteInterleaved(longs, value => { // Move the sign bit to the front. return (value << 1) ^ (value >> 63); }); break; + } case PropertyType.SharedString: + { var sharedKeys = new List(); SSTR sstr = file.SSTR; @@ -1048,10 +1206,10 @@ namespace RobloxFiles.BinaryFormat.Chunks } string key = shared.Key; - + if (!sstr.Lookup.ContainsKey(key)) { - uint id = (uint)(sstr.Lookup.Count); + uint id = (uint)sstr.Lookup.Count; sstr.Strings.Add(id, shared); sstr.Lookup.Add(key, id); } @@ -1062,7 +1220,9 @@ namespace RobloxFiles.BinaryFormat.Chunks writer.WriteInterleaved(sharedKeys); break; + } case PropertyType.ProtectedString: + { props.ForEach(prop => { var protect = prop.CastValue(); @@ -1073,7 +1233,12 @@ namespace RobloxFiles.BinaryFormat.Chunks }); break; - default: break; + } + default: + { + RobloxFile.LogError($"Unhandled property type: {Type} in {this}!"); + break; + } } } diff --git a/Generated/Classes.cs b/Generated/Classes.cs index 8732bc6..8e86e9c 100644 --- a/Generated/Classes.cs +++ b/Generated/Classes.cs @@ -1,5 +1,5 @@ // Auto-generated list of creatable Roblox classes. -// Updated as of 0.474.0.420553 +// Updated as of 0.476.0.421371 using System; @@ -7,10 +7,6 @@ using RobloxFiles.DataTypes; using RobloxFiles.Enums; using RobloxFiles.Utility; -#pragma warning disable CA1041 // Provide ObsoleteAttribute message -#pragma warning disable CA1051 // Do not declare visible instance fields -#pragma warning disable CA1707 // Identifiers should not contain underscores -#pragma warning disable CA1716 // Identifiers should not match keywords #pragma warning disable IDE1006 // Naming Styles namespace RobloxFiles @@ -2095,6 +2091,14 @@ namespace RobloxFiles } } + public class MemoryStoreService : Instance + { + public MemoryStoreService() + { + IsService = true; + } + } + public class Message : Instance { public string Text = ""; @@ -2402,7 +2406,9 @@ namespace RobloxFiles public CFrame ModelMeshCFrame = new CFrame(); public SharedString ModelMeshData = SharedString.FromBase64("yuZpQdnvvUBOTYh1jqZ2cA=="); public Vector3 ModelMeshSize = new Vector3(); + public bool NeedsPivotMigration; public BasePart PrimaryPart; + public CFrame WorldPivotData; } public class Actor : Model @@ -2421,6 +2427,7 @@ namespace RobloxFiles } public bool AllowThirdPartySales; + public ClientAnimatorThrottlingMode ClientAnimatorThrottling = ClientAnimatorThrottlingMode.Default; public string CollisionGroups = "Default^0^1"; public Camera CurrentCamera; public double DistributedGameTime; @@ -2532,10 +2539,11 @@ namespace RobloxFiles IsService = true; } + public string DEPRECATED_SerializedEmulatedPolicyInfo = ""; public string EmulatedCountryCode = ""; public string EmulatedGameLocale = ""; public bool PlayerEmulationEnabled; - public string SerializedEmulatedPolicyInfo = ""; + public byte[] SerializedEmulatedPolicyInfo = Array.Empty(); } public class Players : Instance @@ -2678,6 +2686,14 @@ namespace RobloxFiles public int MaxPromptsVisible = 16; } + public class PublishService : Instance + { + public PublishService() + { + IsService = true; + } + } + public class RbxAnalyticsService : Instance { public RbxAnalyticsService() diff --git a/Generated/Enums.cs b/Generated/Enums.cs index aea3910..b70abe5 100644 --- a/Generated/Enums.cs +++ b/Generated/Enums.cs @@ -1,5 +1,5 @@ // Auto-generated list of Roblox enums. -// Updated as of 0.473.0.420291 +// Updated as of 0.476.0.421371 namespace RobloxFiles.Enums { @@ -124,6 +124,13 @@ namespace RobloxFiles.Enums Orbital } + public enum ClientAnimatorThrottlingMode + { + Default, + Disabled, + Enabled + } + public enum DevCameraOcclusionMode { Zoom, diff --git a/Plugins/GenerateApiDump.rbxm b/Plugins/GenerateApiDump.rbxm index 1cff98bbe4b4d834fee6a7776db3d6eece2fbc73..2f2b34ad55378ab9e4d0791c5afba4821e003a17 100644 GIT binary patch delta 5796 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 E5ALWRUH||9 delta 5797 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 diff --git a/Plugins/GenerateApiDump/PropertyPatches.lua b/Plugins/GenerateApiDump/PropertyPatches.lua index 478fdba..5bc8823 100644 --- a/Plugins/GenerateApiDump/PropertyPatches.lua +++ b/Plugins/GenerateApiDump/PropertyPatches.lua @@ -377,6 +377,8 @@ return ModelMeshCFrame = "CFrame"; ModelMeshData = "SharedString"; ModelMeshSize = "Vector3"; + NeedsPivotMigration = "bool"; + WorldPivotData = "OptionalCFrame"; }; }; diff --git a/Plugins/GenerateApiDump/init.server.lua b/Plugins/GenerateApiDump/init.server.lua index ecf7db7..7faab5c 100644 --- a/Plugins/GenerateApiDump/init.server.lua +++ b/Plugins/GenerateApiDump/init.server.lua @@ -217,6 +217,7 @@ local formatLinks = ["Instance"] = "Null"; ["Color3uint8"] = "Color3"; + ["OptionalCFrame"] = "Null"; ["ProtectedString"] = "String"; } @@ -357,10 +358,10 @@ local function generateClasses() writeLine("using RobloxFiles.Utility;") writeLine() - writeLine("#pragma warning disable CA1041 // Provide ObsoleteAttribute message") - writeLine("#pragma warning disable CA1051 // Do not declare visible instance fields") - writeLine("#pragma warning disable CA1707 // Identifiers should not contain underscores") - writeLine("#pragma warning disable CA1716 // Identifiers should not match keywords") + -- writeLine("#pragma warning disable CA1041 // Provide ObsoleteAttribute message") + -- writeLine("#pragma warning disable CA1051 // Do not declare visible instance fields") + -- writeLine("#pragma warning disable CA1707 // Identifiers should not contain underscores") + -- writeLine("#pragma warning disable CA1716 // Identifiers should not match keywords") writeLine("#pragma warning disable IDE1006 // Naming Styles") writeLine() @@ -639,6 +640,10 @@ local function generateClasses() writeLine("[Obsolete]") end + + if valueType == "OptionalCFrame" then + valueType = "CFrame" + end writeLine("public %s %s%s;", valueType, name, default) diff --git a/RobloxFileFormat.csproj b/RobloxFileFormat.csproj index 153ee32..e6de790 100644 --- a/RobloxFileFormat.csproj +++ b/RobloxFileFormat.csproj @@ -98,6 +98,7 @@ + diff --git a/RobloxFileFormat.dll b/RobloxFileFormat.dll index ee32b3bff1b23c7ca713af1cc1c359d27e9853e8..c7ff0d6f0da715d30cfb0f383db018065d5e9f1c 100644 GIT binary patch delta 166494 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 diff --git a/Tokens/CFrame.cs b/Tokens/CFrame.cs index 31e0702..f79330d 100644 --- a/Tokens/CFrame.cs +++ b/Tokens/CFrame.cs @@ -30,6 +30,23 @@ namespace RobloxFiles.Tokens return new CFrame(components); } + public static void WriteCFrame(Property prop, XmlDocument doc, XmlNode node) + { + CFrame cf = prop.CastValue(); + float[] components = cf.GetComponents(); + + for (int i = 0; i < 12; i++) + { + string coordName = Coords[i]; + float coordValue = components[i]; + + XmlElement coord = doc.CreateElement(coordName); + coord.InnerText = coordValue.ToInvariantString(); + + node.AppendChild(coord); + } + } + public bool ReadProperty(Property prop, XmlNode token) { CFrame result = ReadCFrame(token); @@ -46,19 +63,7 @@ namespace RobloxFiles.Tokens public void WriteProperty(Property prop, XmlDocument doc, XmlNode node) { - CFrame cf = prop.CastValue(); - float[] components = cf.GetComponents(); - - for (int i = 0; i < 12; i++) - { - string coordName = Coords[i]; - float coordValue = components[i]; - - XmlElement coord = doc.CreateElement(coordName); - coord.InnerText = coordValue.ToInvariantString(); - - node.AppendChild(coord); - } + WriteCFrame(prop, doc, node); } } } diff --git a/Tokens/OptionalCFrame.cs b/Tokens/OptionalCFrame.cs new file mode 100644 index 0000000..010ac80 --- /dev/null +++ b/Tokens/OptionalCFrame.cs @@ -0,0 +1,33 @@ +using System.Xml; +using RobloxFiles.DataTypes; + +namespace RobloxFiles.Tokens +{ + public class OptionalCFrameToken : IXmlPropertyToken + { + public string XmlPropertyToken => "OptionalCoordinateFrame"; + + public bool ReadProperty(Property prop, XmlNode token) + { + XmlNode first = token.FirstChild; + prop.Type = PropertyType.OptionalCFrame; + + if (first?.Name == "CFrame") + prop.Value = CFrameToken.ReadCFrame(first); + + return true; + } + + public void WriteProperty(Property prop, XmlDocument doc, XmlNode node) + { + CFrame value = prop.CastValue(); + + if (value != null) + { + XmlElement cfNode = doc.CreateElement("CFrame"); + CFrameToken.WriteCFrame(prop, doc, cfNode); + node.AppendChild(cfNode); + } + } + } +} diff --git a/Tokens/ProtectedString.cs b/Tokens/ProtectedString.cs index 5ede316..363af24 100644 --- a/Tokens/ProtectedString.cs +++ b/Tokens/ProtectedString.cs @@ -13,8 +13,8 @@ namespace RobloxFiles.Tokens public bool ReadProperty(Property prop, XmlNode token) { ProtectedString contents = token.InnerText; - prop.Type = PropertyType.ProtectedString; - prop.Value = contents; + prop.Type = PropertyType.String; + prop.Value = contents.ToString(); return true; } diff --git a/Tree/Attributes.cs b/Tree/Attributes.cs index 3dc7822..42133dd 100644 --- a/Tree/Attributes.cs +++ b/Tree/Attributes.cs @@ -13,36 +13,36 @@ namespace RobloxFiles public enum AttributeType { - // Null = 1, + // Null = 1, String = 2, Bool = 3, - // Int = 4, + // Int = 4, Float = 5, Double = 6, - // Array = 7, - // Dictionary = 8, + // Array = 7, + // Dictionary = 8, UDim = 9, UDim2 = 10, - // Ray = 11, - // Faces = 12, - // Axes = 13 + // Ray = 11, + // Faces = 12, + // Axes = 13 BrickColor = 14, Color3 = 15, Vector2 = 16, Vector3 = 17, - // Vector2int16 = 18, - // Vector3int16 = 19, - // CFrame = 20, - // Enum = 21, + // Vector2int16 = 18, + // Vector3int16 = 19, + // CFrame = 20, + // Enum = 21, NumberSequence = 23, - // NumberSequenceKeypoint = 24, + // NumberSequenceKeypoint = 24, ColorSequence = 25, - // ColorSequenceKeypoint = 26, + // ColorSequenceKeypoint = 26, NumberRange = 27, Rect = 28, - // PhysicalProperties = 29 - // Region3 = 31, - // Region3int16 = 32 + // PhysicalProperties = 29 + // Region3 = 31, + // Region3int16 = 32 } public class Attribute : IDisposable @@ -87,7 +87,6 @@ namespace RobloxFiles { var attributeSupport = new Dictionary(); var supportedTypes = new Dictionary(); - var assembly = Assembly.GetExecutingAssembly(); var handlerTypes = @@ -247,7 +246,7 @@ namespace RobloxFiles internal Attributes(MemoryStream stream) { - using (BinaryReader reader = new BinaryReader(stream)) + using (var reader = new BinaryReader(stream)) Initialize(reader); stream.Dispose(); diff --git a/Tree/Property.cs b/Tree/Property.cs index de8375b..be46578 100644 --- a/Tree/Property.cs +++ b/Tree/Property.cs @@ -1,12 +1,9 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; using System.Reflection; -using RobloxFiles.BinaryFormat; using RobloxFiles.BinaryFormat.Chunks; - using RobloxFiles.DataTypes; using RobloxFiles.Utility; @@ -42,14 +39,14 @@ namespace RobloxFiles Color3uint8, Int64, SharedString, - ProtectedString + ProtectedString, + OptionalCFrame } public class Property { public string Name { get; internal set; } public Instance Instance { get; internal set; } - public PropertyType Type { get; internal set; } public string XmlToken { get; internal set; } @@ -58,8 +55,10 @@ namespace RobloxFiles internal object RawValue; internal static BindingFlags BindingFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy | BindingFlags.IgnoreCase; - - // !! FIXME: Map typeof(ProtectedString) to PropertyType.ProtectedString when binary files are allowed to read it. + + // TODO: Map typeof(ProtectedString) to PropertyType.ProtectedString + // if binary files are ever publically allowed to read it. + public static readonly IReadOnlyDictionary Types = new Dictionary() { { typeof(Axes), PropertyType.Axes }, @@ -103,8 +102,7 @@ namespace RobloxFiles RawBuffer = RawValue as byte[]; return; } - - if (RawValue is SharedString sharedString) + else if (RawValue is SharedString sharedString) { if (sharedString != null) { @@ -112,8 +110,7 @@ namespace RobloxFiles return; } } - - if (RawValue is ProtectedString protectedString) + else if (RawValue is ProtectedString protectedString) { if (protectedString != null) { @@ -128,27 +125,36 @@ namespace RobloxFiles switch (Type) { case PropertyType.Int: + { if (Value is long) { Type = PropertyType.Int64; goto case PropertyType.Int64; } - + RawBuffer = BitConverter.GetBytes((int)Value); break; + } case PropertyType.Bool: + { RawBuffer = BitConverter.GetBytes((bool)Value); break; + } case PropertyType.Int64: + { RawBuffer = BitConverter.GetBytes((long)Value); break; + } case PropertyType.Float: + { RawBuffer = BitConverter.GetBytes((float)Value); break; + } case PropertyType.Double: + { RawBuffer = BitConverter.GetBytes((double)Value); break; - default: break; + } } } @@ -163,8 +169,7 @@ namespace RobloxFiles if (typeName == Name) { - FieldInfo directField = instType - .GetFields() + FieldInfo directField = instType.GetFields() .Where(field => field.Name.StartsWith(Name, StringComparison.InvariantCulture)) .Where(field => field.DeclaringType == instType) .FirstOrDefault(); @@ -276,6 +281,7 @@ namespace RobloxFiles get { // Improvise what the buffer should be if this is a primitive. + if (RawBuffer == null && Value != null) ImproviseRawBuffer(); diff --git a/UnitTest/Files/Binary.rbxl b/UnitTest/Files/Binary.rbxl index 2fa7d9787bb7a6fc664fe55fbd42e335dbf6219e..0a2d581d211bab1f75652c447cb27cfeafd0aaed 100644 GIT binary patch delta 25267 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∓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 WX6W9x8%p(=E|(nw)&Eh^>Hh(jYgupr delta 25141 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 U=V~i8@bC+t3n-w4{szzg2MxgQ(EtDd diff --git a/UnitTest/Files/Xml.rbxlx b/UnitTest/Files/Xml.rbxlx index 813f2c7..2daccf3 100644 --- a/UnitTest/Files/Xml.rbxlx +++ b/UnitTest/Files/Xml.rbxlx @@ -1,12 +1,13 @@ null nil - + false + 0 Default^0^1 - RBXB6729B4B8E0F4D3398108C05AFD9B65E + RBX3A482CA70FD44861880A3A8DC2E280B0 0 true -500 @@ -50,8 +51,10 @@ 0 Workspace + false 0 null + 0 -1 false 64 @@ -60,8 +63,24 @@ true false + + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + - + false @@ -125,6 +144,20 @@ Hull qKQHnbGqNyW9YBYUZo8CWQ== + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 1 -0.5 @@ -157,7 +190,7 @@ - + false @@ -221,6 +254,20 @@ Box +qv2o0HSW+htH+ALwYQpiw== + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 1 -0.5 @@ -253,7 +300,7 @@ - + 0 @@ -292,11 +339,28 @@ 0 Car + false null -1 + + + 8 + 15.4043007 + -5 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + - + false @@ -360,6 +424,20 @@ Box +qv2o0HSW+htH+ALwYQpiw== + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 1 -0.5 @@ -392,7 +470,7 @@ - + false @@ -456,6 +534,20 @@ Default h8IPxf7q0MVs4uyaKSOhVA== + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 1 -0.5 @@ -488,7 +580,7 @@ - + false @@ -552,6 +644,20 @@ Hull yk4/m1d5tPD+2SapafAV9A== + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 1 -0.5 @@ -584,7 +690,7 @@ - + false @@ -648,6 +754,20 @@ PreciseConvexDecomposition ezvavG8GMWP28xfkKnsm/w== + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 1 -0.5 @@ -680,7 +800,7 @@ - + false @@ -744,6 +864,20 @@ LOD ezvavG8GMWP28xfkKnsm/w== + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 0 -0.5 @@ -777,31 +911,31 @@ - + - -148.10675 - 310.932129 - 221.675095 - 0.847654164 - 0.397796452 - -0.351056159 + -96.3363647 + 232.183411 + 219.286392 + 0.87256825 + 0.357689083 + -0.332690984 2.98023224e-08 - 0.661684453 - 0.749782503 - 0.530549169 - -0.635556281 - 0.560879588 + 0.681056798 + 0.732230723 + 0.48849234 + -0.638921261 + 0.594268441 null 0 70 0 - -147.404663 - 309.432617 - 220.553375 + -95.6709824 + 230.718948 + 218.097855 1 0 0 @@ -819,9 +953,9 @@ - + - 0 + 1 true -0.5 @@ -896,6 +1030,20 @@ AAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAA AAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAP//AP//AP//Af/5AAAAAAAAAAAAAAAB AAD/AAD/AAD/AAH/AAAAAAAAAAAAAAABAP//AP//AP//Af//AAAAAAAAAAAAAAABAAD/AAD/ AAD/AAH/AAAAAAAAAAAAAAABAAAAAAAAAAA=]]> + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 -0.5 0.5 @@ -1179,7 +1327,7 @@ SIdI3ghI3oAbSM5I/kjxSKWAGkiISO5I/Ei/gBxIzUjWSISA/4C7RqiAHkaogP+A/4D/gP+A - + BoolValue @@ -1188,7 +1336,7 @@ SIdI3ghI3oAbSM5I/kjxSKWAGkiISO5I/Ei/gBxIzUjWSISA/4C7RqiAHkaogP+A/4D/gP+A false - + BrickColorValue @@ -1197,7 +1345,7 @@ SIdI3ghI3oAbSM5I/kjxSKWAGkiISO5I/Ei/gBxIzUjWSISA/4C7RqiAHkaogP+A/4D/gP+A 194 - + Color3Value @@ -1210,7 +1358,7 @@ SIdI3ghI3oAbSM5I/kjxSKWAGkiISO5I/Ei/gBxIzUjWSISA/4C7RqiAHkaogP+A/4D/gP+A - + CFrameValue @@ -1232,7 +1380,7 @@ SIdI3ghI3oAbSM5I/kjxSKWAGkiISO5I/Ei/gBxIzUjWSISA/4C7RqiAHkaogP+A/4D/gP+A - + IntValue @@ -1241,7 +1389,7 @@ SIdI3ghI3oAbSM5I/kjxSKWAGkiISO5I/Ei/gBxIzUjWSISA/4C7RqiAHkaogP+A/4D/gP+A 1234 - + NumberValue @@ -1250,16 +1398,16 @@ SIdI3ghI3oAbSM5I/kjxSKWAGkiISO5I/Ei/gBxIzUjWSISA/4C7RqiAHkaogP+A/4D/gP+A 9.0000999999999997669 - + ObjectValue -1 - RBX473F017243BF4D4CBB814CA63559A93A + RBX5440245BA17340CFA5B3B3B0A58C0598 - + RayValue @@ -1279,7 +1427,7 @@ SIdI3ghI3oAbSM5I/kjxSKWAGkiISO5I/Ei/gBxIzUjWSISA/4C7RqiAHkaogP+A/4D/gP+A - + StringValue @@ -1288,7 +1436,7 @@ SIdI3ghI3oAbSM5I/kjxSKWAGkiISO5I/Ei/gBxIzUjWSISA/4C7RqiAHkaogP+A/4D/gP+A TestingLol - + true @@ -1339,6 +1487,20 @@ SIdI3ghI3oAbSM5I/kjxSKWAGkiISO5I/Ei/gBxIzUjWSISA/4C7RqiAHkaogP+A/4D/gP+A false 288 Adornee + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 -0.5 0.5 @@ -1370,9 +1532,9 @@ SIdI3ghI3oAbSM5I/kjxSKWAGkiISO5I/Ei/gBxIzUjWSISA/4C7RqiAHkaogP+A/4D/gP+A 1 - + - RBX31EFCF342C8F4FEBA9CBF3E1E39463CB + RBXE99549CBA437433983F6F1CF98398AB5 0 @@ -1389,9 +1551,9 @@ SIdI3ghI3oAbSM5I/kjxSKWAGkiISO5I/Ei/gBxIzUjWSISA/4C7RqiAHkaogP+A/4D/gP+A false - + - RBX31EFCF342C8F4FEBA9CBF3E1E39463CB + RBXE99549CBA437433983F6F1CF98398AB5 1 @@ -1409,7 +1571,7 @@ SIdI3ghI3oAbSM5I/kjxSKWAGkiISO5I/Ei/gBxIzUjWSISA/4C7RqiAHkaogP+A/4D/gP+A false - + 0 @@ -1444,7 +1606,7 @@ SIdI3ghI3oAbSM5I/kjxSKWAGkiISO5I/Ei/gBxIzUjWSISA/4C7RqiAHkaogP+A/4D/gP+A 1 0 - + false @@ -1469,7 +1631,7 @@ script.Parent.Color = ColorSequence.new(keyPoints)]]> - + false @@ -1495,7 +1657,7 @@ script.Parent.Size = NumberSequence.new(keyPoints)]]> - + false @@ -1523,7 +1685,7 @@ script.Parent.Transparency = NumberSequence.new(keyPoints)]]> - + Vector3Value @@ -1536,7 +1698,7 @@ script.Parent.Transparency = NumberSequence.new(keyPoints)]]> - + false @@ -1590,7 +1752,7 @@ script.Parent.Transparency = NumberSequence.new(keyPoints)]]> true 1 - + UDimTest @@ -1615,7 +1777,7 @@ script.Parent.Transparency = NumberSequence.new(keyPoints)]]> - + 0 @@ -1653,28 +1815,17 @@ script.Parent.Transparency = NumberSequence.new(keyPoints)]]> 0 0 - StuffModel + WorldPivot + false null -1 - - - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 4 - 0 - - 81.824234 - 4.9126358 - 66.4635315 - -1 + + + 0 + 0 + 0 + 1 0 0 0 @@ -1682,195 +1833,11 @@ script.Parent.Transparency = NumberSequence.new(keyPoints)]]> 0 0 0 - -1 - - false - true - false - 0 - 4288914085 - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 0 - 0 - false - false - 256 - Handle - 0 - -0.5 - 0.5 - 0 - 0 - 0 - - 0 - 0 - 0 - - -1 - - -0.5 - 0.5 - 3 - 0 - 0 - - 0 - 0 - 0 - - 1 - 1 - - 1 - 1.20000005 - 2 - - - - - - 2 - 2 - - 5 - Mesh - - 0 - 0 - 0 - - - 0.5 - 0.5 - 0.5 - - -1 - - - - 2 - 1 - 1 - - - - - - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 4 - 0 - - 81.824234 - 1.76263595 - 66.4662399 - -0.00581110455 - -0.00449447986 - -0.999973893 - -0.00369083951 - 0.999983251 - -0.00447307248 - 0.999977231 - 0.00366474991 - -0.00582750374 - - false - true - false - 0 - 4288914085 - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 0 - 0 - false - false - 256 - Handle - 0 - -0.5 - 0.5 - 0 - 0 - 0 - - 0 - 0 - 0 - - -1 - - -0.5 - 0.5 - 3 - 0 - 0 - - 0 - 0 - 0 - - 2 - 1 - - 1 - 0.800000012 - 5 - - - - - - 2 - 2 - http://www.roblox.com/asset/?id=3835506 - 5 - Mesh - - 0 - 0 - 0 - - - 1.95000005 - 1.95000005 - 1 - - -1 - - rbxasset://textures/SwordTexture.png - - 1 - 1 - 1 - - - - - + 1 + + + + false @@ -1883,751 +1850,9 @@ script.Parent.Transparency = NumberSequence.new(keyPoints)]]> 0 0 - 81.824234 - 3.31261897 - 66.4648056 - -0.983122289 - -9.21184459e-22 - -0.182950243 - 0.000145678569 - 0.999999702 - -0.000782835006 - 0.182950184 - -0.000796274282 - -0.983121991 - - false - true - false - 0 - 4288914085 - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 0 - 0 - false - false - 256 - Handle - 0 - -0.5 - 0.5 - 0 - 0 - 0 - - 0 - 0 - 0 - - -1 - - -0.5 - 0.5 - 0 - 0 - 0 - - 0 - 0 - 0 - - 0 - 1 - - 1 - 2 - 1 - - - - - - 2 - 2 - - 5 - Mesh - - 0 - 0 - 0 - - - 0.200000003 - 0.150000006 - 0.200000003 - - -1 - - - - 1 - 1 - 1 - - - - - - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 0 - 0 - - 81.824234 - 6.71261597 - 66.4620972 - 0.983122289 - -9.21184459e-22 - 0.182950243 - -0.000145678569 - 0.999999702 - 0.000782835006 - -0.182950184 - -0.000796274282 - 0.983121991 - - false - true - false - 0 - 4288914085 - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 0 - 0 - false - false - 256 - Fire - 0 - -0.5 - 0.5 - 0 - 0 - 0 - - 0 - 0 - 0 - - -1 - - -0.5 - 0.5 - 0 - 0 - 0 - - 0 - 0 - 0 - - 1 - 1 - - 1 - 2.4000001 - 1 - - - - - - 2 - 2 - - 5 - Mesh - - 0 - 0 - 0 - - - 0.100000001 - 0.0500000007 - 0.100000001 - - -1 - - - - 2 - 2 - 2 - - - - - - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 0 - 0 - - 81.8667603 - 8.40447044 - 66.481575 - 0.532605886 - -9.03015316e-05 - -0.846363485 - 0.000780273927 - 0.999999642 - 0.000384323037 - 0.846363187 - -0.000865087903 - 0.532605767 - - false - true - false - 0 - 4288914085 - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 0 - 0 - false - false - 256 - Handle - 0 - -0.5 - 0.5 - 0 - 0 - 0 - - 0 - 0 - 0 - - -1 - - -0.5 - 0.5 - 0 - 0 - 0 - - 0 - 0 - 0 - - 0 - 1 - - 1 - 1 - 2 - - - - - - 2 - 2 - - 5 - Mesh - - 0 - 0 - 0 - - - 0.5 - 0.5 - 0.5 - - -1 - - - - 26 - 26 - 26 - - - - - - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 4 - 0 - - 81.824234 - 10.7126522 - 66.4589081 - 0.983122289 - -9.21184459e-22 - 0.182950243 - -0.000145678569 - 0.999999702 - 0.000782835006 - -0.182950184 - -0.000796274282 - 0.983121991 - - false - true - false - 0 - 4288914085 - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 0 - 0 - false - false - 256 - Handle - 0 - -0.5 - 0.5 - 0 - 0 - 0 - - 0 - 0 - 0 - - -1 - - -0.5 - 0.5 - 3 - 0 - 0 - - 0 - 0 - 0 - - 1 - 1 - - 3 - 1.20000005 - 1 - - - - - - 2 - 2 - - 5 - Mesh - - 0 - 0 - 0 - - - 0.0199999996 - 0.0199999996 - 0.0199999996 - - -1 - - - - 1 - 1 - 1 - - - - - - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 4 - 0 - - 81.824234 - 9.51264191 - 66.4598694 - -1.00000024 - 7.13597931e-12 - -4.07523348e-09 - -7.13597931e-12 - 1 - -1.86238705e-10 - -4.07523348e-09 - 1.86238705e-10 - -1.00000024 - - false - true - false - 0 - 4288914085 - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 0 - 0 - false - false - 256 - Handle - 0 - -0.5 - 0.5 - 0 - 0 - 0 - - 0 - 0 - 0 - - -1 - - -0.5 - 0.5 - 3 - 0 - 0 - - 0 - 0 - 0 - - 1 - 1 - - 1 - 1.20000005 - 2 - - - - - - 2 - 2 - - 5 - Mesh - - 0 - 0 - 0 - - - 0.100000001 - 0.100000001 - 0.100000001 - - -1 - - - - 1 - 1 - 1 - - - - - - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 0 - 0 - - 81.3461609 - 12.5252705 - 66.6214447 - -0.983122289 - 0.000145678569 - -0.182950184 - 0.000145678569 - 1 - 1.34392722e-05 - 0.182950184 - -1.34392867e-05 - -0.983122349 - - false - true - false - 0 - 4288914085 - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 0 - 0 - false - false - 256 - Handle - 0.699999988 - -0.5 - 0.5 - 0 - 0 - 0 - - 0 - 0 - 0 - - -1 - - -0.5 - 0.5 - 0 - 0 - 0 - - 0 - 0 - 0 - - 1 - 1 - - 1 - 2.4000001 - 1 - - - - - - 2 - 2 - rbxasset://fonts/hammer.mesh - 5 - Mesh - - 0 - 0 - 0 - - - 0.600000024 - 0.600000024 - 0.600000024 - - -1 - - rbxasset://textures/hammertex128.png - - 1 - 1 - 1 - - - - - - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 4 - 0 - - 81.2617798 - 14.2252684 - 65.6200104 - -0.182950184 - -0.983122289 - 0.000145678569 - 1.34392722e-05 - 0.000145678569 - 1 - -0.983122349 - 0.182950184 - -1.34392867e-05 - - false - true - false - 0 - 4288914085 - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 0 - 0 - false - false - 256 - Handle - 0 - -0.5 - 0.5 - 0 - 0 - 0 - - 0 - 0 - 0 - - -1 - - -0.5 - 0.5 - 0 - 0 - 0 - - 0 - 0 - 0 - - 1 - 1 - - 1 - 4.80000019 - 1 - - - - - - 2 - 2 - - 5 - Mesh - - 0 - 0 - 0 - - - 0.200000003 - -0.230000004 - -0.200000003 - - -1 - - - - 1 - 1 - 1 - - - - - - - false - - -0.5 - 0.5 - 0 - 0 - -0.5 - 0.5 - 4 - 0 - - 81.324234 - 15.4126358 - 65.4635315 + -32.25 + 0.5 + 5.75 1 0 0 @@ -2638,9 +1863,9 @@ script.Parent.Transparency = NumberSequence.new(keyPoints)]]> 0 1 - false + true true - false + true 0 4288914085 @@ -2657,7 +1882,21 @@ script.Parent.Transparency = NumberSequence.new(keyPoints)]]> false false 256 - Part + WithPivot + + 32.25 + -0.5 + -5.75 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 -0.5 0.5 @@ -2673,7 +1912,7 @@ script.Parent.Transparency = NumberSequence.new(keyPoints)]]> -0.5 0.5 - 3 + 0 0 0 @@ -2685,32 +1924,105 @@ script.Parent.Transparency = NumberSequence.new(keyPoints)]]> 1 4 - 1.20000005 + 1 + 2 + + + + + + false + + -0.5 + 0.5 + 0 + 0 + -0.5 + 0.5 + 0 + 0 + + -32.25 + 0.5 + 1.75 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + true + true + true + 0 + 4288914085 + + false + + -0.5 + 0.5 + 0 + 0 + -0.5 + 0.5 + 0 + 0 + false + false + 256 + NoPivot + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + 0 + -0.5 + 0.5 + 0 + 0 + 0 + + 0 + 0 + 0 + + -1 + + -0.5 + 0.5 + 0 + 0 + 0 + + 0 + 0 + 0 + + 1 + 1 + + 4 + 1 2 - - - - 10 - false - OMGGGGG - true - 1 - false - 0 - null - - -1 - - 0 - 1 - 10000 - - - + INF @@ -2721,7 +2033,7 @@ script.Parent.Transparency = NumberSequence.new(keyPoints)]]> 1.3337000000000001076 - + false @@ -2785,6 +2097,20 @@ script.Parent.Transparency = NumberSequence.new(keyPoints)]]> Default wqN+0m4YPEAIF5tOPQwXdA== + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 1 -0.5 @@ -2817,23 +2143,23 @@ script.Parent.Transparency = NumberSequence.new(keyPoints)]]> - + - + Attributes -1 - + 0 @@ -2846,7 +2172,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + NonReplicatedCSGDictionaryService @@ -2854,7 +2180,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + CSGDictionaryService @@ -2862,7 +2188,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false @@ -2872,7 +2198,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + TimerService @@ -2880,7 +2206,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + true @@ -2892,7 +2218,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + ReplicatedFirst @@ -2900,7 +2226,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + TweenService @@ -2908,7 +2234,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + PermissionsService @@ -2916,26 +2242,26 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + + PlayerEmulatorService false - + -1 - + 0 0 false - false StudioData -1 0 @@ -2943,7 +2269,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + true @@ -2987,7 +2313,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> true - + StarterPlayerScripts @@ -2995,7 +2321,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + StarterCharacterScripts @@ -3004,7 +2330,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + StarterPack @@ -3012,7 +2338,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + StarterGui @@ -3023,7 +2349,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + LocalizationService @@ -3031,7 +2357,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + TeleportService @@ -3039,7 +2365,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + CollectionService @@ -3047,7 +2373,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + PhysicsService @@ -3055,7 +2381,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + Geometry @@ -3063,7 +2389,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false false @@ -3072,8 +2398,17 @@ dFN0cmluZwIEAAAAVGVzdA==]]> -1 + + + + InsertionHash + -1 + + {13812C15-10FD-484C-84A8-A73EEF4CA830} + + - + GamePassService @@ -3081,7 +2416,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 1000 @@ -3090,7 +2425,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + CookiesService @@ -3098,7 +2433,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + VRService @@ -3106,7 +2441,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + ContextActionService @@ -3114,7 +2449,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + ScriptService @@ -3122,7 +2457,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + AssetService @@ -3130,7 +2465,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + TouchInputService @@ -3138,7 +2473,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -3147,7 +2482,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + Selection @@ -3155,7 +2490,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false @@ -3164,7 +2499,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + ServerStorage @@ -3172,7 +2507,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + ReplicatedStorage @@ -3180,7 +2515,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + LuaWebService @@ -3188,7 +2523,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 0 @@ -3233,7 +2568,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 00:00:00 - + true @@ -3243,7 +2578,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + FlyweightService @@ -3251,7 +2586,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + true @@ -3260,7 +2595,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + LanguageService @@ -3268,7 +2603,15 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + + + + MemoryStoreService + -1 + + + + true @@ -3278,7 +2621,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + ReplicatedScriptService @@ -3286,7 +2629,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + Teams @@ -3294,7 +2637,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + true @@ -3311,7 +2654,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 10 - + {"lastSaveTime":0,"lastKnownPublishRequest":0,"users":[]} @@ -3320,7 +2663,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + VirtualInputManager @@ -3328,26 +2671,37 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + DumpFolder -1 - + - - 0 - 8 - - UICorner + 100 + 1 + UITextSizeConstraint -1 - + + + + Vector3Value + -1 + + + 0 + 0 + 0 + + + + 0 @@ -3369,7 +2723,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 0 @@ -3391,7 +2745,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 0 @@ -3413,16 +2767,15 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + - - Animation + AnimationController -1 - + @@ -3444,7 +2797,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + Backpack @@ -3452,7 +2805,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false @@ -3463,7 +2816,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + true @@ -3491,7 +2844,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + true @@ -3520,7 +2873,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + null null @@ -3546,7 +2899,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 0 - + BindableEvent @@ -3554,7 +2907,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + BindableFunction @@ -3562,7 +2915,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 0 @@ -3581,7 +2934,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -3594,7 +2947,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -3623,7 +2976,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 1250 @@ -3643,7 +2996,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -3661,7 +3014,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -3680,7 +3033,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 0.699999988 @@ -3707,7 +3060,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 3000 - + @@ -3749,7 +3102,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -3787,7 +3140,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 0 @@ -3799,7 +3152,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -3813,7 +3166,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -3827,7 +3180,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -3841,16 +3194,17 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + - Skin - 226 + + 32 + ClickDetector -1 - + 0.5 @@ -3860,7 +3214,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + Configuration @@ -3868,7 +3222,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 0 null @@ -3888,7 +3242,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false - + false null @@ -3907,7 +3261,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false - + 0 @@ -3928,7 +3282,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false - + null null @@ -3949,9 +3303,10 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false - + 0 + 45 0 0 null @@ -3974,7 +3329,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false - + false null @@ -3992,7 +3347,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false - + null null @@ -4000,6 +3355,9 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 26 true 5 + 90 + 90 + false RodConstraint -1 @@ -4007,7 +3365,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false - + null null @@ -4023,11 +3381,12 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false - + 0 0 false + 45 0 0 0 @@ -4038,6 +3397,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> true 0 false + 45 -45 0 INF @@ -4061,7 +3421,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false - + 0 null @@ -4070,6 +3430,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 1009 true false + 45 0 INF 0 @@ -4086,30 +3447,28 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false - + null null - 3 + 8 200 - 0 + 0.00999999978 true - 1 - false - INF - 5 - 0 - SpringConstraint + false + 45 + INF + TorsionSpringConstraint 0.400000006 + 0 -1 - 0 + 100 - 0.100000001 false - + null null @@ -4126,7 +3485,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false - + false null @@ -4146,7 +3505,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false - + HumanoidController @@ -4154,7 +3513,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + SkateboardController @@ -4162,7 +3521,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + VehicleController @@ -4170,7 +3529,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + CustomEvent @@ -4179,7 +3538,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + CustomEventReceiver @@ -4188,7 +3547,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 0 @@ -4216,7 +3575,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 0 @@ -4244,34 +3603,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - - - - 2 - 2 - - FileMesh - - 0 - 0 - 0 - - - 1 - 1 - 1 - - -1 - - - - 1 - 1 - 1 - - - - + 0 @@ -4292,7 +3624,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + true @@ -4304,7 +3636,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 500000 @@ -4322,7 +3654,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> true - + @@ -4338,7 +3670,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 0 - + @@ -4358,7 +3690,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 0 - + 0 @@ -4370,7 +3702,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 1 - + 0 @@ -4382,7 +3714,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 1 - + @@ -4403,7 +3735,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 5 - + Folder @@ -4411,16 +3743,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - - - - ForceField - -1 - - true - - - + false @@ -4475,7 +3798,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 1 - + true @@ -4568,7 +3891,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 1 - + true @@ -4597,6 +3920,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 0 0 1 + -1 false TextButton null @@ -4648,7 +3972,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 1 - + false @@ -4735,7 +4059,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 1 - + false @@ -4763,6 +4087,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 0 0 1 + -1 TextLabel null null @@ -4811,16 +4136,15 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 1 - + - false + true 0 0 true - 0 0 0.639215708 @@ -4835,47 +4159,37 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 0 1 - rbxasset://textures/ui/Scroll/scroll-bottom.png - - 0 - 0 - - - 0 - 0 - 2 - 0 - - true + true + false false - 0 - 0 + 0 0 - rbxasset://textures/ui/Scroll/scroll-middle.png - ScrollingFrame + 1 + -1 + false + TextBox null null null null + + 0.699999988 + 0.699999988 + 0.699999988 + + 0 0 0 0 + false null 0 - - 1 - 1 - 1 - - 0 - 12 - 4 - true true null + true 0 0 @@ -4885,14 +4199,31 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 0 -1 - rbxasset://textures/ui/Scroll/scroll-top.png - 0 - 0 + TextBox + + 0.105882362 + 0.164705887 + 0.207843155 + + true + false + 8 + + 0 + 0 + 0 + + 1 + 0 + 0 + false + 2 + 1 true 1 - + false @@ -4951,7 +4282,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 1 - + false @@ -5041,7 +4372,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 1 - + false null @@ -5094,7 +4425,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 0 - + true @@ -5109,7 +4440,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 0 - + true @@ -5124,34 +4455,33 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 0 - + - true - null - false - true - - 800 - 600 - - false - true - 5 - 0 - SurfaceGui - 50 - true - null - 0 + + 0.0509803966 + 0.411764741 + 0.674509823 + + 0 + null + FloorWire -1 + 4 - 0 - 0 - 0 + + + 1 + 1 + + null + 0 + 2 + true + 0.0625 - + null @@ -5174,7 +4504,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> true - + 0 null @@ -5217,7 +4547,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> -1 - + 0 null @@ -5257,7 +4587,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> -1 - + 0 null @@ -5299,7 +4629,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> -1 - + 0 null @@ -5342,7 +4672,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> -1 - + 0 null @@ -5382,7 +4712,50 @@ dFN0cmluZwIEAAAAVGVzdA==]]> -1 - + + + true + null + false + + true + + 800 + 600 + + false + true + 5 + 0 + SurfaceGui + 50 + true + null + 0 + -1 + + 0 + 0 + 0 + + + + + null + + + 0.94901967 + 0.952941239 + 0.952941239 + + ParabolaAdornment + -1 + + 0 + true + + + 0 null @@ -5421,49 +4794,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> -1 - - - - - 0.0509803966 - 0.411764741 - 0.674509823 - - 0 - null - FloorWire - -1 - 4 - - - - 1 - 1 - - null - 0 - 2 - true - 0.0625 - - - - - null - - - 0.94901967 - 0.952941239 - 0.952941239 - - ParabolaAdornment - -1 - - 0 - true - - - + null @@ -5485,7 +4816,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> true - + null @@ -5504,7 +4835,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> true - + null @@ -5524,7 +4855,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> true - + null @@ -5541,7 +4872,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> true - + @@ -5558,7 +4889,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> true - + @@ -5579,7 +4910,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> true - + true @@ -5614,7 +4945,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 16 - + @@ -5685,7 +5016,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 1 - + 0 @@ -5725,7 +5056,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 0 @@ -5765,7 +5096,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -5824,7 +5155,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -5865,7 +5196,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -5906,7 +5237,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -5947,7 +5278,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -5988,7 +5319,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -6027,7 +5358,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -6066,7 +5397,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -6109,7 +5440,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -6148,7 +5479,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + Keyframe @@ -6157,7 +5488,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 0 - + KeyframeMarker @@ -6166,7 +5497,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 2 @@ -6177,7 +5508,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 1 @@ -6194,7 +5525,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 90 @@ -6213,7 +5544,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + 90 @@ -6232,7 +5563,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + [] @@ -6242,7 +5573,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false @@ -6254,7 +5585,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false @@ -6266,7 +5597,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + @@ -6277,7 +5608,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + Message @@ -6286,7 +5617,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + Hint @@ -6295,7 +5626,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + true @@ -6306,7 +5637,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false @@ -6352,6 +5683,20 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false 256 CornerWedgePart + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 -0.5 0.5 @@ -6382,7 +5727,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false @@ -6428,6 +5773,20 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false 256 Part + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 -0.5 0.5 @@ -6460,7 +5819,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false @@ -6506,6 +5865,20 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false 256 FlagStand + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 -0.5 0.5 @@ -6539,7 +5912,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false @@ -6586,6 +5959,20 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false 256 Seat + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 -0.5 0.5 @@ -6618,7 +6005,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false @@ -6664,6 +6051,20 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false 256 SkateboardPlatform + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 -0.5 0.5 @@ -6699,7 +6100,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false false @@ -6749,6 +6150,20 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 256 SpawnLocation true + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 -0.5 0.5 @@ -6782,7 +6197,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false @@ -6828,6 +6243,20 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false 256 WedgePart + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 -0.5 0.5 @@ -6859,7 +6288,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false @@ -6923,6 +6352,20 @@ dFN0cmluZwIEAAAAVGVzdA==]]> MeshPart yuZpQdnvvUBOTYh1jqZ2cA== + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 1 -0.5 @@ -6955,7 +6398,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false @@ -7015,6 +6458,20 @@ dFN0cmluZwIEAAAAVGVzdA==]]> PartOperation yuZpQdnvvUBOTYh1jqZ2cA== + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 1 -0.5 @@ -7048,7 +6505,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + true @@ -7108,6 +6565,20 @@ dFN0cmluZwIEAAAAVGVzdA==]]> NegateOperation yuZpQdnvvUBOTYh1jqZ2cA== + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 1 -0.5 @@ -7141,7 +6612,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false @@ -7201,6 +6672,20 @@ dFN0cmluZwIEAAAAVGVzdA==]]> UnionOperation yuZpQdnvvUBOTYh1jqZ2cA== + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 1 -0.5 @@ -7234,7 +6719,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + false @@ -7280,6 +6765,20 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false 256 TrussPart + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 -0.5 0.5 @@ -7311,7 +6810,1238 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 0 - + + + + 0 + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + yuZpQdnvvUBOTYh1jqZ2cA== + + 0 + 0 + 0 + + Actor + false + null + -1 + + + + + + + + 0 + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + yuZpQdnvvUBOTYh1jqZ2cA== + + 0 + 0 + 0 + + WorldModel + false + null + -1 + + + + + + + + 0 + 0 + 0 + + + 0 1 1 1 0 1 1 1 1 0 + 0 + 1 + true + 5 10 + 0 + 0 + false + ParticleEmitter + 0 + 20 + 0 0 + 0 0 + 0 1 0 1 1 0 + -1 + 5 5 + + 0 + 0 + + + rbxasset://textures/particles/sparkles_main.dds + 1 + 0 0 0 1 0 0 + 0 + 0 + + + + + + 0 + 0 + NumberPose + -1 + + 0 + 1 + + + + + + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + 0 + 0 + Pose + -1 + + 1 + + + + + + true + 0.400000006 + BloomEffect + 24 + -1 + + 0.949999988 + + + + + + 0 + 0 + true + ColorCorrectionEffect + 0 + -1 + + + 1 + 1 + 1 + + + + + + + true + 0.25 + SunRaysEffect + -1 + 1 + + + + + + Interact + + true + true + true + 0 + 1000 + 0 + 101 + 10 + ProximityPrompt + + true + null + -1 + 0 + + + 0 + 0 + + + + + + + + ReflectionMetadataCallbacks + -1 + + + + + + + ReflectionMetadataClasses + -1 + + + + + + + ReflectionMetadataEnums + -1 + + + + + + + ReflectionMetadataEvents + -1 + + + + + + + ReflectionMetadataFunctions + -1 + + + + + + + true + + false + + false + false + 0 + 2147483647 + true + false + ReflectionMetadataClass + + 5000 + + false + -1 + + 0 + 0 + 0 + + + + + + + true + + false + + false + false + false + ReflectionMetadataEnum + 5000 + + false + -1 + + 0 + 0 + 0 + + + + + + + true + + false + + false + false + false + ReflectionMetadataEnumItem + 5000 + + false + -1 + + 0 + 0 + 0 + + + + + + + true + + false + + false + false + false + ReflectionMetadataMember + 5000 + + false + -1 + + 0 + 0 + 0 + + + + + + + ReflectionMetadataProperties + -1 + + + + + + + ReflectionMetadataYieldFunctions + -1 + + + + + + + RemoteEvent + -1 + + + + + + + RemoteFunction + -1 + + + + + + + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + 10 + 0 + 50 + + 70 + RenderingTest + 21 + false + -1 + + + + + + + + true + 11 + rbxasset://sky/moon.jpg + Sky + rbxasset://textures/sky/sky512_bk.tex + rbxasset://textures/sky/sky512_dn.tex + rbxasset://textures/sky/sky512_ft.tex + rbxasset://textures/sky/sky512_lf.tex + rbxasset://textures/sky/sky512_rt.tex + rbxasset://textures/sky/sky512_up.tex + -1 + 3000 + 21 + rbxasset://sky/sun.jpg + + + + + + + + 1 + 1 + 1 + + true + Smoke + -1 + + 0.5 + 1 + 1 + + + + + + 10 + false + Sound + false + 1 + false + 0 + null + + -1 + + 0 + 0.5 + 10000 + + + + + + 0.150000006 + true + 0.5 + ChorusSoundEffect + 0 + 0.5 + -1 + + + + + + 0.100000001 + + true + 0 + CompressorSoundEffect + 0 + 40 + 0.100000001 + null + -1 + + -40 + + + + + + true + 0.75 + DistortionSoundEffect + 0 + -1 + + + + + + + 1 + 0 + true + 0.5 + EchoSoundEffect + 0 + -1 + + 0 + + + + + + true + 0 + -20 + -10 + EqualizerSoundEffect + 0 + -1 + + + + + + + 0.449999988 + true + 0.850000024 + FlangeSoundEffect + 0 + 5 + -1 + + + + + + + true + PitchShiftSoundEffect + 1.25 + 0 + -1 + + + + + + + 1.5 + 1 + 1 + -6 + true + ReverbSoundEffect + 0 + -1 + + 0 + + + + + + 1 + 0.5 + true + 5 + TremoloSoundEffect + 0 + -1 + + + + + + + true + Sparkles + -1 + + 0.564705908 + 0.0980392247 + 1 + + + + + + + + StarterGear + -1 + + + + + + + true + Team + -1 + + 1 + + + + + + TeleportOptions + + + false + -1 + + + + + + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + TerrainRegion + AQU= + -1 + + + + + + null + null + + 0 1 1 1 0 1 1 1 1 0 + true + false + 2 + 0 + 0 + 0 + 0.100000001 + Trail + -1 + + + 1 + 0 + 0 0.5 0 1 0.5 0 + 0 1 0 1 1 0 + + + + + + Tween + -1 + + + + + + 1 + 0 + + 0 + UIAspectRatioConstraint + -1 + + + + + + + + 0 + 8 + + UICorner + -1 + + + + + + + 0 1 1 1 0 1 1 1 1 0 + true + UIGradient + + 0 + 0 + + 0 + -1 + + 0 0 0 1 0 0 + + + + + + + 0 + 5 + 0 + 5 + + + 0 + 100 + 0 + 100 + + 0 + 0 + 1 + UIGridLayout + 0 + -1 + 0 + + 1 + + + + + + 1 + 1 + UIListLayout + + 0 + 0 + + 0 + -1 + + 1 + + + + + true + + false + 1 + 2 + 0 + true + 1 + UIPageLayout + + 0 + 0 + + true + 0 + -1 + + true + 1 + 1 + + + + + + 1 + false + false + 1 + 0 + UITableLayout + + 0 + 0 + 0 + 0 + + 0 + -1 + + 1 + + + + + + UIScale + 1 + -1 + + + + + + 0 + + + 0 + 0 + 0 + + true + 0 + UIStroke + -1 + + 1 + 0 + + + + + + BinaryStringValue + -1 + + + + + + + + BoolValue + -1 + + false + + + + + + BrickColorValue + -1 + + 194 + + + + + + CFrameValue + -1 + + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + + + + + + Color3Value + -1 + + + 0 + 0 + 0 + + + + + + + 1 + 0 + DoubleConstrainedValue + -1 + + 0 + + + + + + 10 + 0 + IntConstrainedValue + -1 + + 0 + + + + + + IntValue + -1 + + 0 + + + + + + NumberValue + -1 + + 0 + + + + + + ObjectValue + -1 + + null + + + + + + RayValue + -1 + + + + 0 + 0 + 0 + + + 0 + 0 + 0 + + + + + + + + StringValue + -1 + + + + + + + + + INF + INF + + + 0 + 0 + + UISizeConstraint + -1 + + + + + + false + + 0 + 0 + + + true + 0 + 0 + + 0.639215708 + 0.635294139 + 0.647058845 + + 0 + + 0.105882362 + 0.164705887 + 0.207843155 + + 0 + 1 + rbxasset://textures/ui/Scroll/scroll-bottom.png + + 0 + 0 + + + 0 + 0 + 2 + 0 + + true + false + 0 + 0 + 0 + rbxasset://textures/ui/Scroll/scroll-middle.png + ScrollingFrame + null + null + null + null + + 0 + 0 + 0 + 0 + + null + 0 + + 1 + 1 + 1 + + 0 + 12 + 4 + true + true + null + + 0 + 0 + 0 + 0 + + 0 + -1 + + rbxasset://textures/ui/Scroll/scroll-top.png + 0 + 0 + true + 1 + + + + + + + Animation + -1 + + + + + + + true + BlurEffect + 24 + -1 + + + + + + + 0 + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + + yuZpQdnvvUBOTYh1jqZ2cA== + + 0 + 0 + 0 + + Model + false + null + -1 + + + + + + + + StandalonePluginScripts + -1 + + + + + + + Skin + 226 + -1 + + + + + + null + null + + 3 + 200 + 0 + true + 1 + false + INF + 5 + 0 + SpringConstraint + 0.400000006 + -1 + 0 + + 0.100000001 + false + + + + + + 2 + 2 + + FileMesh + + 0 + 0 + 0 + + + 1 + 1 + 1 + + -1 + + + + 1 + 1 + 1 + + + + + + + ForceField + -1 + + true + + + false @@ -7360,6 +8090,20 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 256 25 VehicleSeat + + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 0 -0.5 0.5 @@ -7396,51 +8140,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - - - - 0 - - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - - - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - - yuZpQdnvvUBOTYh1jqZ2cA== - - 0 - 0 - 0 - - WorldModel - null - -1 - - - - + @@ -7450,66 +8150,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - - - - 0 - 0 - NumberPose - -1 - - 0 - 1 - - - - - - - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - - 0 - 0 - Pose - -1 - - 1 - - - - - - true - 0.400000006 - BloomEffect - 24 - -1 - - 0.949999988 - - - - - - true - BlurEffect - 24 - -1 - - - - + true @@ -7522,409 +8163,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - - - Interact - - true - true - true - 0 - 1000 - 0 - 101 - 10 - ProximityPrompt - - true - null - -1 - 0 - - - 0 - 0 - - - - - - - - ReflectionMetadataCallbacks - -1 - - - - - - - ReflectionMetadataClasses - -1 - - - - - - - ReflectionMetadataEnums - -1 - - - - - - - ReflectionMetadataEvents - -1 - - - - - - - ReflectionMetadataFunctions - -1 - - - - - - - true - - false - - false - false - 0 - 2147483647 - true - false - ReflectionMetadataClass - - 5000 - - false - -1 - - 0 - 0 - 0 - - - - - - - true - - false - - false - false - false - ReflectionMetadataEnum - 5000 - - false - -1 - - 0 - 0 - 0 - - - - - - - true - - false - - false - false - false - ReflectionMetadataEnumItem - 5000 - - false - -1 - - 0 - 0 - 0 - - - - - - - true - - false - - false - false - false - ReflectionMetadataMember - 5000 - - false - -1 - - 0 - 0 - 0 - - - - - - - ReflectionMetadataProperties - -1 - - - - - - - ReflectionMetadataYieldFunctions - -1 - - - - - - - RemoteEvent - -1 - - - - - - - RemoteFunction - -1 - - - - - - - - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - - 10 - 0 - 50 - - 70 - RenderingTest - 21 - false - -1 - - - - - - - - true - 11 - rbxasset://sky/moon.jpg - Sky - rbxasset://textures/sky/sky512_bk.tex - rbxasset://textures/sky/sky512_dn.tex - rbxasset://textures/sky/sky512_ft.tex - rbxasset://textures/sky/sky512_lf.tex - rbxasset://textures/sky/sky512_rt.tex - rbxasset://textures/sky/sky512_up.tex - -1 - 3000 - 21 - rbxasset://sky/sun.jpg - - - - - - - - 1 - 1 - 1 - - true - Smoke - -1 - - 0.5 - 1 - 1 - - - - - - 10 - false - Sound - false - 1 - false - 0 - null - - -1 - - 0 - 0.5 - 10000 - - - - - - 0.150000006 - true - 0.5 - ChorusSoundEffect - 0 - 0.5 - -1 - - - - - - 0.100000001 - - true - 0 - CompressorSoundEffect - 0 - 40 - 0.100000001 - null - -1 - - -40 - - - - - - true - 0.75 - DistortionSoundEffect - 0 - -1 - - - - - - - 1 - 0 - true - 0.5 - EchoSoundEffect - 0 - -1 - - 0 - - - - - - true - 0 - -20 - -10 - EqualizerSoundEffect - 0 - -1 - - - - - - - 0.449999988 - true - 0.850000024 - FlangeSoundEffect - 0 - 5 - -1 - - - - - - - true - PitchShiftSoundEffect - 1.25 - 0 - -1 - - - - - - - 1.5 - 1 - 1 - -6 - true - ReverbSoundEffect - 0 - -1 - - 0 - - - - - - 1 - 0.5 - true - 5 - TremoloSoundEffect - 0 - -1 - - - - + SoundGroup @@ -7933,15 +8172,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 0.5 - - - - StandalonePluginScripts - -1 - - - - + 0 @@ -7955,198 +8186,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - - - - TeleportOptions - - - false - -1 - - - - - - - - 0 - 0 - 0 - - - 0 - 0 - 0 - - TerrainRegion - AQU= - -1 - - - - - - null - null - - 0 1 1 1 0 1 1 1 1 0 - true - false - 2 - 0 - 0 - 0 - 0.100000001 - Trail - -1 - - - 1 - 0 - 0 0.5 0 1 0.5 0 - 0 1 0 1 1 0 - - - - - - Tween - -1 - - - - - - 1 - 0 - - 0 - UIAspectRatioConstraint - -1 - - - - - - - - INF - INF - - - 0 - 0 - - UISizeConstraint - -1 - - - - - - - 0 1 1 1 0 1 1 1 1 0 - true - UIGradient - - 0 - 0 - - 0 - -1 - - 0 0 0 1 0 0 - - - - - - - 0 - 5 - 0 - 5 - - - 0 - 100 - 0 - 100 - - 0 - 0 - 1 - UIGridLayout - 0 - -1 - 0 - - 1 - - - - - - 1 - 1 - UIListLayout - - 0 - 0 - - 0 - -1 - - 1 - - - - - true - - false - 1 - 2 - 0 - true - 1 - UIPageLayout - - 0 - 0 - - true - 0 - -1 - - true - 1 - 1 - - - - - - 1 - false - false - 1 - 0 - UITableLayout - - 0 - 0 - 0 - 0 - - 0 - -1 - - 1 - - - + UIPadding @@ -8170,361 +8210,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - - - 0 - - - 0 - 0 - 0 - - true - 0 - UIStroke - -1 - - 1 - 0 - - - - - - BinaryStringValue - -1 - - - - - - - - BoolValue - -1 - - false - - - - - - BrickColorValue - -1 - - 194 - - - - - - CFrameValue - -1 - - - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - - - - - - - Color3Value - -1 - - - 0 - 0 - 0 - - - - - - - 1 - 0 - DoubleConstrainedValue - -1 - - 0 - - - - - - 10 - 0 - IntConstrainedValue - -1 - - 0 - - - - - - IntValue - -1 - - 0 - - - - - - NumberValue - -1 - - 0 - - - - - - ObjectValue - -1 - - null - - - - - - RayValue - -1 - - - - 0 - 0 - 0 - - - 0 - 0 - 0 - - - - - - - - StringValue - -1 - - - - - - - - Vector3Value - -1 - - - 0 - 0 - 0 - - - - - - - 100 - 1 - UITextSizeConstraint - -1 - - - - - - true - - 0 - 0 - - - true - 0 - - 0.639215708 - 0.635294139 - 0.647058845 - - 0 - - 0.105882362 - 0.164705887 - 0.207843155 - - 0 - 1 - true - false - false - 0 - 0 - 1 - false - TextBox - null - null - null - null - - 0.699999988 - 0.699999988 - 0.699999988 - - - - 0 - 0 - 0 - 0 - - false - null - 0 - true - null - true - - 0 - 0 - 0 - 0 - - 0 - -1 - - TextBox - - 0.105882362 - 0.164705887 - 0.207843155 - - true - false - 8 - - 0 - 0 - 0 - - 1 - 0 - 0 - false - 2 - 1 - true - 1 - - - - - - AnimationController - -1 - - - - - - - 0 - 0 - true - ColorCorrectionEffect - 0 - -1 - - - 1 - 1 - 1 - - - - - - - 0 - - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - - - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - - yuZpQdnvvUBOTYh1jqZ2cA== - - 0 - 0 - 0 - - Actor - null - -1 - - - - - - - StarterGear - -1 - - - - - - - - 32 - ClickDetector - -1 - - - - + null null @@ -8543,7 +8229,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> false - + 2 @@ -8571,7 +8257,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - + ? @@ -8581,131 +8267,7 @@ dFN0cmluZwIEAAAAVGVzdA==]]> - - - - 0 - - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - - - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - - yuZpQdnvvUBOTYh1jqZ2cA== - - 0 - 0 - 0 - - Model - null - -1 - - - - - - - 0 - 0 - 0 - - - 0 1 1 1 0 1 1 1 1 0 - 0 - 1 - true - 5 10 - 0 - 0 - false - ParticleEmitter - 0 - 20 - 0 0 - 0 0 - 0 1 0 1 1 0 - -1 - 5 5 - - 0 - 0 - - - rbxasset://textures/particles/sparkles_main.dds - 1 - 0 0 0 1 0 0 - 0 - 0 - - - - - - true - 0.25 - SunRaysEffect - -1 - 1 - - - - - - - true - Sparkles - -1 - - 0.564705908 - 0.0980392247 - 1 - - - - - - - - true - Team - -1 - - 1 - - - - - - UIScale - 1 - -1 - - - - + @@ -8722,7 +8284,6 @@ dFN0cmluZwIEAAAAVGVzdA==]]> 0 1 - true WeldConstraint null null diff --git a/UnitTest/RobloxFileFormat.UnitTest.csproj b/UnitTest/RobloxFileFormat.UnitTest.csproj index 22f9de0..7c39e46 100644 --- a/UnitTest/RobloxFileFormat.UnitTest.csproj +++ b/UnitTest/RobloxFileFormat.UnitTest.csproj @@ -27,5 +27,5 @@ - + diff --git a/XmlFormat/XmlRobloxFile.cs b/XmlFormat/XmlRobloxFile.cs index f727cae..3d4fd17 100644 --- a/XmlFormat/XmlRobloxFile.cs +++ b/XmlFormat/XmlRobloxFile.cs @@ -65,6 +65,10 @@ namespace RobloxFiles if (child.Name == "Item") { Instance item = XmlRobloxFileReader.ReadInstance(child, this); + + if (item == null) + continue; + item.Parent = this; } else if (child.Name == "SharedStrings")