From e9732e427b8f0903b6ec9f5d02aa3f1f9e884e94 Mon Sep 17 00:00:00 2001 From: Micah Date: Tue, 21 Nov 2023 13:02:17 -0800 Subject: [PATCH 01/64] Add `len` and `is_empty` method to attributes (#377) --- rbx_types/CHANGELOG.md | 2 ++ rbx_types/src/attributes/mod.rs | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/rbx_types/CHANGELOG.md b/rbx_types/CHANGELOG.md index cf0d0df57..76994f2f4 100644 --- a/rbx_types/CHANGELOG.md +++ b/rbx_types/CHANGELOG.md @@ -1,6 +1,7 @@ # rbx_types Changelog ## Unreleased Changes +* Add `len` and `is_empty` methods to `Attributes` struct. ([#377]) ## 1.7.0 (2023-10-03) * Implemented `FromStr` for `TerrainMaterials`. ([#354]) @@ -12,6 +13,7 @@ [#355]: https://github.com/rojo-rbx/rbx-dom/pull/355 [#358]: https://github.com/rojo-rbx/rbx-dom/pull/358 [#363]: https://github.com/rojo-rbx/rbx-dom/pull/363 +[#377]: https://github.com/rojo-rbx/rbx-dom/pull/377 ## 1.6.0 (2023-08-09) * Added support for `UniqueId` values. ([#271]) diff --git a/rbx_types/src/attributes/mod.rs b/rbx_types/src/attributes/mod.rs index 6d0688741..a76e65654 100644 --- a/rbx_types/src/attributes/mod.rs +++ b/rbx_types/src/attributes/mod.rs @@ -78,6 +78,18 @@ impl Attributes { pub fn iter(&self) -> impl Iterator { self.data.iter() } + + /// Returns the number of attributes. + #[inline] + pub fn len(&self) -> usize { + self.data.len() + } + + /// Returns true if the struct contains no attributes. + #[inline] + pub fn is_empty(&self) -> bool { + self.data.is_empty() + } } impl IntoIterator for Attributes { From 04f185586be0471feba93ed51dad32d3c2a50f36 Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler Date: Wed, 13 Dec 2023 12:34:04 -0800 Subject: [PATCH 02/64] Use in-progress db for rbx_reflector default place decode (#378) Closes #345 Because of #375, it's possible to continue using `DecodePropertyBehavior::IgnoreUnknown` and simply swap to the in-progress database via `DecodeOptions::reflection_database` --- rbx_reflector/src/defaults.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rbx_reflector/src/defaults.rs b/rbx_reflector/src/defaults.rs index 06568cfe2..f62976023 100644 --- a/rbx_reflector/src/defaults.rs +++ b/rbx_reflector/src/defaults.rs @@ -18,7 +18,8 @@ pub fn apply_defaults( let file = BufReader::new(File::open(defaults_place).context("Could not find defaults place")?); let decode_options = rbx_xml::DecodeOptions::new() - .property_behavior(rbx_xml::DecodePropertyBehavior::IgnoreUnknown); + .property_behavior(rbx_xml::DecodePropertyBehavior::IgnoreUnknown) + .reflection_database(database); let tree = rbx_xml::from_reader(file, decode_options).context("Could not decode defaults place")?; From 989869763999c84801076680244e14cc6a398dbf Mon Sep 17 00:00:00 2001 From: Dervex <78505208+DervexHero@users.noreply.github.com> Date: Sun, 17 Dec 2023 20:27:55 +0100 Subject: [PATCH 03/64] Add `Default` implementation for `WeakDom` (#379) Title basically explains everything. Aside from the fact that it is good practise, `Default` is required e.g. when using `#[serde(skip)]` attribute. --- rbx_dom_weak/CHANGELOG.md | 1 + rbx_dom_weak/src/dom.rs | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/rbx_dom_weak/CHANGELOG.md b/rbx_dom_weak/CHANGELOG.md index 5f0f0cb86..a1b589d28 100644 --- a/rbx_dom_weak/CHANGELOG.md +++ b/rbx_dom_weak/CHANGELOG.md @@ -1,6 +1,7 @@ # rbx_dom_weak Changelog ## Unreleased Changes +* Implemented `Default` for `WeakDom`, useful when using Serde or creating an empty `WeakDom` ## 2.6.0 (2023-10-03) * Added `WeakDom::clone_multiple_into_external` that allows cloning multiple subtrees all at once into a given `WeakDom`, useful for preserving `Ref` properties that point across cloned subtrees ([#364]) diff --git a/rbx_dom_weak/src/dom.rs b/rbx_dom_weak/src/dom.rs index 479508af3..99c5b9dcd 100644 --- a/rbx_dom_weak/src/dom.rs +++ b/rbx_dom_weak/src/dom.rs @@ -346,6 +346,16 @@ impl WeakDom { } } +impl Default for WeakDom { + fn default() -> WeakDom { + WeakDom { + instances: HashMap::new(), + root_ref: Ref::none(), + unique_ids: HashSet::new(), + } + } +} + #[derive(Debug, Default)] struct CloneContext { queue: VecDeque<(Ref, Ref)>, From a7facf26f1bca922546011c0d812809941825614 Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler Date: Tue, 16 Jan 2024 09:50:54 -0800 Subject: [PATCH 04/64] Update reflection database to Roblox 607 (#381) This PR updates the reflection database to Roblox version 607. Notably, it adds new information for the editable image, editable mesh, unreliable remote event, and UI flex features. --- rbx_dom_lua/src/database.json | 1353 +++++++++++++++++++--- rbx_reflection_database/CHANGELOG.md | 2 +- rbx_reflection_database/database.msgpack | Bin 444052 -> 452565 bytes 3 files changed, 1225 insertions(+), 130 deletions(-) diff --git a/rbx_dom_lua/src/database.json b/rbx_dom_lua/src/database.json index 817d31301..81424b27e 100644 --- a/rbx_dom_lua/src/database.json +++ b/rbx_dom_lua/src/database.json @@ -1,9 +1,9 @@ { "Version": [ 0, - 597, - 1, - 5970668 + 607, + 0, + 6070550 ], "Classes": { "Accessory": { @@ -13,7 +13,7 @@ "Properties": { "AccessoryType": { "Name": "AccessoryType", - "Scriptability": "Read", + "Scriptability": "ReadWrite", "DataType": { "Enum": "AccessoryType" }, @@ -191,6 +191,17 @@ } } }, + "AccountService": { + "Name": "AccountService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "Accoutrement": { "Name": "Accoutrement", "Tags": [], @@ -446,6 +457,19 @@ } } }, + "EnableVideoAds": { + "Name": "EnableVideoAds", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "FallbackImage": { "Name": "FallbackImage", "Scriptability": "ReadWrite", @@ -881,7 +905,7 @@ }, "DefaultProperties": { "AlignType": { - "Enum": 0 + "Enum": 5 }, "Attributes": { "Attributes": {} @@ -2007,6 +2031,23 @@ } } }, + "FACSDataLod": { + "Name": "FACSDataLod", + "Scriptability": "Read", + "DataType": { + "Enum": "FACSDataLod" + }, + "Tags": [ + "Hidden", + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "IsPlaying": { "Name": "IsPlaying", "Scriptability": "Read", @@ -4508,7 +4549,6 @@ "Name": "AvatarCreationService", "Tags": [ "NotCreatable", - "NotReplicated", "Service" ], "Superclass": "Instance", @@ -6025,6 +6065,15 @@ "Properties": {}, "DefaultProperties": {} }, + "BaseRemoteEvent": { + "Name": "BaseRemoteEvent", + "Tags": [ + "NotCreatable" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "BaseScript": { "Name": "BaseScript", "Tags": [ @@ -11817,6 +11866,34 @@ "Properties": {}, "DefaultProperties": {} }, + "ConnectivityService": { + "Name": "ConnectivityService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": { + "NetworkStatus": { + "Name": "NetworkStatus", + "Scriptability": "None", + "DataType": { + "Enum": "NetworkStatus" + }, + "Tags": [ + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + } + }, + "DefaultProperties": {} + }, "Constraint": { "Name": "Constraint", "Tags": [ @@ -12338,6 +12415,17 @@ "Properties": {}, "DefaultProperties": {} }, + "ConversationalAIAcceptanceService": { + "Name": "ConversationalAIAcceptanceService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "CookiesService": { "Name": "CookiesService", "Tags": [ @@ -13192,6 +13280,19 @@ } } }, + "SoftlockAngularServoUponReachingTarget": { + "Name": "SoftlockAngularServoUponReachingTarget", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "TargetAngle": { "Name": "TargetAngle", "Scriptability": "ReadWrite", @@ -13291,7 +13392,7 @@ "Float32": null }, "MotorMaxAngularAcceleration": { - "Float32": null + "Float32": 500000.0 }, "MotorMaxForce": { "Float32": 0.0 @@ -13314,6 +13415,12 @@ "Size": { "Float32": 0.15 }, + "SoftlockAngularServoUponReachingTarget": { + "Bool": false + }, + "SoftlockServoUponReachingTarget": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -16382,90 +16489,6 @@ }, "DefaultProperties": {} }, - "DynamicImage": { - "Name": "DynamicImage", - "Tags": [], - "Superclass": "Instance", - "Properties": { - "Size": { - "Name": "Size", - "Scriptability": "ReadWrite", - "DataType": { - "Value": "Vector2" - }, - "Tags": [], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - } - }, - "DefaultProperties": {} - }, - "DynamicMesh": { - "Name": "DynamicMesh", - "Tags": [], - "Superclass": "DataModelMesh", - "Properties": { - "MeshVersion": { - "Name": "MeshVersion", - "Scriptability": "Read", - "DataType": { - "Value": "Int32" - }, - "Tags": [ - "Hidden" - ], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - } - }, - "DefaultProperties": { - "Attributes": { - "Attributes": {} - }, - "Capabilities": { - "SecurityCapabilities": 0 - }, - "DefinesCapabilities": { - "Bool": false - }, - "MeshVersion": { - "Int32": 0 - }, - "Offset": { - "Vector3": [ - 0.0, - 0.0, - 0.0 - ] - }, - "Scale": { - "Vector3": [ - 1.0, - 1.0, - 1.0 - ] - }, - "SourceAssetId": { - "Int64": -1 - }, - "Tags": { - "Tags": [] - }, - "VertexColor": { - "Vector3": [ - 1.0, - 1.0, - 1.0 - ] - } - } - }, "DynamicRotate": { "Name": "DynamicRotate", "Tags": [ @@ -16583,6 +16606,72 @@ } } }, + "EditableImage": { + "Name": "EditableImage", + "Tags": [ + "NotReplicated" + ], + "Superclass": "Instance", + "Properties": { + "ImageData": { + "Name": "ImageData", + "Scriptability": "None", + "DataType": { + "Value": "BinaryString" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "Size": { + "Name": "Size", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Vector2" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": {} + }, + "EditableMesh": { + "Name": "EditableMesh", + "Tags": [ + "NotReplicated" + ], + "Superclass": "DataModelMesh", + "Properties": { + "MeshData": { + "Name": "MeshData", + "Scriptability": "None", + "DataType": { + "Value": "SharedString" + }, + "Tags": [ + "Hidden", + "NotReplicated", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + } + }, + "DefaultProperties": {} + }, "EmotesPages": { "Name": "EmotesPages", "Tags": [ @@ -16593,6 +16682,17 @@ "Properties": {}, "DefaultProperties": {} }, + "EngineAPICloudProcessingService": { + "Name": "EngineAPICloudProcessingService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "EqualizerSoundEffect": { "Name": "EqualizerSoundEffect", "Tags": [], @@ -16831,6 +16931,35 @@ "Properties": {}, "DefaultProperties": {} }, + "ExperienceStateCaptureService": { + "Name": "ExperienceStateCaptureService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": { + "IsInCaptureMode": { + "Name": "IsInCaptureMode", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + } + }, + "DefaultProperties": {} + }, "Explosion": { "Name": "Explosion", "Tags": [], @@ -18828,7 +18957,7 @@ "Tags": [] }, "ValuesAndTimes": { - "BinaryString": "AQAAAAAAAAAAAAAAAAAWRQAAAAA=" + "BinaryString": "AQAAAAAAAAABAAAAAAAAAA==" } } }, @@ -21393,7 +21522,6 @@ "Value": "Rect" }, "Tags": [ - "Hidden", "NotReplicated", "ReadOnly" ], @@ -22151,6 +22279,19 @@ } } }, + "SoftlockServoUponReachingTarget": { + "Name": "SoftlockServoUponReachingTarget", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "TargetAngle": { "Name": "TargetAngle", "Scriptability": "ReadWrite", @@ -22213,7 +22354,7 @@ "Float32": -45.0 }, "MotorMaxAcceleration": { - "Float32": null + "Float32": 500000.0 }, "MotorMaxTorque": { "Float32": 0.0 @@ -22227,6 +22368,9 @@ "ServoMaxTorque": { "Float32": 0.0 }, + "SoftlockServoUponReachingTarget": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -26172,6 +26316,9 @@ "EnableFluidForces": { "Bool": true }, + "FluidFidelityInternal": { + "Enum": 0 + }, "FormFactor": { "Enum": 3 }, @@ -26632,23 +26779,7 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": { - "Attributes": { - "Attributes": {} - }, - "Capabilities": { - "SecurityCapabilities": 0 - }, - "DefinesCapabilities": { - "Bool": false - }, - "SourceAssetId": { - "Int64": -1 - }, - "Tags": { - "Tags": [] - } - } + "DefaultProperties": {} }, "LayerCollector": { "Name": "LayerCollector", @@ -28605,7 +28736,7 @@ "Tags": [] }, "ValuesAndTimes": { - "BinaryString": "AAAAAAEAAAAKAAAAAAAAFkUAAAAA" + "BinaryString": "AQAAAAAAAAABAAAAAAAAAA==" } } }, @@ -29738,6 +29869,16 @@ "Properties": {}, "DefaultProperties": {} }, + "MemoryStoreHashMapPages": { + "Name": "MemoryStoreHashMapPages", + "Tags": [ + "NotCreatable", + "NotReplicated" + ], + "Superclass": "Pages", + "Properties": {}, + "DefaultProperties": {} + }, "MemoryStoreQueue": { "Name": "MemoryStoreQueue", "Tags": [ @@ -30128,6 +30269,23 @@ } } }, + "EditableMeshString": { + "Name": "EditableMeshString", + "Scriptability": "None", + "DataType": { + "Value": "SharedString" + }, + "Tags": [ + "Hidden", + "NotReplicated", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "HasJointOffset": { "Name": "HasJointOffset", "Scriptability": "Read", @@ -30394,6 +30552,9 @@ "EnableFluidForces": { "Bool": true }, + "FluidFidelityInternal": { + "Enum": 0 + }, "FrontParamA": { "Float32": -0.5 }, @@ -31905,6 +32066,9 @@ "EnableFluidForces": { "Bool": true }, + "FluidFidelityInternal": { + "Enum": 0 + }, "FormFactor": { "Enum": 3 }, @@ -32626,8 +32790,8 @@ } } }, - "OperationTree": { - "Name": "OperationTree", + "OperationGraph": { + "Name": "OperationGraph", "Tags": [], "Superclass": "Instance", "Properties": {}, @@ -32792,6 +32956,19 @@ } } }, + "DefaultName": { + "Name": "DefaultName", + "Scriptability": "Read", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "ModifiedState": { "Name": "ModifiedState", "Scriptability": "None", @@ -32892,6 +33069,19 @@ } } }, + "SerializedDefaultAttributes": { + "Name": "SerializedDefaultAttributes", + "Scriptability": "Read", + "DataType": { + "Value": "BinaryString" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Status": { "Name": "Status", "Scriptability": "None", @@ -33779,6 +33969,9 @@ "EnableFluidForces": { "Bool": true }, + "FluidFidelityInternal": { + "Enum": 0 + }, "FormFactor": { "Enum": 3 }, @@ -34727,6 +34920,112 @@ }, "DefaultProperties": {} }, + "Path2D": { + "Name": "Path2D", + "Tags": [ + "NotReplicated" + ], + "Superclass": "GuiBase", + "Properties": { + "AbsoluteSize": { + "Name": "AbsoluteSize", + "Scriptability": "None", + "DataType": { + "Value": "Vector2" + }, + "Tags": [ + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "Color": { + "Name": "Color", + "Scriptability": "None", + "DataType": { + "Value": "Color3" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Position": { + "Name": "Position", + "Scriptability": "None", + "DataType": { + "Value": "UDim2" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "SelectedControlPoint": { + "Name": "SelectedControlPoint", + "Scriptability": "None", + "DataType": { + "Value": "Int32" + }, + "Tags": [ + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "Thickness": { + "Name": "Thickness", + "Scriptability": "None", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Transparency": { + "Name": "Transparency", + "Scriptability": "None", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Visible": { + "Name": "Visible", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": {} + }, "PathfindingLink": { "Name": "PathfindingLink", "Tags": [], @@ -35227,6 +35526,19 @@ } } }, + "AreGravityForcesShownForSelectedOrHoveredAssemblies": { + "Name": "AreGravityForcesShownForSelectedOrHoveredAssemblies", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "AreJointCoordinatesShown": { "Name": "AreJointCoordinatesShown", "Scriptability": "ReadWrite", @@ -35529,8 +35841,8 @@ } } }, - "ShowFluidForcesForSelectedOrHoveredAssemblies": { - "Name": "ShowFluidForcesForSelectedOrHoveredAssemblies", + "ShowFluidForcesForSelectedOrHoveredMechanisms": { + "Name": "ShowFluidForcesForSelectedOrHoveredMechanisms", "Scriptability": "None", "DataType": { "Value": "Bool" @@ -35740,6 +36052,17 @@ "Properties": {}, "DefaultProperties": {} }, + "PlatformCloudStorageService": { + "Name": "PlatformCloudStorageService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "PlatformFriendsService": { "Name": "PlatformFriendsService", "Tags": [ @@ -37962,6 +38285,9 @@ "Size": { "Float32": 0.15 }, + "SoftlockServoUponReachingTarget": { + "Bool": false + }, "SourceAssetId": { "Int64": -1 }, @@ -39205,7 +39531,7 @@ "RemoteEvent": { "Name": "RemoteEvent", "Tags": [], - "Superclass": "Instance", + "Superclass": "BaseRemoteEvent", "Properties": {}, "DefaultProperties": { "Attributes": { @@ -39918,6 +40244,56 @@ } } }, + "RobloxEditableImage": { + "Name": "RobloxEditableImage", + "Tags": [], + "Superclass": "EditableImage", + "Properties": { + "ImageDataSerialize": { + "Name": "ImageDataSerialize", + "Scriptability": "None", + "DataType": { + "Value": "BinaryString" + }, + "Tags": [ + "Hidden", + "NotReplicated", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "ImageDataSerialize": { + "BinaryString": "" + }, + "Size": { + "Vector2": [ + 512.0, + 512.0 + ] + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + } + } + }, "RobloxPluginGuiService": { "Name": "RobloxPluginGuiService", "Tags": [ @@ -41107,7 +41483,7 @@ "Tags": [] }, "ValuesAndTimes": { - "BinaryString": "AQAAAAAAAAAAAAAAAAAWRQAAAAA=" + "BinaryString": "AQAAAAAAAAABAAAAAAAAAA==" } } }, @@ -41209,9 +41585,7 @@ "DataType": { "Value": "Bool" }, - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -41270,9 +41644,7 @@ "DataType": { "Enum": "SafeAreaCompatibility" }, - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -41425,6 +41797,32 @@ } } }, + "HideCoreGuiForCaptures": { + "Name": "HideCoreGuiForCaptures", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "HidePlayerGuiForCaptures": { + "Name": "HidePlayerGuiForCaptures", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "OverlayFont": { "Name": "OverlayFont", "Scriptability": "ReadWrite", @@ -44101,6 +44499,19 @@ } } }, + "SoftlockServoUponReachingTarget": { + "Name": "SoftlockServoUponReachingTarget", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Speed": { "Name": "Speed", "Scriptability": "ReadWrite", @@ -44932,6 +45343,7 @@ "Value": "Float32" }, "Tags": [ + "Deprecated", "Hidden", "NotReplicated", "NotScriptable" @@ -44949,6 +45361,7 @@ "Value": "Float32" }, "Tags": [ + "Deprecated", "Hidden", "NotReplicated", "NotScriptable" @@ -47135,6 +47548,21 @@ } } }, + "LuaCharacterController": { + "Name": "LuaCharacterController", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "CharacterControlMode" + }, + "Tags": [ + "NotBrowsable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "NameDisplayDistance": { "Name": "NameDisplayDistance", "Scriptability": "ReadWrite", @@ -47310,6 +47738,9 @@ "LoadCharacterLayeredClothing": { "Enum": 0 }, + "LuaCharacterController": { + "Enum": 0 + }, "NameDisplayDistance": { "Float32": 100.0 }, @@ -47349,6 +47780,17 @@ } } }, + "StartupMessageService": { + "Name": "StartupMessageService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "Stats": { "Name": "Stats", "Tags": [ @@ -49899,7 +50341,21 @@ "Service" ], "Superclass": "Instance", - "Properties": {}, + "Properties": { + "PublishLocked": { + "Name": "PublishLocked", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, "DefaultProperties": {} }, "StudioScriptDebugEventListener": { @@ -52937,6 +53393,38 @@ } } }, + "LocalizationMatchIdentifier": { + "Name": "LocalizationMatchIdentifier", + "Scriptability": "None", + "DataType": { + "Value": "String" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "LocalizationMatchedSourceText": { + "Name": "LocalizationMatchedSourceText", + "Scriptability": "None", + "DataType": { + "Value": "String" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "ManualFocusRelease": { "Name": "ManualFocusRelease", "Scriptability": "None", @@ -53401,6 +53889,12 @@ "LineHeight": { "Float32": 1.0 }, + "LocalizationMatchIdentifier": { + "String": "" + }, + "LocalizationMatchedSourceText": { + "String": "" + }, "MaxVisibleGraphemes": { "Int32": -1 }, @@ -53646,6 +54140,38 @@ } } }, + "LocalizationMatchIdentifier": { + "Name": "LocalizationMatchIdentifier", + "Scriptability": "None", + "DataType": { + "Value": "String" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "LocalizationMatchedSourceText": { + "Name": "LocalizationMatchedSourceText", + "Scriptability": "None", + "DataType": { + "Value": "String" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "LocalizedText": { "Name": "LocalizedText", "Scriptability": "Read", @@ -53985,6 +54511,12 @@ "LineHeight": { "Float32": 1.0 }, + "LocalizationMatchIdentifier": { + "String": "" + }, + "LocalizationMatchedSourceText": { + "String": "" + }, "MaxVisibleGraphemes": { "Int32": -1 }, @@ -54434,7 +54966,25 @@ "DataType": { "Value": "Bool" }, - "Tags": [], + "Tags": [ + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "ChatTranslationFTUXShown": { + "Name": "ChatTranslationFTUXShown", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -54447,7 +54997,10 @@ "DataType": { "Value": "Bool" }, - "Tags": [], + "Tags": [ + "Hidden", + "NotReplicated" + ], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -54501,7 +55054,7 @@ "Capabilities": { "SecurityCapabilities": 0 }, - "ChatTranslationEnabled": { + "ChatTranslationFTUXShown": { "Bool": true }, "ChatTranslationToggleEnabled": { @@ -54681,6 +55234,38 @@ } } }, + "LocalizationMatchIdentifier": { + "Name": "LocalizationMatchIdentifier", + "Scriptability": "None", + "DataType": { + "Value": "String" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "LocalizationMatchedSourceText": { + "Name": "LocalizationMatchedSourceText", + "Scriptability": "None", + "DataType": { + "Value": "String" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "LocalizedText": { "Name": "LocalizedText", "Scriptability": "Read", @@ -55017,6 +55602,12 @@ "LineHeight": { "Float32": 1.0 }, + "LocalizationMatchIdentifier": { + "String": "" + }, + "LocalizationMatchedSourceText": { + "String": "" + }, "MaxVisibleGraphemes": { "Int32": -1 }, @@ -55305,6 +55896,17 @@ } } }, + "TextureGenerationMeshHandler": { + "Name": "TextureGenerationMeshHandler", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "ThirdPartyUserService": { "Name": "ThirdPartyUserService", "Tags": [ @@ -56568,6 +57170,37 @@ } } }, + "FluidFidelity": { + "Name": "FluidFidelity", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "FluidFidelity" + }, + "Tags": [ + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "FluidFidelityInternal": { + "Name": "FluidFidelityInternal", + "Scriptability": "None", + "DataType": { + "Enum": "FluidFidelity" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "MeshSize": { "Name": "MeshSize", "Scriptability": "Read", @@ -57144,6 +57777,96 @@ } } }, + "UIFlexItem": { + "Name": "UIFlexItem", + "Tags": [ + "NotBrowsable" + ], + "Superclass": "UIComponent", + "Properties": { + "FlexMode": { + "Name": "FlexMode", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "UIFlexMode" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "GrowRatio": { + "Name": "GrowRatio", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "ItemLineAlignment": { + "Name": "ItemLineAlignment", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "ItemLineAlignment" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "ShrinkRatio": { + "Name": "ShrinkRatio", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "FlexMode": { + "Enum": 0 + }, + "GrowRatio": { + "Float32": 0.0 + }, + "ItemLineAlignment": { + "Enum": 0 + }, + "ShrinkRatio": { + "Float32": 0.0 + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + } + } + }, "UIGradient": { "Name": "UIGradient", "Tags": [], @@ -57526,6 +58249,48 @@ "Tags": [], "Superclass": "UIGridStyleLayout", "Properties": { + "HorizontalFlex": { + "Name": "HorizontalFlex", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "UIFlexAlignment" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "HorizontalPadding": { + "Name": "HorizontalPadding", + "Scriptability": "None", + "DataType": { + "Value": "UDim" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "ItemLineAlignment": { + "Name": "ItemLineAlignment", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "ItemLineAlignment" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Padding": { "Name": "Padding", "Scriptability": "ReadWrite", @@ -57538,6 +58303,48 @@ "Serialization": "Serializes" } } + }, + "VerticalFlex": { + "Name": "VerticalFlex", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "UIFlexAlignment" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "VerticalPadding": { + "Name": "VerticalPadding", + "Scriptability": "None", + "DataType": { + "Value": "UDim" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "Wraps": { + "Name": "Wraps", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } } }, "DefaultProperties": { @@ -57556,6 +58363,12 @@ "HorizontalAlignment": { "Enum": 1 }, + "HorizontalFlex": { + "Enum": 0 + }, + "ItemLineAlignment": { + "Enum": 0 + }, "Padding": { "UDim": [ 0.0, @@ -57573,6 +58386,12 @@ }, "VerticalAlignment": { "Enum": 1 + }, + "VerticalFlex": { + "Enum": 0 + }, + "Wraps": { + "Bool": false } } }, @@ -58371,6 +59190,9 @@ "EnableFluidForces": { "Bool": true }, + "FluidFidelityInternal": { + "Enum": 0 + }, "FormFactor": { "Enum": 3 }, @@ -58617,6 +59439,29 @@ } } }, + "UnreliableRemoteEvent": { + "Name": "UnreliableRemoteEvent", + "Tags": [], + "Superclass": "BaseRemoteEvent", + "Properties": {}, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + } + } + }, "UnvalidatedAssetService": { "Name": "UnvalidatedAssetService", "Tags": [ @@ -58713,6 +59558,54 @@ } } }, + "ChatTranslationEnabled": { + "Name": "ChatTranslationEnabled", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "ChatTranslationFTUXShown": { + "Name": "ChatTranslationFTUXShown", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "ChatTranslationToggleEnabled": { + "Name": "ChatTranslationToggleEnabled", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "ChatVisible": { "Name": "ChatVisible", "Scriptability": "None", @@ -62034,6 +62927,21 @@ } } }, + "UseAudioApi": { + "Name": "UseAudioApi", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "AudioApiRollout" + }, + "Tags": [ + "NotBrowsable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "UseNewAudioApi": { "Name": "UseNewAudioApi", "Scriptability": "None", @@ -62128,6 +63036,9 @@ }, "Tags": { "Tags": [] + }, + "UseAudioApi": { + "Enum": 1 } } }, @@ -63152,6 +64063,36 @@ } } }, + "PlayerCharacterDestroyBehavior": { + "Name": "PlayerCharacterDestroyBehavior", + "Scriptability": "None", + "DataType": { + "Enum": "PlayerCharacterDestroyBehavior" + }, + "Tags": [ + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "PrimalPhysicsSolver": { + "Name": "PrimalPhysicsSolver", + "Scriptability": "None", + "DataType": { + "Enum": "PrimalPhysicsSolver" + }, + "Tags": [ + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "RejectCharacterDeletions": { "Name": "RejectCharacterDeletions", "Scriptability": "None", @@ -63474,6 +64415,12 @@ "PhysicsSteppingMethod": { "Enum": 0 }, + "PlayerCharacterDestroyBehavior": { + "Enum": 0 + }, + "PrimalPhysicsSolver": { + "Enum": 0 + }, "RejectCharacterDeletions": { "Enum": 0 }, @@ -64166,6 +65113,14 @@ "Servo": 2 } }, + "AdEventType": { + "name": "AdEventType", + "items": { + "UserCompletedVideo": 2, + "VideoLoaded": 0, + "VideoRemoved": 1 + } + }, "AdShape": { "name": "AdShape", "items": { @@ -64198,8 +65153,12 @@ "AlignType": { "name": "AlignType", "items": { + "AllAxes": 5, "Parallel": 0, - "Perpendicular": 1 + "Perpendicular": 1, + "PrimaryAxisLookAt": 4, + "PrimaryAxisParallel": 2, + "PrimaryAxisPerpendicular": 3 } }, "AlphaMode": { @@ -64424,6 +65383,14 @@ "Default": 1 } }, + "AudioApiRollout": { + "name": "AudioApiRollout", + "items": { + "Automatic": 1, + "Disabled": 0, + "Enabled": 2 + } + }, "AudioSubType": { "name": "AudioSubType", "items": { @@ -64800,6 +65767,15 @@ "UnsolicitedDialog": 1 } }, + "CharacterControlMode": { + "name": "CharacterControlMode", + "items": { + "Default": 0, + "Legacy": 1, + "LuaCharacterController": 3, + "NoCharacterController": 2 + } + }, "ChatCallbackType": { "name": "ChatCallbackType", "items": { @@ -65023,6 +65999,7 @@ "PlacelaunchUserLeft": 522, "PlacelaunchUserPrivacyUnauthorized": 533, "PlayerRemoved": 291, + "ReplacementReady": 301, "ReplicatorTimeout": 290, "ServerShutdown": 288, "TeleportErrors": 768, @@ -65070,6 +66047,7 @@ "items": { "All": 4, "Backpack": 2, + "Captures": 7, "Chat": 3, "EmotesMenu": 5, "Health": 1, @@ -65417,6 +66395,14 @@ "NoCraters": 0 } }, + "FACSDataLod": { + "name": "FACSDataLod", + "items": { + "LOD0": 0, + "LOD1": 1, + "LODCount": 2 + } + }, "FacialAnimationStreamingState": { "name": "FacialAnimationStreamingState", "items": { @@ -65457,6 +66443,14 @@ "Commit": 1 } }, + "FluidFidelity": { + "name": "FluidFidelity", + "items": { + "Automatic": 0, + "UseCollisionGeometry": 1, + "UsePreciseGeometry": 2 + } + }, "FluidForces": { "name": "FluidForces", "items": { @@ -65739,6 +66733,13 @@ "None": 0 } }, + "HttpCompression": { + "name": "HttpCompression", + "items": { + "Gzip": 1, + "None": 0 + } + }, "HttpContentType": { "name": "HttpContentType", "items": { @@ -65928,6 +66929,25 @@ "Enabled": 2 } }, + "InviteState": { + "name": "InviteState", + "items": { + "Accepted": 1, + "Declined": 2, + "Missed": 3, + "Placed": 0 + } + }, + "ItemLineAlignment": { + "name": "ItemLineAlignment", + "items": { + "Automatic": 0, + "Center": 2, + "End": 3, + "Start": 1, + "Stretch": 4 + } + }, "JointCreationMode": { "name": "JointCreationMode", "items": { @@ -66499,6 +67519,14 @@ "OnContact": 2 } }, + "NetworkStatus": { + "name": "NetworkStatus", + "items": { + "Connected": 1, + "Disconnected": 2, + "Unknown": 0 + } + }, "NormalId": { "name": "NormalId", "items": { @@ -66699,6 +67727,7 @@ "Ouya": 10, "PS3": 6, "PS4": 5, + "PS5": 19, "SteamOS": 14, "UWP": 18, "WebOS": 15, @@ -66729,6 +67758,14 @@ "CharacterRight": 3 } }, + "PlayerCharacterDestroyBehavior": { + "name": "PlayerCharacterDestroyBehavior", + "items": { + "Default": 0, + "Disabled": 1, + "Enabled": 2 + } + }, "PlayerChatType": { "name": "PlayerChatType", "items": { @@ -66762,6 +67799,14 @@ "TwoAttachment": 1 } }, + "PrimalPhysicsSolver": { + "name": "PrimalPhysicsSolver", + "items": { + "Default": 0, + "Disabled": 2, + "Experimental": 1 + } + }, "PrimitiveType": { "name": "PrimitiveType", "items": { @@ -66809,6 +67854,21 @@ "UploadFailed": 4 } }, + "PromptCreateAvatarResult": { + "name": "PromptCreateAvatarResult", + "items": { + "InvalidHumanoidDescription": 6, + "MaxOutfits": 9, + "ModeratedName": 8, + "NoUserInput": 5, + "PermissionDenied": 2, + "Success": 1, + "Timeout": 3, + "UGCValidationFailed": 7, + "UnknownFailure": 10, + "UploadFailed": 4 + } + }, "PromptPublishAssetResult": { "name": "PromptPublishAssetResult", "items": { @@ -67378,6 +68438,13 @@ "Standalone": 3 } }, + "StudioPlaceUpdateFailureReason": { + "name": "StudioPlaceUpdateFailureReason", + "items": { + "Other": 0, + "TeamCreateConflict": 1 + } + }, "StudioScriptEditorColorCategories": { "name": "StudioScriptEditorColorCategories", "items": { @@ -67799,6 +68866,14 @@ "Top": 0 } }, + "TextureGenerationMeshHandlerUnwrapMode": { + "name": "TextureGenerationMeshHandlerUnwrapMode", + "items": { + "Always": 1, + "Never": 0, + "WhenInvalidUVsDetected": 2 + } + }, "TextureMode": { "name": "TextureMode", "items": { @@ -67979,6 +69054,26 @@ "Completed": 1 } }, + "UIFlexAlignment": { + "name": "UIFlexAlignment", + "items": { + "Fill": 1, + "None": 0, + "SpaceAround": 2, + "SpaceBetween": 3, + "SpaceEvenly": 4 + } + }, + "UIFlexMode": { + "name": "UIFlexMode", + "items": { + "Custom": 4, + "Fill": 3, + "Grow": 1, + "None": 0, + "Shrink": 2 + } + }, "UITheme": { "name": "UITheme", "items": { diff --git a/rbx_reflection_database/CHANGELOG.md b/rbx_reflection_database/CHANGELOG.md index c7c2d3c89..c1bc1327a 100644 --- a/rbx_reflection_database/CHANGELOG.md +++ b/rbx_reflection_database/CHANGELOG.md @@ -1,7 +1,7 @@ # rbx\_reflection_database Changelog ## Unreleased Changes -* Updated to Roblox version 597 +* Updated to Roblox version 607 ## 0.2.9+roblox-596 (2023-10-03) ## 0.2.8+roblox-296 (incorrect metadata) diff --git a/rbx_reflection_database/database.msgpack b/rbx_reflection_database/database.msgpack index b24c0700db90045fb6c2dd9379ebaedfaa98cbf8..09e49d68757cd12ee8fbebdc253562365210536d 100644 GIT binary patch delta 6743 zcmd5>dvp}#70)-{%p|-M5+F|?$m8%dfFVXC$+CG$5>_?~ShYIrej!t4XO@}Sz={<@ zz(*8Fc3HowMO5;_BqR{wvnpb%*2+-{r|OZah<~-5gC1z@@ooFfKEh_%06q1bHs>U} z_ulV$@BQxm-J89;GCnw!G0wL)?p@}dxcB1jdUoPj=FctTOumy~$>D}4Vd^21-LAN0 z-HOzD(T@CK8n@Jgy#7q~E)MMQc}AGtH*_us?K?e|Q0KLb4It6nJNbd{RS)?z^yDiw!6l4xCp1V=+_ ziR^YpvhgLvF6-}GSi2ODn#xY|J?-TCE1m16XZJ1_G_(pi6&;n-BU$%HGkhBtPwMY( z+4XRCzgdxGWY@)dQTK$e8Og-pahSWXp{E+@n-q0}RTp%(<{wJ7Rx2_Jo-Zu$?H+Y2 z$xjDkM;D&SrhC*QRTFekkp;ONxDiNnY=k1l3qfvAGnPs>@y{%Ij+cbv@Gk*B*#JTft27UDUI1LK@@6 zPuvPzUz+7>ydvb*@6W#mzs1iATwOXAN-2PB{EsQQ*)-_ zfqFRJ*R*RI-glBs&+iT|R)w@W{}8IBr&`fhA(tfD1syqhjMb_X2a=4T4LEZiJ>0oA zW;C8Z7v|t|CXfWSVQVue%{x&duNP%xvQ(HQ#qF@DiXCYh)qB{gu?OID=V3nXZ3Yv_ zp=L0R&plqU*@aXQ8U8@s3z-F%?p6nVBevLZi`;1qy%k!89GYO9+8@ophs~ghoO&D_ z$r+Of;(|ZMC-J@ozA3<_60n54#WS16f<2^g0`oRpdM%^*haWJ+k@kX#WM3MS4+1_^ zSO_NL48)H2&C{~*p+b-~b@+9HPDH(9HldEueg{}aM!T6un5?6vl3R3?(nurG2U{WQ zNTp9I`1az+{(am5NN(Q3DDhw$$!=tNqAz`}pSeAA9;u?iLG@U5MMdR;R#zpsEY!&~ ze+&VBb|siaZX967jRd=K;a`|P%{mh4O;%l{CilnS;pgYWJ4wRF%zF?N;NBbHDg1?- zc^{9R3!cN7pEL8Wej5zVa(2@7IrG32di^;7UeEPKNHXK$@^MoRt)xB`h&W}c;HvXS z(O3}KoyR7@WenI&3ew>~PO*+-UI=4>McQs)kh+{B?o##s!nMl6Qgrmpf56?15B-71!uFtYLx$xxpS?v}< zuUk~?4}C^G;Epo4XvF`A@GXA@nRxFjTrz&zFc^|xWr&8GV9{YNUc{1GOz zM)1ZBKY^Jz=U*Ux8gkHRt*eS;QAC}mL&-+)96_OY|cw`H&^f%c7SeGXPE1{MX?a4}8E)CX@5nq-3o9ipjc6ge*=ui zcizU<4D#lZi?^|pW`G5FTO&J>Om?wH#@8IHbPMJ>K^5p5P(v?6LaKil{y_t&tx-ii z1czRTo@?YN+;;)az@KX{1)tMkDW22F+Q33Wcm0@~Jj}wO2p^o)m&=UBzkY=M=7ys* zVXC^@MRT&%TW)4@i_3xv}uLATdcI4G;B=zSb2xd$3^FvQDkohS3Uydkx!>{i`_jco^qk;GZt z(-35k-Z|Xl|MfNBoyX<{e8CkKIy8wRHn__y?Ok&ODdPjl>F)ZSW@ckMSh~Nue zq&}+GsDiA~AW9K>X^m~IwNBY2`(sIP!5wfSF7iMMF&|(@&7I`)Uol*c!r3w;hX9EItjh)2VZ@QE zNb%_gW+6Uo<0g_m8@Du*8t%eI?)~(hArR0XLHe>6CG$ZVKc;dw6~so1{@CouDlV`E z{{B;D4t^~cCXzQ*?z=Gsr4rg)p(CgNd0R#JdrLPhAC{}iCe5f-x@;9@#Ysyr8Xk6Z z8e;;WJn+re@?=VUXr`|vH8b&G8J)Ju@Hv0rD?Xb7mSi3_cBnM!3Q1fqJB{*nkcCe_ z%%vxU2l#&fLv~7+wT|M?4Z&qXL|`G`Jr~k^MGFe629FVnp_jL9=qQyGL0`P+q)`?O z?lQP>XhP%``12GdhrF_lJC>05(4lfg74M^PNsx@I`lIORWY8PbnsIFW>5p*KT#Mjv z7})vn<#j@=pe@=~3z8eP+KNRdzO)4_{ttD7f5O}}e4&ZUTGYK7sX8t2g6AAUUFDRE zdc)JgCyi#rKIiDRH57Ae{=i3|{edsM4VL*Vawe{RkmAwFOP7wcU-|yo2=5B%5dVy&Pi-`b8HOw!~yPi04&AU zHtr`Q$mZZVzXgi|S?p(xvY19$o~&u-%vSIae(GD!mfvO5kjd>36_ZQ!M-o?L|XaWyUq+5y57dk@!+Fzo5L|qKZyIvebDr(XLq)i8hk_v6vAH#uDR}N12(# zm%?A-z#OtOoxcT|hS@lLg^**#S}i2Pr&IVe@=+Fl(-_(l$)3w6lc{t0y`ZAY2yhm7FB@`A=4H3s8j?8a>R892*U;Ikpqwy=J5M>2}}A|8~IyKdwE#-;QbZ7ji#jHF=zanHM8J}I{FpMms;4^R!V zoy+M|7yV^A!*xtNS-gt>arBVpt2eUC+SppTvN$Ks_`48v(!XY-Bg~MTdw2`5Mr2=F z)q01LjR#F`U2)P3XODY<8lD#56nayLRfZHN(p3*I+`*zEyQooo5acmr+r9j}5!p_c zYIM^S+1p#L>n_7*LX7RLW%r3LK=zCLm;BbQ3Yiwv!OodClGxE1?6Xog>MTZfiKbKs z(_STN8gjsP`h4xw-L4F`-YZ!{##G8;fa7N*>E}2fLJpZwV49+Qkn5hgn6mUumkR zEmL(B(rEL@OWzl@lzye8=_P6?T17d^-A+MPMA|;m?5gN8AUFSfm9TlGTdx&$ZA6a& znP}?@IgCzJ0$#R5c61BC|AH=$8~x`upv+e*C-sc}bYkl+m7gBq-s_J?&qHa^D}q-;Gi^J<{hCU2tY z-?)YMdIvVPo1{&GM+0ruh(`FhV{7V=9MYFHakZG?(CfN_px*u{%4~l;#e|(%O1xuaw0Iq7?1hPr6zi%m$Gtt<8nN(WKAh$R z!?PiDZY<>bf)9?011%ZjAYZ|bk!%lcNrZ9;#lBXqrC~|H82)^i8!<8k-ot4|MTd81 zb5GoVgzKqbCS03iI+a>wHJ7ejmRV{pwlu$z*^XygD=N*_WtLhzo2HD!q&9AduW9?| zM7E`3Mf2dq)}CsvG-sDBx0JYRwQcTop=C|Q$}(&7iv*+cz#khy1loP7hhSv0$kz_; zsy&ivt&E=Rfr-n{JHsqHq!Vj`SV{i-;B2I?7CZ(IT^ilG4!12kL&vd^)3!SqWP^H#$SgkE-)X5VF< z93x}6FFhCsF$|a9W8*PyBAChRdsbs`L2Z?Tq4GKH9m-QQA?-QkmNn)|muL&tSS-!2 zrZzP1g*w_8%x5szP8ULW7*M#8*E9544gnMq%02yX)l=b1KUT4-moHhOqw=}@qzcAT z&|==LP-7v_QlX)c55+TY@i2F!#-)Wkf?|t#s-W*mxOc4UMwgXVz)SCt%R7cq11vJG zaGfvqbh}*nO*j8K@ISuh@)O?25VSI!oX_|w7zlHo^IQgv)cQOB0w}7VmnOqba{bvD zjyqC$h}~uxg$G7UN!2qIrynM2xDJhW&|p%A;)xp;DhvMI8%H6Fl;Pnpfu^oguKHoZ zdR~CHb}4xfNn>ov9YMwxB@n0umCNZ+LkD}5mJA4^X(sV0qrM0+%L`jmLd;Upy2x2C{_-YOi*Tr*7VjJoiMY`O`Pi~gXtC;`2*!QKMF4gm6j_vh zNL2g0>hZPjiys69o);eiOvA1VqMsrzip*SSzzTnvM<%U&3ieIY^RYrFoGEpQ~Gq7?G5GBlrE0})y Date: Tue, 16 Jan 2024 10:58:32 -0800 Subject: [PATCH 05/64] Release rbx_types v1.8.0 --- rbx_types/CHANGELOG.md | 2 ++ rbx_types/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/rbx_types/CHANGELOG.md b/rbx_types/CHANGELOG.md index 76994f2f4..86c2c15af 100644 --- a/rbx_types/CHANGELOG.md +++ b/rbx_types/CHANGELOG.md @@ -1,6 +1,8 @@ # rbx_types Changelog ## Unreleased Changes + +## 1.8.0 (2024-01-16) * Add `len` and `is_empty` methods to `Attributes` struct. ([#377]) ## 1.7.0 (2023-10-03) diff --git a/rbx_types/Cargo.toml b/rbx_types/Cargo.toml index 8cab3dd03..d21dd687e 100644 --- a/rbx_types/Cargo.toml +++ b/rbx_types/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_types" description = "Types used to represent Roblox values" -version = "1.7.0" +version = "1.8.0" authors = ["Lucien Greathouse "] edition = "2018" license = "MIT" From b1e2bebcb9e084465a60b2e78297a9645a289cad Mon Sep 17 00:00:00 2001 From: Dekkonot Date: Tue, 16 Jan 2024 11:02:03 -0800 Subject: [PATCH 06/64] Release rbx_dom_weak v2.7.0 --- rbx_dom_weak/CHANGELOG.md | 2 ++ rbx_dom_weak/Cargo.toml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/rbx_dom_weak/CHANGELOG.md b/rbx_dom_weak/CHANGELOG.md index a1b589d28..dca7fac1f 100644 --- a/rbx_dom_weak/CHANGELOG.md +++ b/rbx_dom_weak/CHANGELOG.md @@ -1,6 +1,8 @@ # rbx_dom_weak Changelog ## Unreleased Changes + +## 2.7.0 (2024-01-16) * Implemented `Default` for `WeakDom`, useful when using Serde or creating an empty `WeakDom` ## 2.6.0 (2023-10-03) diff --git a/rbx_dom_weak/Cargo.toml b/rbx_dom_weak/Cargo.toml index ac71485c6..91d6b4d7f 100644 --- a/rbx_dom_weak/Cargo.toml +++ b/rbx_dom_weak/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_dom_weak" description = "Weakly-typed Roblox DOM implementation for Rust" -version = "2.6.0" +version = "2.7.0" license = "MIT" documentation = "https://docs.rs/rbx_dom_weak" homepage = "https://github.com/rojo-rbx/rbx-dom" @@ -11,7 +11,7 @@ authors = ["Lucien Greathouse "] edition = "2018" [dependencies] -rbx_types = { version = "1.7.0", path = "../rbx_types", features = ["serde"] } +rbx_types = { version = "1.8.0", path = "../rbx_types", features = ["serde"] } serde = "1.0.137" From ff34400eed03fcb166365ad5b96e3f56d201c381 Mon Sep 17 00:00:00 2001 From: Dekkonot Date: Tue, 16 Jan 2024 11:05:08 -0800 Subject: [PATCH 07/64] Release rbx_reflection v4.5.0 --- rbx_reflection/CHANGELOG.md | 3 +++ rbx_reflection/Cargo.toml | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/rbx_reflection/CHANGELOG.md b/rbx_reflection/CHANGELOG.md index 42b29d40d..acc3c6c34 100644 --- a/rbx_reflection/CHANGELOG.md +++ b/rbx_reflection/CHANGELOG.md @@ -2,6 +2,9 @@ ## Unreleased Changes +## 4.5.0 (2024-01-16) +* Update to rbx_types 1.8. + ## 4.4.0 * Update to rbx_types 1.7. diff --git a/rbx_reflection/Cargo.toml b/rbx_reflection/Cargo.toml index f1e60975a..39fa521e2 100644 --- a/rbx_reflection/Cargo.toml +++ b/rbx_reflection/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_reflection" description = "Roblox reflection database and ambiguous type resolution" -version = "4.4.0" +version = "4.5.0" license = "MIT" documentation = "https://docs.rs/rbx_reflection" homepage = "https://github.com/rojo-rbx/rbx-dom" @@ -11,7 +11,7 @@ authors = ["Lucien Greathouse "] edition = "2018" [dependencies] -rbx_types = { version = "1.7.0", path = "../rbx_types", features = ["serde"] } +rbx_types = { version = "1.8.0", path = "../rbx_types", features = ["serde"] } serde = { version = "1.0.137", features = ["derive"] } thiserror = "1.0.31" From 15e945e976246fd83de5e7b8a0eb912040baea75 Mon Sep 17 00:00:00 2001 From: Dekkonot Date: Tue, 16 Jan 2024 11:07:05 -0800 Subject: [PATCH 08/64] Release rbx_reflection_database+roblox-607 --- rbx_reflection_database/CHANGELOG.md | 2 ++ rbx_reflection_database/Cargo.toml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/rbx_reflection_database/CHANGELOG.md b/rbx_reflection_database/CHANGELOG.md index c1bc1327a..f87d1bb3f 100644 --- a/rbx_reflection_database/CHANGELOG.md +++ b/rbx_reflection_database/CHANGELOG.md @@ -1,6 +1,8 @@ # rbx\_reflection_database Changelog ## Unreleased Changes + +## 0.2.10+roblox-607 (2024-01-16) * Updated to Roblox version 607 ## 0.2.9+roblox-596 (2023-10-03) diff --git a/rbx_reflection_database/Cargo.toml b/rbx_reflection_database/Cargo.toml index a317931b7..f3b59b029 100644 --- a/rbx_reflection_database/Cargo.toml +++ b/rbx_reflection_database/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_reflection_database" description = "Bundled reflection database for Roblox projects" -version = "0.2.9+roblox-596" +version = "0.2.10+roblox-607" license = "MIT" documentation = "https://docs.rs/rbx_reflection_database" homepage = "https://github.com/rojo-rbx/rbx-dom" @@ -13,7 +13,7 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -rbx_reflection = { version = "4.4.0", path = "../rbx_reflection" } +rbx_reflection = { version = "4.5.0", path = "../rbx_reflection" } lazy_static = "1.4.0" serde = "1.0.137" From 5dfb1574407c13051155e05232ff2b37eead3c3b Mon Sep 17 00:00:00 2001 From: Dekkonot Date: Tue, 16 Jan 2024 11:11:02 -0800 Subject: [PATCH 09/64] Release rbx_xml v0.13.3 --- rbx_xml/CHANGELOG.md | 2 ++ rbx_xml/Cargo.toml | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/rbx_xml/CHANGELOG.md b/rbx_xml/CHANGELOG.md index 3688e7d66..1808a9745 100644 --- a/rbx_xml/CHANGELOG.md +++ b/rbx_xml/CHANGELOG.md @@ -1,6 +1,8 @@ # rbx_xml Changelog ## Unreleased + +## 0.13.3 (2024-01-16) * Add the ability to specify a `ReflectionDatabase` to use for serializing and deserializing. This takes the form of `DecodeOptions::reflection_database` and `EncodeOptions::reflection_database`. ([#375]) [#375]: https://github.com/rojo-rbx/rbx-dom/pull/375 diff --git a/rbx_xml/Cargo.toml b/rbx_xml/Cargo.toml index 4d4a9b31b..173504f6f 100644 --- a/rbx_xml/Cargo.toml +++ b/rbx_xml/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_xml" description = "Implementation of Roblox's XML file formats, rbxlx and rbxmx" -version = "0.13.2" +version = "0.13.3" license = "MIT" documentation = "https://docs.rs/rbx_xml" homepage = "https://github.com/rojo-rbx/rbx-dom" @@ -11,9 +11,9 @@ authors = ["Lucien Greathouse "] edition = "2018" [dependencies] -rbx_dom_weak = { version = "2.6.0", path = "../rbx_dom_weak" } -rbx_reflection = { version = "4.4.0", path = "../rbx_reflection" } -rbx_reflection_database = { version = "0.2.8", path = "../rbx_reflection_database" } +rbx_dom_weak = { version = "2.7.0", path = "../rbx_dom_weak" } +rbx_reflection = { version = "4.5.0", path = "../rbx_reflection" } +rbx_reflection_database = { version = "0.2.10", path = "../rbx_reflection_database" } base64 = "0.13.0" log = "0.4.17" From bdaeb8d882a39b505b16bddffab985416f4cbc14 Mon Sep 17 00:00:00 2001 From: Dekkonot Date: Tue, 16 Jan 2024 11:13:18 -0800 Subject: [PATCH 10/64] Release rbx_binary v0.7.4 --- rbx_binary/CHANGELOG.md | 2 ++ rbx_binary/Cargo.toml | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/rbx_binary/CHANGELOG.md b/rbx_binary/CHANGELOG.md index 5cfbf8cb9..f0c7de05e 100644 --- a/rbx_binary/CHANGELOG.md +++ b/rbx_binary/CHANGELOG.md @@ -1,6 +1,8 @@ # rbx_binary Changelog ## Unreleased + +## 0.7.4 (2024-01-16) * Add the ability to specify a `ReflectionDatabase` to use for serializing and deserializing. This takes the form of `Deserializer::reflection_database` and `Serializer::reflection_database`. ([#375]) [#375]: https://github.com/rojo-rbx/rbx-dom/pull/375 diff --git a/rbx_binary/Cargo.toml b/rbx_binary/Cargo.toml index d2dcb1b34..9e1c30963 100644 --- a/rbx_binary/Cargo.toml +++ b/rbx_binary/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_binary" description = "Implementation of Roblox's binary model (rbxm) and place (rbxl) file formats" -version = "0.7.3" +version = "0.7.4" license = "MIT" documentation = "https://docs.rs/rbx_binary" homepage = "https://github.com/rojo-rbx/rbx-dom" @@ -14,9 +14,9 @@ edition = "2018" unstable_text_format = ["serde"] [dependencies] -rbx_dom_weak = { version = "2.6.0", path = "../rbx_dom_weak" } -rbx_reflection = { version = "4.4.0", path = "../rbx_reflection" } -rbx_reflection_database = { version = "0.2.8", path = "../rbx_reflection_database" } +rbx_dom_weak = { version = "2.7.0", path = "../rbx_dom_weak" } +rbx_reflection = { version = "4.5.0", path = "../rbx_reflection" } +rbx_reflection_database = { version = "0.2.10", path = "../rbx_reflection_database" } log = "0.4.17" lz4 = "1.23.3" From b521e0e0029de6d8971f4aa36a99d5d625b1d9bd Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler Date: Fri, 26 Jan 2024 11:49:28 -0800 Subject: [PATCH 11/64] Break rbx_reflector file watcher receive loop after modify events (#384) On macOS, the file watcher emits a modify event after saving the defaults place in Roblox Studio, making it impossible to successfully use rbx_reflector. This PR fixes this by changing the event receive loop in rbx_reflector's defaults place command so that it also checks for modify events. --- rbx_reflector/src/cli/defaults_place.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rbx_reflector/src/cli/defaults_place.rs b/rbx_reflector/src/cli/defaults_place.rs index 86c63790b..7e0b7629b 100644 --- a/rbx_reflector/src/cli/defaults_place.rs +++ b/rbx_reflector/src/cli/defaults_place.rs @@ -89,7 +89,8 @@ fn save_place_in_studio(path: &PathBuf) -> anyhow::Result { println!("Please save the opened place in Roblox Studio (ctrl+s)."); loop { - if rx.recv()??.kind.is_create() { + let event = rx.recv()??; + if event.kind.is_create() || event.kind.is_modify() { break; } } From d960c0463c1e10e3ad2e6e9d56be760295c068cf Mon Sep 17 00:00:00 2001 From: Micah Date: Thu, 1 Feb 2024 09:03:39 -0800 Subject: [PATCH 12/64] Implement IntoIterator for &Attributes and Extend for Attributes (#386) The original implementation of Attributes had an `iter` method but it did not implement `FromIterator` for `&Attributes`, making it so you couldn't use `for (key, value) in &attributes` and had to use `for (key, value) in attributes.iter()`. This changes that. Additionally, `Extend` is a nice quality of life trait for containers so it's implemented here. --- rbx_types/CHANGELOG.md | 7 +++++- rbx_types/src/attributes/mod.rs | 38 +++++++++++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 3 deletions(-) diff --git a/rbx_types/CHANGELOG.md b/rbx_types/CHANGELOG.md index 86c2c15af..c4e5d85b6 100644 --- a/rbx_types/CHANGELOG.md +++ b/rbx_types/CHANGELOG.md @@ -1,10 +1,16 @@ # rbx_types Changelog ## Unreleased Changes +* Implement `IntoIterator` for `&Attributes`. ([#386]) +* Implement `Extend<(String, Variant)>` for `Attributes`. ([#386]) + +[#386]: https://github.com/rojo-rbx/rbx-dom/pull/386 ## 1.8.0 (2024-01-16) * Add `len` and `is_empty` methods to `Attributes` struct. ([#377]) +[#377]: https://github.com/rojo-rbx/rbx-dom/pull/377 + ## 1.7.0 (2023-10-03) * Implemented `FromStr` for `TerrainMaterials`. ([#354]) * `MaterialColorsError` and `UniqueIdError` are no longer publicly exposed. ([#355]) @@ -15,7 +21,6 @@ [#355]: https://github.com/rojo-rbx/rbx-dom/pull/355 [#358]: https://github.com/rojo-rbx/rbx-dom/pull/358 [#363]: https://github.com/rojo-rbx/rbx-dom/pull/363 -[#377]: https://github.com/rojo-rbx/rbx-dom/pull/377 ## 1.6.0 (2023-08-09) * Added support for `UniqueId` values. ([#271]) diff --git a/rbx_types/src/attributes/mod.rs b/rbx_types/src/attributes/mod.rs index a76e65654..e858d0d05 100644 --- a/rbx_types/src/attributes/mod.rs +++ b/rbx_types/src/attributes/mod.rs @@ -75,8 +75,11 @@ impl Attributes { } /// Returns an iterator of borrowed attributes. - pub fn iter(&self) -> impl Iterator { - self.data.iter() + #[inline] + pub fn iter(&self) -> AttributesIter<'_> { + AttributesIter { + iter: self.data.iter(), + } } /// Returns the number of attributes. @@ -92,6 +95,12 @@ impl Attributes { } } +impl Extend<(String, Variant)> for Attributes { + fn extend>(&mut self, iter: T) { + self.data.extend(iter) + } +} + impl IntoIterator for Attributes { type IntoIter = AttributesIntoIter; type Item = (String, Variant); @@ -103,6 +112,17 @@ impl IntoIterator for Attributes { } } +impl<'a> IntoIterator for &'a Attributes { + type IntoIter = AttributesIter<'a>; + type Item = (&'a String, &'a Variant); + + fn into_iter(self) -> Self::IntoIter { + AttributesIter { + iter: self.data.iter(), + } + } +} + impl FromIterator<(String, Variant)> for Attributes { fn from_iter>(iter: T) -> Self { Self { @@ -125,6 +145,20 @@ impl Iterator for AttributesIntoIter { } } +/// A borrowed iterator over the entries of an `Attributes`. +/// This is created by [`Attributes::iter`]. +pub struct AttributesIter<'a> { + iter: btree_map::Iter<'a, String, Variant>, +} + +impl<'a> Iterator for AttributesIter<'a> { + type Item = (&'a String, &'a Variant); + + fn next(&mut self) -> Option { + self.iter.next() + } +} + #[cfg(test)] mod tests { use super::*; From 1208067135b90971b13db4ce6f3bc6127c5fbca8 Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler Date: Thu, 1 Feb 2024 13:33:29 -0800 Subject: [PATCH 13/64] Patch PackageLink.SerializedDefaultAttributes Scriptability to None (#387) --- patches/package-link.yml | 2 + rbx_dom_lua/src/database.json | 164 ++++++++++++++--------- rbx_reflection_database/database.msgpack | Bin 452565 -> 452668 bytes 3 files changed, 101 insertions(+), 65 deletions(-) diff --git a/patches/package-link.yml b/patches/package-link.yml index 53d9fd17f..787e1c8b4 100644 --- a/patches/package-link.yml +++ b/patches/package-link.yml @@ -6,3 +6,5 @@ Change: As: PackageIdSerialize PackageIdSerialize: AliasFor: PackageId + SerializedDefaultAttributes: + Scriptability: None diff --git a/rbx_dom_lua/src/database.json b/rbx_dom_lua/src/database.json index 81424b27e..5bf3b69f2 100644 --- a/rbx_dom_lua/src/database.json +++ b/rbx_dom_lua/src/database.json @@ -1,9 +1,9 @@ { "Version": [ 0, - 607, + 610, 0, - 6070550 + 6100472 ], "Classes": { "Accessory": { @@ -11218,6 +11218,19 @@ } } }, + "IsIdle": { + "Name": "IsIdle", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Status": { "Name": "Status", "Scriptability": "None", @@ -16168,7 +16181,7 @@ "Orientation": { "Vector3": [ -0.0, - 180.0, + 179.99998, 90.0 ] }, @@ -33071,7 +33084,7 @@ }, "SerializedDefaultAttributes": { "Name": "SerializedDefaultAttributes", - "Scriptability": "Read", + "Scriptability": "None", "DataType": { "Value": "BinaryString" }, @@ -35022,6 +35035,19 @@ "Serialization": "Serializes" } } + }, + "ZIndex": { + "Name": "ZIndex", + "Scriptability": "None", + "DataType": { + "Value": "Int32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } } }, "DefaultProperties": {} @@ -40859,6 +40885,19 @@ } } }, + "PreferredUploadId": { + "Name": "PreferredUploadId", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Int64" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "RestPose": { "Name": "RestPose", "Scriptability": "ReadWrite", @@ -46931,21 +46970,6 @@ } } }, - "AnimationCompositorMode": { - "Name": "AnimationCompositorMode", - "Scriptability": "ReadWrite", - "DataType": { - "Enum": "AnimationCompositorMode" - }, - "Tags": [ - "NotBrowsable" - ], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, "AutoJumpEnabled": { "Name": "AutoJumpEnabled", "Scriptability": "ReadWrite", @@ -47488,21 +47512,6 @@ } } }, - "HumanoidStateMachineMode": { - "Name": "HumanoidStateMachineMode", - "Scriptability": "ReadWrite", - "DataType": { - "Enum": "HumanoidStateMachineMode" - }, - "Tags": [ - "NotBrowsable" - ], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, "LoadCharacterAppearance": { "Name": "LoadCharacterAppearance", "Scriptability": "ReadWrite", @@ -47594,9 +47603,6 @@ "AllowCustomAnimations": { "Bool": true }, - "AnimationCompositorMode": { - "Enum": 0 - }, "Attributes": { "Attributes": {} }, @@ -47729,9 +47735,6 @@ "HealthDisplayDistance": { "Float32": 100.0 }, - "HumanoidStateMachineMode": { - "Enum": 0 - }, "LoadCharacterAppearance": { "Bool": true }, @@ -55907,6 +55910,17 @@ "Properties": {}, "DefaultProperties": {} }, + "TextureGenerationService": { + "Name": "TextureGenerationService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "ThirdPartyUserService": { "Name": "ThirdPartyUserService", "Tags": [ @@ -59590,6 +59604,22 @@ } } }, + "ChatTranslationLocale": { + "Name": "ChatTranslationLocale", + "Scriptability": "None", + "DataType": { + "Value": "String" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "ChatTranslationToggleEnabled": { "Name": "ChatTranslationToggleEnabled", "Scriptability": "None", @@ -61068,6 +61098,7 @@ "VRService": { "Name": "VRService", "Tags": [ + "NotBrowsable", "NotCreatable", "Service" ], @@ -61084,7 +61115,7 @@ ], "Kind": { "Canonical": { - "Serialization": "DoesNotSerialize" + "Serialization": "Serializes" } } }, @@ -61111,10 +61142,12 @@ "DataType": { "Value": "Bool" }, - "Tags": [], + "Tags": [ + "NotReplicated" + ], "Kind": { "Canonical": { - "Serialization": "DoesNotSerialize" + "Serialization": "Serializes" } } }, @@ -61124,7 +61157,9 @@ "DataType": { "Enum": "UserCFrame" }, - "Tags": [], + "Tags": [ + "NotReplicated" + ], "Kind": { "Canonical": { "Serialization": "DoesNotSerialize" @@ -61283,12 +61318,18 @@ "Attributes": { "Attributes": {} }, + "AutomaticScaling": { + "Enum": 0 + }, "Capabilities": { "SecurityCapabilities": 0 }, "DefinesCapabilities": { "Bool": false }, + "FadeOutViewOnCollision": { + "Bool": true + }, "SourceAssetId": { "Int64": -1 }, @@ -65214,14 +65255,6 @@ "Timeout": 10 } }, - "AnimationCompositorMode": { - "name": "AnimationCompositorMode", - "items": { - "Default": 0, - "Disabled": 2, - "Enabled": 1 - } - }, "AnimationPriority": { "name": "AnimationPriority", "items": { @@ -65835,10 +65868,10 @@ "CollaboratorStatus": { "name": "CollaboratorStatus", "items": { - "Editing3D": 0, - "None": 3, - "PrivateScripting": 2, - "Scripting": 1 + "Editing3D": 1, + "None": 0, + "PrivateScripting": 3, + "Scripting": 2 } }, "CollisionFidelity": { @@ -66810,15 +66843,6 @@ "R6": 0 } }, - "HumanoidStateMachineMode": { - "name": "HumanoidStateMachineMode", - "items": { - "Default": 0, - "Legacy": 1, - "LuaStateMachine": 3, - "NoStateMachine": 2 - } - }, "HumanoidStateType": { "name": "HumanoidStateType", "items": { @@ -67469,6 +67493,16 @@ "PersistentPerPlayer": 3 } }, + "ModerationStatus": { + "name": "ModerationStatus", + "items": { + "Invalid": 5, + "NotApplicable": 4, + "NotReviewed": 3, + "ReviewedApproved": 1, + "ReviewedRejected": 2 + } + }, "ModifierKey": { "name": "ModifierKey", "items": { diff --git a/rbx_reflection_database/database.msgpack b/rbx_reflection_database/database.msgpack index 09e49d68757cd12ee8fbebdc253562365210536d..0f30a2bc3c489e1cc35aac44857955043c72846a 100644 GIT binary patch delta 620 zcmZvYO=uHQ5XbZO?b}OIL(sO-sHiC^tpN*y2N87rh(>A%Ni0O|VYBjjibBq=PWmK(Oq#PuM=IdMxO123zrCiv=e=Ig|lHLO-uKFTiDo-Rzl$> zS4k9)>$nCogiFUpNj<`@GYx84qvps6X!df;I!8HWe8#p)2O_O$} zMX}35UKp9jt5{(kFJk{#)S$36 zp7Z>yo9V;+Qx0u`)&jrI`V#Z9vjx6|fQ`NELy7+}y=go_&zL!b?xz`QNT#Y~;?&5i zGA-3JFfq>UVpBat=t4W#%mn#_f|WfdBr{=1nQZz`Pp2kJ_Ama6;ng=zWaXE{YK5^R z@`3&ldmvRMNto+GPMEBcC-6KV1mISU?6%-QkS*58Yitc1TlB8YTF~8ymZ6Sv)KK%1N#nAi>ZaX`A1u2Z zYmkM{0hYKXOg8nF4{1vMdQ&oU*&F|m%lE^XyuE=!9!E4&)b+F~OQ|&FAKGDz=2d!{ dD!5$t>;gl}Qw1%P7(Gd4lPVnBa7UY5vJm7|t@qGn`|HStxdo>2f3gR(?haZpQY>6L;EApU}<3GCiA{@x$bm zT>R5xQy96nZ{%UrsA4u@U}(S7#<=}X89vAWwG^D=W2OEUBGobz)F@{2P|@{4@)Q&Oj5lbEh}nptG}enU2PK@1Jk1Aj5A zZjY^HxyP@+!=p4eF)u$eCAcK9B-J-DIU_SK6>KV28L+XESfxOkASPS)vTS2wGz2NK4_0K(f|_>%QF^YnyX)~f9<-m*qUGB#{?a%Zbz)yL)7N!TT(-w9`v-@eC(tyfHi zVToUUUMlm3fTGMYV0Z>67iAWdWagzat%Nffx929aJyc7>>C;I#Wm=ZIq^2d7=9Dlj m^GQulOs-^H?^BwH9COU;{PL0cOxyjs*v^P;Z(qo^)eQhV!Xb Date: Thu, 1 Feb 2024 15:03:27 -0800 Subject: [PATCH 14/64] Downgrade how aggressive CODEOWNERS is (#389) --- CODEOWNERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CODEOWNERS b/CODEOWNERS index 0ff30ff13..64a2ed6ec 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1 +1,2 @@ -* @Dekkonot \ No newline at end of file +docs/ @Dekkonot +.github/ @Dekkonot From dc6895fffc27d2f1ddf19109d2ae1002248d21b0 Mon Sep 17 00:00:00 2001 From: Micah Date: Fri, 2 Feb 2024 11:58:48 -0800 Subject: [PATCH 15/64] Document Enum attributes in spec document (#388) --- docs/attributes.md | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/docs/attributes.md b/docs/attributes.md index ff1e9d6d2..363d85d1a 100644 --- a/docs/attributes.md +++ b/docs/attributes.md @@ -17,6 +17,7 @@ This document describes the Attribute binary format. In this format there is no - [Vector2](#vector2) - [Vector3](#vector3) - [CFrame](#cframe) + - [EnumItem](#EnumItem) - [NumberSequence](#numbersequence) - [ColorSequence](#colorsequence) - [NumberRange](#numberrange) @@ -180,6 +181,18 @@ A `CFrame` with the value `CFrame.new(1, 2, 3) * CFrame.Angles(0, 45, 0)` looks Demonstrating the axis-aligned rotation matrix case, a `CFrame` with the value `CFrame.new(1, 2, 3)` looks like this: `00 00 80 3f 00 00 00 40 00 00 40 40 02`. +### EnumItem +**Type ID `0x15`** + +The `EnumItem` type is composed of two parts: + +| Field Name | Format | Value | +|:-----------|:--------------------|:-------------------------------------------------------| +| Enum Name | [`String`](#string) | The name of the [`Enum`][Enum_Type] of this `EnumItem` | +| Value | `u32` | The `Value` field of the `EnumItem` | + +[Enum_Type]: https://create.roblox.com/docs/reference/engine/datatypes/Enum + ### NumberSequence **Type ID `0x17`** @@ -250,12 +263,12 @@ A Rect with the value `10, 20, 30, 40` would look like this: `00 00 20 41 00 00 The `Font` type is a struct composed of a `u16`, `u8` and two `String`s -| Field Name | Format | Value | -|:-------------|:----------------------|:---------------------------------------| -| Weight | `u16` | The weight of the font | -| Style | `u8` | The style of the font | -| Family | [String](#string) | The font family content URI | -| CachedFaceId | [String](#string) | The cached content URI of the TTF file | +| Field Name | Format | Value | +|:-------------|:------------------------|:---------------------------------------| +| Weight | `u16` | The weight of the font | +| Style | `u8` | The style of the font | +| Family | [`String`](#string) | The font family content URI | +| CachedFaceId | [`String`](#string) | The cached content URI of the TTF file | The `Weight` and `Style` values refer to the `FontWeight` and `FontStyle` enums respectively. They are stored as unsigned little-endian From aa0aa15923244bdfa5074195e29d828fe665a96f Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler Date: Tue, 20 Feb 2024 08:42:04 -0800 Subject: [PATCH 16/64] Add rbx_dom_lua OptionalCFrame codec (#392) --- README.md | 2 +- rbx_dom_lua/src/EncodedValue.lua | 23 +++++++++++++++++++++ rbx_dom_lua/src/allValues.json | 35 ++++++++++++++++++++++++++++++++ rbx_reflector/src/cli/values.rs | 8 ++++++++ 4 files changed, 67 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8e415f81f..9ce75e19c 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ Roblox Lua implementation of DOM APIs, allowing Instance reflection from inside | Int64 | `Player.UserId` | ✔ | ✔ | ✔ | ✔ | | NumberRange | `ParticleEmitter.Lifetime` | ✔ | ✔ | ✔ | ✔ | | NumberSequence | `Beam.Transparency` | ✔ | ✔ | ✔ | ✔ | -| OptionalCoordinateFrame | `Model.WorldPivotData` | ✔ | ❌ | ✔ | ✔ | +| OptionalCFrame | `Model.WorldPivotData` | ✔ | ✔ | ✔ | ✔ | | PhysicalProperties | `Part.CustomPhysicalProperties` | ✔ | ✔ | ✔ | ✔ | | ProtectedString | `ModuleScript.Source` | ✔ | ✔ | ✔ | ✔ | | Ray | `RayValue.Value` | ✔ | ✔ | ✔ | ✔ | diff --git a/rbx_dom_lua/src/EncodedValue.lua b/rbx_dom_lua/src/EncodedValue.lua index e9dd0edd4..f2e9e3434 100644 --- a/rbx_dom_lua/src/EncodedValue.lua +++ b/rbx_dom_lua/src/EncodedValue.lua @@ -493,9 +493,32 @@ types = { }, } +types.OptionalCFrame = { + fromPod = function(pod) + if pod == nil then + return nil + else + return types.CFrame.fromPod(pod) + end + end, + + toPod = function(roblox) + if roblox == nil then + return nil + else + return types.CFrame.toPod(roblox) + end + end, +} + function EncodedValue.decode(encodedValue) local ty, value = next(encodedValue) + if ty == nil then + -- If the encoded pair is empty, assume it is an unoccupied optional value + return true, nil + end + local typeImpl = types[ty] if typeImpl == nil then return false, "Couldn't decode value " .. tostring(ty) diff --git a/rbx_dom_lua/src/allValues.json b/rbx_dom_lua/src/allValues.json index b233ab25b..9b07d7bf0 100644 --- a/rbx_dom_lua/src/allValues.json +++ b/rbx_dom_lua/src/allValues.json @@ -370,6 +370,41 @@ }, "ty": "NumberSequence" }, + "OptionalCFrame-None": { + "value": { + "OptionalCFrame": null + }, + "ty": "OptionalCFrame" + }, + "OptionalCFrame-Some": { + "value": { + "OptionalCFrame": { + "position": [ + 0.0, + 0.0, + 0.0 + ], + "orientation": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0 + ] + ] + } + }, + "ty": "OptionalCFrame" + }, "PhysicalProperties-Custom": { "value": { "PhysicalProperties": { diff --git a/rbx_reflector/src/cli/values.rs b/rbx_reflector/src/cli/values.rs index f7ffbe646..387cfbc7f 100644 --- a/rbx_reflector/src/cli/values.rs +++ b/rbx_reflector/src/cli/values.rs @@ -139,6 +139,14 @@ impl ValuesSubcommand { ]) .into(), ); + values.insert("OptionalCFrame-None", Variant::OptionalCFrame(None)); + values.insert( + "OptionalCFrame-Some", + Variant::OptionalCFrame(Some(CFrame::new( + Vector3::new(0.0, 0.0, 0.0), + Matrix3::identity(), + ))), + ); values.insert( "PhysicalProperties-Custom", PhysicalProperties::Custom(CustomPhysicalProperties { From 3f3d64a0b257e8882a80256244d30345d8e1895b Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler Date: Tue, 20 Feb 2024 09:06:47 -0800 Subject: [PATCH 17/64] Add Model.WorldPivotData custom getter/setter (#393) --- patches/model.yml | 2 + rbx_dom_lua/src/customProperties.lua | 18 ++ rbx_dom_lua/src/database.json | 387 ++++++++++++++++++++--- rbx_reflection_database/database.msgpack | Bin 452668 -> 454869 bytes 4 files changed, 371 insertions(+), 36 deletions(-) diff --git a/patches/model.yml b/patches/model.yml index 854b97e29..c102de80c 100644 --- a/patches/model.yml +++ b/patches/model.yml @@ -7,3 +7,5 @@ Change: Type: SerializesAs As: ScaleFactor Scriptability: Custom + WorldPivotData: + Scriptability: Custom diff --git a/rbx_dom_lua/src/customProperties.lua b/rbx_dom_lua/src/customProperties.lua index 072db9ef0..f9b908ca6 100644 --- a/rbx_dom_lua/src/customProperties.lua +++ b/rbx_dom_lua/src/customProperties.lua @@ -111,6 +111,24 @@ return { return true, instance:ScaleTo(value) end, }, + WorldPivotData = { + read = function(instance) + if instance.PrimaryPart == nil then + -- Model.WorldPivotData is unoccupied when the model does not have a + -- PrimaryPart + return true, nil + else + return true, instance:GetPivot() + end + end, + write = function(instance, _, value) + if value == nil then + return true, nil + else + return true, instance:PivotTo(value) + end + end, + }, }, Terrain = { MaterialColors = { diff --git a/rbx_dom_lua/src/database.json b/rbx_dom_lua/src/database.json index 5bf3b69f2..34be08b46 100644 --- a/rbx_dom_lua/src/database.json +++ b/rbx_dom_lua/src/database.json @@ -1,9 +1,9 @@ { "Version": [ 0, - 610, + 612, 0, - 6100472 + 6120532 ], "Classes": { "Accessory": { @@ -345,6 +345,17 @@ } } }, + "ActivityHistoryService": { + "Name": "ActivityHistoryService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "Actor": { "Name": "Actor", "Tags": [], @@ -11172,10 +11183,12 @@ "DataType": { "Value": "CFrame" }, - "Tags": [], + "Tags": [ + "Hidden" + ], "Kind": { "Canonical": { - "Serialization": "Serializes" + "Serialization": "DoesNotSerialize" } } }, @@ -11185,10 +11198,12 @@ "DataType": { "Value": "Int32" }, - "Tags": [], + "Tags": [ + "Hidden" + ], "Kind": { "Canonical": { - "Serialization": "Serializes" + "Serialization": "DoesNotSerialize" } } }, @@ -11198,10 +11213,12 @@ "DataType": { "Value": "String" }, - "Tags": [], + "Tags": [ + "Hidden" + ], "Kind": { "Canonical": { - "Serialization": "Serializes" + "Serialization": "DoesNotSerialize" } } }, @@ -11211,10 +11228,12 @@ "DataType": { "Value": "Int32" }, - "Tags": [], + "Tags": [ + "Hidden" + ], "Kind": { "Canonical": { - "Serialization": "Serializes" + "Serialization": "DoesNotSerialize" } } }, @@ -11224,22 +11243,23 @@ "DataType": { "Value": "Bool" }, - "Tags": [], + "Tags": [ + "Hidden" + ], "Kind": { "Canonical": { - "Serialization": "Serializes" + "Serialization": "DoesNotSerialize" } } }, "Status": { "Name": "Status", - "Scriptability": "None", + "Scriptability": "ReadWrite", "DataType": { "Enum": "CollaboratorStatus" }, "Tags": [ - "Hidden", - "NotScriptable" + "Hidden" ], "Kind": { "Canonical": { @@ -11253,10 +11273,12 @@ "DataType": { "Value": "Int64" }, - "Tags": [], + "Tags": [ + "Hidden" + ], "Kind": { "Canonical": { - "Serialization": "Serializes" + "Serialization": "DoesNotSerialize" } } }, @@ -11266,10 +11288,12 @@ "DataType": { "Value": "String" }, - "Tags": [], + "Tags": [ + "Hidden" + ], "Kind": { "Canonical": { - "Serialization": "Serializes" + "Serialization": "DoesNotSerialize" } } } @@ -12237,6 +12261,19 @@ "Serialization": "Serializes" } } + }, + "UpDirection": { + "Name": "UpDirection", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Vector3" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } } }, "DefaultProperties": { @@ -12274,6 +12311,13 @@ }, "Tags": { "Tags": [] + }, + "UpDirection": { + "Vector3": [ + 0.0, + 1.0, + 0.0 + ] } } }, @@ -13299,7 +13343,9 @@ "DataType": { "Value": "Bool" }, - "Tags": [], + "Tags": [ + "Deprecated" + ], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -15891,6 +15937,19 @@ } } }, + "PermissionPolicy": { + "Name": "PermissionPolicy", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "DragDetectorPermissionPolicy" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "PhysicalDragClickedPart": { "Name": "PhysicalDragClickedPart", "Scriptability": "None", @@ -16185,6 +16244,9 @@ 90.0 ] }, + "PermissionPolicy": { + "Enum": 1 + }, "ResponseStyle": { "Enum": 1 }, @@ -22298,7 +22360,9 @@ "DataType": { "Value": "Bool" }, - "Tags": [], + "Tags": [ + "Deprecated" + ], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -31245,7 +31309,7 @@ }, "WorldPivotData": { "Name": "WorldPivotData", - "Scriptability": "None", + "Scriptability": "Custom", "DataType": { "Value": "OptionalCFrame" }, @@ -35760,6 +35824,58 @@ } } }, + "DrawConstraintsNetForce": { + "Name": "DrawConstraintsNetForce", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DrawContactsNetForce": { + "Name": "DrawContactsNetForce", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DrawTotalNetForce": { + "Name": "DrawTotalNetForce", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "EnableForceVisualizationSmoothing": { + "Name": "EnableForceVisualizationSmoothing", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "FluidForceDrawScale": { "Name": "FluidForceDrawScale", "Scriptability": "None", @@ -35802,6 +35918,19 @@ } } }, + "ForceVisualizationSmoothingSteps": { + "Name": "ForceVisualizationSmoothingSteps", + "Scriptability": "None", + "DataType": { + "Value": "Int32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "IsInterpolationThrottleShown": { "Name": "IsInterpolationThrottleShown", "Scriptability": "ReadWrite", @@ -35919,6 +36048,19 @@ } } }, + "TorqueDrawScale": { + "Name": "TorqueDrawScale", + "Scriptability": "None", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "UseCSGv2": { "Name": "UseCSGv2", "Scriptability": "ReadWrite", @@ -38363,6 +38505,17 @@ } } }, + "ProjectFolderService": { + "Name": "ProjectFolderService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "ProximityPrompt": { "Name": "ProximityPrompt", "Tags": [], @@ -44544,7 +44697,9 @@ "DataType": { "Value": "Bool" }, - "Tags": [], + "Tags": [ + "Deprecated" + ], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -48622,6 +48777,136 @@ } } }, + "DraggerActiveColor": { + "Name": "DraggerActiveColor", + "Scriptability": "None", + "DataType": { + "Value": "Color3" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DraggerMajorGridIncrement": { + "Name": "DraggerMajorGridIncrement", + "Scriptability": "None", + "DataType": { + "Value": "Int32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DraggerMaxSoftSnaps": { + "Name": "DraggerMaxSoftSnaps", + "Scriptability": "None", + "DataType": { + "Value": "Int32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DraggerPassiveColor": { + "Name": "DraggerPassiveColor", + "Scriptability": "None", + "DataType": { + "Value": "Color3" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DraggerShowHoverRuler": { + "Name": "DraggerShowHoverRuler", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DraggerShowMeasurement": { + "Name": "DraggerShowMeasurement", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DraggerShowTargetSnap": { + "Name": "DraggerShowTargetSnap", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DraggerSoftSnapMarginFactor": { + "Name": "DraggerSoftSnapMarginFactor", + "Scriptability": "None", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DraggerSummonMarginFactor": { + "Name": "DraggerSummonMarginFactor", + "Scriptability": "None", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DraggerTiltRotateDuration": { + "Name": "DraggerTiltRotateDuration", + "Scriptability": "None", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Enable Autocomplete": { "Name": "Enable Autocomplete", "Scriptability": "ReadWrite", @@ -59754,6 +60039,22 @@ } } }, + "FramerateCap": { + "Name": "FramerateCap", + "Scriptability": "None", + "DataType": { + "Value": "Int32" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Fullscreen": { "Name": "Fullscreen", "Scriptability": "None", @@ -61119,6 +61420,21 @@ } } }, + "AvatarGestures": { + "Name": "AvatarGestures", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "NotBrowsable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "DidPointerHit": { "Name": "DidPointerHit", "Scriptability": "None", @@ -61321,6 +61637,9 @@ "AutomaticScaling": { "Enum": 0 }, + "AvatarGestures": { + "Bool": false + }, "Capabilities": { "SecurityCapabilities": 0 }, @@ -62880,16 +63199,6 @@ "Properties": {}, "DefaultProperties": {} }, - "VisibilityService": { - "Name": "VisibilityService", - "Tags": [ - "NotCreatable", - "Service" - ], - "Superclass": "Instance", - "Properties": {}, - "DefaultProperties": {} - }, "Visit": { "Name": "Visit", "Tags": [ @@ -62974,9 +63283,7 @@ "DataType": { "Enum": "AudioApiRollout" }, - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -66340,6 +66647,14 @@ "TranslateViewPlane": 4 } }, + "DragDetectorPermissionPolicy": { + "name": "DragDetectorPermissionPolicy", + "items": { + "Everybody": 1, + "Nobody": 0, + "Scriptable": 2 + } + }, "DragDetectorResponseStyle": { "name": "DragDetectorResponseStyle", "items": { diff --git a/rbx_reflection_database/database.msgpack b/rbx_reflection_database/database.msgpack index 0f30a2bc3c489e1cc35aac44857955043c72846a..e0a755dabcb05d7401f6fb8e771a9cb446cc5d5c 100644 GIT binary patch delta 1683 zcmah}e{2&~9N)X%wPEY1(HgrJ3DcG!69+74LPUq{I{0IxT`LBRKW^=_JG{GB-(5RP zqEs*{|A2Vj-XF-+grK04O&KqQ8F3`W#GpVVaWT5g#GlD5#3%_d(bsF&uKUGbcklE4 zem>uy?~PvcU77T`j5q5paLKx_>z+u)f8?$VyDmCbo!*?#rL3gqwn&W?6Zm^$@G=nF(TRwO+ z9g;9)xgynM2Lg@=ZsS~dsj=dyhqRlZ$rzdv$T~mx#m3D21Dx9^oD+-(&n%&L1c2Zr z6W<9Q5;@2@$<&?PA^OF`U}z&)PWyI)Q9d#hfmo3=jj2bFEG2U09Hf#yeCcS1no&kW zSWJbW&T>L{Hr@E#?V)XZz*Ye)qc6M+lALFbU`Ynh$ydN%{nhj+OK;=2<5)1m=AqDg zuXD*B&`J;Ou#MEOr7UP)5UHAuMM>4QZBP#*%*M5Vfkejm)vHgHS-O~*L75M={Qbj4 z|2Wb`xuQP@B12<*OSrj16?^wnN(m+p?2!grCd6VnMNlC_{4wKrUScO=RuQpouP(Y|)4A zJ{7@e7n^4o$w`Q(Z$b@9CI`RNoxD!jst!e^81**EakjaQ{a+5v(0?(>XD&*&5 z=ovkximXHPfL2fZ(}sx1Ry|wJYZh2ZY|ThnJJyT(wxBG;-5D8TbAH&GVe9D`lrAW0 znQ|cu;1;PSPF%z(Xq8bDrwUt?wzJc5$~AW}nxux=ezQi;ZzSj+&P%Qy2HrKL*~Bu6 zg47!3biZess=SsGFD}V?H@h4<3}vvj?3FoHP2}0{*_%_?3w-3-Ab;Ddg+ZPc28GKm zu!)X+Dge9h!!Q;V$OK?eOq(?)()>4APX7E-Xr|}S3l2XxK)(7_NO(WmoE3EucS22P zjn&NRnOr-``$+VLEkN)4O{f?8f9IP>bV~5Jsy-ISc)Ad#?@tN6e!Bfu`wq_d>9U7@ z>$WTFL7qO+X%DV{e9?#PjYX~dj(4y%$@QRQ4jkKtir=~uu>_XVdhway$U8Z^m%g2| HA5s4YcT1zj delta 402 zcmYjMO(=t59N+(W-e-o*N>=Y{kz|vUgp_jy>O8{pQ_{ftE9Sjf0KtZPio~h6YBKfzAI?AD<7*c3!5)LE^ zd!bf<9d(q1b_wDsXBMg%&HLbeeQSDBp{g1wwiWzTACS(ibAgaVfslBz>W??V!ba<15f$`!EMhXi zkI`4rMLTaIPG~oE3Z8rjSu1#PQPHR9%}CvAQAbp_+NX|AG<$}})h^HSKMEK2Ste~J c8(SH6YLbHzQ;hw2Fh$-5V`UztP8(_92OVOR;Q#;t From 6ccd30fd90a476baf82e931810f1a08cc452970f Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler Date: Tue, 20 Feb 2024 09:52:44 -0800 Subject: [PATCH 18/64] Remove PrimaryPart conditional in WorldPivotData custom setter (#394) --- rbx_dom_lua/src/customProperties.lua | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/rbx_dom_lua/src/customProperties.lua b/rbx_dom_lua/src/customProperties.lua index f9b908ca6..f115f7c82 100644 --- a/rbx_dom_lua/src/customProperties.lua +++ b/rbx_dom_lua/src/customProperties.lua @@ -113,13 +113,7 @@ return { }, WorldPivotData = { read = function(instance) - if instance.PrimaryPart == nil then - -- Model.WorldPivotData is unoccupied when the model does not have a - -- PrimaryPart - return true, nil - else - return true, instance:GetPivot() - end + return true, instance:GetPivot() end, write = function(instance, _, value) if value == nil then From 7bf637cd85aed5b85f8c6bbd6f76581842d48069 Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler Date: Sun, 3 Mar 2024 11:09:37 -0800 Subject: [PATCH 19/64] Delete generate_reflection (#398) --- Cargo.toml | 1 - generate_reflection/Cargo.toml | 32 -- generate_reflection/README.md | 27 -- generate_reflection/plugin/main.lua | 13 - generate_reflection/src/api_dump.rs | 310 ---------------- generate_reflection/src/defaults_place.rs | 388 -------------------- generate_reflection/src/main.rs | 81 ---- generate_reflection/src/plugin_injector.rs | 89 ----- generate_reflection/src/property_patches.rs | 191 ---------- generate_reflection/src/values.rs | 156 -------- 10 files changed, 1288 deletions(-) delete mode 100644 generate_reflection/Cargo.toml delete mode 100644 generate_reflection/README.md delete mode 100644 generate_reflection/plugin/main.lua delete mode 100644 generate_reflection/src/api_dump.rs delete mode 100644 generate_reflection/src/defaults_place.rs delete mode 100644 generate_reflection/src/main.rs delete mode 100644 generate_reflection/src/plugin_injector.rs delete mode 100644 generate_reflection/src/property_patches.rs delete mode 100644 generate_reflection/src/values.rs diff --git a/Cargo.toml b/Cargo.toml index 46a1d271a..70434b28b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,6 @@ [workspace] resolver = "2" members = [ - "generate_reflection", "rbx_binary", "rbx_dom_weak", "rbx_reflector", diff --git a/generate_reflection/Cargo.toml b/generate_reflection/Cargo.toml deleted file mode 100644 index 60406190c..000000000 --- a/generate_reflection/Cargo.toml +++ /dev/null @@ -1,32 +0,0 @@ -[package] -name = "generate_reflection" -description = "Generates the rbx-dom reflection database." -version = "0.1.0" -authors = ["Lucien Greathouse "] -edition = "2018" -publish = false - -[dependencies] -rbx_reflection = { path = "../rbx_reflection" } -rbx_dom_weak = { path = "../rbx_dom_weak" } -rbx_xml = { path = "../rbx_xml" } - -anyhow = "1.0.57" -bitflags = "1.3.2" -env_logger = "0.9.0" -lazy_static = "1.4.0" -log = "0.4.17" -notify = "4.0.17" -rmp-serde = "0.14.4" -roblox_install = "1.0.0" -serde = { version = "1.0.137", features = ["derive"] } -serde_json = "1.0.81" -serde_yaml = "0.8.24" -structopt = "0.3.26" -tempfile = "3.3.0" -tiny_http = "0.11.0" -toml = "0.5.9" -fs-err = "2.8.1" - -[target.'cfg(windows)'.dependencies] -innerput = "0.0.2" diff --git a/generate_reflection/README.md b/generate_reflection/README.md deleted file mode 100644 index 3c3dc52fe..000000000 --- a/generate_reflection/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# generate_reflection -Generates the reflection database delivered as part of rbx_dom_lua and rbx_reflection_database. - -## Requirements -* Windows -* Roblox Studio - -## Usage -```bash -generate_reflection [--json ] [--msgpack ] -``` - -## How's it work? -1. Locate Roblox Studio installation -2. Generate API dump via `RobloxStudioBeta -API ` - - The dump is written to a random temporary file which we immediately read back. - - At this point, we have a lot of information like a list of all instances and their properties, including types! -3. Generate a _derived_ reflection database by merging the JSON API dump with artisanal heuristics defined in [patches](patches). -4. Execute Roblox Studio to get information accessible to Lua - 1. Generate a place file with one copy of every instance in it. It has no properties defined. - 2. Generate a plugin file from [plugin/main.lua](plugin/main.lua). - 3. Install our plugin into Studio's `Plugins` folder - 4. Start an HTTP server to receive messages from the plugin - 5. Start Roblox Studio, opening the generated place - 6. The plugin sends back the current version of studio over HTTP and indicates that Studio has opened successfully. - 7. The operator (you) presses ctrl+s in Studio, saving the generated place. -5. Output the requested reflection databases in msgpack or JSON. \ No newline at end of file diff --git a/generate_reflection/plugin/main.lua b/generate_reflection/plugin/main.lua deleted file mode 100644 index 2d36b9586..000000000 --- a/generate_reflection/plugin/main.lua +++ /dev/null @@ -1,13 +0,0 @@ -local HttpService = game:GetService("HttpService") - -local SERVER_URL = "http://localhost:22073" - -local version = string.split(version(), ".") -local major = tonumber(version[1]) -local minor = tonumber(version[2]) -local patch = tonumber(version[3]) -local build = tonumber(version[4]) - -HttpService:PostAsync(SERVER_URL .. "/info", HttpService:JSONEncode({ - version = {major, minor, patch, build}, -})) diff --git a/generate_reflection/src/api_dump.rs b/generate_reflection/src/api_dump.rs deleted file mode 100644 index f4c55b158..000000000 --- a/generate_reflection/src/api_dump.rs +++ /dev/null @@ -1,310 +0,0 @@ -//! Interface for dealing with Roblox Studio's JSON API Dump. Isn't specific to -//! this crate and could probably turn into a separate crate. - -use std::borrow::Cow; -use std::collections::{HashMap, HashSet}; -use std::fs; -use std::process::Command; - -use anyhow::Context; -use rbx_dom_weak::types::VariantType; -use rbx_reflection::{ - ClassDescriptor, DataType, EnumDescriptor, PropertyDescriptor, PropertyKind, - PropertySerialization, PropertyTag, ReflectionDatabase, Scriptability, -}; -use roblox_install::RobloxStudio; -use serde::Deserialize; -use tempfile::tempdir; - -#[derive(Debug, Deserialize)] -#[serde(rename_all = "PascalCase")] -pub struct Dump { - pub classes: Vec, - pub enums: Vec, -} - -#[derive(Debug, Deserialize)] -#[serde(rename_all = "PascalCase")] -pub struct DumpClass { - pub name: String, - pub superclass: String, - - #[serde(default)] - pub tags: Vec, - pub members: Vec, -} - -#[derive(Debug, Deserialize)] -#[serde(tag = "MemberType")] -pub enum DumpClassMember { - Property(DumpClassProperty), - - #[serde(rename_all = "PascalCase")] - Function { - name: String, - }, - - #[serde(rename_all = "PascalCase")] - Event { - name: String, - }, - - #[serde(other)] - Unknown, -} - -#[derive(Debug, Deserialize)] -#[serde(rename_all = "PascalCase")] -pub struct DumpClassProperty { - pub name: String, - pub value_type: ValueType, - pub serialization: Serialization, - pub security: PropertySecurity, - - #[serde(default)] - pub tags: Vec, -} - -#[derive(Debug, Deserialize)] -#[serde(rename_all = "PascalCase")] -pub struct ValueType { - pub name: String, - pub category: ValueCategory, -} - -#[derive(Debug, Clone, Copy, Deserialize)] -pub enum ValueCategory { - /// Lua primitives like float or string - Primitive, - - /// Roblox data types like Vector3 or CFrame - DataType, - - /// Roblox enum like FormFactor or Genre - Enum, - - /// An instance reference - Class, -} - -#[derive(Debug, Clone, Copy, Deserialize)] -#[allow(clippy::enum_variant_names)] -pub enum Security { - None, - LocalUserSecurity, - PluginSecurity, - RobloxScriptSecurity, - NotAccessibleSecurity, - RobloxSecurity, -} - -#[derive(Debug, Deserialize)] -#[serde(rename_all = "PascalCase")] -pub struct PropertySecurity { - read: Security, - write: Security, -} - -#[derive(Debug, Deserialize)] -#[serde(rename_all = "PascalCase")] -pub struct Serialization { - pub can_save: bool, - pub can_load: bool, -} - -#[derive(Debug, Deserialize)] -#[serde(rename_all = "PascalCase")] -pub struct DumpEnum { - pub name: String, - pub items: Vec, -} - -#[derive(Debug, Deserialize)] -#[serde(rename_all = "PascalCase")] -pub struct DumpEnumItem { - pub name: String, - pub value: u32, -} - -impl Dump { - pub fn read() -> anyhow::Result { - let studio_install = - RobloxStudio::locate().context("Could not locate Roblox Studio install")?; - - let dir = tempdir()?; - let dump_path = dir.path().join("api-dump.json"); - - Command::new(studio_install.application_path()) - .arg("-API") - .arg(&dump_path) - .status()?; - - let contents = fs::read_to_string(&dump_path)?; - let dump: Dump = - serde_json::from_str(&contents).context("Roblox Studio produced an invalid dump")?; - - Ok(dump) - } - - /// Adds all of the classes from the given API dump to the reflection - /// database. - pub fn apply(&self, database: &mut ReflectionDatabase) -> anyhow::Result<()> { - for dump_class in &self.classes { - let superclass = if dump_class.superclass == "<<>>" { - None - } else { - Some(Cow::Owned(dump_class.superclass.clone())) - }; - - let mut tags = HashSet::new(); - for dump_tag in &dump_class.tags { - tags.insert(dump_tag.parse().unwrap()); - } - - let mut properties = HashMap::new(); - - for member in &dump_class.members { - if let DumpClassMember::Property(dump_property) = member { - let mut tags = HashSet::new(); - for dump_tag in &dump_property.tags { - tags.insert(dump_tag.parse().unwrap()); - } - - let read_scriptability = match dump_property.security.read { - Security::None | Security::PluginSecurity => Scriptability::Read, - _ => Scriptability::None, - }; - - let write_scriptability = if tags.contains(&PropertyTag::ReadOnly) { - Scriptability::None - } else { - match dump_property.security.write { - Security::None | Security::PluginSecurity => Scriptability::Write, - _ => Scriptability::None, - } - }; - - let scriptability = if tags.contains(&PropertyTag::NotScriptable) { - Scriptability::None - } else { - match (read_scriptability, write_scriptability) { - (Scriptability::Read, Scriptability::Write) => Scriptability::ReadWrite, - (Scriptability::Read, Scriptability::None) => Scriptability::Read, - (Scriptability::None, Scriptability::Write) => Scriptability::Write, - _ => Scriptability::None, - } - }; - - let can_serialize = !tags.contains(&PropertyTag::ReadOnly) - && dump_property.serialization.can_save; - - let serialization = if can_serialize { - PropertySerialization::Serializes - } else { - PropertySerialization::DoesNotSerialize - }; - - // We assume that all properties are canonical by default, - // since most properties are. Properties are updated by - // patches later on in the database generation process. - let kind = PropertyKind::Canonical { serialization }; - - let type_name = &dump_property.value_type.name; - let value_type = match dump_property.value_type.category { - ValueCategory::Enum => DataType::Enum(type_name.clone().into()), - ValueCategory::Primitive | ValueCategory::DataType => { - match variant_type_from_str(type_name) { - Some(variant_type) => DataType::Value(variant_type), - None => continue, - } - } - ValueCategory::Class => DataType::Value(VariantType::Ref), - }; - - let mut property = - PropertyDescriptor::new(dump_property.name.clone(), value_type); - property.scriptability = scriptability; - property.tags = tags; - property.kind = kind; - - properties.insert(Cow::Owned(dump_property.name.clone()), property); - } - } - - let mut class = ClassDescriptor::new(dump_class.name.clone()); - class.tags = tags; - class.superclass = superclass; - class.properties = properties; - - database - .classes - .insert(Cow::Owned(dump_class.name.clone()), class); - } - - for dump_enum in &self.enums { - let mut descriptor = EnumDescriptor::new(dump_enum.name.clone()); - - for dump_item in &dump_enum.items { - descriptor - .items - .insert(Cow::Owned(dump_item.name.clone()), dump_item.value); - } - - database - .enums - .insert(Cow::Owned(dump_enum.name.clone()), descriptor); - } - - Ok(()) - } -} - -fn variant_type_from_str(value: &str) -> Option { - Some(match value { - "Axes" => VariantType::Axes, - "BinaryString" => VariantType::BinaryString, - "BrickColor" => VariantType::BrickColor, - "CFrame" => VariantType::CFrame, - "Color3" => VariantType::Color3, - "ColorSequence" => VariantType::ColorSequence, - "Content" => VariantType::Content, - "Faces" => VariantType::Faces, - "Font" => VariantType::Font, - "Instance" => VariantType::Ref, - "NumberRange" => VariantType::NumberRange, - "NumberSequence" => VariantType::NumberSequence, - "PhysicalProperties" => VariantType::PhysicalProperties, - "Ray" => VariantType::Ray, - "Rect" => VariantType::Rect, - "Region3" => VariantType::Region3, - "Region3int16" => VariantType::Region3int16, - "UDim" => VariantType::UDim, - "UDim2" => VariantType::UDim2, - "Vector2" => VariantType::Vector2, - "Vector2int16" => VariantType::Vector2int16, - "Vector3" => VariantType::Vector3, - "Vector3int16" => VariantType::Vector3int16, - "bool" => VariantType::Bool, - "double" => VariantType::Float64, - "float" => VariantType::Float32, - "int" => VariantType::Int32, - "int64" => VariantType::Int64, - "string" => VariantType::String, - - // ProtectedString is handled as the same as string - "ProtectedString" => VariantType::String, - - // TweenInfo is not supported by rbx_types yet - "TweenInfo" => return None, - - // While DateTime is possible to Serialize, the only use it has as a - // DataType is for the TextChatMessage class, which cannot be serialized - // (at least not saved to file as it is locked to nil parent) - "DateTime" => return None, - - // These types are not generally implemented right now. - "QDir" | "QFont" => return None, - - _ => panic!("Unknown type {}", value), - }) -} diff --git a/generate_reflection/src/defaults_place.rs b/generate_reflection/src/defaults_place.rs deleted file mode 100644 index d3658f0ea..000000000 --- a/generate_reflection/src/defaults_place.rs +++ /dev/null @@ -1,388 +0,0 @@ -//! Collects default property values by generated a place file every kind of -//! instance in it, then uses Roblox Studio to re-save it with default property -//! information encoded in it. - -use std::{ - borrow::Cow, - collections::{HashSet, VecDeque}, - fmt::{self, Write}, - fs::{self, File}, - io::BufReader, - process::Command, - sync::mpsc, - time::Duration, -}; - -use anyhow::Context; -#[cfg(target_os = "windows")] -use innerput::{Innerput, Key, Keyboard}; -use notify::{DebouncedEvent, Watcher}; -use rbx_dom_weak::types::VariantType; -use rbx_dom_weak::WeakDom; -use rbx_reflection::{PropertyDescriptor, PropertyKind, PropertySerialization, ReflectionDatabase}; -use roblox_install::RobloxStudio; -use tempfile::tempdir; - -use crate::plugin_injector::{PluginInjector, StudioInfo}; - -/// Use Roblox Studio to populate the reflection database with default values -/// for as many properties as possible. -pub fn measure_default_properties(database: &mut ReflectionDatabase) -> anyhow::Result<()> { - let fixture_place = generate_fixture_place(database); - let output = roundtrip_place_through_studio(&fixture_place)?; - - database.version = output.info.version; - - log::info!("Applying defaults from place file into reflection database..."); - apply_defaults_from_fixture_place(database, &output.tree); - - Ok(()) -} - -fn apply_defaults_from_fixture_place(database: &mut ReflectionDatabase, tree: &WeakDom) { - // Perform a breadth-first search to find the instance shallowest in the - // tree of each class. - - let mut found_classes = HashSet::new(); - let mut to_visit = VecDeque::new(); - - to_visit.extend(tree.root().children()); - - while let Some(referent) = to_visit.pop_front() { - let instance = tree.get_by_ref(referent).unwrap(); - - to_visit.extend(instance.children()); - - if found_classes.contains(&instance.class) { - continue; - } - - found_classes.insert(instance.class.clone()); - - for (prop_name, prop_value) in &instance.properties { - let descriptors = match find_descriptors(database, &instance.class, prop_name) { - Some(descriptor) => descriptor, - None => { - log::warn!( - "Found unknown property {}.{}, which is of type {:?}", - instance.class, - prop_name, - prop_value.ty(), - ); - continue; - } - }; - - match &descriptors.canonical.kind { - PropertyKind::Canonical { serialization } => match serialization { - PropertySerialization::Serializes => { - if &descriptors.canonical.name != prop_name { - log::error!("Property {}.{} is supposed to serialize as {}, but was actually serialized as {}", - instance.class, - descriptors.canonical.name, - descriptors.canonical.name, - prop_name); - } - } - - PropertySerialization::DoesNotSerialize => { - log::error!( - "Property {}.{} (canonical name {}) found in default place but should not serialize", - instance.class, - prop_name, - descriptors.canonical.name, - ); - } - - PropertySerialization::SerializesAs(serialized_name) => { - if serialized_name != prop_name { - log::error!("Property {}.{} is supposed to serialize as {}, but was actually serialized as {}", - instance.class, - descriptors.canonical.name, - serialized_name, - prop_name); - } - } - - unknown => { - log::error!( - "Unknown property serialization {:?} on property {}.{}", - unknown, - instance.class, - descriptors.canonical.name - ); - } - }, - - _ => panic!( - "find_descriptors must not return a non-canonical descriptor as canonical" - ), - } - - let canonical_name = Cow::Owned(descriptors.canonical.name.clone().into_owned()); - - match prop_value.ty() { - // We don't support usefully emitting these types yet. - VariantType::Ref | VariantType::SharedString => {} - - _ => { - let class_descriptor = match database.classes.get_mut(instance.class.as_str()) { - Some(descriptor) => descriptor, - None => { - log::warn!( - "Class {} found in default place but not API dump", - instance.class - ); - continue; - } - }; - - class_descriptor - .default_properties - .insert(canonical_name, prop_value.clone()); - } - } - } - } -} - -struct Descriptors<'a> { - // This descriptor might be useful in the future, but is currently unused. - #[allow(unused)] - input: &'a PropertyDescriptor<'a>, - - canonical: &'a PropertyDescriptor<'a>, -} - -fn find_descriptors<'a>( - database: &'a ReflectionDatabase, - class_name: &str, - prop_name: &str, -) -> Option> { - let mut input_descriptor = None; - let mut next_class_name = Some(class_name); - - while let Some(current_class_name) = next_class_name { - let class = database.classes.get(current_class_name).unwrap(); - - if let Some(prop) = class.properties.get(prop_name) { - if input_descriptor.is_none() { - input_descriptor = Some(prop); - } - - match &prop.kind { - PropertyKind::Canonical { .. } => { - return Some(Descriptors { - input: input_descriptor.unwrap(), - canonical: prop, - }); - } - PropertyKind::Alias { alias_for } => { - let aliased_prop = class.properties.get(alias_for).unwrap(); - - return Some(Descriptors { - input: input_descriptor.unwrap(), - canonical: aliased_prop, - }); - } - unknown => { - log::warn!("Unknown property kind {:?}", unknown); - return None; - } - } - } - - next_class_name = class.superclass.as_ref().map(|name| name.as_ref()); - } - - None -} - -struct StudioOutput { - info: StudioInfo, - tree: WeakDom, -} - -/// Generate a new fixture place from the given reflection database, open it in -/// Studio, coax Studio to re-save it, and reads back the resulting place. -fn roundtrip_place_through_studio(place_contents: &str) -> anyhow::Result { - let output_dir = tempdir()?; - let output_path = output_dir.path().join("GenerateReflectionRoundtrip.rbxlx"); - log::info!("Generating place at {}", output_path.display()); - fs::write(&output_path, place_contents)?; - - let studio_install = RobloxStudio::locate()?; - let injector = PluginInjector::start(&studio_install); - - log::info!("Starting Roblox Studio..."); - - let mut studio_process = Command::new(studio_install.application_path()) - .arg(output_path.display().to_string()) - .spawn()?; - - let info = injector.receive_info(); - - let (tx, rx) = mpsc::channel(); - let mut watcher = notify::watcher(tx, Duration::from_millis(300))?; - watcher.watch(&output_path, notify::RecursiveMode::NonRecursive)?; - - log::info!("Waiting for Roblox Studio to re-save place..."); - - #[cfg(target_os = "windows")] - { - let did_send_chord = - Innerput::new().send_chord(&[Key::Control, Key::Char('s')], &studio_process); - - match did_send_chord { - Ok(()) => (), - Err(err) => { - log::error!("{}", err); - - println!( - "Failed to send key chord to Roblox Studio. Please save the opened place manually." - ) - } - } - } - - #[cfg(not(target_os = "windows"))] - println!("Please save the opened place in Roblox Studio (ctrl+s)."); - - loop { - if let DebouncedEvent::Write(_) = rx.recv()? { - break; - } - } - - log::info!("Place saved, killing Studio..."); - studio_process.kill()?; - - log::info!("Reading back place file..."); - - let file = BufReader::new(File::open(&output_path)?); - - let decode_options = rbx_xml::DecodeOptions::new() - .property_behavior(rbx_xml::DecodePropertyBehavior::NoReflection); - - let tree = match rbx_xml::from_reader(file, decode_options) { - Ok(tree) => tree, - Err(err) => { - let _ = fs::copy(output_path, "defaults-place.rbxlx"); - return Err(err).context( - "failed to decode defaults place; it has been copied to defaults-place.rbxlx", - ); - } - }; - - Ok(StudioOutput { info, tree }) -} - -/// Create a place file that contains a copy of every Roblox class and no -/// properties defined. -/// -/// When this place is re-saved by Roblox Studio, it'll contain default values -/// for every property. -fn generate_fixture_place(database: &ReflectionDatabase) -> String { - log::info!("Generating place with every instance..."); - - let mut output = String::new(); - - writeln!(&mut output, "").unwrap(); - - for descriptor in database.classes.values() { - let mut instance = FixtureInstance::named(&descriptor.name); - - match &*descriptor.name { - // These types can't be put into place files by default. - "DebuggerWatch" | "DebuggerBreakpoint" | "AdvancedDragger" | "Dragger" - | "ScriptDebugger" | "PackageLink" => continue, - - // These types have specific parenting restrictions handled - // elsewhere. - "Terrain" - | "Attachment" - | "Animator" - | "StarterPlayerScripts" - | "StarterCharacterScripts" - | "Bone" - | "BaseWrap" - | "WrapLayer" - | "WrapTarget" => continue, - - // Ad and AdGui instances cause Studio to crash immediately on - // launch. - "Ad" | "AdGui" => continue, - - // AdPortal instances cause an angry message about a product feature - // not being enabled yet. - "AdPortal" => continue, - - // WorldModel is not yet enabled. - "WorldModel" => continue, - - "StarterPlayer" => { - instance.add_child(FixtureInstance::named("StarterPlayerScripts")); - instance.add_child(FixtureInstance::named("StarterCharacterScripts")); - } - "Workspace" => { - instance.add_child(FixtureInstance::named("Terrain")); - } - "Part" => { - instance.add_child(FixtureInstance::named("Attachment")); - instance.add_child(FixtureInstance::named("Bone")); - } - "Humanoid" => { - instance.add_child(FixtureInstance::named("Animator")); - } - "MeshPart" => { - // Without this special case, Studio will fail to open the - // resulting file, complaining about "BaseWrap". - instance.add_child(FixtureInstance::named("BaseWrap")); - instance.add_child(FixtureInstance::named("WrapLayer")); - instance.add_child(FixtureInstance::named("WrapTarget")); - } - _ => {} - } - - write!(output, "{}", instance).unwrap(); - } - - writeln!(&mut output, "").unwrap(); - output -} - -struct FixtureInstance<'a> { - name: &'a str, - children: Vec>, -} - -impl<'a> FixtureInstance<'a> { - fn named(name: &'a str) -> Self { - Self { - name, - children: Vec::new(), - } - } - - fn add_child(&mut self, child: FixtureInstance<'a>) { - self.children.push(child); - } -} - -impl fmt::Display for FixtureInstance<'_> { - fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { - writeln!( - formatter, - "", - &self.name, &self.name - )?; - - for child in &self.children { - write!(formatter, "{}", child)?; - } - - writeln!(formatter, "")?; - - Ok(()) - } -} diff --git a/generate_reflection/src/main.rs b/generate_reflection/src/main.rs deleted file mode 100644 index b66715669..000000000 --- a/generate_reflection/src/main.rs +++ /dev/null @@ -1,81 +0,0 @@ -mod api_dump; -mod defaults_place; -mod plugin_injector; -mod property_patches; -mod values; - -use std::fs; -use std::path::PathBuf; - -use rbx_reflection::ReflectionDatabase; -use structopt::StructOpt; - -use crate::api_dump::Dump; -use crate::defaults_place::measure_default_properties; -use crate::property_patches::PropertyPatches; - -#[derive(Debug, StructOpt)] -struct Options { - #[structopt(long = "patches")] - patches_path: Option, - - #[structopt(long = "json")] - json_path: Option, - - #[structopt(long = "msgpack")] - msgpack_path: Option, - - #[structopt(long = "values")] - values_path: Option, -} - -fn run(options: Options) -> anyhow::Result<()> { - let mut database = ReflectionDatabase::new(); - - let dump = Dump::read()?; - dump.apply(&mut database)?; - - if let Some(patches) = options.patches_path { - let property_patches = PropertyPatches::load(&patches)?; - property_patches.apply(&mut database)?; - } - - measure_default_properties(&mut database)?; - - // TODO - // database.validate(); - - if let Some(path) = &options.msgpack_path { - let encoded = rmp_serde::to_vec(&database)?; - fs::write(path, encoded)?; - } - - if let Some(path) = &options.json_path { - let encoded = serde_json::to_string_pretty(&database)?; - fs::write(path, encoded)?; - } - - if let Some(path) = &options.values_path { - fs::write(path, values::encode()?)?; - } - - Ok(()) -} - -fn main() { - let options = Options::from_args(); - - let log_env = env_logger::Env::default().default_filter_or("info"); - - env_logger::Builder::from_env(log_env) - .format_module_path(false) - .format_timestamp(None) - // Indent following lines equal to the log level label, like `[ERROR] ` - .format_indent(Some(8)) - .init(); - - if let Err(err) = run(options) { - eprintln!("Error: {:?}", err); - std::process::exit(1); - } -} diff --git a/generate_reflection/src/plugin_injector.rs b/generate_reflection/src/plugin_injector.rs deleted file mode 100644 index 1fcfe678c..000000000 --- a/generate_reflection/src/plugin_injector.rs +++ /dev/null @@ -1,89 +0,0 @@ -//! Defines an interface to inject a plugin into a local Roblox Studio install -//! that can communicate with a temporary HTTP server. - -use std::fs::{remove_file, File}; -use std::io::BufWriter; -use std::time::Duration; - -use rbx_dom_weak::{InstanceBuilder, WeakDom}; -use roblox_install::RobloxStudio; -use serde::Deserialize; -use tiny_http::Response; - -static PLUGIN_SOURCE: &str = include_str!("../plugin/main.lua"); - -#[derive(Debug, Deserialize)] -pub struct StudioInfo { - pub version: [u32; 4], -} - -pub struct PluginInjector<'a> { - http_server: tiny_http::Server, - roblox_studio: &'a RobloxStudio, -} - -impl<'a> PluginInjector<'a> { - pub fn start(roblox_studio: &'a RobloxStudio) -> Self { - log::info!("Starting HTTP server to receive Studio metadata"); - let http_server = tiny_http::Server::http("0.0.0.0:22073").unwrap(); - - log::info!("Installing Studio Plugin"); - install_plugin(roblox_studio); - - PluginInjector { - http_server, - roblox_studio, - } - } - - pub fn receive_info(self) -> StudioInfo { - log::info!("Waiting to hear back from Studio plugin..."); - let mut request = self - .http_server - .recv_timeout(Duration::from_secs(30)) - .expect("error receiving HTTP request") - .expect("plugin did not send a request within 30 seconds"); - - let studio_info: StudioInfo = serde_json::from_reader(request.as_reader()).unwrap(); - request.respond(Response::empty(200)).unwrap(); - - studio_info - } -} - -impl<'a> Drop for PluginInjector<'a> { - fn drop(&mut self) { - log::info!("Uninstalling Studio Plugin"); - remove_plugin(self.roblox_studio); - } -} - -fn install_plugin(roblox_studio: &RobloxStudio) { - let plugin = create_plugin(); - - let plugin_path = roblox_studio - .plugins_path() - .join("RbxDomGenerateReflectionPlugin.rbxmx"); - - // trying to write to plugin_path fails if plugins_path() doesn't already exist - fs_err::create_dir_all(roblox_studio.plugins_path()).expect("Couldn't create plugins path"); - - let output = BufWriter::new(File::create(plugin_path).unwrap()); - rbx_xml::to_writer_default(output, &plugin, &[plugin.root_ref()]).unwrap(); -} - -fn remove_plugin(roblox_studio: &RobloxStudio) { - let plugin_path = roblox_studio - .plugins_path() - .join("RbxDomGenerateReflectionPlugin.rbxmx"); - - remove_file(plugin_path).unwrap(); -} - -fn create_plugin() -> WeakDom { - WeakDom::new( - InstanceBuilder::new("Script") - .with_name("RbxDomGenerateReflectionPlugin") - .with_property("Source", PLUGIN_SOURCE), - ) -} diff --git a/generate_reflection/src/property_patches.rs b/generate_reflection/src/property_patches.rs deleted file mode 100644 index 19853573c..000000000 --- a/generate_reflection/src/property_patches.rs +++ /dev/null @@ -1,191 +0,0 @@ -//! Defines changes and additions to the reflection dump that add and fix up -//! information. -//! -//! See the `patches/` directory for input. - -use std::borrow::Cow; -use std::collections::HashMap; -use std::path::Path; - -use anyhow::{anyhow, bail, Context}; -use rbx_reflection::{ - DataType, PropertyDescriptor, PropertyKind, ReflectionDatabase, Scriptability, -}; -use serde::Deserialize; - -#[derive(Debug, Default, Deserialize)] -#[serde(rename_all = "PascalCase", deny_unknown_fields)] -pub struct PropertyPatches { - #[serde(default)] - pub change: HashMap>, - - #[serde(default)] - pub add: HashMap>, -} - -#[derive(Debug, Deserialize)] -#[serde(rename_all = "PascalCase", deny_unknown_fields)] -pub struct PropertyChange { - pub alias_for: Option, - pub serialization: Option, - pub scriptability: Option, -} - -impl PropertyChange { - fn kind(&self) -> Option> { - match (&self.alias_for, &self.serialization) { - (Some(alias), None) => Some(PropertyKind::Alias { - alias_for: Cow::Owned(alias.clone()), - }), - - (None, Some(serialization)) => Some(PropertyKind::Canonical { - serialization: serialization.clone().into(), - }), - - (None, None) => None, - - _ => panic!("property changes cannot specify AliasFor and Serialization"), - } - } -} - -#[derive(Debug, Deserialize)] -#[serde(rename_all = "PascalCase", deny_unknown_fields)] -pub struct PropertyAdd { - pub data_type: DataType<'static>, - pub alias_for: Option, - pub serialization: Option, - pub scriptability: Scriptability, -} - -impl PropertyAdd { - fn kind(&self) -> PropertyKind<'static> { - match (&self.alias_for, &self.serialization) { - (Some(alias), None) => PropertyKind::Alias { - alias_for: Cow::Owned(alias.clone()), - }, - - (None, Some(serialization)) => PropertyKind::Canonical { - serialization: serialization.clone().into(), - }, - - _ => panic!("property additions must specify AliasFor xor Serialization"), - } - } -} - -#[derive(Debug, Clone, Deserialize)] -#[serde(tag = "Type", rename_all = "PascalCase", deny_unknown_fields)] -pub enum PropertySerialization { - Serializes, - DoesNotSerialize, - #[serde(rename_all = "PascalCase")] - SerializesAs { - #[serde(rename = "As")] - serializes_as: String, - }, -} - -impl From for rbx_reflection::PropertySerialization<'_> { - fn from(value: PropertySerialization) -> Self { - match value { - PropertySerialization::Serializes => rbx_reflection::PropertySerialization::Serializes, - PropertySerialization::DoesNotSerialize => { - rbx_reflection::PropertySerialization::DoesNotSerialize - } - PropertySerialization::SerializesAs { serializes_as } => { - rbx_reflection::PropertySerialization::SerializesAs(Cow::Owned(serializes_as)) - } - } - } -} - -impl PropertyPatches { - pub fn load(dir: &Path) -> anyhow::Result { - let mut all_patches = PropertyPatches::default(); - - for entry in fs_err::read_dir(dir)? { - let entry = entry?; - let contents = fs_err::read_to_string(entry.path())?; - let parsed: PropertyPatches = serde_yaml::from_str(&contents) - .with_context(|| format!("Error parsing patch file {}", entry.path().display()))?; - - all_patches.change.extend(parsed.change); - all_patches.add.extend(parsed.add); - } - - Ok(all_patches) - } - - pub fn apply(self, database: &mut ReflectionDatabase<'static>) -> anyhow::Result<()> { - for (class_name, class_changes) in &self.change { - let class = database - .classes - .get_mut(class_name.as_str()) - .ok_or_else(|| { - anyhow!( - "Class {} modified in patch file did not exist in database", - class_name - ) - })?; - - for (property_name, property_change) in class_changes { - let existing_property = class - .properties - .get_mut(property_name.as_str()) - .ok_or_else(|| { - anyhow!( - "Property {}.{} modified in patch file did not exist in database", - class_name, - property_name - ) - })?; - - log::debug!("Property {}.{} changed", class_name, property_name); - - if let Some(kind) = property_change.kind() { - existing_property.kind = kind; - } - - if let Some(scriptability) = &property_change.scriptability { - existing_property.scriptability = *scriptability; - } - } - } - - for (class_name, class_adds) in &self.add { - let class = database - .classes - .get_mut(class_name.as_str()) - .ok_or_else(|| { - anyhow!("Class {} modified in patch file wasn't present", class_name) - })?; - - for (property_name, property_add) in class_adds { - if class.properties.contains_key(property_name.as_str()) { - bail!( - "Property {}.{} added in patch file was already present", - class_name, - property_name - ); - } - - log::debug!("Property {}.{} added", class_name, property_name); - - let name = Cow::Owned(property_name.clone()); - let data_type = property_add.data_type.clone(); - - let mut property = PropertyDescriptor::new(name, data_type); - - property.kind = property_add.kind(); - property.scriptability = property_add.scriptability; - - class - .properties - .insert(Cow::Owned(property_name.clone()), property); - } - } - - Ok(()) - } -} diff --git a/generate_reflection/src/values.rs b/generate_reflection/src/values.rs deleted file mode 100644 index 7d2b374e3..000000000 --- a/generate_reflection/src/values.rs +++ /dev/null @@ -1,156 +0,0 @@ -//! Serializes every kind of value into a file for debugging rbx_dom_lua. - -use std::collections::BTreeMap; - -use rbx_dom_weak::types::{ - Attributes, Axes, BinaryString, BrickColor, CFrame, Color3, Color3uint8, ColorSequence, - ColorSequenceKeypoint, Content, CustomPhysicalProperties, Enum, Faces, Font, Matrix3, - NumberRange, NumberSequence, NumberSequenceKeypoint, PhysicalProperties, Ray, Rect, - Region3int16, Tags, UDim, UDim2, Variant, VariantType, Vector2, Vector2int16, Vector3, - Vector3int16, -}; -use serde::Serialize; - -#[derive(Serialize)] -struct TestEntry { - value: Variant, - ty: VariantType, -} - -#[allow(clippy::string_lit_as_bytes)] -pub fn encode() -> anyhow::Result { - let mut values: BTreeMap<&str, Variant> = BTreeMap::new(); - - values.insert( - "Attributes", - Attributes::new() - .with("TestBool", true) - .with("TestString", "Test") - .with("TestNumber", Variant::Float64(1337.0)) - .with("TestBrickColor", BrickColor::BrightYellow) - .with("TestColor3", Color3::new(1.0, 0.5, 0.0)) - .with("TestVector2", Vector2::new(1.0, 2.0)) - .with("TestVector3", Vector3::new(1.0, 2.0, 3.0)) - .with( - "TestRect", - Rect::new(Vector2::new(1.0, 2.0), Vector2::new(3.0, 4.0)), - ) - .with("TestUDim", UDim::new(1.0, 2)) - .with( - "TestUDim2", - UDim2::new(UDim::new(1.0, 2), UDim::new(3.0, 4)), - ) - .into(), - ); - values.insert("Axes", Axes::all().into()); - values.insert( - "BinaryString", - BinaryString::from("Hello!".as_bytes()).into(), - ); - values.insert("Bool", true.into()); - values.insert("BrickColor", BrickColor::ReallyRed.into()); - values.insert( - "CFrame", - CFrame::new( - Vector3::new(1.0, 2.0, 3.0), - Matrix3::new( - Vector3::new(4.0, 5.0, 6.0), - Vector3::new(7.0, 8.0, 9.0), - Vector3::new(10.0, 11.0, 12.0), - ), - ) - .into(), - ); - values.insert("Color3", Color3::new(1.0, 2.0, 3.0).into()); - values.insert("Color3uint8", Color3uint8::new(0, 128, 255).into()); - values.insert( - "ColorSequence", - ColorSequence { - keypoints: vec![ - ColorSequenceKeypoint::new(0.0, Color3::new(1.0, 1.0, 0.5)), - ColorSequenceKeypoint::new(1.0, Color3::new(0.0, 0.0, 0.0)), - ], - } - .into(), - ); - values.insert("Content", Content::from("rbxassetid://12345").into()); - values.insert("Enum", Enum::from_u32(1234).into()); - values.insert("Faces", Faces::all().into()); - values.insert("Float32", 15.0f32.into()); - values.insert("Float64", 15123.0f64.into()); - values.insert("Font", Font::default().into()); - values.insert("Int32", 6014i32.into()); - values.insert("Int64", 23491023i64.into()); - values.insert("NumberRange", NumberRange::new(-36.0, 94.0).into()); - values.insert( - "NumberSequence", - NumberSequence { - keypoints: vec![ - NumberSequenceKeypoint::new(0.0, 5.0, 2.0), - NumberSequenceKeypoint::new(1.0, 22.0, 0.0), - ], - } - .into(), - ); - values.insert( - "Tags", - Tags::from(vec![ - "foo".to_owned(), - "con'fusion?!".to_owned(), - "bar".to_owned(), - ]) - .into(), - ); - values.insert( - "PhysicalProperties-Custom", - PhysicalProperties::Custom(CustomPhysicalProperties { - density: 0.5, - friction: 1.0, - elasticity: 0.0, - friction_weight: 50.0, - elasticity_weight: 25.0, - }) - .into(), - ); - values.insert( - "PhysicalProperties-Default", - PhysicalProperties::Default.into(), - ); - values.insert( - "Ray", - Ray::new(Vector3::new(1.0, 2.0, 3.0), Vector3::new(4.0, 5.0, 6.0)).into(), - ); - values.insert( - "Rect", - Rect::new(Vector2::new(0.0, 5.0), Vector2::new(10.0, 15.0)).into(), - ); - values.insert( - "Region3int16", - Region3int16::new(Vector3int16::new(-10, -5, 0), Vector3int16::new(5, 10, 15)).into(), - ); - values.insert("String", String::from("Hello, world!").into()); - values.insert("UDim", UDim::new(1.0, 32).into()); - values.insert( - "UDim2", - UDim2::new(UDim::new(-1.0, 100), UDim::new(1.0, -100)).into(), - ); - values.insert("Vector2", Vector2::new(-50.0, 50.0).into()); - values.insert("Vector2int16", Vector2int16::new(-300, 300).into()); - values.insert("Vector3", Vector3::new(-300.0, 0.0, 1500.0).into()); - values.insert("Vector3int16", Vector3int16::new(60, 37, -450).into()); - - let entries: BTreeMap<&str, TestEntry> = values - .into_iter() - .map(|(key, value)| { - ( - key, - TestEntry { - ty: value.ty(), - value, - }, - ) - }) - .collect(); - - Ok(serde_json::to_string_pretty(&entries)?) -} From 72d583dee49387e35b0cb7bb5ec14da6e5eabd4d Mon Sep 17 00:00:00 2001 From: Dervex <78505208+DervexHero@users.noreply.github.com> Date: Tue, 5 Mar 2024 00:04:01 +0100 Subject: [PATCH 20/64] Add `InstanceBuilder::with_referent` constructing method (#400) --- .gitignore | 5 ++++- rbx_dom_weak/CHANGELOG.md | 1 + rbx_dom_weak/src/instance.rs | 8 ++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 292091468..061d7111b 100644 --- a/.gitignore +++ b/.gitignore @@ -21,4 +21,7 @@ Cargo.lock # Editor-specific folders and files /.vscode -sourcemap.json \ No newline at end of file +sourcemap.json + +# macOS Finder files +.DS_Store diff --git a/rbx_dom_weak/CHANGELOG.md b/rbx_dom_weak/CHANGELOG.md index dca7fac1f..140026901 100644 --- a/rbx_dom_weak/CHANGELOG.md +++ b/rbx_dom_weak/CHANGELOG.md @@ -1,6 +1,7 @@ # rbx_dom_weak Changelog ## Unreleased Changes +* Added `InstanceBuilder::with_referent` that allows building instance with predefined `Ref` ## 2.7.0 (2024-01-16) * Implemented `Default` for `WeakDom`, useful when using Serde or creating an empty `WeakDom` diff --git a/rbx_dom_weak/src/instance.rs b/rbx_dom_weak/src/instance.rs index c576717b0..7871c3c85 100644 --- a/rbx_dom_weak/src/instance.rs +++ b/rbx_dom_weak/src/instance.rs @@ -72,6 +72,14 @@ impl InstanceBuilder { self.referent } + /// Change the referent of the `InstanceBuilder`. + pub fn with_referent>(self, referent: R) -> Self { + Self { + referent: referent.into(), + ..self + } + } + /// Change the name of the `InstanceBuilder`. pub fn with_name>(self, name: S) -> Self { Self { From 06b1fadadef5882a77487f0a9a8dd23e2b6058c5 Mon Sep 17 00:00:00 2001 From: Dervex <78505208+DervexHero@users.noreply.github.com> Date: Thu, 7 Mar 2024 17:58:55 +0100 Subject: [PATCH 21/64] Make pretty JSON optional for `generate` subcommand (`rbx_reflector`) (#401) Co-authored-by: Kenneth Loeffler --- rbx_reflector/src/cli/defaults_place.rs | 2 +- rbx_reflector/src/cli/generate.rs | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/rbx_reflector/src/cli/defaults_place.rs b/rbx_reflector/src/cli/defaults_place.rs index 7e0b7629b..b0ddbe8c5 100644 --- a/rbx_reflector/src/cli/defaults_place.rs +++ b/rbx_reflector/src/cli/defaults_place.rs @@ -25,7 +25,7 @@ static PLUGIN_SOURCE: &str = include_str!("../../plugin.lua"); #[derive(Debug, Parser)] pub struct DefaultsPlaceSubcommand { /// The path of an API dump that came from the dump command. - #[clap(long = "api_dump")] + #[clap(long)] pub api_dump: PathBuf, /// Where to output the place. The extension must be .rbxlx pub output: PathBuf, diff --git a/rbx_reflector/src/cli/generate.rs b/rbx_reflector/src/cli/generate.rs index 4dac57da9..82089cd2d 100644 --- a/rbx_reflector/src/cli/generate.rs +++ b/rbx_reflector/src/cli/generate.rs @@ -27,11 +27,14 @@ use super::{defaults_place::DefaultsPlaceSubcommand, dump::DumpSubcommand}; /// and write it to disk. #[derive(Debug, Parser)] pub struct GenerateSubcommand { - #[clap(long = "patches")] + #[clap(long)] pub patches: Option, /// Where to output the reflection database. The output format is inferred /// from the file path and supports JSON (.json) and MessagePack (.msgpack). pub output: Vec, + /// Whether to pretty-print the JSON output. This has no effect on MessagePack. + #[clap(long)] + pub no_pretty: bool, } impl GenerateSubcommand { @@ -74,8 +77,13 @@ impl GenerateSubcommand { match extension { Some("json") => { - serde_json::to_writer_pretty(&mut file, &database) - .context("Could not serialize reflection database as JSON")?; + let result = if self.no_pretty { + serde_json::to_writer(&mut file, &database) + } else { + serde_json::to_writer_pretty(&mut file, &database) + }; + + result.context("Could not serialize reflection database as JSON")?; } Some("msgpack") => { let buf = rmp_serde::to_vec(&database) From 55dd7e34339d73793d5bb399b236d34e1897c40a Mon Sep 17 00:00:00 2001 From: Micah Date: Thu, 14 Mar 2024 14:32:01 -0700 Subject: [PATCH 22/64] Add method for getting the superclasses of an Instance to rbx_reflection (#402) --- rbx_reflection/CHANGELOG.md | 3 +++ rbx_reflection/src/database.rs | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/rbx_reflection/CHANGELOG.md b/rbx_reflection/CHANGELOG.md index acc3c6c34..7221cf1d9 100644 --- a/rbx_reflection/CHANGELOG.md +++ b/rbx_reflection/CHANGELOG.md @@ -1,6 +1,9 @@ # rbx_reflection Changelog ## Unreleased Changes +* Add `superclasses` method to `ReflectionDatabase` to get a set of superclasses for a given class. ([#402]) + +[#402]: https://github.com/rojo-rbx/rbx-dom/pull/402 ## 4.5.0 (2024-01-16) * Update to rbx_types 1.8. diff --git a/rbx_reflection/src/database.rs b/rbx_reflection/src/database.rs index 0390ff4c6..7b5959446 100644 --- a/rbx_reflection/src/database.rs +++ b/rbx_reflection/src/database.rs @@ -39,6 +39,24 @@ impl<'a> ReflectionDatabase<'a> { enums: HashMap::new(), } } + + /// Returns a list of superclasses for the provided class name. This list + /// will start with the provided class and end with `Instance` if the class + /// exists. + pub fn superclasses(&self, class_name: &str) -> Option> { + // As of the time of writing (14 March 2024), the class with the most + // superclasses has 6 of them. + let mut list = Vec::with_capacity(6); + let mut current_class = self.classes.get(class_name); + current_class?; + + while let Some(class) = current_class { + list.push(class); + current_class = class.superclass.as_ref().and_then(|s| self.classes.get(s)); + } + + Some(list) + } } /// Describes a class of Instance, its properties, and its relation to other From c8ec8a9ac79c957c1628f93888fc6c5b0af119c5 Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler Date: Fri, 29 Mar 2024 13:45:22 -0700 Subject: [PATCH 23/64] Harden rbx_reflector against unknown data types (#403) --- rbx_reflection/src/class_tag.rs | 1 + rbx_reflection/src/property_tag.rs | 1 + rbx_reflector/src/cli/generate.rs | 70 ++++++++++++++++++++++-------- 3 files changed, 53 insertions(+), 19 deletions(-) diff --git a/rbx_reflection/src/class_tag.rs b/rbx_reflection/src/class_tag.rs index 82b8bd4f0..a986d45ed 100644 --- a/rbx_reflection/src/class_tag.rs +++ b/rbx_reflection/src/class_tag.rs @@ -18,6 +18,7 @@ pub enum ClassTag { } #[derive(Debug)] +#[allow(dead_code)] pub struct ClassTagFromStrError(String); impl FromStr for ClassTag { diff --git a/rbx_reflection/src/property_tag.rs b/rbx_reflection/src/property_tag.rs index 45ae0fbe6..bc4af4ac2 100644 --- a/rbx_reflection/src/property_tag.rs +++ b/rbx_reflection/src/property_tag.rs @@ -17,6 +17,7 @@ pub enum PropertyTag { } #[derive(Debug)] +#[allow(dead_code)] pub struct PropertyTagFromStrError(String); impl FromStr for PropertyTag { diff --git a/rbx_reflector/src/cli/generate.rs b/rbx_reflector/src/cli/generate.rs index 82089cd2d..8264936ae 100644 --- a/rbx_reflector/src/cli/generate.rs +++ b/rbx_reflector/src/cli/generate.rs @@ -106,6 +106,8 @@ impl GenerateSubcommand { } fn apply_dump(database: &mut ReflectionDatabase, dump: &Dump) -> anyhow::Result<()> { + let mut ignored_properties = Vec::new(); + for dump_class in &dump.classes { let superclass = if dump_class.superclass == "<<>>" { None @@ -174,10 +176,45 @@ fn apply_dump(database: &mut ReflectionDatabase, dump: &Dump) -> anyhow::Result< let value_type = match dump_property.value_type.category { ValueCategory::Enum => DataType::Enum(type_name.clone().into()), ValueCategory::Primitive | ValueCategory::DataType => { - match variant_type_from_str(type_name)? { - Some(variant_type) => DataType::Value(variant_type), - None => { - log::debug!("Skipping property {}.{} because it was of unsupported type '{type_name}'", dump_class.name, dump_property.name); + // variant_type_from_str returns None when passed a + // type name that does not have a corresponding + // VariantType. Exactly what we'd like to do about + // unimplemented data types like this depends on if the + // property serializes or not. + match (variant_type_from_str(type_name), &kind) { + // The happy path: the data type has a corresponding + // VariantType. We don't need to care about whether + // the data type is ever serialized, because it + // already has an implementation. + (Some(variant_type), _) => DataType::Value(variant_type), + + // The data type does not have a corresponding + // VariantType, and it serializes. This is a case + // where we should fail. It means that we may need + // to implement the data type. + // + // There is a special exception for QDir and QFont, + // because these types serialize under a few + // different properties, but the properties are not + // normally present in place or model files. They + // are usually only present in Roblox Studio + // settings files. They are not used otherwise and + // can safely be ignored. + (None, PropertyKind::Canonical { + serialization: PropertySerialization::Serializes + }) if type_name != "QDir" && type_name != "QFont" => bail!( + "Property {}.{} serializes, but its data type ({}) is unimplemented", + dump_class.name, dump_property.name, type_name + ), + + // The data type does not have a corresponding a + // VariantType, and it does not serialize (with QDir + // and QFont as exceptions, noted above). We can + // safely ignore this case because rbx-dom doesn't + // need to know about data types that are never + // serialized. + (None, _) => { + ignored_properties.push((&dump_class.name, &dump_property.name, type_name)); continue; } } @@ -204,6 +241,12 @@ fn apply_dump(database: &mut ReflectionDatabase, dump: &Dump) -> anyhow::Result< .insert(Cow::Owned(dump_class.name.clone()), class); } + log::debug!("Skipped the following properties because their data types are not implemented, and do not need to serialize:"); + + for (class_name, property_name, type_name) in ignored_properties { + log::debug!("{class_name}.{property_name}: {type_name}"); + } + for dump_enum in &dump.enums { let mut descriptor = EnumDescriptor::new(dump_enum.name.clone()); @@ -221,8 +264,8 @@ fn apply_dump(database: &mut ReflectionDatabase, dump: &Dump) -> anyhow::Result< Ok(()) } -fn variant_type_from_str(value: &str) -> anyhow::Result> { - Ok(Some(match value { +fn variant_type_from_str(type_name: &str) -> Option { + Some(match type_name { "Axes" => VariantType::Axes, "BinaryString" => VariantType::BinaryString, "BrickColor" => VariantType::BrickColor, @@ -261,17 +304,6 @@ fn variant_type_from_str(value: &str) -> anyhow::Result> { // ProtectedString is handled as the same as string "ProtectedString" => VariantType::String, - // TweenInfo is not supported by rbx_types yet - "TweenInfo" => return Ok(None), - - // While DateTime is possible to Serialize, the only use it has as a - // DataType is for the TextChatMessage class, which cannot be serialized - // (at least not saved to file as it is locked to nil parent) - "DateTime" => return Ok(None), - - // These types are not generally implemented right now. - "QDir" | "QFont" | "SystemAddress" | "CSGPropertyData" => return Ok(None), - - _ => bail!("Unknown type {}", value), - })) + _ => return None, + }) } From 1d9dbf5437a90c4549513775a1082a0287553357 Mon Sep 17 00:00:00 2001 From: Enrique <1enrique3@protonmail.com> Date: Mon, 8 Apr 2024 18:02:50 +0200 Subject: [PATCH 24/64] Correct Type ID of ColorSequence in the Attributes documentation (#404) --- docs/attributes.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/attributes.md b/docs/attributes.md index 363d85d1a..4fc4fe572 100644 --- a/docs/attributes.md +++ b/docs/attributes.md @@ -214,7 +214,8 @@ A `NumberSequenceKeypoint` is stored as a struct composed of three `f32`s: A NumberSequence with the keypoints `0, 0, 0`, `0.5, 1, 0`, and `1, 1, 0.5` would look like this: `03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3f 00 00 80 3f 00 00 00 3f 00 00 80 3f 00 00 80 3f` ### ColorSequence -**Type ID `0x17`** +**Type ID `0x19`** + The `ColorSequence` type is stored as a struct composed of a `u32` and an array of `ColorSequenceKeypoint`s: | Field Name | Format | Value | From acf3d74f050631befd789c2e17c29e8ee2f9e346 Mon Sep 17 00:00:00 2001 From: Micah Date: Tue, 9 Apr 2024 14:48:35 -0700 Subject: [PATCH 25/64] Add method for getting UniqueId for referent (#405) --- rbx_dom_weak/CHANGELOG.md | 10 ++++++++-- rbx_dom_weak/src/dom.rs | 10 ++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/rbx_dom_weak/CHANGELOG.md b/rbx_dom_weak/CHANGELOG.md index 140026901..81c2198c2 100644 --- a/rbx_dom_weak/CHANGELOG.md +++ b/rbx_dom_weak/CHANGELOG.md @@ -1,10 +1,16 @@ # rbx_dom_weak Changelog ## Unreleased Changes -* Added `InstanceBuilder::with_referent` that allows building instance with predefined `Ref` +* Added `InstanceBuilder::with_referent` that allows building instance with predefined `Ref` ([#400]) +* Added `WeakDom::get_unique_id` to get the UniqueId for a provided referent. ([#405]) + +[#400]: https://github.com/rojo-rbx/rbx-dom/pull/400 +[#405]: https://github.com/rojo-rbx/rbx-dom/pull/405 ## 2.7.0 (2024-01-16) -* Implemented `Default` for `WeakDom`, useful when using Serde or creating an empty `WeakDom` +* Implemented `Default` for `WeakDom`, useful when using Serde or creating an empty `WeakDom` ([#379]) + +[#379]: https://github.com/rojo-rbx/rbx-dom/pull/379 ## 2.6.0 (2023-10-03) * Added `WeakDom::clone_multiple_into_external` that allows cloning multiple subtrees all at once into a given `WeakDom`, useful for preserving `Ref` properties that point across cloned subtrees ([#364]) diff --git a/rbx_dom_weak/src/dom.rs b/rbx_dom_weak/src/dom.rs index 99c5b9dcd..a2b74f9de 100644 --- a/rbx_dom_weak/src/dom.rs +++ b/rbx_dom_weak/src/dom.rs @@ -65,6 +65,16 @@ impl WeakDom { self.instances.get_mut(&referent) } + /// Returns the [`UniqueId`] for the Instance with the provided referent, if it + /// exists. + pub fn get_unique_id(&self, referent: Ref) -> Option { + let inst = self.instances.get(&referent)?; + match inst.properties.get("UniqueId") { + Some(Variant::UniqueId(id)) => Some(*id), + _ => None, + } + } + /// Insert a new instance into the DOM with the given parent. The parent is allowed to /// be the none Ref. /// From 8ca9250fa5a5ad3756c89e1e111e1aabaf698b27 Mon Sep 17 00:00:00 2001 From: Dervex <78505208+DervexDev@users.noreply.github.com> Date: Tue, 23 Apr 2024 20:38:54 +0200 Subject: [PATCH 26/64] Improve `rbx_reflector` Roblox Studio automation and logging on macOS (#407) This PR brings automatic place saving to macOS, so it now works exactly the same as on Windows. It also pipes the `stdout` and `stderr` streams to `null` to get rid of extreme verbosity on macOS. Lastly, it adds a check to the injected plugin so it won't run outside of the defaults place, which is useful when other Roblox Studio instances are open and Roblox Studio's "Reload plugins on file changed" setting is enabled. --- rbx_reflector/plugin.lua | 4 ++++ rbx_reflector/src/cli/defaults_place.rs | 23 +++++++++++++++++++++-- rbx_reflector/src/cli/dump.rs | 4 +++- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/rbx_reflector/plugin.lua b/rbx_reflector/plugin.lua index 0e4313d2a..21d6b3ad7 100644 --- a/rbx_reflector/plugin.lua +++ b/rbx_reflector/plugin.lua @@ -1,3 +1,7 @@ +if game.Name ~= "defaults-place.rbxlx" then + return +end + local HttpService = game:GetService("HttpService") local SERVER_URL = "http://localhost:22073" diff --git a/rbx_reflector/src/cli/defaults_place.rs b/rbx_reflector/src/cli/defaults_place.rs index b0ddbe8c5..430dbef36 100644 --- a/rbx_reflector/src/cli/defaults_place.rs +++ b/rbx_reflector/src/cli/defaults_place.rs @@ -2,7 +2,7 @@ use std::{ fmt::{self, Write}, fs, path::PathBuf, - process::Command, + process::{Command, Stdio}, sync::mpsc, time::Duration, }; @@ -63,6 +63,8 @@ fn save_place_in_studio(path: &PathBuf) -> anyhow::Result { log::info!("Starting Roblox Studio..."); let mut studio_process = Command::new(studio_install.application_path()) + .stdout(Stdio::null()) + .stderr(Stdio::null()) .arg(path) .spawn()?; @@ -85,7 +87,24 @@ fn save_place_in_studio(path: &PathBuf) -> anyhow::Result { } } - #[cfg(not(target_os = "windows"))] + #[cfg(target_os = "macos")] + { + let process_id = studio_process.id(); + let script = format!( + r#" +tell application "System Events" + set frontmost of the first process whose unix id is {process_id} to true + keystroke "s" using command down +end tell +"# + ); + + Command::new("osascript") + .args(["-e", script.as_str()]) + .output()?; + } + + #[cfg(not(any(target_os = "windows", target_os = "macos")))] println!("Please save the opened place in Roblox Studio (ctrl+s)."); loop { diff --git a/rbx_reflector/src/cli/dump.rs b/rbx_reflector/src/cli/dump.rs index 106221cee..f174661c0 100644 --- a/rbx_reflector/src/cli/dump.rs +++ b/rbx_reflector/src/cli/dump.rs @@ -1,5 +1,5 @@ -use std::path::PathBuf; use std::process::Command; +use std::{path::PathBuf, process::Stdio}; use anyhow::{bail, Context}; use clap::Parser; @@ -22,6 +22,8 @@ impl DumpSubcommand { RobloxStudio::locate().context("Could not locate Roblox Studio install")?; Command::new(studio_install.application_path()) + .stdout(Stdio::null()) + .stderr(Stdio::null()) .arg("-FullAPI") .arg(&self.output) .status()?; From ddba2100cf61d87f3752d2fb94e46708b2dee28d Mon Sep 17 00:00:00 2001 From: Euphoriah <95628489+phoriah@users.noreply.github.com> Date: Tue, 30 Apr 2024 17:27:33 +0200 Subject: [PATCH 27/64] Changed WorldPivotData getter/setter to WorldPivot (#408) --- rbx_dom_lua/src/customProperties.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rbx_dom_lua/src/customProperties.lua b/rbx_dom_lua/src/customProperties.lua index f115f7c82..8653b1f8d 100644 --- a/rbx_dom_lua/src/customProperties.lua +++ b/rbx_dom_lua/src/customProperties.lua @@ -113,13 +113,14 @@ return { }, WorldPivotData = { read = function(instance) - return true, instance:GetPivot() + return true, instance.WorldPivot end, write = function(instance, _, value) if value == nil then return true, nil else - return true, instance:PivotTo(value) + instance.WorldPivot = value + return true end end, }, From ff994c34913e92e0c43241e8233975e2cb5aae5b Mon Sep 17 00:00:00 2001 From: Micah Date: Mon, 6 May 2024 15:24:12 -0700 Subject: [PATCH 28/64] Add `clear` and `drain` implementations to `Attributes` (#409) --- rbx_types/CHANGELOG.md | 2 ++ rbx_types/src/attributes/mod.rs | 57 +++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/rbx_types/CHANGELOG.md b/rbx_types/CHANGELOG.md index c4e5d85b6..aa139fe2a 100644 --- a/rbx_types/CHANGELOG.md +++ b/rbx_types/CHANGELOG.md @@ -3,8 +3,10 @@ ## Unreleased Changes * Implement `IntoIterator` for `&Attributes`. ([#386]) * Implement `Extend<(String, Variant)>` for `Attributes`. ([#386]) +* Implement `clear` and `drain` for `Attributes`. ([#409]) [#386]: https://github.com/rojo-rbx/rbx-dom/pull/386 +[#409]: https://github.com/rojo-rbx/rbx-dom/pull/409 ## 1.8.0 (2024-01-16) * Add `len` and `is_empty` methods to `Attributes` struct. ([#377]) diff --git a/rbx_types/src/attributes/mod.rs b/rbx_types/src/attributes/mod.rs index e858d0d05..6432f575a 100644 --- a/rbx_types/src/attributes/mod.rs +++ b/rbx_types/src/attributes/mod.rs @@ -74,6 +74,12 @@ impl Attributes { self.data.remove(key.borrow()) } + /// Removes all attributes. + #[inline] + pub fn clear(&mut self) { + self.data.clear() + } + /// Returns an iterator of borrowed attributes. #[inline] pub fn iter(&self) -> AttributesIter<'_> { @@ -82,6 +88,14 @@ impl Attributes { } } + /// Removes all elements from the `Attributes`, returning them as an + /// iterator. If the iterator is dropped before being fully consumed, + /// it drops the remaining removed elements. + #[inline] + pub fn drain(&mut self) -> AttributesDrain<'_> { + AttributesDrain { inner: self } + } + /// Returns the number of attributes. #[inline] pub fn len(&self) -> usize { @@ -159,6 +173,28 @@ impl<'a> Iterator for AttributesIter<'a> { } } +/// A draining iterator for `Attributes`. +/// This is created by [`Attributes::drain`]. +/// +/// If dropped before fully used, all remaining values will be dropped. +pub struct AttributesDrain<'a> { + inner: &'a mut Attributes, +} + +impl<'a> Iterator for AttributesDrain<'a> { + type Item = (String, Variant); + + fn next(&mut self) -> Option { + self.inner.data.pop_first() + } +} + +impl<'a> Drop for AttributesDrain<'a> { + fn drop(&mut self) { + self.inner.clear() + } +} + #[cfg(test)] mod tests { use super::*; @@ -231,4 +267,25 @@ mod tests { attributes.insert("key".to_owned(), Variant::Bool(true)); assert_eq!(attributes.remove("key"), Some(Variant::Bool(true))); } + + #[test] + fn attribute_drain() { + let mut attributes = Attributes::new(); + attributes.extend([ + ("string".into(), "value".into()), + ("float64".into(), 10.0_f64.into()), + ("bool".into(), true.into()), + ]); + assert!(!attributes.is_empty()); + + let mut map = BTreeMap::new(); + for (key, value) in attributes.drain() { + map.insert(key, value); + } + + assert_eq!(map.get("string"), Some(&Variant::String("value".into()))); + assert_eq!(map.get("float64"), Some(&Variant::Float64(10.0))); + assert_eq!(map.get("bool"), Some(&Variant::Bool(true))); + assert!(attributes.is_empty()); + } } From 65cac04e582958747ccb6a2f6be57bee44eccb7a Mon Sep 17 00:00:00 2001 From: Dervex <78505208+DervexDev@users.noreply.github.com> Date: Tue, 7 May 2024 00:39:46 +0200 Subject: [PATCH 29/64] Add option to serialize human-readable MessagePack in `rbx_reflector` (#410) --- rbx_reflector/src/cli/generate.rs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/rbx_reflector/src/cli/generate.rs b/rbx_reflector/src/cli/generate.rs index 8264936ae..20e9af7fb 100644 --- a/rbx_reflector/src/cli/generate.rs +++ b/rbx_reflector/src/cli/generate.rs @@ -13,6 +13,8 @@ use rbx_reflection::{ PropertySerialization, PropertyTag, ReflectionDatabase, Scriptability, }; use rbx_types::VariantType; +use rmp_serde::Serializer; +use serde::Serialize; use tempfile::tempdir; use crate::{ @@ -35,6 +37,9 @@ pub struct GenerateSubcommand { /// Whether to pretty-print the JSON output. This has no effect on MessagePack. #[clap(long)] pub no_pretty: bool, + /// Whether to serialize MessagePack in a human readable format. This has no effect on JSON. + #[clap(long)] + pub human_readable: bool, } impl GenerateSubcommand { @@ -86,8 +91,21 @@ impl GenerateSubcommand { result.context("Could not serialize reflection database as JSON")?; } Some("msgpack") => { - let buf = rmp_serde::to_vec(&database) - .context("Could not serialize reflection database as MessagePack")?; + let buf = if self.human_readable { + let mut slice = Vec::with_capacity(128); + let mut serializer = Serializer::new(&mut slice) + .with_human_readable() + .with_struct_map(); + + database.serialize(&mut serializer).context( + "Could not serialize reflection database as human readable MessagePack", + )?; + + slice + } else { + rmp_serde::to_vec(&database) + .context("Could not serialize reflection database as MessagePack")? + }; file.write_all(&buf)?; } From c5bb1188aa3a3e41454c7eb6d3cf233a554bf9a7 Mon Sep 17 00:00:00 2001 From: Micah Date: Mon, 13 May 2024 08:24:58 -0700 Subject: [PATCH 30/64] Perform revamp of rbx_util to make it easier to add thing to (#412) --- rbx_util/CHANGELOG.md | 10 +++ rbx_util/Cargo.toml | 12 ++- rbx_util/src/convert.rs | 64 ++++++++++++++ rbx_util/src/main.rs | 169 +++++++++++++++++++----------------- rbx_util/src/view_binary.rs | 37 ++++++++ 5 files changed, 209 insertions(+), 83 deletions(-) create mode 100644 rbx_util/CHANGELOG.md create mode 100644 rbx_util/src/convert.rs create mode 100644 rbx_util/src/view_binary.rs diff --git a/rbx_util/CHANGELOG.md b/rbx_util/CHANGELOG.md new file mode 100644 index 000000000..9bcc59b68 --- /dev/null +++ b/rbx_util/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +## Version 0.2.0 + +- Refactor commands into seperate files +- Add `verbosity` and `color` global flags to control logging and terminal color + +# Version 0.1.0 + +- Initial implementation \ No newline at end of file diff --git a/rbx_util/Cargo.toml b/rbx_util/Cargo.toml index 51a1d97f4..ad96e8cc0 100644 --- a/rbx_util/Cargo.toml +++ b/rbx_util/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rbx_util" -version = "0.1.0" +version = "0.2.0" description = "Utilities for working with Roblox model and place files" license = "MIT" documentation = "https://docs.rs/rbx_util" @@ -20,9 +20,13 @@ path = "src/main.rs" name = "rbx-util" [dependencies] -anyhow = "1.0.57" -fs-err = "2.7.0" rbx_binary = { path = "../rbx_binary", features = ["unstable_text_format"] } rbx_xml = { path = "../rbx_xml" } + serde_yaml = "0.8.24" -structopt = "0.3.26" +clap = { version = "4.5.4", features = ["derive"] } + +fs-err = "2.7.0" +anyhow = "1.0.57" +env_logger = "0.11.3" +log = "0.4.21" diff --git a/rbx_util/src/convert.rs b/rbx_util/src/convert.rs new file mode 100644 index 000000000..bbdbb43db --- /dev/null +++ b/rbx_util/src/convert.rs @@ -0,0 +1,64 @@ +use std::{ + io::{BufReader, BufWriter}, + path::PathBuf, +}; + +use anyhow::Context; +use clap::Parser; +use fs_err::File; + +use crate::ModelKind; + +#[derive(Debug, Parser)] +pub struct ConvertCommand { + /// A path to the file to convert. + input_path: PathBuf, + /// A path to the desired output for the conversion. The output format is + /// deteremined by the file extension of this path. + output_path: PathBuf, +} + +impl ConvertCommand { + pub fn run(&self) -> anyhow::Result<()> { + let input_kind = ModelKind::from_path(&self.input_path)?; + let output_kind = ModelKind::from_path(&self.output_path)?; + + let input_file = BufReader::new(File::open(&self.input_path)?); + + log::debug!("Reading file into WeakDom"); + let dom = match input_kind { + ModelKind::Xml => { + let options = rbx_xml::DecodeOptions::new() + .property_behavior(rbx_xml::DecodePropertyBehavior::ReadUnknown); + + rbx_xml::from_reader(input_file, options) + .with_context(|| format!("Failed to read {}", self.input_path.display()))? + } + + ModelKind::Binary => rbx_binary::from_reader(input_file) + .with_context(|| format!("Failed to read {}", self.input_path.display()))?, + }; + + let root_ids = dom.root().children(); + + let output_file = BufWriter::new(File::create(&self.output_path)?); + + log::debug!("Writing into new file at {}", self.output_path.display()); + match output_kind { + ModelKind::Xml => { + let options = rbx_xml::EncodeOptions::new() + .property_behavior(rbx_xml::EncodePropertyBehavior::WriteUnknown); + + rbx_xml::to_writer(output_file, &dom, root_ids, options) + .with_context(|| format!("Failed to write {}", self.output_path.display()))?; + } + + ModelKind::Binary => { + rbx_binary::to_writer(output_file, &dom, root_ids) + .with_context(|| format!("Failed to write {}", self.output_path.display()))?; + } + } + + Ok(()) + } +} diff --git a/rbx_util/src/main.rs b/rbx_util/src/main.rs index 1cc6405e1..0410527e0 100644 --- a/rbx_util/src/main.rs +++ b/rbx_util/src/main.rs @@ -1,119 +1,130 @@ -use std::io::{self, BufReader, BufWriter}; -use std::path::{Path, PathBuf}; +mod convert; +mod view_binary; + use std::process; +use std::{path::Path, str::FromStr}; + +use clap::Parser; +use convert::ConvertCommand; -use anyhow::{anyhow, bail, Context}; -use fs_err::File; -use structopt::StructOpt; +use view_binary::ViewBinaryCommand; -#[derive(Debug, StructOpt)] +#[derive(Debug, Parser)] +#[clap(name = "rbx_util", about)] struct Options { - #[structopt(subcommand)] + #[clap(flatten)] + global: GlobalOptions, + #[clap(subcommand)] subcommand: Subcommand, } -#[derive(Debug, StructOpt)] +impl Options { + fn run(self) -> anyhow::Result<()> { + match self.subcommand { + Subcommand::ViewBinary(command) => command.run(), + Subcommand::Convert(command) => command.run(), + } + } +} + +#[derive(Debug, Parser)] enum Subcommand { - /// Convert a model or place file in one format to another. - Convert { input: PathBuf, output: PathBuf }, + /// Displays a binary file in a text format. + ViewBinary(ViewBinaryCommand), + /// Convert between the XML and binary formats for places and models. + Convert(ConvertCommand), +} - /// View a binary file as an undefined text representation. - ViewBinary { input: PathBuf }, +#[derive(Debug, Parser, Clone, Copy)] +struct GlobalOptions { + /// Sets verbosity level. Can be specified multiple times. + #[clap(long, short, global(true), action = clap::ArgAction::Count)] + verbosity: u8, + /// Set color behavior. Valid values are auto, always, and never. + #[clap(long, global(true), default_value = "auto")] + color: ColorChoice, } #[derive(Debug, Clone, Copy, PartialEq, Eq)] -enum ModelKind { +pub enum ModelKind { Binary, Xml, } impl ModelKind { - fn from_path(path: &Path) -> anyhow::Result { + pub fn from_path(path: &Path) -> anyhow::Result { + log::trace!("Resolving type of file for path {}", path.display()); match path.extension().and_then(|ext| ext.to_str()) { Some("rbxm") | Some("rbxl") => Ok(ModelKind::Binary), Some("rbxmx") | Some("rbxlx") => Ok(ModelKind::Xml), - _ => Err(anyhow!( - "not a Roblox model or place file: {}", - path.display() - )), + _ => anyhow::bail!("not a Roblox model or place file: {}", path.display()), } } } -fn run(options: Options) -> anyhow::Result<()> { - match options.subcommand { - Subcommand::Convert { input, output } => convert(&input, &output)?, - Subcommand::ViewBinary { input } => view_binary(&input)?, - } - - Ok(()) -} - -fn convert(input_path: &Path, output_path: &Path) -> anyhow::Result<()> { - let input_kind = ModelKind::from_path(input_path)?; - let output_kind = ModelKind::from_path(output_path)?; - - let input_file = BufReader::new(File::open(input_path)?); - - let dom = match input_kind { - ModelKind::Xml => { - let options = rbx_xml::DecodeOptions::new() - .property_behavior(rbx_xml::DecodePropertyBehavior::ReadUnknown); - - rbx_xml::from_reader(input_file, options) - .with_context(|| format!("Failed to read {}", input_path.display()))? - } +fn main() { + let options = Options::parse(); - ModelKind::Binary => rbx_binary::from_reader(input_file) - .with_context(|| format!("Failed to read {}", input_path.display()))?, + let log_filter = match options.global.verbosity { + 0 => "info", + 1 => "info,rbx_binary=debug,rbx_xml=debug,rbx_util=debug", + 2 => "debug,rbx_binary=trace,rbx_xml=trace,rbx_util=trace", + _ => "trace", }; - let root_ids = dom.root().children(); + let log_env = env_logger::Env::default().default_filter_or(log_filter); + env_logger::Builder::from_env(log_env) + .format_module_path(false) + .format_timestamp(None) + .format_indent(Some(8)) + .write_style(options.global.color.into()) + .init(); - let output_file = BufWriter::new(File::create(output_path)?); - - match output_kind { - ModelKind::Xml => { - let options = rbx_xml::EncodeOptions::new() - .property_behavior(rbx_xml::EncodePropertyBehavior::WriteUnknown); + if let Err(err) = options.run() { + eprintln!("{:?}", err); + process::exit(1); + } +} - rbx_xml::to_writer(output_file, &dom, root_ids, options) - .with_context(|| format!("Failed to write {}", output_path.display()))?; - } +#[derive(Debug, Clone, Copy)] +pub enum ColorChoice { + Auto, + Always, + Never, +} - ModelKind::Binary => { - rbx_binary::to_writer(output_file, &dom, root_ids) - .with_context(|| format!("Failed to write {}", output_path.display()))?; +impl FromStr for ColorChoice { + type Err = anyhow::Error; + + fn from_str(source: &str) -> Result { + match source { + "auto" => Ok(ColorChoice::Auto), + "always" => Ok(ColorChoice::Always), + "never" => Ok(ColorChoice::Never), + _ => anyhow::bail!( + "Invalid color choice '{source}'. Valid values are: auto, always, never" + ), } } - - Ok(()) } -fn view_binary(input_path: &Path) -> anyhow::Result<()> { - let input_kind = ModelKind::from_path(input_path)?; - - if input_kind != ModelKind::Binary { - bail!("not a binary model or place file: {}", input_path.display()); +impl From for clap::ColorChoice { + fn from(value: ColorChoice) -> Self { + match value { + ColorChoice::Auto => clap::ColorChoice::Auto, + ColorChoice::Always => clap::ColorChoice::Always, + ColorChoice::Never => clap::ColorChoice::Never, + } } - - let input_file = BufReader::new(File::open(input_path)?); - - let model = rbx_binary::text_format::DecodedModel::from_reader(input_file); - - let stdout = io::stdout(); - let output = BufWriter::new(stdout.lock()); - serde_yaml::to_writer(output, &model)?; - - Ok(()) } -fn main() { - let options = Options::from_args(); - - if let Err(err) = run(options) { - eprintln!("{:?}", err); - process::exit(1); +impl From for env_logger::WriteStyle { + fn from(value: ColorChoice) -> Self { + match value { + ColorChoice::Auto => env_logger::WriteStyle::Auto, + ColorChoice::Always => env_logger::WriteStyle::Always, + ColorChoice::Never => env_logger::WriteStyle::Never, + } } } diff --git a/rbx_util/src/view_binary.rs b/rbx_util/src/view_binary.rs new file mode 100644 index 000000000..0e96c0eaa --- /dev/null +++ b/rbx_util/src/view_binary.rs @@ -0,0 +1,37 @@ +use std::{ + io::{self, BufReader, BufWriter}, + path::PathBuf, +}; + +use clap::Parser; +use fs_err::File; + +use crate::ModelKind; + +#[derive(Debug, Parser)] +pub struct ViewBinaryCommand { + /// The file to emit the contents of. + input: PathBuf, +} + +impl ViewBinaryCommand { + pub fn run(&self) -> anyhow::Result<()> { + let input_kind = ModelKind::from_path(&self.input)?; + + if input_kind != ModelKind::Binary { + anyhow::bail!("not a binary model or place file: {}", self.input.display()); + } + + let input_file = BufReader::new(File::open(&self.input)?); + + log::debug!("Decoding file into text format"); + let model = rbx_binary::text_format::DecodedModel::from_reader(input_file); + + log::debug!("Writing to stdout"); + let stdout = io::stdout(); + let output = BufWriter::new(stdout.lock()); + serde_yaml::to_writer(output, &model)?; + + Ok(()) + } +} From 0fa0341bf47ae6209651e2843d85e27e33a2b755 Mon Sep 17 00:00:00 2001 From: Micah Date: Mon, 13 May 2024 10:36:55 -0700 Subject: [PATCH 31/64] In `PRNT` chunks, write links in depth-first order (#411) --- rbx_binary/CHANGELOG.md | 4 + rbx_binary/src/serializer/state.rs | 3 +- ...ts__serializer__default_shared_string.snap | 4 +- ...zer__logical_properties_basepart_size.snap | 4 +- ...ests__serializer__migrated_properties.snap | 16 +- ...binary__tests__serializer__part_color.snap | 9 +- ..._tests__serializer__partially_present.snap | 5 +- ...bx_binary__tests__util__axes__encoded.snap | 16 +- ...__tests__util__baseplate-566__encoded.snap | 149 +++++++++--------- ...s__util__cframe-case-mixture__encoded.snap | 4 +- ...__util__cframe-special-cases__encoded.snap | 48 +++--- ...x_binary__tests__util__faces__encoded.snap | 129 +++++++-------- ...gui-inset-and-font-migration__encoded.snap | 16 +- ...s-with-security-capabilities__encoded.snap | 4 +- ...tionalcoordinateframe-models__encoded.snap | 4 +- ...y__tests__util__package-link__encoded.snap | 4 +- ...y__tests__util__ref-adjacent__encoded.snap | 5 +- ...nary__tests__util__ref-child__encoded.snap | 5 +- ...ary__tests__util__ref-parent__encoded.snap | 5 +- ...y__tests__util__sharedstring__encoded.snap | 20 +-- ...ry__tests__util__three-beams__encoded.snap | 5 +- ...util__three-brickcolorvalues__encoded.snap | 4 +- ...ts__util__three-color3values__encoded.snap | 5 +- ...tests__util__three-intvalues__encoded.snap | 4 +- ...__util__three-nested-folders__encoded.snap | 8 +- ...tests__util__three-screengui__encoded.snap | 5 +- ...sts__util__three-uigradients__encoded.snap | 5 +- ...s__util__three-uigridlayouts__encoded.snap | 5 +- ...s__util__three-unique-frames__encoded.snap | 5 +- ...ts__util__three-unique-parts__encoded.snap | 5 +- ...s__util__three-vector3values__encoded.snap | 5 +- ...ests__util__two-cframevalues__encoded.snap | 5 +- ...ests__util__two-imagebuttons__encoded.snap | 5 +- ...__util__two-particleemitters__encoded.snap | 5 +- ..._tests__util__two-ray-values__encoded.snap | 5 +- ...ts__util__two-terrainregions__encoded.snap | 4 +- ..._binary__tests__util__unions__encoded.snap | 5 +- ..._tests__util__weldconstraint__encoded.snap | 13 +- 38 files changed, 286 insertions(+), 266 deletions(-) diff --git a/rbx_binary/CHANGELOG.md b/rbx_binary/CHANGELOG.md index f0c7de05e..15e76ec51 100644 --- a/rbx_binary/CHANGELOG.md +++ b/rbx_binary/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +* Within `PRNT` chunks, parent-child links are now generated depth-first so that parents always come after their children in the chunk. ([#411]) + +[#411]: https://github.com/rojo-rbx/rbx-dom/pull/411 + ## 0.7.4 (2024-01-16) * Add the ability to specify a `ReflectionDatabase` to use for serializing and deserializing. This takes the form of `Deserializer::reflection_database` and `Serializer::reflection_database`. ([#375]) diff --git a/rbx_binary/src/serializer/state.rs b/rbx_binary/src/serializer/state.rs index 5a70dd63a..2ccd79100 100644 --- a/rbx_binary/src/serializer/state.rs +++ b/rbx_binary/src/serializer/state.rs @@ -1249,9 +1249,10 @@ impl<'dom, 'db, W: Write> SerializerState<'dom, 'db, W> { let object_referents = self .relevant_instances .iter() + .rev() .map(|id| self.id_to_referent[id]); - let parent_referents = self.relevant_instances.iter().map(|id| { + let parent_referents = self.relevant_instances.iter().rev().map(|id| { let instance = self.dom.get_by_ref(*id).unwrap(); // If there's no parent set OR our parent is not one of the diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__default_shared_string.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__default_shared_string.snap index 8f514fd5f..37723b5ab 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__default_shared_string.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__default_shared_string.snap @@ -36,9 +36,9 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - 1 - -1 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__logical_properties_basepart_size.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__logical_properties_basepart_size.snap index 9b0d523af..5b8b3b56a 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__logical_properties_basepart_size.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__logical_properties_basepart_size.snap @@ -38,11 +38,11 @@ chunks: - Prnt: version: 0 links: - - - 0 + - - 2 - -1 - - 1 - -1 - - - 2 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__migrated_properties.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__migrated_properties.snap index 48bcb0830..e8978e625 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__migrated_properties.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__migrated_properties.snap @@ -98,21 +98,21 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - - 1 + - - 7 - 0 - - - 2 + - - 6 - 0 - - - 3 + - - 5 - 0 - - 4 - 0 - - - 5 + - - 3 - 0 - - - 6 + - - 2 - 0 - - - 7 + - - 1 - 0 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__part_color.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__part_color.snap index 78250b979..7c8539a90 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__part_color.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__part_color.snap @@ -43,12 +43,13 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - - 1 + - - 3 - -1 - - 2 - -1 - - - 3 + - - 1 + - -1 + - - 0 - -1 - End + diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__partially_present.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__partially_present.snap index 1dd6b5459..8821bafed 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__partially_present.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__partially_present.snap @@ -29,8 +29,9 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - 1 - -1 + - - 0 + - -1 - End + diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__axes__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__axes__encoded.snap index e4d003751..1cb1d5496 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__axes__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__axes__encoded.snap @@ -146,21 +146,21 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - - 1 + - - 7 - -1 - - - 2 + - - 6 - -1 - - - 3 + - - 5 - -1 - - 4 - -1 - - - 5 + - - 3 - -1 - - - 6 + - - 2 - -1 - - - 7 + - - 1 + - -1 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap index 5fd67359b..ca051798d 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 60 @@ -4267,125 +4268,125 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - - 1 + - - 59 + - 49 + - - 58 + - 47 + - - 57 + - 39 + - - 56 + - 39 + - - 55 + - 39 + - - 54 + - 39 + - - 53 + - 39 + - - 52 + - 21 + - - 51 + - 13 + - - 50 + - 13 + - - 49 + - 0 + - - 48 + - 0 + - - 47 + - 0 + - - 46 + - 0 + - - 45 - -1 - - - 2 + - - 44 - -1 - - - 3 + - - 43 - -1 - - - 4 + - - 42 - -1 - - - 5 + - - 41 - -1 - - - 6 + - - 40 - -1 - - - 7 + - - 39 - -1 - - - 8 + - - 38 - -1 - - - 9 + - - 37 - -1 - - - 10 + - - 36 - -1 - - - 11 + - - 35 - -1 - - - 12 + - - 34 - -1 - - - 13 + - - 33 - -1 - - - 14 + - - 32 - -1 - - - 15 + - - 31 - -1 - - - 16 + - - 30 - -1 - - - 17 + - - 29 - -1 - - - 18 + - - 28 - -1 - - - 19 + - - 27 - -1 - - - 20 + - - 26 - -1 - - - 21 + - - 25 - -1 - - - 22 + - - 24 - -1 - - 23 - -1 - - - 24 + - - 22 - -1 - - - 25 + - - 21 - -1 - - - 26 + - - 20 - -1 - - - 27 + - - 19 - -1 - - - 28 + - - 18 - -1 - - - 29 + - - 17 - -1 - - - 30 + - - 16 - -1 - - - 31 + - - 15 - -1 - - - 32 + - - 14 - -1 - - - 33 + - - 13 - -1 - - - 34 + - - 12 - -1 - - - 35 + - - 11 - -1 - - - 36 + - - 10 - -1 - - - 37 + - - 9 - -1 - - - 38 + - - 8 - -1 - - - 39 + - - 7 - -1 - - - 40 + - - 6 - -1 - - - 41 + - - 5 - -1 - - - 42 + - - 4 - -1 - - - 43 + - - 3 - -1 - - - 44 + - - 2 - -1 - - - 45 + - - 1 + - -1 + - - 0 - -1 - - - 46 - - 0 - - - 47 - - 0 - - - 48 - - 0 - - - 49 - - 0 - - - 50 - - 13 - - - 51 - - 13 - - - 52 - - 21 - - - 53 - - 39 - - - 54 - - 39 - - - 55 - - 39 - - - 56 - - 39 - - - 57 - - 39 - - - 58 - - 47 - - - 59 - - 49 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-case-mixture__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-case-mixture__encoded.snap index 20082502e..13db3a20f 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-case-mixture__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-case-mixture__encoded.snap @@ -76,9 +76,9 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - 1 - -1 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-special-cases__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-special-cases__encoded.snap index af12fc4c7..6f76e9157 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-special-cases__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-special-cases__encoded.snap @@ -494,53 +494,53 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - - 1 + - - 23 - -1 - - - 2 + - - 22 - -1 - - - 3 + - - 21 - -1 - - - 4 + - - 20 - -1 - - - 5 + - - 19 - -1 - - - 6 + - - 18 - -1 - - - 7 + - - 17 - -1 - - - 8 + - - 16 - -1 - - - 9 + - - 15 - -1 - - - 10 + - - 14 - -1 - - - 11 + - - 13 - -1 - - 12 - -1 - - - 13 + - - 11 - -1 - - - 14 + - - 10 - -1 - - - 15 + - - 9 - -1 - - - 16 + - - 8 - -1 - - - 17 + - - 7 - -1 - - - 18 + - - 6 - -1 - - - 19 + - - 5 - -1 - - - 20 + - - 4 - -1 - - - 21 + - - 3 - -1 - - - 22 + - - 2 - -1 - - - 23 + - - 1 + - -1 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__faces__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__faces__encoded.snap index 37675dd82..7fac28170 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__faces__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__faces__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -955,133 +956,133 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - - 1 + - - 63 - -1 - - - 2 + - - 62 - -1 - - - 3 + - - 61 - -1 - - - 4 + - - 60 - -1 - - - 5 + - - 59 - -1 - - - 6 + - - 58 - -1 - - - 7 + - - 57 - -1 - - - 8 + - - 56 - -1 - - - 9 + - - 55 - -1 - - - 10 + - - 54 - -1 - - - 11 + - - 53 - -1 - - - 12 + - - 52 - -1 - - - 13 + - - 51 - -1 - - - 14 + - - 50 - -1 - - - 15 + - - 49 - -1 - - - 16 + - - 48 - -1 - - - 17 + - - 47 - -1 - - - 18 + - - 46 - -1 - - - 19 + - - 45 - -1 - - - 20 + - - 44 - -1 - - - 21 + - - 43 - -1 - - - 22 + - - 42 - -1 - - - 23 + - - 41 - -1 - - - 24 + - - 40 - -1 - - - 25 + - - 39 - -1 - - - 26 + - - 38 - -1 - - - 27 + - - 37 - -1 - - - 28 + - - 36 - -1 - - - 29 + - - 35 - -1 - - - 30 + - - 34 - -1 - - - 31 + - - 33 - -1 - - 32 - -1 - - - 33 + - - 31 - -1 - - - 34 + - - 30 - -1 - - - 35 + - - 29 - -1 - - - 36 + - - 28 - -1 - - - 37 + - - 27 - -1 - - - 38 + - - 26 - -1 - - - 39 + - - 25 - -1 - - - 40 + - - 24 - -1 - - - 41 + - - 23 - -1 - - - 42 + - - 22 - -1 - - - 43 + - - 21 - -1 - - - 44 + - - 20 - -1 - - - 45 + - - 19 - -1 - - - 46 + - - 18 - -1 - - - 47 + - - 17 - -1 - - - 48 + - - 16 - -1 - - - 49 + - - 15 - -1 - - - 50 + - - 14 - -1 - - - 51 + - - 13 - -1 - - - 52 + - - 12 - -1 - - - 53 + - - 11 - -1 - - - 54 + - - 10 - -1 - - - 55 + - - 9 - -1 - - - 56 + - - 8 - -1 - - - 57 + - - 7 - -1 - - - 58 + - - 6 - -1 - - - 59 + - - 5 - -1 - - - 60 + - - 4 - -1 - - - 61 + - - 3 - -1 - - - 62 + - - 2 - -1 - - - 63 + - - 1 + - -1 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__gui-inset-and-font-migration__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__gui-inset-and-font-migration__encoded.snap index 613c17350..532824f63 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__gui-inset-and-font-migration__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__gui-inset-and-font-migration__encoded.snap @@ -1205,17 +1205,17 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - - 1 - - 0 - - - 2 - - 0 - - - 3 + - - 5 - 2 - - 4 - 2 - - - 5 + - - 3 - 2 + - - 2 + - 0 + - - 1 + - 0 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__number-values-with-security-capabilities__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__number-values-with-security-capabilities__encoded.snap index 935e5a2f6..3b7283265 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__number-values-with-security-capabilities__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__number-values-with-security-capabilities__encoded.snap @@ -64,9 +64,9 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - 1 - -1 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__optionalcoordinateframe-models__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__optionalcoordinateframe-models__encoded.snap index 72461adb2..c2787756d 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__optionalcoordinateframe-models__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__optionalcoordinateframe-models__encoded.snap @@ -227,11 +227,11 @@ chunks: - Prnt: version: 0 links: - - - 0 + - - 2 - -1 - - 1 - -1 - - - 2 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__package-link__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__package-link__encoded.snap index b9c4ae230..2189dd39c 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__package-link__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__package-link__encoded.snap @@ -148,9 +148,9 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - 1 - 0 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-adjacent__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-adjacent__encoded.snap index 9165beb78..c5cc08b62 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-adjacent__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-adjacent__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 2 @@ -63,9 +62,9 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - 1 - -1 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-child__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-child__encoded.snap index 5466f8095..391b49041 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-child__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-child__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 2 @@ -63,9 +62,9 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - 1 - 0 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-parent__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-parent__encoded.snap index 07855466a..db3f55e9a 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-parent__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-parent__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 2 @@ -63,9 +62,9 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - 1 - 0 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__sharedstring__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__sharedstring__encoded.snap index 440582375..dd14638a1 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__sharedstring__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__sharedstring__encoded.snap @@ -1229,23 +1229,23 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - - 1 - - 0 - - - 2 + - - 8 - 0 - - - 3 + - - 7 - 0 - - - 4 + - - 6 - 0 - - 5 - 0 - - - 6 + - - 4 - 0 - - - 7 + - - 3 - 0 - - - 8 + - - 2 + - 0 + - - 1 - 0 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-beams__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-beams__encoded.snap index a886a9c22..b13c5f971 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-beams__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-beams__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -250,11 +251,11 @@ chunks: - Prnt: version: 0 links: - - - 0 + - - 2 - -1 - - 1 - -1 - - - 2 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-brickcolorvalues__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-brickcolorvalues__encoded.snap index 0da66bd00..cb6434cb5 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-brickcolorvalues__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-brickcolorvalues__encoded.snap @@ -49,11 +49,11 @@ chunks: - Prnt: version: 0 links: - - - 0 + - - 2 - -1 - - 1 - -1 - - - 2 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-color3values__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-color3values__encoded.snap index cab9e3d21..f4a9b8a41 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-color3values__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-color3values__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -54,11 +55,11 @@ chunks: - Prnt: version: 0 links: - - - 0 + - - 2 - -1 - - 1 - -1 - - - 2 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-intvalues__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-intvalues__encoded.snap index d9a5b42a9..306edf6fa 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-intvalues__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-intvalues__encoded.snap @@ -49,11 +49,11 @@ chunks: - Prnt: version: 0 links: - - - 0 + - - 2 - -1 - - 1 - -1 - - - 2 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-nested-folders__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-nested-folders__encoded.snap index 56df2c711..a93d1b0e2 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-nested-folders__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-nested-folders__encoded.snap @@ -41,11 +41,11 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - - 1 - - 0 - - 2 - 1 + - - 1 + - 0 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-screengui__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-screengui__encoded.snap index 35699dd9e..5abd25233 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-screengui__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-screengui__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -96,11 +97,11 @@ chunks: - Prnt: version: 0 links: - - - 0 + - - 2 - -1 - - 1 - -1 - - - 2 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigradients__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigradients__encoded.snap index f9af74d95..21e23e59d 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigradients__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigradients__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -151,11 +152,11 @@ chunks: - Prnt: version: 0 links: - - - 0 + - - 2 - -1 - - 1 - -1 - - - 2 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigridlayouts__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigridlayouts__encoded.snap index 1d7a9d05d..cd633c3c6 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigridlayouts__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigridlayouts__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -122,11 +123,11 @@ chunks: - Prnt: version: 0 links: - - - 0 + - - 2 - -1 - - 1 - -1 - - - 2 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-frames__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-frames__encoded.snap index 237c2e811..5d0fe3e82 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-frames__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-frames__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -273,11 +274,11 @@ chunks: - Prnt: version: 0 links: - - - 0 + - - 2 - -1 - - 1 - -1 - - - 2 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-parts__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-parts__encoded.snap index 7c3cd8c67..743f68086 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-parts__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-parts__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -455,11 +456,11 @@ chunks: - Prnt: version: 0 links: - - - 0 + - - 2 - -1 - - 1 - -1 - - - 2 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-vector3values__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-vector3values__encoded.snap index b43b94459..1a450eb92 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-vector3values__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-vector3values__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -62,11 +63,11 @@ chunks: - Prnt: version: 0 links: - - - 0 + - - 2 - -1 - - 1 - -1 - - - 2 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-cframevalues__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-cframevalues__encoded.snap index 4c5beec61..c8c87b87b 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-cframevalues__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-cframevalues__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -76,9 +77,9 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - 1 - -1 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-imagebuttons__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-imagebuttons__encoded.snap index f836bc528..c9a3e3604 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-imagebuttons__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-imagebuttons__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -365,9 +366,9 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - 1 - -1 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-particleemitters__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-particleemitters__encoded.snap index 5cab72c6c..2a6ad461a 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-particleemitters__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-particleemitters__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -252,9 +253,9 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - 1 - -1 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-ray-values__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-ray-values__encoded.snap index d5d950b07..80802a187 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-ray-values__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-ray-values__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -64,9 +65,9 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - 1 - -1 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-terrainregions__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-terrainregions__encoded.snap index 6caeabb0f..9e7fefd5c 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-terrainregions__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-terrainregions__encoded.snap @@ -73,9 +73,9 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - 1 - -1 + - - 0 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__unions__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__unions__encoded.snap index a7c00b84d..24235e6dd 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__unions__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__unions__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -534,11 +535,11 @@ chunks: - Prnt: version: 0 links: - - - 0 + - - 2 - -1 - - 1 - -1 - - - 2 + - - 0 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__weldconstraint__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__weldconstraint__encoded.snap index 108a545d6..05e536d98 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__weldconstraint__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__weldconstraint__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 3 @@ -523,13 +524,13 @@ chunks: - Prnt: version: 0 links: - - - 0 - - -1 - - - 1 - - 0 - - - 2 - - 0 - - 3 - 1 + - - 2 + - 0 + - - 1 + - 0 + - - 0 + - -1 - End From 875c0d79b8fc5f5d16a1250b8690b406aa73d859 Mon Sep 17 00:00:00 2001 From: Micah Date: Tue, 4 Jun 2024 09:18:52 -0700 Subject: [PATCH 32/64] Implement Serde for SharedString (#414) --- rbx_types/CHANGELOG.md | 2 + rbx_types/src/shared_string.rs | 79 ++++++++++++++++++++++++++-------- rbx_types/src/variant.rs | 4 -- 3 files changed, 63 insertions(+), 22 deletions(-) diff --git a/rbx_types/CHANGELOG.md b/rbx_types/CHANGELOG.md index aa139fe2a..4ac3d09d1 100644 --- a/rbx_types/CHANGELOG.md +++ b/rbx_types/CHANGELOG.md @@ -4,9 +4,11 @@ * Implement `IntoIterator` for `&Attributes`. ([#386]) * Implement `Extend<(String, Variant)>` for `Attributes`. ([#386]) * Implement `clear` and `drain` for `Attributes`. ([#409]) +* Implement `Serialize` and `Deserialize` for `SharedString` ([#414]) [#386]: https://github.com/rojo-rbx/rbx-dom/pull/386 [#409]: https://github.com/rojo-rbx/rbx-dom/pull/409 +[#414]: https://github.com/rojo-rbx/rbx-dom/pull/414 ## 1.8.0 (2024-01-16) * Add `len` and `is_empty` methods to `Attributes` struct. ([#377]) diff --git a/rbx_types/src/shared_string.rs b/rbx_types/src/shared_string.rs index 57e34d145..c449bbee1 100644 --- a/rbx_types/src/shared_string.rs +++ b/rbx_types/src/shared_string.rs @@ -148,29 +148,35 @@ impl fmt::Display for SharedStringHash { } #[cfg(feature = "serde")] -pub(crate) mod variant_serialization { +pub(crate) mod serde_impl { use super::*; - use serde::de::Error as _; - use serde::ser::Error as _; - use serde::{Deserializer, Serializer}; + use serde::{de::Error as _, Deserialize, Deserializer, Serialize, Serializer}; - pub fn serialize(_value: &SharedString, _serializer: S) -> Result - where - S: Serializer, - { - Err(S::Error::custom( - "SharedString cannot be serialized as part of a Variant", - )) + impl Serialize for SharedString { + fn serialize(&self, serializer: S) -> Result { + if serializer.is_human_readable() { + let encoded = base64::encode(self.data()); + + serializer.serialize_str(&encoded) + } else { + self.data().serialize(serializer) + } + } } - pub fn deserialize<'de, D>(_deserializer: D) -> Result - where - D: Deserializer<'de>, - { - Err(D::Error::custom( - "SharedString cannot be deserialized as part of a Variant", - )) + impl<'de> Deserialize<'de> for SharedString { + fn deserialize>(deserializer: D) -> Result { + if deserializer.is_human_readable() { + let encoded = <&str>::deserialize(deserializer)?; + let buffer = base64::decode(encoded).map_err(D::Error::custom)?; + + Ok(SharedString::new(buffer)) + } else { + let buffer = >::deserialize(deserializer)?; + Ok(SharedString::new(buffer)) + } + } } } @@ -199,4 +205,41 @@ mod test { let _y = SharedString::new(vec![5, 6, 7, 1]); } } + + #[cfg(feature = "serde")] + #[test] + fn serde_human() { + let sstr = SharedString::new(b"a test string".to_vec()); + let serialized = serde_json::to_string(&sstr).unwrap(); + + assert_eq!(serialized, r#""YSB0ZXN0IHN0cmluZw==""#); + + let deserialized: SharedString = serde_json::from_str(&serialized).unwrap(); + + assert_eq!(sstr, deserialized); + } + + #[cfg(feature = "serde")] + #[test] + fn serde_non_human() { + use std::{io::Write, mem}; + + let sstr = SharedString::new(b"a test string".to_vec()); + let data = sstr.data(); + let serialized = bincode::serialize(&sstr).unwrap(); + + // Write the length of the string as little-endian u64 followed by the + // bytes of the string. This is analoglous to how bincode does. + let mut expected = Vec::with_capacity(mem::size_of::() + data.len()); + expected + .write_all(&(data.len() as u64).to_le_bytes()) + .unwrap(); + expected.write_all(data).unwrap(); + + assert_eq!(serialized, expected); + + let deserialized: SharedString = bincode::deserialize(&serialized).unwrap(); + + assert_eq!(sstr, deserialized); + } } diff --git a/rbx_types/src/variant.rs b/rbx_types/src/variant.rs index 9dd3155be..597c8747c 100644 --- a/rbx_types/src/variant.rs +++ b/rbx_types/src/variant.rs @@ -114,10 +114,6 @@ make_variant! { Ref(Ref), Region3(Region3), Region3int16(Region3int16), - #[cfg_attr( - feature = "serde", - serde(with = "crate::shared_string::variant_serialization"), - )] SharedString(SharedString), String(String), UDim(UDim), From 62dddd40fe612ad79e882aed64639c45831c8f1b Mon Sep 17 00:00:00 2001 From: Micah Date: Wed, 5 Jun 2024 17:40:55 -0700 Subject: [PATCH 33/64] Update reflection database to 628 (#415) --- rbx_dom_lua/src/database.json | 2247 +++++++++++++++++----- rbx_reflection_database/CHANGELOG.md | 1 + rbx_reflection_database/database.msgpack | Bin 454869 -> 464439 bytes 3 files changed, 1768 insertions(+), 480 deletions(-) diff --git a/rbx_dom_lua/src/database.json b/rbx_dom_lua/src/database.json index 34be08b46..222114083 100644 --- a/rbx_dom_lua/src/database.json +++ b/rbx_dom_lua/src/database.json @@ -1,9 +1,9 @@ { "Version": [ 0, - 612, + 628, 0, - 6120532 + 6280391 ], "Classes": { "Accessory": { @@ -1220,7 +1220,8 @@ "AnalyticsService": { "Name": "AnalyticsService", "Tags": [ - "Deprecated", + "NotCreatable", + "NotReplicated", "Service" ], "Superclass": "Instance", @@ -1241,26 +1242,7 @@ } } }, - "DefaultProperties": { - "ApiKey": { - "String": "" - }, - "Attributes": { - "Attributes": {} - }, - "Capabilities": { - "SecurityCapabilities": 0 - }, - "DefinesCapabilities": { - "Bool": false - }, - "SourceAssetId": { - "Int64": -1 - }, - "Tags": { - "Tags": [] - } - } + "DefaultProperties": {} }, "AngularVelocity": { "Name": "AngularVelocity", @@ -2367,6 +2349,16 @@ } } }, + "AnnotationsService": { + "Name": "AnnotationsService", + "Tags": [ + "NotCreatable", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "AppStorageService": { "Name": "AppStorageService", "Tags": [ @@ -3151,6 +3143,19 @@ ], "Superclass": "Instance", "Properties": { + "Bypass": { + "Name": "Bypass", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Depth": { "Name": "Depth", "Scriptability": "ReadWrite", @@ -3195,6 +3200,9 @@ "Attributes": { "Attributes": {} }, + "Bypass": { + "Bool": false + }, "Capabilities": { "SecurityCapabilities": 0 }, @@ -3238,6 +3246,19 @@ } } }, + "Bypass": { + "Name": "Bypass", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "MakeupGain": { "Name": "MakeupGain", "Scriptability": "ReadWrite", @@ -3298,6 +3319,9 @@ "Attributes": { "Attributes": {} }, + "Bypass": { + "Bool": false + }, "Capabilities": { "SecurityCapabilities": 0 }, @@ -3489,6 +3513,19 @@ ], "Superclass": "Instance", "Properties": { + "Bypass": { + "Name": "Bypass", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Level": { "Name": "Level", "Scriptability": "ReadWrite", @@ -3507,6 +3544,9 @@ "Attributes": { "Attributes": {} }, + "Bypass": { + "Bool": false + }, "Capabilities": { "SecurityCapabilities": 0 }, @@ -3531,6 +3571,19 @@ ], "Superclass": "Instance", "Properties": { + "Bypass": { + "Name": "Bypass", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "DelayTime": { "Name": "DelayTime", "Scriptability": "ReadWrite", @@ -3588,6 +3641,9 @@ "Attributes": { "Attributes": {} }, + "Bypass": { + "Bool": false + }, "Capabilities": { "SecurityCapabilities": 0 }, @@ -3633,6 +3689,19 @@ "Serialization": "Serializes" } } + }, + "DistanceAttenuation": { + "Name": "DistanceAttenuation", + "Scriptability": "None", + "DataType": { + "Value": "BinaryString" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } } }, "DefaultProperties": { @@ -3648,6 +3717,9 @@ "DefinesCapabilities": { "Bool": false }, + "DistanceAttenuation": { + "BinaryString": "AA==" + }, "SourceAssetId": { "Int64": -1 }, @@ -3663,6 +3735,19 @@ ], "Superclass": "Instance", "Properties": { + "Bypass": { + "Name": "Bypass", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "HighGain": { "Name": "HighGain", "Scriptability": "ReadWrite", @@ -3720,6 +3805,9 @@ "Attributes": { "Attributes": {} }, + "Bypass": { + "Bool": false + }, "Capabilities": { "SecurityCapabilities": 0 }, @@ -3756,6 +3844,19 @@ ], "Superclass": "Instance", "Properties": { + "Bypass": { + "Name": "Bypass", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Volume": { "Name": "Volume", "Scriptability": "ReadWrite", @@ -3774,6 +3875,9 @@ "Attributes": { "Attributes": {} }, + "Bypass": { + "Bool": false + }, "Capabilities": { "SecurityCapabilities": 0 }, @@ -3798,6 +3902,19 @@ ], "Superclass": "Instance", "Properties": { + "Bypass": { + "Name": "Bypass", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Depth": { "Name": "Depth", "Scriptability": "ReadWrite", @@ -3842,6 +3959,9 @@ "Attributes": { "Attributes": {} }, + "Bypass": { + "Bool": false + }, "Capabilities": { "SecurityCapabilities": 0 }, @@ -3924,6 +4044,19 @@ ], "Superclass": "Instance", "Properties": { + "Bypass": { + "Name": "Bypass", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Pitch": { "Name": "Pitch", "Scriptability": "ReadWrite", @@ -3942,6 +4075,9 @@ "Attributes": { "Attributes": {} }, + "Bypass": { + "Bool": false + }, "Capabilities": { "SecurityCapabilities": 0 }, @@ -3966,6 +4102,22 @@ ], "Superclass": "Instance", "Properties": { + "Asset": { + "Name": "Asset", + "Scriptability": "None", + "DataType": { + "Value": "Content" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "AssetId": { "Name": "AssetId", "Scriptability": "ReadWrite", @@ -4155,6 +4307,19 @@ ], "Superclass": "Instance", "Properties": { + "Bypass": { + "Name": "Bypass", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "DecayRatio": { "Name": "DecayRatio", "Scriptability": "ReadWrite", @@ -4316,6 +4481,9 @@ "Attributes": { "Attributes": {} }, + "Bypass": { + "Bool": false + }, "Capabilities": { "SecurityCapabilities": 0 }, @@ -4496,6 +4664,52 @@ }, "DefaultProperties": {} }, + "Avatar2DGenerationJob": { + "Name": "Avatar2DGenerationJob", + "Tags": [ + "NotCreatable" + ], + "Superclass": "AvatarGenerationJob", + "Properties": { + "Result": { + "Name": "Result", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": {} + }, + "Avatar3DGenerationJob": { + "Name": "Avatar3DGenerationJob", + "Tags": [ + "NotCreatable" + ], + "Superclass": "AvatarGenerationJob", + "Properties": { + "Result": { + "Name": "Result", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": {} + }, "AvatarChatService": { "Name": "AvatarChatService", "Tags": [ @@ -4577,6 +4791,77 @@ "Properties": {}, "DefaultProperties": {} }, + "AvatarGenerationJob": { + "Name": "AvatarGenerationJob", + "Tags": [ + "NotCreatable" + ], + "Superclass": "Instance", + "Properties": { + "Error": { + "Name": "Error", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "AvatarGenerationError" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "ErrorMessage": { + "Name": "ErrorMessage", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Progress": { + "Name": "Progress", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Status": { + "Name": "Status", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "AvatarGenerationJobStatus" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": {} + }, + "AvatarGenerationSession": { + "Name": "AvatarGenerationSession", + "Tags": [ + "NotCreatable" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "AvatarImportService": { "Name": "AvatarImportService", "Tags": [ @@ -4822,6 +5107,16 @@ } } }, + "BanHistoryPages": { + "Name": "BanHistoryPages", + "Tags": [ + "NotCreatable", + "NotReplicated" + ], + "Superclass": "Pages", + "Properties": {}, + "DefaultProperties": {} + }, "BaseImportData": { "Name": "BaseImportData", "Tags": [ @@ -6126,7 +6421,9 @@ "DataType": { "Value": "Content" }, - "Tags": [], + "Tags": [ + "Deprecated" + ], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -6444,6 +6741,22 @@ } } }, + "LocalTransparencyModifier": { + "Name": "LocalTransparencyModifier", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "Segments": { "Name": "Segments", "Scriptability": "ReadWrite", @@ -9075,7 +9388,7 @@ "family": "rbxasset://fonts/families/GothamSSm.json", "weight": "Medium", "style": "Normal", - "cachedFaceId": "rbxasset://fonts/GothamSSm-Medium.otf" + "cachedFaceId": "rbxasset://fonts/Montserrat-Medium.ttf" } }, "LocalPlayerStudsOffset": { @@ -9879,7 +10192,6 @@ "Name": "CaptureService", "Tags": [ "NotCreatable", - "NotReplicated", "Service" ], "Superclass": "Instance", @@ -10413,7 +10725,7 @@ "family": "rbxasset://fonts/families/GothamSSm.json", "weight": "Medium", "style": "Normal", - "cachedFaceId": "rbxasset://fonts/GothamSSm-Medium.otf" + "cachedFaceId": "rbxasset://fonts/Montserrat-Medium.ttf" } }, "KeyboardKeyCode": { @@ -10708,7 +11020,7 @@ "family": "rbxasset://fonts/families/GothamSSm.json", "weight": "Medium", "style": "Normal", - "cachedFaceId": "rbxasset://fonts/GothamSSm-Medium.otf" + "cachedFaceId": "rbxasset://fonts/Montserrat-Medium.ttf" } }, "HeightScale": { @@ -11198,6 +11510,22 @@ "DataType": { "Value": "Int32" }, + "Tags": [ + "Deprecated", + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "CollaboratorColor3": { + "Name": "CollaboratorColor3", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Color3" + }, "Tags": [ "Hidden" ], @@ -11636,6 +11964,16 @@ "Properties": {}, "DefaultProperties": {} }, + "CommerceService": { + "Name": "CommerceService", + "Tags": [ + "NotCreatable", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "CompressorSoundEffect": { "Name": "CompressorSoundEffect", "Tags": [], @@ -16240,7 +16578,7 @@ "Orientation": { "Vector3": [ -0.0, - 179.99998, + 180.0, 90.0 ] }, @@ -16514,6 +16852,22 @@ } } }, + "PartSnapEnabled": { + "Name": "PartSnapEnabled", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "PivotSnapToGeometry": { "Name": "PivotSnapToGeometry", "Scriptability": "None", @@ -16683,9 +17037,7 @@ }, "EditableImage": { "Name": "EditableImage", - "Tags": [ - "NotReplicated" - ], + "Tags": [], "Superclass": "Instance", "Properties": { "ImageData": { @@ -16743,6 +17095,19 @@ "Serialization": "DoesNotSerialize" } } + }, + "SkinningEnabled": { + "Name": "SkinningEnabled", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } } }, "DefaultProperties": {} @@ -16896,6 +17261,17 @@ "Properties": {}, "DefaultProperties": {} }, + "ExampleService": { + "Name": "ExampleService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "ExperienceAuthService": { "Name": "ExperienceAuthService", "Tags": [ @@ -17092,6 +17468,22 @@ } } }, + "LocalTransparencyModifier": { + "Name": "LocalTransparencyModifier", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "Position": { "Name": "Position", "Scriptability": "ReadWrite", @@ -18348,6 +18740,22 @@ } } }, + "LocalTransparencyModifier": { + "Name": "LocalTransparencyModifier", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "SecondaryColor": { "Name": "SecondaryColor", "Scriptability": "ReadWrite", @@ -19753,6 +20161,16 @@ }, "DefaultProperties": {} }, + "GenericChallengeService": { + "Name": "GenericChallengeService", + "Tags": [ + "NotCreatable", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "GenericSettings": { "Name": "GenericSettings", "Tags": [ @@ -22738,7 +23156,7 @@ "Properties": { "HttpEnabled": { "Name": "HttpEnabled", - "Scriptability": "None", + "Scriptability": "Read", "DataType": { "Value": "Bool" }, @@ -24042,6 +24460,21 @@ } } }, + "ResetIncludesBodyParts": { + "Name": "ResetIncludesBodyParts", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "RightArm": { "Name": "RightArm", "Scriptability": "ReadWrite", @@ -25797,7 +26230,6 @@ "Value": "SecurityCapabilities" }, "Tags": [ - "Hidden", "NotScriptable" ], "Kind": { @@ -25934,6 +26366,22 @@ } } }, + "Sandboxed": { + "Name": "Sandboxed", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "NotReplicated", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "SourceAssetId": { "Name": "SourceAssetId", "Scriptability": "None", @@ -25941,8 +26389,7 @@ "Value": "Int64" }, "Tags": [ - "Hidden", - "NotReplicated" + "Hidden" ], "Kind": { "Canonical": { @@ -25973,7 +26420,6 @@ "Value": "UniqueId" }, "Tags": [ - "Hidden", "NotReplicated", "NotScriptable" ], @@ -26533,6 +26979,30 @@ "Transparency": { "Float32": 0.0 }, + "UnscaledCofm": { + "Vector3": [ + null, + null, + null + ] + }, + "UnscaledVolInertiaDiags": { + "Vector3": [ + null, + null, + null + ] + }, + "UnscaledVolInertiaOffDiags": { + "Vector3": [ + null, + null, + null + ] + }, + "UnscaledVolume": { + "Float32": null + }, "UsePartColor": { "Bool": false }, @@ -27842,6 +28312,17 @@ } } }, + "LinkingService": { + "Name": "LinkingService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "LiveScriptingService": { "Name": "LiveScriptingService", "Tags": [ @@ -28419,21 +28900,6 @@ } } }, - "CurrentEditor": { - "Name": "CurrentEditor", - "Scriptability": "None", - "DataType": { - "Value": "Ref" - }, - "Tags": [ - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "DoesNotSerialize" - } - } - }, "HasAssociatedDrafts": { "Name": "HasAssociatedDrafts", "Scriptability": "None", @@ -28483,21 +28949,6 @@ } } }, - "RuntimeSource": { - "Name": "RuntimeSource", - "Scriptability": "ReadWrite", - "DataType": { - "Value": "String" - }, - "Tags": [ - "NotReplicated" - ], - "Kind": { - "Canonical": { - "Serialization": "DoesNotSerialize" - } - } - }, "SandboxedSource": { "Name": "SandboxedSource", "Scriptability": "None", @@ -28530,23 +28981,6 @@ "Serialization": "DoesNotSerialize" } } - }, - "SyncingEditorText": { - "Name": "SyncingEditorText", - "Scriptability": "None", - "DataType": { - "Value": "Bool" - }, - "Tags": [ - "Hidden", - "NotReplicated", - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "DoesNotSerialize" - } - } } }, "DefaultProperties": {} @@ -30779,6 +31213,30 @@ "Transparency": { "Float32": 0.0 }, + "UnscaledCofm": { + "Vector3": [ + null, + null, + null + ] + }, + "UnscaledVolInertiaDiags": { + "Vector3": [ + null, + null, + null + ] + }, + "UnscaledVolInertiaOffDiags": { + "Vector3": [ + null, + null, + null + ] + }, + "UnscaledVolume": { + "Float32": null + }, "Velocity": { "Vector3": [ 0.0, @@ -31441,7 +31899,9 @@ "DataType": { "Value": "Content" }, - "Tags": [], + "Tags": [ + "Deprecated" + ], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -32283,6 +32743,30 @@ "Transparency": { "Float32": 0.1 }, + "UnscaledCofm": { + "Vector3": [ + null, + null, + null + ] + }, + "UnscaledVolInertiaDiags": { + "Vector3": [ + null, + null, + null + ] + }, + "UnscaledVolInertiaOffDiags": { + "Vector3": [ + null, + null, + null + ] + }, + "UnscaledVolume": { + "Float32": null + }, "UsePartColor": { "Bool": false }, @@ -32592,6 +33076,42 @@ } } }, + "Noise": { + "Name": "Noise", + "Tags": [ + "NotReplicated" + ], + "Superclass": "Instance", + "Properties": { + "NoiseType": { + "Name": "NoiseType", + "Scriptability": "None", + "DataType": { + "Enum": "NoiseType" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Seed": { + "Name": "Seed", + "Scriptability": "None", + "DataType": { + "Value": "Int32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": {} + }, "NonReplicatedCSGDictionaryService": { "Name": "NonReplicatedCSGDictionaryService", "Tags": [ @@ -33825,6 +34345,23 @@ } } }, + "ManifoldMesh": { + "Name": "ManifoldMesh", + "Scriptability": "None", + "DataType": { + "Value": "SharedString" + }, + "Tags": [ + "Hidden", + "NotReplicated", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "MeshData": { "Name": "MeshData", "Scriptability": "None", @@ -33903,6 +34440,23 @@ } } }, + "SerializedOperationGraph": { + "Name": "SerializedOperationGraph", + "Scriptability": "None", + "DataType": { + "Value": "SharedString" + }, + "Tags": [ + "Hidden", + "NotReplicated", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "SmoothingAngle": { "Name": "SmoothingAngle", "Scriptability": "ReadWrite", @@ -34186,6 +34740,30 @@ "Transparency": { "Float32": 0.0 }, + "UnscaledCofm": { + "Vector3": [ + null, + null, + null + ] + }, + "UnscaledVolInertiaDiags": { + "Vector3": [ + null, + null, + null + ] + }, + "UnscaledVolInertiaOffDiags": { + "Vector3": [ + null, + null, + null + ] + }, + "UnscaledVolume": { + "Float32": null + }, "UsePartColor": { "Bool": false }, @@ -34448,6 +35026,22 @@ } } }, + "LocalTransparencyModifier": { + "Name": "LocalTransparencyModifier", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "LockedToPart": { "Name": "LockedToPart", "Scriptability": "ReadWrite", @@ -35000,29 +35594,13 @@ "Path2D": { "Name": "Path2D", "Tags": [ - "NotReplicated" + "NotBrowsable" ], "Superclass": "GuiBase", "Properties": { - "AbsoluteSize": { - "Name": "AbsoluteSize", - "Scriptability": "None", - "DataType": { - "Value": "Vector2" - }, - "Tags": [ - "NotReplicated", - "ReadOnly" - ], - "Kind": { - "Canonical": { - "Serialization": "DoesNotSerialize" - } - } - }, - "Color": { - "Name": "Color", - "Scriptability": "None", + "Color3": { + "Name": "Color3", + "Scriptability": "ReadWrite", "DataType": { "Value": "Color3" }, @@ -35033,13 +35611,16 @@ } } }, - "Position": { - "Name": "Position", + "PropertiesSerialize": { + "Name": "PropertiesSerialize", "Scriptability": "None", "DataType": { - "Value": "UDim2" + "Value": "BinaryString" }, - "Tags": [], + "Tags": [ + "Hidden", + "NotScriptable" + ], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -35063,7 +35644,7 @@ }, "Thickness": { "Name": "Thickness", - "Scriptability": "None", + "Scriptability": "ReadWrite", "DataType": { "Value": "Float32" }, @@ -35089,7 +35670,7 @@ }, "Visible": { "Name": "Visible", - "Scriptability": "None", + "Scriptability": "ReadWrite", "DataType": { "Value": "Bool" }, @@ -35102,7 +35683,7 @@ }, "ZIndex": { "Name": "ZIndex", - "Scriptability": "None", + "Scriptability": "ReadWrite", "DataType": { "Value": "Int32" }, @@ -35114,7 +35695,45 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "Color3": { + "Color3": [ + 0.0, + 0.0, + 0.0 + ] + }, + "DefinesCapabilities": { + "Bool": false + }, + "PropertiesSerialize": { + "BinaryString": "" + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + }, + "Thickness": { + "Float32": 1.0 + }, + "Transparency": { + "Float32": 0.0 + }, + "Visible": { + "Bool": true + }, + "ZIndex": { + "Int32": 1 + } + } }, "PathfindingLink": { "Name": "PathfindingLink", @@ -36009,6 +36628,19 @@ } } }, + "ShowInstanceNamesForDrawnForcesAndTorques": { + "Name": "ShowInstanceNamesForDrawnForcesAndTorques", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "SolverConvergenceMetricType": { "Name": "SolverConvergenceMetricType", "Scriptability": "None", @@ -37172,6 +37804,22 @@ } } }, + "PseudolocalizationEnabled": { + "Name": "PseudolocalizationEnabled", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "SerializedEmulatedPolicyInfo": { "Name": "SerializedEmulatedPolicyInfo", "Scriptability": "None", @@ -37211,6 +37859,9 @@ "PlayerEmulationEnabled": { "Bool": false }, + "PseudolocalizationEnabled": { + "Bool": false + }, "SerializedEmulatedPolicyInfo": { "BinaryString": "" }, @@ -37275,6 +37926,16 @@ }, "DefaultProperties": {} }, + "PlayerHydrationService": { + "Name": "PlayerHydrationService", + "Tags": [ + "NotCreatable", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "PlayerMouse": { "Name": "PlayerMouse", "Tags": [ @@ -40091,6 +40752,19 @@ } } }, + "QualityAuto": { + "Name": "QualityAuto", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "QualityLevel": { "Name": "QualityLevel", "Scriptability": "ReadWrite", @@ -40104,6 +40778,19 @@ } } }, + "RenderingTestFrameCount": { + "Name": "RenderingTestFrameCount", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Int32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "ShouldSkip": { "Name": "ShouldSkip", "Scriptability": "ReadWrite", @@ -40198,9 +40885,15 @@ "PerfTest": { "Bool": false }, + "QualityAuto": { + "Bool": false + }, "QualityLevel": { "Int32": 21 }, + "RenderingTestFrameCount": { + "Int32": 120 + }, "ShouldSkip": { "Bool": false }, @@ -40473,6 +41166,74 @@ } } }, + "RobloxEditableMesh": { + "Name": "RobloxEditableMesh", + "Tags": [], + "Superclass": "EditableMesh", + "Properties": { + "MeshDataSerialize": { + "Name": "MeshDataSerialize", + "Scriptability": "None", + "DataType": { + "Value": "BinaryString" + }, + "Tags": [ + "Hidden", + "NotReplicated", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "MeshDataSerialize": { + "BinaryString": "" + }, + "Offset": { + "Vector3": [ + 0.0, + 0.0, + 0.0 + ] + }, + "Scale": { + "Vector3": [ + 1.0, + 1.0, + 1.0 + ] + }, + "SkinningEnabled": { + "Bool": false + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + }, + "VertexColor": { + "Vector3": [ + 1.0, + 1.0, + 1.0 + ] + } + } + }, "RobloxPluginGuiService": { "Name": "RobloxPluginGuiService", "Tags": [ @@ -41009,6 +41770,19 @@ } } }, + "KeepZeroInfluenceBones": { + "Name": "KeepZeroInfluenceBones", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "MergeMeshes": { "Name": "MergeMeshes", "Scriptability": "ReadWrite", @@ -41714,6 +42488,21 @@ "Serialization": "DoesNotSerialize" } } + }, + "RunState": { + "Name": "RunState", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "RunState" + }, + "Tags": [ + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } } }, "DefaultProperties": {} @@ -41763,7 +42552,21 @@ "Service" ], "Superclass": "Instance", - "Properties": {}, + "Properties": { + "IsCaptureModeForReport": { + "Name": "IsCaptureModeForReport", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, "DefaultProperties": {} }, "ScreenGui": { @@ -42314,6 +43117,16 @@ "Properties": {}, "DefaultProperties": {} }, + "ScriptProfilerService": { + "Name": "ScriptProfilerService", + "Tags": [ + "NotCreatable", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "ScriptRegistrationService": { "Name": "ScriptRegistrationService", "Tags": [ @@ -44792,6 +45605,22 @@ } } }, + "LocalTransparencyModifier": { + "Name": "LocalTransparencyModifier", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "Opacity": { "Name": "Opacity", "Scriptability": "ReadWrite", @@ -45865,6 +46694,22 @@ } } }, + "LocalTransparencyModifier": { + "Name": "LocalTransparencyModifier", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "SparkleColor": { "Name": "SparkleColor", "Scriptability": "ReadWrite", @@ -47274,21 +48119,6 @@ } } }, - "DeathStyle": { - "Name": "DeathStyle", - "Scriptability": "ReadWrite", - "DataType": { - "Enum": "DeathStyle" - }, - "Tags": [ - "NotBrowsable" - ], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, "DevCameraOcclusionMode": { "Name": "DevCameraOcclusionMode", "Scriptability": "ReadWrite", @@ -47794,9 +48624,6 @@ "CharacterWalkSpeed": { "Float32": 16.0 }, - "DeathStyle": { - "Enum": 0 - }, "DefinesCapabilities": { "Bool": false }, @@ -48446,19 +49273,6 @@ } } }, - "Automatically commit locked scripts when you save or publish to Roblox": { - "Name": "Automatically commit locked scripts when you save or publish to Roblox", - "Scriptability": "None", - "DataType": { - "Value": "Bool" - }, - "Tags": [], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, "Automatically trigger AI Code Completion": { "Name": "Automatically trigger AI Code Completion", "Scriptability": "None", @@ -49076,6 +49890,19 @@ } } }, + "EnableCodeAssist": { + "Name": "EnableCodeAssist", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "EnableIndentationRulers": { "Name": "EnableIndentationRulers", "Scriptability": "None", @@ -49379,6 +50206,32 @@ } } }, + "LoadAllBuiltinPluginsInRunModes": { + "Name": "LoadAllBuiltinPluginsInRunModes", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "LoadUserPluginsInRunModes": { + "Name": "LoadUserPluginsInRunModes", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "LuaDebuggerEnabled": { "Name": "LuaDebuggerEnabled", "Scriptability": "ReadWrite", @@ -49941,19 +50794,6 @@ } } }, - "Server Audio Behavior": { - "Name": "Server Audio Behavior", - "Scriptability": "ReadWrite", - "DataType": { - "Enum": "ServerAudioBehavior" - }, - "Tags": [], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, "Set Pivot of Imported Parts": { "Name": "Set Pivot of Imported Parts", "Scriptability": "ReadWrite", @@ -50825,6 +51665,19 @@ } } }, + "Secrets": { + "Name": "Secrets", + "Scriptability": "None", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "ShowConstraintDetails": { "Name": "ShowConstraintDetails", "Scriptability": "Read", @@ -51213,6 +52066,19 @@ } } }, + "Color": { + "Name": "Color", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Color3" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "ColorMap": { "Name": "ColorMap", "Scriptability": "ReadWrite", @@ -51289,6 +52155,13 @@ "Capabilities": { "SecurityCapabilities": 0 }, + "Color": { + "Color3": [ + 1.0, + 1.0, + 1.0 + ] + }, "ColorMap": { "Content": "" }, @@ -52470,7 +53343,6 @@ "Value": "Float32" }, "Tags": [ - "NotBrowsable", "NotScriptable" ], "Kind": { @@ -54165,7 +55037,7 @@ "family": "rbxasset://fonts/families/LegacyArial.json", "weight": "Regular", "style": "Normal", - "cachedFaceId": "rbxasset://fonts/arial.ttf" + "cachedFaceId": "rbxasset://fonts/Arimo-Regular.ttf" } }, "Interactable": { @@ -54787,7 +55659,7 @@ "family": "rbxasset://fonts/families/LegacyArial.json", "weight": "Regular", "style": "Normal", - "cachedFaceId": "rbxasset://fonts/arial.ttf" + "cachedFaceId": "rbxasset://fonts/Arimo-Regular.ttf" } }, "Interactable": { @@ -55878,7 +56750,7 @@ "family": "rbxasset://fonts/families/LegacyArial.json", "weight": "Regular", "style": "Normal", - "cachedFaceId": "rbxasset://fonts/arial.ttf" + "cachedFaceId": "rbxasset://fonts/Arimo-Regular.ttf" } }, "Interactable": { @@ -56184,12 +57056,11 @@ } } }, - "TextureGenerationMeshHandler": { - "Name": "TextureGenerationMeshHandler", + "TextureGenerationPartGroup": { + "Name": "TextureGenerationPartGroup", "Tags": [ "NotCreatable", - "NotReplicated", - "Service" + "NotReplicated" ], "Superclass": "Instance", "Properties": {}, @@ -56206,6 +57077,16 @@ "Properties": {}, "DefaultProperties": {} }, + "TextureGenerationUnwrappingRequest": { + "Name": "TextureGenerationUnwrappingRequest", + "Tags": [ + "NotCreatable", + "NotReplicated" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "ThirdPartyUserService": { "Name": "ThirdPartyUserService", "Tags": [ @@ -57129,6 +58010,22 @@ } } }, + "LocalTransparencyModifier": { + "Name": "LocalTransparencyModifier", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "MaxLength": { "Name": "MaxLength", "Scriptability": "ReadWrite", @@ -57531,6 +58428,66 @@ "Serialization": "Serializes" } } + }, + "UnscaledCofm": { + "Name": "UnscaledCofm", + "Scriptability": "None", + "DataType": { + "Value": "Vector3" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "UnscaledVolInertiaDiags": { + "Name": "UnscaledVolInertiaDiags", + "Scriptability": "None", + "DataType": { + "Value": "Vector3" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "UnscaledVolInertiaOffDiags": { + "Name": "UnscaledVolInertiaOffDiags", + "Scriptability": "None", + "DataType": { + "Value": "Vector3" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "UnscaledVolume": { + "Name": "UnscaledVolume", + "Scriptability": "None", + "DataType": { + "Value": "Float32" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } } }, "DefaultProperties": {} @@ -59629,6 +60586,30 @@ "Transparency": { "Float32": 0.0 }, + "UnscaledCofm": { + "Vector3": [ + null, + null, + null + ] + }, + "UnscaledVolInertiaDiags": { + "Vector3": [ + null, + null, + null + ] + }, + "UnscaledVolInertiaOffDiags": { + "Vector3": [ + null, + null, + null + ] + }, + "UnscaledVolume": { + "Float32": null + }, "UsePartColor": { "Bool": false }, @@ -60094,6 +61075,22 @@ } } }, + "HapticStrength": { + "Name": "HapticStrength", + "Scriptability": "None", + "DataType": { + "Value": "Float32" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "HasEverUsedVR": { "Name": "HasEverUsedVR", "Scriptability": "None", @@ -60154,6 +61151,19 @@ } } }, + "MasterVolumeStudio": { + "Name": "MasterVolumeStudio", + "Scriptability": "None", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "MicroProfilerWebServerEnabled": { "Name": "MicroProfilerWebServerEnabled", "Scriptability": "None", @@ -60323,6 +61333,21 @@ } } }, + "QualityResetLevel": { + "Name": "QualityResetLevel", + "Scriptability": "None", + "DataType": { + "Value": "Int32" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "RCCProfilerRecordFrameRate": { "Name": "RCCProfilerRecordFrameRate", "Scriptability": "ReadWrite", @@ -61095,277 +62120,6 @@ }, "DefaultProperties": {} }, - "UserNotification": { - "Name": "UserNotification", - "Tags": [], - "Superclass": "Instance", - "Properties": { - "Id": { - "Name": "Id", - "Scriptability": "Read", - "DataType": { - "Value": "String" - }, - "Tags": [ - "NotReplicated", - "ReadOnly" - ], - "Kind": { - "Canonical": { - "Serialization": "DoesNotSerialize" - } - } - }, - "Payload": { - "Name": "Payload", - "Scriptability": "ReadWrite", - "DataType": { - "Value": "Ref" - }, - "Tags": [], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - } - }, - "DefaultProperties": { - "Attributes": { - "Attributes": {} - }, - "Capabilities": { - "SecurityCapabilities": 0 - }, - "DefinesCapabilities": { - "Bool": false - }, - "SourceAssetId": { - "Int64": -1 - }, - "Tags": { - "Tags": [] - } - } - }, - "UserNotificationPayload": { - "Name": "UserNotificationPayload", - "Tags": [], - "Superclass": "Instance", - "Properties": { - "AnalyticsData": { - "Name": "AnalyticsData", - "Scriptability": "ReadWrite", - "DataType": { - "Value": "Ref" - }, - "Tags": [], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, - "JoinExperience": { - "Name": "JoinExperience", - "Scriptability": "ReadWrite", - "DataType": { - "Value": "Ref" - }, - "Tags": [], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, - "MessageId": { - "Name": "MessageId", - "Scriptability": "ReadWrite", - "DataType": { - "Value": "String" - }, - "Tags": [], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, - "Type": { - "Name": "Type", - "Scriptability": "ReadWrite", - "DataType": { - "Value": "String" - }, - "Tags": [], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - } - }, - "DefaultProperties": { - "Attributes": { - "Attributes": {} - }, - "Capabilities": { - "SecurityCapabilities": 0 - }, - "DefinesCapabilities": { - "Bool": false - }, - "MessageId": { - "String": "" - }, - "SourceAssetId": { - "Int64": -1 - }, - "Tags": { - "Tags": [] - }, - "Type": { - "String": "" - } - } - }, - "UserNotificationPayloadAnalyticsData": { - "Name": "UserNotificationPayloadAnalyticsData", - "Tags": [], - "Superclass": "Instance", - "Properties": { - "Category": { - "Name": "Category", - "Scriptability": "ReadWrite", - "DataType": { - "Value": "String" - }, - "Tags": [], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - } - }, - "DefaultProperties": { - "Attributes": { - "Attributes": {} - }, - "Capabilities": { - "SecurityCapabilities": 0 - }, - "Category": { - "String": "" - }, - "DefinesCapabilities": { - "Bool": false - }, - "SourceAssetId": { - "Int64": -1 - }, - "Tags": { - "Tags": [] - } - } - }, - "UserNotificationPayloadJoinExperience": { - "Name": "UserNotificationPayloadJoinExperience", - "Tags": [], - "Superclass": "Instance", - "Properties": { - "LaunchData": { - "Name": "LaunchData", - "Scriptability": "ReadWrite", - "DataType": { - "Value": "String" - }, - "Tags": [], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - } - }, - "DefaultProperties": { - "Attributes": { - "Attributes": {} - }, - "Capabilities": { - "SecurityCapabilities": 0 - }, - "DefinesCapabilities": { - "Bool": false - }, - "LaunchData": { - "String": "" - }, - "SourceAssetId": { - "Int64": -1 - }, - "Tags": { - "Tags": [] - } - } - }, - "UserNotificationPayloadParameterValue": { - "Name": "UserNotificationPayloadParameterValue", - "Tags": [], - "Superclass": "Instance", - "Properties": { - "Int64Value": { - "Name": "Int64Value", - "Scriptability": "ReadWrite", - "DataType": { - "Value": "Int64" - }, - "Tags": [], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, - "StringValue": { - "Name": "StringValue", - "Scriptability": "ReadWrite", - "DataType": { - "Value": "String" - }, - "Tags": [], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - } - }, - "DefaultProperties": { - "Attributes": { - "Attributes": {} - }, - "Capabilities": { - "SecurityCapabilities": 0 - }, - "DefinesCapabilities": { - "Bool": false - }, - "Int64Value": { - "Int64": 0 - }, - "SourceAssetId": { - "Int64": -1 - }, - "StringValue": { - "String": "" - }, - "Tags": { - "Tags": [] - } - } - }, "UserService": { "Name": "UserService", "Tags": [ @@ -61399,7 +62153,6 @@ "VRService": { "Name": "VRService", "Tags": [ - "NotBrowsable", "NotCreatable", "Service" ], @@ -61411,9 +62164,7 @@ "DataType": { "Enum": "VRScaling" }, - "Tags": [ - "NotReplicated" - ], + "Tags": [], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -61426,9 +62177,7 @@ "DataType": { "Value": "Bool" }, - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -61458,9 +62207,7 @@ "DataType": { "Value": "Bool" }, - "Tags": [ - "NotReplicated" - ], + "Tags": [], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -61523,7 +62270,8 @@ "Value": "Bool" }, "Tags": [ - "Hidden" + "Hidden", + "NotReplicated" ], "Kind": { "Canonical": { @@ -61538,7 +62286,8 @@ "Value": "Float32" }, "Tags": [ - "Hidden" + "Hidden", + "NotReplicated" ], "Kind": { "Canonical": { @@ -62496,6 +63245,71 @@ } } }, + "VideoDeviceInput": { + "Name": "VideoDeviceInput", + "Tags": [ + "NotReplicated" + ], + "Superclass": "Instance", + "Properties": { + "Active": { + "Name": "Active", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "CameraId": { + "Name": "CameraId", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "CaptureQuality": { + "Name": "CaptureQuality", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "VideoDeviceCaptureQuality" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "IsReady": { + "Name": "IsReady", + "Scriptability": "Read", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + } + }, + "DefaultProperties": {} + }, "VideoFrame": { "Name": "VideoFrame", "Tags": [], @@ -63210,6 +64024,128 @@ "Properties": {}, "DefaultProperties": {} }, + "VisualizationMode": { + "Name": "VisualizationMode", + "Tags": [], + "Superclass": "Instance", + "Properties": { + "Enabled": { + "Name": "Enabled", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Title": { + "Name": "Title", + "Scriptability": "None", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "Enabled": { + "Bool": false + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + }, + "Title": { + "String": "" + } + } + }, + "VisualizationModeCategory": { + "Name": "VisualizationModeCategory", + "Tags": [], + "Superclass": "Instance", + "Properties": { + "Enabled": { + "Name": "Enabled", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Title": { + "Name": "Title", + "Scriptability": "None", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "Enabled": { + "Bool": false + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + }, + "Title": { + "String": "" + } + } + }, + "VisualizationModeService": { + "Name": "VisualizationModeService", + "Tags": [ + "NotCreatable", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "VoiceChatInternal": { "Name": "VoiceChatInternal", "Tags": [ @@ -63335,6 +64271,21 @@ } } }, + "UseRME": { + "Name": "UseRME", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "VoiceChatEnabledForPlaceOnRcc": { "Name": "VoiceChatEnabledForPlaceOnRcc", "Scriptability": "None", @@ -64143,6 +65094,21 @@ } } }, + "CSGAsyncDynamicCollision": { + "Name": "CSGAsyncDynamicCollision", + "Scriptability": "None", + "DataType": { + "Enum": "CSGAsyncDynamicCollision" + }, + "Tags": [ + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "ClientAnimatorThrottling": { "Name": "ClientAnimatorThrottling", "Scriptability": "ReadWrite", @@ -64221,6 +65187,21 @@ } } }, + "DecreaseMinimumPartDensityMode": { + "Name": "DecreaseMinimumPartDensityMode", + "Scriptability": "None", + "DataType": { + "Enum": "DecreaseMinimumPartDensityMode" + }, + "Tags": [ + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "DistributedGameTime": { "Name": "DistributedGameTime", "Scriptability": "ReadWrite", @@ -64353,16 +65334,35 @@ } } }, + "InsertPoint": { + "Name": "InsertPoint", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Vector3" + }, + "Tags": [ + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "InterpolationThrottling": { "Name": "InterpolationThrottling", "Scriptability": "ReadWrite", "DataType": { "Enum": "InterpolationThrottlingMode" }, - "Tags": [], + "Tags": [ + "Deprecated", + "Hidden", + "NotReplicated" + ], "Kind": { "Canonical": { - "Serialization": "Serializes" + "Serialization": "DoesNotSerialize" } } }, @@ -64396,6 +65396,21 @@ } } }, + "MoverConstraintRootBehavior": { + "Name": "MoverConstraintRootBehavior", + "Scriptability": "None", + "DataType": { + "Enum": "MoverConstraintRootBehaviorMode" + }, + "Tags": [ + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "PhysicsSteppingMethod": { "Name": "PhysicsSteppingMethod", "Scriptability": "None", @@ -64456,6 +65471,21 @@ } } }, + "RenderingCacheOptimizations": { + "Name": "RenderingCacheOptimizations", + "Scriptability": "None", + "DataType": { + "Enum": "RenderingCacheOptimizationMode" + }, + "Tags": [ + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "ReplicateInstanceDestroySetting": { "Name": "ReplicateInstanceDestroySetting", "Scriptability": "None", @@ -64669,6 +65699,9 @@ "AvatarUnificationMode": { "Enum": 0 }, + "CSGAsyncDynamicCollision": { + "Enum": 0 + }, "Capabilities": { "SecurityCapabilities": 0 }, @@ -64678,6 +65711,9 @@ "CollisionGroupData": { "BinaryString": "AQEABP////8HRGVmYXVsdA==" }, + "DecreaseMinimumPartDensityMode": { + "Enum": 0 + }, "DefinesCapabilities": { "Bool": false }, @@ -64709,9 +65745,6 @@ "IKControlConstraintSupport": { "Enum": 0 }, - "InterpolationThrottling": { - "Enum": 0 - }, "LevelOfDetail": { "Enum": 0 }, @@ -64757,6 +65790,9 @@ "ModelStreamingMode": { "Enum": 0 }, + "MoverConstraintRootBehavior": { + "Enum": 0 + }, "NeedsPivotMigration": { "Bool": false }, @@ -64772,6 +65808,9 @@ "RejectCharacterDeletions": { "Enum": 0 }, + "RenderingCacheOptimizations": { + "Enum": 0 + }, "ReplicateInstanceDestroySetting": { "Enum": 0 }, @@ -65464,6 +66503,9 @@ "AdEventType": { "name": "AdEventType", "items": { + "RewardedAdGrant": 4, + "RewardedAdLoaded": 3, + "RewardedAdUnloaded": 5, "UserCompletedVideo": 2, "VideoLoaded": 0, "VideoRemoved": 1 @@ -65484,6 +66526,25 @@ "Undefined": 0 } }, + "AdUIEventType": { + "name": "AdUIEventType", + "items": { + "AdLabelClicked": 0, + "CloseButtonClicked": 5, + "FullscreenButtonClicked": 2, + "PauseButtonClicked": 4, + "PlayButtonClicked": 3, + "VolumeButtonClicked": 1 + } + }, + "AdUIType": { + "name": "AdUIType", + "items": { + "Image": 1, + "None": 0, + "Video": 2 + } + }, "AdUnitStatus": { "name": "AdUnitStatus", "items": { @@ -65516,6 +66577,14 @@ "Transparency": 1 } }, + "AnalyticsCustomFieldKeys": { + "name": "AnalyticsCustomFieldKeys", + "items": { + "CustomField01": 0, + "CustomField02": 1, + "CustomField03": 2 + } + }, "AnalyticsEconomyAction": { "name": "AnalyticsEconomyAction", "items": { @@ -65524,6 +66593,24 @@ "Spend": 2 } }, + "AnalyticsEconomyFlowType": { + "name": "AnalyticsEconomyFlowType", + "items": { + "Sink": 0, + "Source": 1 + } + }, + "AnalyticsEconomyTransactionType": { + "name": "AnalyticsEconomyTransactionType", + "items": { + "ContextualPurchase": 3, + "Gameplay": 2, + "IAP": 0, + "Onboarding": 5, + "Shop": 1, + "TimedReward": 4 + } + }, "AnalyticsLogLevel": { "name": "AnalyticsLogLevel", "items": { @@ -65545,6 +66632,15 @@ "Fail": 4 } }, + "AnalyticsProgressionType": { + "name": "AnalyticsProgressionType", + "items": { + "Complete": 3, + "Custom": 0, + "Fail": 2, + "Start": 1 + } + }, "AnimationClipFromVideoStatus": { "name": "AnimationClipFromVideoStatus", "items": { @@ -65819,6 +66915,7 @@ "UserAudio": 32, "UserAudioEligible": 16, "UserBanned": 256, + "UserVerifiedForVoice": 512, "UserVideo": 128, "UserVideoEligible": 64 } @@ -65832,6 +66929,26 @@ "InspectMenu": 3 } }, + "AvatarGenerationError": { + "name": "AvatarGenerationError", + "items": { + "Canceled": 3, + "DownloadFailed": 2, + "None": 0, + "Offensive": 4, + "Timeout": 1, + "Unknown": 5 + } + }, + "AvatarGenerationJobStatus": { + "name": "AvatarGenerationJobStatus", + "items": { + "Completed": 2, + "Failed": 3, + "InProgress": 1, + "NotStarted": 0 + } + }, "AvatarItemType": { "name": "AvatarItemType", "items": { @@ -65981,6 +67098,14 @@ "RobloxRoundDropdownButton": 5 } }, + "CSGAsyncDynamicCollision": { + "name": "CSGAsyncDynamicCollision", + "items": { + "Default": 0, + "Disabled": 1, + "Experimental": 2 + } + }, "CageType": { "name": "CageType", "items": { @@ -66322,6 +67447,7 @@ "NetworkSend": 297, "NetworkTimeout": 298, "OK": 0, + "PlacelaunchCreatorBan": 600, "PlacelaunchCustomMessage": 610, "PlacelaunchDisabled": 515, "PlacelaunchError": 516, @@ -66448,15 +67574,6 @@ "UpdateAsync": 2 } }, - "DeathStyle": { - "name": "DeathStyle", - "items": { - "ClassicBreakApart": 1, - "Default": 0, - "NonGraphic": 2, - "Scriptable": 3 - } - }, "DebuggerEndReason": { "name": "DebuggerEndReason", "items": { @@ -66510,6 +67627,14 @@ "Timeout": 1 } }, + "DecreaseMinimumPartDensityMode": { + "name": "DecreaseMinimumPartDensityMode", + "items": { + "Default": 0, + "Disabled": 1, + "Enabled": 2 + } + }, "DevCameraOcclusionMode": { "name": "DevCameraOcclusionMode", "items": { @@ -66585,6 +67710,12 @@ "TerrainVoxels": 19 } }, + "DeviceFeatureType": { + "name": "DeviceFeatureType", + "items": { + "DeviceCapture": 0 + } + }, "DeviceType": { "name": "DeviceType", "items": { @@ -66814,8 +67945,14 @@ "Arcade": 13, "Arial": 1, "ArialBold": 2, + "Arimo": 50, + "ArimoBold": 51, "Bangers": 22, "Bodoni": 7, + "BuilderSans": 46, + "BuilderSansBold": 48, + "BuilderSansExtraBold": 49, + "BuilderSansMedium": 47, "Cartoon": 9, "Code": 10, "Creepster": 23, @@ -66970,6 +68107,15 @@ "R6": 0 } }, + "GamepadType": { + "name": "GamepadType", + "items": { + "PS4": 1, + "PS5": 2, + "Unknown": 0, + "XboxOne": 3 + } + }, "GearGenreSetting": { "name": "GearGenreSetting", "items": { @@ -67034,6 +68180,7 @@ "name": "GuiType", "items": { "Core": 0, + "CoreBillboards": 4, "Custom": 1, "CustomBillboards": 3, "PlayerNameplates": 2 @@ -67217,10 +68364,21 @@ "Pending": 1 } }, + "ImageAlphaType": { + "name": "ImageAlphaType", + "items": { + "Default": 1, + "LockCanvasAlpha": 2, + "LockCanvasColor": 3 + } + }, "ImageCombineType": { "name": "ImageCombineType", "items": { + "Add": 3, + "AlphaBlend": 5, "BlendSourceOver": 1, + "Multiply": 4, "Overwrite": 2 } }, @@ -67287,6 +68445,12 @@ "Stretch": 4 } }, + "JoinSource": { + "name": "JoinSource", + "items": { + "CreatedItemAttribution": 1 + } + }, "JointCreationMode": { "name": "JointCreationMode", "items": { @@ -67652,6 +68816,39 @@ "Enabled": 2 } }, + "MarketplaceBulkPurchasePromptStatus": { + "name": "MarketplaceBulkPurchasePromptStatus", + "items": { + "Aborted": 2, + "Completed": 1, + "Error": 3 + } + }, + "MarketplaceItemPurchaseStatus": { + "name": "MarketplaceItemPurchaseStatus", + "items": { + "AlreadyOwned": 3, + "InsufficientMembership": 12, + "InsufficientRobux": 4, + "NotAvailableForPurchaser": 8, + "NotForSale": 7, + "PlaceInvalid": 13, + "PriceMismatch": 9, + "PurchaserIsSeller": 11, + "QuantityLimitExceeded": 5, + "QuotaExceeded": 6, + "SoldOut": 10, + "Success": 1, + "SystemError": 2 + } + }, + "MarketplaceProductType": { + "name": "MarketplaceProductType", + "items": { + "AvatarAsset": 1, + "AvatarBundle": 2 + } + }, "MarkupKind": { "name": "MarkupKind", "items": { @@ -67845,6 +69042,14 @@ "Stopping": 3 } }, + "MoverConstraintRootBehaviorMode": { + "name": "MoverConstraintRootBehaviorMode", + "items": { + "Default": 0, + "Disabled": 1, + "Enabled": 2 + } + }, "MuteState": { "name": "MuteState", "items": { @@ -67876,6 +69081,12 @@ "Unknown": 0 } }, + "NoiseType": { + "name": "NoiseType", + "items": { + "SimplexGabor": 0 + } + }, "NormalId": { "name": "NormalId", "items": { @@ -68327,6 +69538,14 @@ "Last": 2000 } }, + "RenderingCacheOptimizationMode": { + "name": "RenderingCacheOptimizationMode", + "items": { + "Default": 0, + "Disabled": 1, + "Enabled": 2 + } + }, "RenderingTestComparisonMethod": { "name": "RenderingTestComparisonMethod", "items": { @@ -68482,6 +69701,14 @@ "Server": 1 } }, + "RunState": { + "name": "RunState", + "items": { + "Paused": 2, + "Running": 1, + "Stopped": 0 + } + }, "RuntimeUndoBehavior": { "name": "RuntimeUndoBehavior", "items": { @@ -68637,14 +69864,6 @@ "OnRead": 0 } }, - "ServerAudioBehavior": { - "name": "ServerAudioBehavior", - "items": { - "Enabled": 0, - "Muted": 1, - "OnlineGame": 2 - } - }, "ServerLiveEditingMode": { "name": "ServerLiveEditingMode", "items": { @@ -68774,6 +69993,7 @@ "items": { "CloseDoc": 2, "CloseStudio": 1, + "LogOut": 3, "None": 0 } }, @@ -68863,6 +70083,7 @@ "AICOOverlayText": 128, "AttributeCog": 119, "Border": 31, + "BreakpointMarker": 136, "BrightText": 40, "Button": 17, "ButtonBorder": 91, @@ -68892,8 +70113,10 @@ "DiffLineNum": 78, "DiffLineNumAdditionBackground": 81, "DiffLineNumDeletionBackground": 82, + "DiffLineNumHover": 137, "DiffLineNumNoChangeBackground": 80, "DiffLineNumSeparatorBackground": 79, + "DiffLineNumSeparatorBackgroundHover": 138, "DiffTextAddition": 72, "DiffTextAdditionBackground": 76, "DiffTextDeletion": 73, @@ -69004,6 +70227,16 @@ "NoSupports": 2 } }, + "SubscriptionExpirationReason": { + "name": "SubscriptionExpirationReason", + "items": { + "Lapsed": 4, + "ProductDeleted": 1, + "ProductInactive": 0, + "SubscriberCancelled": 2, + "SubscriberRefunded": 3 + } + }, "SubscriptionPaymentStatus": { "name": "SubscriptionPaymentStatus", "items": { @@ -69017,6 +70250,16 @@ "Month": 0 } }, + "SubscriptionState": { + "name": "SubscriptionState", + "items": { + "Expired": 4, + "NeverSubscribed": 0, + "SubscribedRenewalPaymentPending": 3, + "SubscribedWillNotRenew": 2, + "SubscribedWillRenew": 1 + } + }, "SurfaceConstraint": { "name": "SurfaceConstraint", "items": { @@ -69196,7 +70439,8 @@ "name": "TextTruncate", "items": { "AtEnd": 1, - "None": 0 + "None": 0, + "SplitWord": 2 } }, "TextXAlignment": { @@ -69215,14 +70459,6 @@ "Top": 0 } }, - "TextureGenerationMeshHandlerUnwrapMode": { - "name": "TextureGenerationMeshHandlerUnwrapMode", - "items": { - "Always": 1, - "Never": 0, - "WhenInvalidUVsDetected": 2 - } - }, "TextureMode": { "name": "TextureMode", "items": { @@ -69403,6 +70639,24 @@ "Completed": 1 } }, + "UIDragDetectorDragStyle": { + "name": "UIDragDetectorDragStyle", + "items": { + "Rotate": 2, + "Scriptable": 3, + "TranslateLine": 1, + "TranslatePlane": 0 + } + }, + "UIDragDetectorResponseStyle": { + "name": "UIDragDetectorResponseStyle", + "items": { + "CustomOffset": 2, + "CustomScale": 3, + "Offset": 0, + "Scale": 1 + } + }, "UIFlexAlignment": { "name": "UIFlexAlignment", "items": { @@ -69572,6 +70826,39 @@ "Small": 1 } }, + "VideoDeviceCaptureQuality": { + "name": "VideoDeviceCaptureQuality", + "items": { + "Default": 0, + "High": 3, + "Low": 1, + "Medium": 2 + } + }, + "VideoError": { + "name": "VideoError", + "items": { + "AllocFailed": 4, + "BadParameter": 3, + "CodecCloseFailed": 6, + "CodecInitFailed": 5, + "CreateFailed": 14, + "DecodeFailed": 7, + "DownloadFailed": 11, + "EAgain": 2, + "EncodeFailed": 13, + "Eof": 1, + "Generic": 10, + "NoPermission": 15, + "NoService": 16, + "Ok": 0, + "ParsingFailed": 8, + "ReleaseFailed": 17, + "StreamNotFound": 12, + "Unknown": 18, + "Unsupported": 9 + } + }, "ViewMode": { "name": "ViewMode", "items": { diff --git a/rbx_reflection_database/CHANGELOG.md b/rbx_reflection_database/CHANGELOG.md index f87d1bb3f..82e276822 100644 --- a/rbx_reflection_database/CHANGELOG.md +++ b/rbx_reflection_database/CHANGELOG.md @@ -1,6 +1,7 @@ # rbx\_reflection_database Changelog ## Unreleased Changes +* Updated to Roblox version 628 ## 0.2.10+roblox-607 (2024-01-16) * Updated to Roblox version 607 diff --git a/rbx_reflection_database/database.msgpack b/rbx_reflection_database/database.msgpack index e0a755dabcb05d7401f6fb8e771a9cb446cc5d5c..53a8b026c23672009f1914f56447f87ce0c631b3 100644 GIT binary patch delta 9565 zcmdT~dw3Pqwa=bcc;rDyAPJ9<80007ga8VBkeob;=6wiYTTCZsCdtU0nd6)}kZ3g| z1XKitOb@%gSFH$1fP_2^o*U7Sw3W<(o54ttZ*!+sl9_5N!Ys6X{ZN6y5rEA%2`<;;Av z9jB~8Dg6tQ3TGsra43qZ^SY!eUZ<#Sm0Y4fn1=VCq~@aS{oYmQCr7rlXE%6wuh(z> z;*=kubfdiZBtGjyiQxg3aprQqQMLK|#_5tf&@SU@Nmj(DLH+5aQ3yR|WR)!n9@gJg zmd8Xkj}jl(RwQl}Wq+HIxnTv)>ZFD*_DE%QJ};Y&yYO+jwx(J*lDOn!2(jh1VLKx+W>L`wcWV z)ws54MX0?kyL(cIy*>H8lOetye=m~D8vWJDZ{K1}{6WFZUP*t|=4&X#?8fG*wWBBh zYgJ9uV{HzvSJeIX55Aa6--h?if!EzK2RLn za|d=jG#3ct{cD(MSmn`leCl6N+N2|8np&%gV0U&4qf}-Y9(OApjVG*UCrx`k#2Gok zrhQ)AcbQIHLPqkPFc%oSKQseheTGi#|5_>GX7pt9$~v$URck2YYela=h;ZOTH2+YZ zZx-&mj#B$K|2Tm`arpHLdJn$d%jgbBOw?B}-~l zMfWZ#HvftmsKcUSQILG@#kyW&c;1W08&{&l{=FZ(F&Y2lB$eF1^RxRSZ@sDU{i%OH z7=DwYpI(1zB6`%|e>4{#pNM$8U_2XPTyBZQZ||aGl27EQvdmYjusc@O(tg_Me$r> zPZ_W2PKEd6DW=Q(9wkm)YYP#1SnvO5ZR4jgGCO4ZbTt`*TL2;y6p(qNcze>#^eI9Be9edQt zD?+te4@W)F#O2R|;+E8-D4e{AnPwg&e#uKM!Tpga&iG-&M4X^gUL3QCnGd|ld3s;S&AH*Nu!F)r? zKc)UmH+BuI{{M3lbA!+O1}A}2W-+tLrq8LnqbV?0xUq-^zjtQzVW$X2VEr}uxSY^)02y{q zrBliAsq~8J^o6iVB7t;N?_E)j2c zv&;SaP?Yibnd#=3IQ)mTbUOa$b8N-|4>J=X@>B(VY#d4>>%LEa9Uc4Od}p1ytx&OH zZVB%ey?6mnPn#TqzLBRLBy$VhHUsSYFVw%6C?}IS{4+7wy!H#qN&f6%LNELXi9#IgsaZe zJU+Xd-Nf4cqzm*6)Q-zn0vvg96`D1E5Ch=L^QbiZk5%Yay!QefPxf4(pB|4Aan`4F z9LfBYE}@s4x=R#2-xD>pP^po9A|ylE;3*)!hNk0#UF;I__$B&-D1aX|-_qj3BNaZy zgqos%ur(6l4l<0sI~S7Qd`q{Ww5C&q-W=Ye`!umw6~ug1s}Mb^ru)aB8&I7QWE*0%Okl3A4T3E9SSA_SQR?AcphSMNf%&JYsrc

+CoOA`Tq4K$2*QetuMFX#kv{xjyb@qih|f5jBww=(G@IKEk= z>?@`gp*{HYe=)^|=gcI0VHy>MkEODUNygupw`bxj&mtDDc$G>aE8^J2^Jaf|%cwNL zp-FCaQH5CRlX=Zd5pYa2HxExLVw=dkHEdhd%?~0lXxa3em$w%gSI2g9x4*DntT)wl zC{Z(^Xo05sJpLQ-@O`JzT%4@3)$2aIWz-av$~Fj#9`HmJ;(b2wQvRC|!uNg7%*0tQ zQWHtD%3hg_Vyvu-K-Tr2Hee@LTi8ExXg7KPF?Jh7?_g-=AJ)TtE2%il|B0HFJ{Cyz zkHr`od;1OWs{aPOp&1fKKsNtiA7A(-wWZe{DaF>jO9^{-Et&ebrE1f)@Q88@Jx@w|CmRm=C!StbXja_w<~|o zz%EA2odW@~7HTN|u~|2{*6I;!ogTH;Ks+4Hu|wh?rg2Xo$nWJD+;J4$4)LL)IL{yW z#eLTxO-xMUm>9HxBrV}?MU~D1hqpm-VY z?T(Sm#vA+AEkgwJ2e^3r?Q$;9Xlh!E&u4Knuy+M_G3~`-b*l)qAi&ca4mU(Ll$dwI-Jcu^y>kgUI*`w~^XI0#8|cvqcR3QoZt&`q!ZM$F)kAA1h_ z2i)zn=4QYQBW{WmO4FnByT z{g>z#{Jw*GD1MBOA^F+d%1A&?+e^8#=#E`I72-Bt6GXuwK<23EOz#lEgf*f-pBSQ4 zDp2YG8jBs}-08;S4xzFzZ>y;2W+L1=yt}L0Ar$e|qMRd3t}UVvb|Obsy<)ac*HtAz zV@bYGmc5{rqB4v@ohajdBZQegGnokz%Yx1I+uk{dDhlX`xi4!=gRLEHg>ERUBI_Q* z+ARM?k#EX5C`q1nD7@SN;lZ2ZgA%MeUlL{EF0sMeIwohw@gUK(^sr&wrD#|;gTjoH zD{LH^EYGDXs=EQ|M%%1ij>&00?1U0hSi4j8LB$ijJh;)o4C~>_yu8bNRI(%be(M+zVic;IZQLxqmAuw$i4wF)``Xo)=xnXLzPu9w`RV5+2)XWF=Feazv2$XK28mfzQyM20Lhx2(!rrIE}(R4((_1q^D&|~=0JzQP< zNfS_Sfb6kG5(UUxHmDHQ-lT9v6{k0bD(0(NYiRN=2yc*aLGh68&Q-TrDr~MR3Y4u4 zN1^6ty1}g?(_wz8>eEq2rLsi$NNl|UA0PajOTp(GAn`5w5m!bp@3R3& zKD;XdjJMQsG^y#hEfoL{VdTk1Zbvv2;gcWc7Tw!spQV5;sNHI((dE^F$JmBYELutqEgb-{Cv<9`CPFX4;3Wd7phUZyLs`i<_ z1d(jaor`GvFtwQ1wun0T2B=v0c0>&kC*%4{ePg#bvQvKOMUu;4yVuMf_FmH z>1=>>!)-lcQm5cd@&}F{j$81#>>z70LeQH#?YBqkEg5y$oot^X$Rde6%)QI49vdL3 znhF0}#}>dp`VR5}`3i?RoVx1qfG@@991}-=dX_uD;tK~U zD8~JoyOT+V&|_kcT-8N&S}i-9L+wRsE!+W3zI=mQ%0R6xks?vHx?#}ii-s2SoraN%?xe&m>d{9rIU#OUIf2$bQA6Ntw z-Hvl+U^`(FqhV>FR){sA2Vfew{`Xvc0%xdPQ(Sb(df|f2Di~tCLH&D=otOjkB9 zl<|#bfgQ>cbgxIrX*1t7Gg9iv?!IPdX-4b>j5=t*9fxW=E;}xK? ofG_QCOt)El;oX*J1$~Sdh^Lb~p={>!m{n;}7*E!I&SB<%02NW&5&!@I delta 3574 zcmbVPdstOf7H6Nm&%P-zHb5%DmP3B1*|nO=^jGmfP-J+yDKu$hL&OexFelVlDchMDCz|J-lyy?%SI zwbxmD{eGA24ga7c%uj#X>ut{F^^Vsf+uYOK2km~tMw)7xXNV3}go-c{qNk5c30U8l z=#XZMWfhHinkvc5YoQ~FJnGpxQVRDZJ@82&oT%le>z^zxfeTYfJY)|+(fZLP>3YOG zs-K)Q5v|j`vl2WTvV0NRq(gShws=0l6PPoD45?_y5KBb6yJ6dQGzFGozCgb}UqDr! zllg%NPMgVmJ$rt;K5OYEy=1`@R0Runqrd3;9-7r_E6|079vG^TxAo}7ala6R=jf8J z5UK!giHy^0{mlIio+%WKFs>XNqbC%M@;q%d6SUd$pXHk|Y}EO9&w&-Qi6{Dz`#4XS zD}_GSuxga6Vb}uN3X_MjP}4Ywv_71Cao4 zMDUTUG6?ZQ+0l_`l8Ptw^t@b+au5oDrfw3&R&Pb;cy zCn{$4U8oDQmS@rT82z5rH5fbfme3h&e-kmOHx31{gQXnD!Jo^y7M4FQOWMNC9K}A|%N_Sco1pPe+}W7c zWS6RnvX)|#G(~k^Kdqmm$YMo9zF>EW&*h5CbYW*0d;C>SMIo)ZE?JX`#XQBOT1EH3 z6td${h+bPYM*r-|0QlxL?!CzNyfWEpRD8dOxnim2zHtd^^Z8tM=yh)E1T+nDGRSer zOu_GiC5YCs9p7;O!mu}PVsz8Hk{t>G04Gn~i`#B%ze1(sI)k|Afaie*g?<4b-lVij%( zN9))jz z8R5L)PvU%8(kOCa+TdDc_bwqpq2TY2#(`8yRJO2;G>$~ku={xu%tC?K$wZ^=30hH} zR%RF7gT~M2ih}JyRno+Y`V`q!Jjew94J46l-40^*H8Nlv8(M0t#nyTF5*f z1gxGBMAytrbZJVlpc$XYZZES~mEvMav)C2u3eje9T2;xRIV~%TMA=fNxGYYgM6@WX z#o;QnOU@#TrdV>7Lc3DxKK1_{6mY{y@JKO^VhyhmHGo-;fettX)@ZnF4^sU)z)NYchtaJ*6c2Vz&ie#oJe*9fwf4rg3 z3aTX7$7|X$I3Gpsf^P-Bf^m6#gYR!*nSq@g_S-P$V|=V>>Z`qv-ldAEqAaS$7gOX+ z(OEQ0kZpERb^oeW7e0#JwvI1k@2%r61R{TfH_WK7bFvZJ`8$#BA3>mTBiR7iCs7is z-pLQAXgzDF<5zNQQzIW0J@D9>(E)!X#>{b=pKD@czu*Be-%h@sfP9V*WFyY;O~WU( z&2x&Xkw9r#@6$ITb>Fa3y(dj}YJzMP*Vd)k+;xys%clo4Wea6?MX%DAv2TQj%JAzo7`r^enS@ato` zHP}ygs@RikG}YybTIRksy4oM$l??7~gZJVCuUW1|qj$`WUvMh&CL#SS3AczF6cl`1 zhf;ef*Sk4GaLLx9-hB5brtQvQD{kgDTTq2!Q4`fZj&$GD@AbH!{H|?IleH<6`*-(` zp*y|?i!&~~LV!!d~q}Li!lN137Ry?0x-H}+y-7$JF`dZfN=L*Z66@9 zNQco^&FcTu^VSm;$fo?{I(%C$Twjx#@M@axO1k_9#iCE+;I*wx>r_(YF?Q`fN zC@^zosLrC{P?SYG*x$41*NCO(QH@7Y@Wy=lFi6d0EEE^e`LLm!gz5J#;K6$V{i=7n z87?fKKY)cdVjH)Rma`)ZY0NN#w7!$*n+R3HxfOIjvlUZs1Se#g2A?YQ6?WD^|2fo< zJSSGsBFJ7%o$RT{==X$uyp|GgG?RV0g(eVoUk!bo&lp5Ly()fy&Z^pz?S@R1tVyaU ztVnbSs)m|oh|2_*UGr)-gi@+1IEo}I*PPc!KE2%+v+sdMabPf42-COIY|PBNX{8Cp z!p;U76VQ|-$je358Qhqp*c4eZu}O_|EYG&I&>xYhsyYrxh;tC{H=qY@zDBAw0}FVaE^?U(5YXuC`ovz^^^ z4fS2ykf^1|Hq@s(y Date: Wed, 5 Jun 2024 17:53:04 -0700 Subject: [PATCH 34/64] Accept new snapshots for test caused by 628 database update (#416) --- .../rbx_binary__tests__util__baseplate-566__decoded.snap | 2 -- .../rbx_binary__tests__util__baseplate-566__encoded.snap | 7 ------- 2 files changed, 9 deletions(-) diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__decoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__decoded.snap index d77857ac3..c985b1c6e 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__decoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__decoded.snap @@ -30,8 +30,6 @@ expression: decoded_viewed Float32: 196.2 HumanoidOnlySetCollisionsOnStateChange: Enum: 0 - InterpolationThrottling: - Enum: 0 LevelOfDetail: Enum: 0 MeshPartHeadsAndAccessories: diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap index ca051798d..a24e0ee59 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 60 @@ -4081,12 +4080,6 @@ chunks: prop_type: Enum values: - 0 - - Prop: - type_id: 0 - prop_name: InterpolationThrottling - prop_type: Enum - values: - - 0 - Prop: type_id: 0 prop_name: LevelOfDetail From 8dc6eff7d7fd6dd76f66ffe7ff973e4a3b2545d7 Mon Sep 17 00:00:00 2001 From: Euphoriah <95628489+phoriah@users.noreply.github.com> Date: Thu, 20 Jun 2024 17:05:37 +0200 Subject: [PATCH 35/64] Note Exception about float in Attribute Docs (#422) --- docs/attributes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/attributes.md b/docs/attributes.md index 4fc4fe572..db618989c 100644 --- a/docs/attributes.md +++ b/docs/attributes.md @@ -75,7 +75,7 @@ It is worth noting that Roblox Studio will interpret any non-zero value as `true The `Float32` type is stored as a [single-precision float](https://en.wikipedia.org/wiki/Single-precision_floating-point_format), also known as an `f32` or `single`, or sometimes even simply `float`. -This type is accepted by Roblox Studio but will not ever be generated by it. +This type is accepted by Roblox Studio, though will almost never be generated by it. In some cases the Roblox Studio Properties widget may cause this type to appear. ### Float64 **Type ID `0x06`** From a542332b42b73c1647a2ba39fe92b1d42a730784 Mon Sep 17 00:00:00 2001 From: Micah Date: Thu, 20 Jun 2024 08:31:41 -0700 Subject: [PATCH 36/64] Fix clippy lints across all crates (#423) --- rbx_binary/src/serializer/state.rs | 1 - rbx_reflector/src/api_dump.rs | 6 ++++++ rbx_types/src/basic_types.rs | 10 +++++----- rbx_types/src/referent.rs | 4 ++-- rbx_xml/src/types/numbers.rs | 23 ++++++++++------------- 5 files changed, 23 insertions(+), 21 deletions(-) diff --git a/rbx_binary/src/serializer/state.rs b/rbx_binary/src/serializer/state.rs index 2ccd79100..452519feb 100644 --- a/rbx_binary/src/serializer/state.rs +++ b/rbx_binary/src/serializer/state.rs @@ -3,7 +3,6 @@ use std::{ collections::{BTreeMap, BTreeSet, HashMap, HashSet, VecDeque}, convert::TryInto, io::Write, - u32, }; use rbx_dom_weak::{ diff --git a/rbx_reflector/src/api_dump.rs b/rbx_reflector/src/api_dump.rs index 7288b4d1d..7b0ea6aa5 100644 --- a/rbx_reflector/src/api_dump.rs +++ b/rbx_reflector/src/api_dump.rs @@ -22,6 +22,8 @@ pub struct DumpClass { #[derive(Debug, Deserialize)] #[serde(tag = "MemberType")] +// We're using this with Serde, it's ok that there's unused struct members. +#[allow(dead_code)] pub enum DumpClassMember { Property(DumpClassProperty), @@ -95,6 +97,8 @@ pub struct PropertySecurity { #[derive(Debug, Deserialize)] #[serde(rename_all = "PascalCase")] +// We're using this with Serde, it's ok that there's unused struct members. +#[allow(dead_code)] pub struct Serialization { pub can_save: bool, pub can_load: bool, @@ -116,6 +120,8 @@ pub struct DumpEnumItem { #[derive(Debug, Deserialize)] #[serde(untagged)] +// We're using this with Serde, it's ok that there's unused struct members. +#[allow(dead_code)] pub enum Tag { Regular(String), Named(HashMap), diff --git a/rbx_types/src/basic_types.rs b/rbx_types/src/basic_types.rs index 3862d7ad1..4d6013119 100644 --- a/rbx_types/src/basic_types.rs +++ b/rbx_types/src/basic_types.rs @@ -79,9 +79,9 @@ pub struct Vector3 { } fn approx_unit_or_zero(value: f32) -> Option { - if value.abs() <= std::f32::EPSILON { + if value.abs() <= f32::EPSILON { Some(0) - } else if value.abs() - 1.0 <= std::f32::EPSILON { + } else if value.abs() - 1.0 <= f32::EPSILON { Some(1.0f32.copysign(value) as i32) } else { None @@ -409,9 +409,9 @@ impl Color3uint8 { impl From for Color3uint8 { fn from(value: Color3) -> Self { Self { - r: ((value.r.max(0.0).min(1.0)) * 255.0).round() as u8, - g: ((value.g.max(0.0).min(1.0)) * 255.0).round() as u8, - b: ((value.b.max(0.0).min(1.0)) * 255.0).round() as u8, + r: (value.r.clamp(0.0, 1.0) * 255.0).round() as u8, + g: (value.g.clamp(0.0, 1.0) * 255.0).round() as u8, + b: (value.b.clamp(0.0, 1.0) * 255.0).round() as u8, } } } diff --git a/rbx_types/src/referent.rs b/rbx_types/src/referent.rs index 1f3902fcc..555708e71 100644 --- a/rbx_types/src/referent.rs +++ b/rbx_types/src/referent.rs @@ -126,7 +126,7 @@ mod test { let thirty = Ref(NonZeroU128::new(30)); assert_eq!(thirty.to_string(), "0000000000000000000000000000001e"); - let max = Ref(NonZeroU128::new(u128::max_value())); + let max = Ref(NonZeroU128::new(u128::MAX)); assert_eq!(max.to_string(), "ffffffffffffffffffffffffffffffff"); } @@ -144,7 +144,7 @@ mod test { assert_eq!( Ref::from_str("ffffffffffffffffffffffffffffffff").unwrap(), - Ref(NonZeroU128::new(u128::max_value())) + Ref(NonZeroU128::new(u128::MAX)) ); } diff --git a/rbx_xml/src/types/numbers.rs b/rbx_xml/src/types/numbers.rs index 2be02bc97..bbbd14f96 100644 --- a/rbx_xml/src/types/numbers.rs +++ b/rbx_xml/src/types/numbers.rs @@ -16,9 +16,9 @@ macro_rules! float_type { &self, writer: &mut XmlEventWriter, ) -> Result<(), EncodeError> { - if *self == std::$rust_type::INFINITY { + if *self == $rust_type::INFINITY { writer.write_characters("INF") - } else if *self == std::$rust_type::NEG_INFINITY { + } else if *self == $rust_type::NEG_INFINITY { writer.write_characters("-INF") } else if self.is_nan() { writer.write_characters("NAN") @@ -31,9 +31,9 @@ macro_rules! float_type { let contents = reader.read_characters()?; Ok(match contents.as_str() { - "INF" => std::$rust_type::INFINITY, - "-INF" => std::$rust_type::NEG_INFINITY, - "NAN" => std::$rust_type::NAN, + "INF" => $rust_type::INFINITY, + "-INF" => $rust_type::NEG_INFINITY, + "NAN" => $rust_type::NAN, number => number.parse().map_err(|e| reader.error(e))?, }) } @@ -99,12 +99,9 @@ mod test { #[test] fn test_inf_and_nan_deserialize() { - test_util::test_xml_deserialize(r#"INF"#, &std::f32::INFINITY); + test_util::test_xml_deserialize(r#"INF"#, &f32::INFINITY); - test_util::test_xml_deserialize( - r#"-INF"#, - &std::f32::NEG_INFINITY, - ); + test_util::test_xml_deserialize(r#"-INF"#, &f32::NEG_INFINITY); // Can't just use test_util::test_xml_deserialize, because NaN != NaN! @@ -119,10 +116,10 @@ mod test { #[test] fn test_inf_and_nan_serialize() { - test_util::test_xml_serialize(r#"INF"#, &std::f32::INFINITY); + test_util::test_xml_serialize(r#"INF"#, &f32::INFINITY); - test_util::test_xml_serialize(r#"-INF"#, &std::f32::NEG_INFINITY); + test_util::test_xml_serialize(r#"-INF"#, &f32::NEG_INFINITY); - test_util::test_xml_serialize(r#"NAN"#, &std::f32::NAN); + test_util::test_xml_serialize(r#"NAN"#, &f32::NAN); } } From 3f689f5381eaee1fff0555924047acd9c4a5e7ba Mon Sep 17 00:00:00 2001 From: Micah Date: Fri, 19 Jul 2024 15:48:05 -0700 Subject: [PATCH 37/64] Add command for stripping a specific property from Instances to rbx-util (#426) When debugging an issue that cropped up on the Roblox devforums yesterday, I wanted an easy way to remove every instance of property from a file (specifically, `SurfaceAppearance.Color`). Given that there's no easy way to do this without converting a file to XML, removing the property, then converting it back, I think it'd be helpful to include in rbx-util in the future. --- rbx_util/CHANGELOG.md | 8 +++- rbx_util/Cargo.toml | 2 +- rbx_util/README.md | 7 +++- rbx_util/src/main.rs | 9 ++++- rbx_util/src/remove_prop.rs | 80 +++++++++++++++++++++++++++++++++++++ 5 files changed, 100 insertions(+), 6 deletions(-) create mode 100644 rbx_util/src/remove_prop.rs diff --git a/rbx_util/CHANGELOG.md b/rbx_util/CHANGELOG.md index 9bcc59b68..c62f29076 100644 --- a/rbx_util/CHANGELOG.md +++ b/rbx_util/CHANGELOG.md @@ -1,10 +1,14 @@ # Changelog +## Version 0.2.1 + +- Added `remove-prop` command to strip a property from a file + ## Version 0.2.0 - Refactor commands into seperate files - Add `verbosity` and `color` global flags to control logging and terminal color -# Version 0.1.0 +## Version 0.1.0 -- Initial implementation \ No newline at end of file +- Initial implementation diff --git a/rbx_util/Cargo.toml b/rbx_util/Cargo.toml index ad96e8cc0..c32cff4e0 100644 --- a/rbx_util/Cargo.toml +++ b/rbx_util/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rbx_util" -version = "0.2.0" +version = "0.2.1" description = "Utilities for working with Roblox model and place files" license = "MIT" documentation = "https://docs.rs/rbx_util" diff --git a/rbx_util/README.md b/rbx_util/README.md index a72c2a02b..fd91b05a8 100644 --- a/rbx_util/README.md +++ b/rbx_util/README.md @@ -1,4 +1,5 @@ # rbx_util + Command line tool to convert and inspect Roblox model and place files using the rbx-dom family of libraries. Usage: @@ -9,4 +10,8 @@ rbx-util convert input.rbxmx output.rbxm # Debug the contents of a binary model rbx-util view-binary output.rbxm -``` \ No newline at end of file + +# Strip the specified PropertyName from all Instances of ClassName in the provided input. +# Then, write the resulting file the provided output. +rbx-util remove-prop input.rbxmx ClassName PropertyName --output output.rbxm +``` diff --git a/rbx_util/src/main.rs b/rbx_util/src/main.rs index 0410527e0..7314936f5 100644 --- a/rbx_util/src/main.rs +++ b/rbx_util/src/main.rs @@ -1,16 +1,18 @@ mod convert; +mod remove_prop; mod view_binary; use std::process; use std::{path::Path, str::FromStr}; use clap::Parser; -use convert::ConvertCommand; +use convert::ConvertCommand; +use remove_prop::RemovePropCommand; use view_binary::ViewBinaryCommand; #[derive(Debug, Parser)] -#[clap(name = "rbx_util", about)] +#[clap(name = "rbx_util", about, version)] struct Options { #[clap(flatten)] global: GlobalOptions, @@ -23,6 +25,7 @@ impl Options { match self.subcommand { Subcommand::ViewBinary(command) => command.run(), Subcommand::Convert(command) => command.run(), + Subcommand::RemoveProp(command) => command.run(), } } } @@ -33,6 +36,8 @@ enum Subcommand { ViewBinary(ViewBinaryCommand), /// Convert between the XML and binary formats for places and models. Convert(ConvertCommand), + /// Removes a specific property from a specific class within a Roblox file. + RemoveProp(RemovePropCommand), } #[derive(Debug, Parser, Clone, Copy)] diff --git a/rbx_util/src/remove_prop.rs b/rbx_util/src/remove_prop.rs new file mode 100644 index 000000000..ad46cae9c --- /dev/null +++ b/rbx_util/src/remove_prop.rs @@ -0,0 +1,80 @@ +use std::{ + io::{BufReader, BufWriter}, + path::PathBuf, +}; + +use anyhow::Context as _; +use clap::Parser; +use fs_err::File; + +use crate::ModelKind; + +#[derive(Debug, Parser)] +pub struct RemovePropCommand { + /// The file to remove the property from. + input: PathBuf, + #[clap(long, short)] + /// The place to write the stripped file to. + output: PathBuf, + /// The class name to remove the property from. + class_name: String, + /// The property to remove from the provided class. + prop_name: String, +} + +impl RemovePropCommand { + pub fn run(&self) -> anyhow::Result<()> { + let input_kind = ModelKind::from_path(&self.input)?; + let output_kind = ModelKind::from_path(&self.output)?; + + let input_file = BufReader::new(File::open(&self.input)?); + + log::debug!("Reading from {input_kind:?} file {}", self.input.display()); + let mut dom = match input_kind { + ModelKind::Xml => { + let options = rbx_xml::DecodeOptions::new() + .property_behavior(rbx_xml::DecodePropertyBehavior::ReadUnknown); + + rbx_xml::from_reader(input_file, options) + .with_context(|| format!("Failed to read {}", self.input.display()))? + } + + ModelKind::Binary => rbx_binary::from_reader(input_file) + .with_context(|| format!("Failed to read {}", self.input.display()))?, + }; + + let mut queue = vec![dom.root_ref()]; + while let Some(referent) = queue.pop() { + let inst = dom.get_by_ref_mut(referent).unwrap(); + if inst.class == self.class_name { + log::trace!("Removed property {}.{}", inst.name, self.prop_name); + inst.properties.remove(&self.prop_name); + } + queue.extend_from_slice(inst.children()); + } + + let output_file = BufWriter::new(File::create(&self.output)?); + + let root_ids = dom.root().children(); + match output_kind { + ModelKind::Xml => { + let options = rbx_xml::EncodeOptions::new() + .property_behavior(rbx_xml::EncodePropertyBehavior::WriteUnknown); + + rbx_xml::to_writer(output_file, &dom, root_ids, options) + .with_context(|| format!("Failed to write {}", self.output.display()))?; + } + + ModelKind::Binary => { + rbx_binary::to_writer(output_file, &dom, root_ids) + .with_context(|| format!("Failed to write {}", self.output.display()))?; + } + } + log::info!( + "Wrote stripped {output_kind:?} file to {}", + self.output.display() + ); + + Ok(()) + } +} From 944e74778fb49b6a84917d2e9af894cabe94f97a Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler Date: Sat, 20 Jul 2024 13:19:58 -0700 Subject: [PATCH 38/64] Traverse inheritance tree to find defaults in rbx_binary serializer (#420) --- rbx_binary/src/serializer/state.rs | 5 ++--- rbx_reflection/CHANGELOG.md | 2 ++ rbx_reflection/src/database.rs | 21 +++++++++++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/rbx_binary/src/serializer/state.rs b/rbx_binary/src/serializer/state.rs index 452519feb..cd2c832f3 100644 --- a/rbx_binary/src/serializer/state.rs +++ b/rbx_binary/src/serializer/state.rs @@ -397,9 +397,8 @@ impl<'dom, 'db, W: Write> SerializerState<'dom, 'db, W> { let default_value = type_info .class_descriptor .and_then(|class| { - class - .default_properties - .get(&canonical_name) + database + .find_default_property(class, &canonical_name) .map(Cow::Borrowed) }) .or_else(|| Self::fallback_default_value(serialized_ty).map(Cow::Owned)) diff --git a/rbx_reflection/CHANGELOG.md b/rbx_reflection/CHANGELOG.md index 7221cf1d9..5378a731a 100644 --- a/rbx_reflection/CHANGELOG.md +++ b/rbx_reflection/CHANGELOG.md @@ -2,8 +2,10 @@ ## Unreleased Changes * Add `superclasses` method to `ReflectionDatabase` to get a set of superclasses for a given class. ([#402]) +* Added method `ReflectionDatabase::find_default_property`, which finds the default value of a property given its name and a class that inherits it. ([#420]) [#402]: https://github.com/rojo-rbx/rbx-dom/pull/402 +[#420]: https://github.com/rojo-rbx/rbx-dom/pull/420 ## 4.5.0 (2024-01-16) * Update to rbx_types 1.8. diff --git a/rbx_reflection/src/database.rs b/rbx_reflection/src/database.rs index 7b5959446..5c1f3ccf4 100644 --- a/rbx_reflection/src/database.rs +++ b/rbx_reflection/src/database.rs @@ -57,6 +57,27 @@ impl<'a> ReflectionDatabase<'a> { Some(list) } + + /// Finds the default value of a property given its name and a class that + /// contains or inherits the property. Returns `Some(&Variant)` if a default + /// value exists, None otherwise. + pub fn find_default_property( + &'a self, + mut class: &'a ClassDescriptor<'a>, + property_name: &str, + ) -> Option<&'a Variant> { + loop { + match class.default_properties.get(property_name) { + None => { + class = self + .classes + .get(class.superclass.as_ref()?) + .expect("superclass that is Some should exist in reflection database") + } + default_value => return default_value, + } + } + } } /// Describes a class of Instance, its properties, and its relation to other From 9683d6ff8ef4c4e9cdd2d9b1a976d09060a80dd2 Mon Sep 17 00:00:00 2001 From: Micah Date: Sat, 20 Jul 2024 13:20:12 -0700 Subject: [PATCH 39/64] Change `ReflectionDatabase::superclasses` to use `&ClassDescriptor` instead of `&str` (#425) --- rbx_reflection/src/database.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/rbx_reflection/src/database.rs b/rbx_reflection/src/database.rs index 5c1f3ccf4..2db81dbeb 100644 --- a/rbx_reflection/src/database.rs +++ b/rbx_reflection/src/database.rs @@ -40,15 +40,16 @@ impl<'a> ReflectionDatabase<'a> { } } - /// Returns a list of superclasses for the provided class name. This list - /// will start with the provided class and end with `Instance` if the class - /// exists. - pub fn superclasses(&self, class_name: &str) -> Option> { + /// Returns a list of superclasses for the provided ClassDescriptor. This + /// list will start with the provided class and end with `Instance`. + pub fn superclasses( + &'a self, + descriptor: &'a ClassDescriptor<'a>, + ) -> Option> { // As of the time of writing (14 March 2024), the class with the most // superclasses has 6 of them. let mut list = Vec::with_capacity(6); - let mut current_class = self.classes.get(class_name); - current_class?; + let mut current_class = Some(descriptor); while let Some(class) = current_class { list.push(class); From 748b3897f61f4d449891bad8fa4b13deac54e1b8 Mon Sep 17 00:00:00 2001 From: Micah Date: Mon, 22 Jul 2024 13:11:21 -0700 Subject: [PATCH 40/64] Update reflection database to v634 (#428) --- rbx_dom_lua/src/database.json | 1658 +++++++++++++++++++--- rbx_reflection_database/CHANGELOG.md | 2 +- rbx_reflection_database/database.msgpack | Bin 464439 -> 471845 bytes rbx_reflector/src/cli/defaults_place.rs | 4 +- 4 files changed, 1450 insertions(+), 214 deletions(-) diff --git a/rbx_dom_lua/src/database.json b/rbx_dom_lua/src/database.json index 222114083..4e36341b5 100644 --- a/rbx_dom_lua/src/database.json +++ b/rbx_dom_lua/src/database.json @@ -1,9 +1,9 @@ { "Version": [ 0, - 628, - 0, - 6280391 + 634, + 585, + 6340000 ], "Classes": { "Accessory": { @@ -144,6 +144,19 @@ } } }, + "Position": { + "Name": "Position", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Vector3" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Puffiness": { "Name": "Puffiness", "Scriptability": "ReadWrite", @@ -156,6 +169,32 @@ "Serialization": "Serializes" } } + }, + "Rotation": { + "Name": "Rotation", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Vector3" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Scale": { + "Name": "Scale", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Vector3" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } } }, "DefaultProperties": { @@ -180,9 +219,30 @@ "Order": { "Int32": 0 }, + "Position": { + "Vector3": [ + 0.0, + 0.0, + 0.0 + ] + }, "Puffiness": { "Float32": 1.0 }, + "Rotation": { + "Vector3": [ + 0.0, + 0.0, + 0.0 + ] + }, + "Scale": { + "Vector3": [ + 1.0, + 1.0, + 1.0 + ] + }, "SourceAssetId": { "Int64": -1 }, @@ -345,8 +405,8 @@ } } }, - "ActivityHistoryService": { - "Name": "ActivityHistoryService", + "AchievementService": { + "Name": "AchievementService", "Tags": [ "NotCreatable", "NotReplicated", @@ -1749,70 +1809,6 @@ } } }, - "endEffectorRotationConstraint": { - "Name": "endEffectorRotationConstraint", - "Scriptability": "None", - "DataType": { - "Value": "BinaryString" - }, - "Tags": [ - "Hidden", - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, - "endEffectorTranslationConstraint": { - "Name": "endEffectorTranslationConstraint", - "Scriptability": "None", - "DataType": { - "Value": "BinaryString" - }, - "Tags": [ - "Hidden", - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, - "endEffectorWeight": { - "Name": "endEffectorWeight", - "Scriptability": "None", - "DataType": { - "Value": "BinaryString" - }, - "Tags": [ - "Hidden", - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, - "facsControl": { - "Name": "facsControl", - "Scriptability": "None", - "DataType": { - "Value": "BinaryString" - }, - "Tags": [ - "Hidden", - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, "label": { "Name": "label", "Scriptability": "None", @@ -1893,22 +1889,6 @@ } } }, - "rootMotion": { - "Name": "rootMotion", - "Scriptability": "None", - "DataType": { - "Value": "BinaryString" - }, - "Tags": [ - "Hidden", - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, "transform": { "Name": "transform", "Scriptability": "None", @@ -1924,22 +1904,6 @@ "Serialization": "Serializes" } } - }, - "weight": { - "Name": "weight", - "Scriptability": "None", - "DataType": { - "Value": "BinaryString" - }, - "Tags": [ - "Hidden", - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } } }, "DefaultProperties": { @@ -1961,18 +1925,6 @@ "articulatedJoint": { "BinaryString": "" }, - "endEffectorRotationConstraint": { - "BinaryString": "" - }, - "endEffectorTranslationConstraint": { - "BinaryString": "" - }, - "endEffectorWeight": { - "BinaryString": "" - }, - "facsControl": { - "BinaryString": "" - }, "label": { "BinaryString": "AQAAAAEAAAAAAAAA" }, @@ -1988,14 +1940,8 @@ "preTransform": { "BinaryString": "AQAAAAEAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAA=" }, - "rootMotion": { - "BinaryString": "" - }, "transform": { "BinaryString": "AQAAAAEAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAA=" - }, - "weight": { - "BinaryString": "AQAAAAAAAAA=" } } }, @@ -2349,6 +2295,119 @@ } } }, + "Annotation": { + "Name": "Annotation", + "Tags": [], + "Superclass": "Instance", + "Properties": { + "AuthorColor3": { + "Name": "AuthorColor3", + "Scriptability": "None", + "DataType": { + "Value": "Color3" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "AuthorId": { + "Name": "AuthorId", + "Scriptability": "None", + "DataType": { + "Value": "Int64" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "Contents": { + "Name": "Contents", + "Scriptability": "None", + "DataType": { + "Value": "String" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "CreationTimeUnix": { + "Name": "CreationTimeUnix", + "Scriptability": "None", + "DataType": { + "Value": "Int64" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "LastModifiedTimeUnix": { + "Name": "LastModifiedTimeUnix", + "Scriptability": "None", + "DataType": { + "Value": "Int64" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "Resolved": { + "Name": "Resolved", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "TaggedUsers": { + "Name": "TaggedUsers", + "Scriptability": "None", + "DataType": { + "Value": "String" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + } + }, + "DefaultProperties": {} + }, "AnnotationsService": { "Name": "AnnotationsService", "Tags": [ @@ -2356,6 +2415,50 @@ "Service" ], "Superclass": "Instance", + "Properties": { + "Hovered": { + "Name": "Hovered", + "Scriptability": "None", + "DataType": { + "Value": "Ref" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "Selected": { + "Name": "Selected", + "Scriptability": "None", + "DataType": { + "Value": "Ref" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + } + }, + "DefaultProperties": {} + }, + "AppLifecycleObserverService": { + "Name": "AppLifecycleObserverService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", "Properties": {}, "DefaultProperties": {} }, @@ -2496,8 +2599,8 @@ }, "Color3": { "Color3": [ - 0.050980397, - 0.41176474, + 0.050980393, + 0.4117647, 0.6745098 ] }, @@ -2825,6 +2928,65 @@ } } }, + "AtmosphereSensor": { + "Name": "AtmosphereSensor", + "Tags": [], + "Superclass": "SensorBase", + "Properties": { + "AirDensity": { + "Name": "AirDensity", + "Scriptability": "Read", + "DataType": { + "Value": "Float32" + }, + "Tags": [ + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "RelativeWindVelocity": { + "Name": "RelativeWindVelocity", + "Scriptability": "Read", + "DataType": { + "Value": "Vector3" + }, + "Tags": [ + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + } + }, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + }, + "UpdateType": { + "Enum": 0 + } + } + }, "Attachment": { "Name": "Attachment", "Tags": [], @@ -3438,6 +3600,19 @@ "Serialization": "Serializes" } } + }, + "Volume": { + "Name": "Volume", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } } }, "DefaultProperties": { @@ -3464,6 +3639,9 @@ }, "Tags": { "Tags": [] + }, + "Volume": { + "Float32": 1.0 } } }, @@ -3895,6 +4073,112 @@ } } }, + "AudioFilter": { + "Name": "AudioFilter", + "Tags": [ + "NotBrowsable" + ], + "Superclass": "Instance", + "Properties": { + "Bypass": { + "Name": "Bypass", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "FilterType": { + "Name": "FilterType", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "AudioFilterType" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Frequency": { + "Name": "Frequency", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Gain": { + "Name": "Gain", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Q": { + "Name": "Q", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Bypass": { + "Bool": false + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "FilterType": { + "Enum": 0 + }, + "Frequency": { + "Float32": 2000.0 + }, + "Gain": { + "Float32": 0.0 + }, + "Q": { + "Float32": 0.707 + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + } + } + }, "AudioFlanger": { "Name": "AudioFlanger", "Tags": [ @@ -4253,6 +4537,19 @@ "Serialization": "Serializes" } } + }, + "Volume": { + "Name": "Volume", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } } }, "DefaultProperties": { @@ -4297,6 +4594,9 @@ }, "TimePosition": { "Float64": 0.0 + }, + "Volume": { + "Float32": 1.0 } } }, @@ -5984,6 +6284,70 @@ } } }, + "PhysicsCFrame": { + "Name": "PhysicsCFrame", + "Scriptability": "None", + "DataType": { + "Value": "CFrame" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "PhysicsLinearVelocity": { + "Name": "PhysicsLinearVelocity", + "Scriptability": "None", + "DataType": { + "Value": "Vector3" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "PhysicsRepRootPart": { + "Name": "PhysicsRepRootPart", + "Scriptability": "None", + "DataType": { + "Value": "Ref" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "PhysicsRotationalVelocity": { + "Name": "PhysicsRotationalVelocity", + "Scriptability": "None", + "DataType": { + "Value": "Vector3" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "PivotOffset": { "Name": "PivotOffset", "Scriptability": "ReadWrite", @@ -8848,8 +9212,8 @@ }, "Color3": { "Color3": [ - 0.050980397, - 0.41176474, + 0.050980393, + 0.4117647, 0.6745098 ] }, @@ -10084,9 +10448,9 @@ }, "BorderColor3": { "Color3": [ - 0.10588236, + 0.105882354, 0.16470589, - 0.20784315 + 0.20784314 ] }, "BorderMode": { @@ -11803,6 +12167,51 @@ } } }, + "ColorGradingEffect": { + "Name": "ColorGradingEffect", + "Tags": [ + "NotBrowsable" + ], + "Superclass": "PostEffect", + "Properties": { + "TonemapperPreset": { + "Name": "TonemapperPreset", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "TonemapperPreset" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "Enabled": { + "Bool": true + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + }, + "TonemapperPreset": { + "Enum": 0 + } + } + }, "CommandInstance": { "Name": "CommandInstance", "Tags": [ @@ -12170,8 +12579,8 @@ }, "Color3": { "Color3": [ - 0.050980397, - 0.41176474, + 0.050980393, + 0.4117647, 0.6745098 ] }, @@ -13402,8 +13811,8 @@ }, "Color3": { "Color3": [ - 0.050980397, - 0.41176474, + 0.050980393, + 0.4117647, 0.6745098 ] }, @@ -17074,9 +17483,7 @@ }, "EditableMesh": { "Name": "EditableMesh", - "Tags": [ - "NotReplicated" - ], + "Tags": [], "Superclass": "DataModelMesh", "Properties": { "MeshData": { @@ -17087,7 +17494,6 @@ }, "Tags": [ "Hidden", - "NotReplicated", "NotScriptable" ], "Kind": { @@ -17391,6 +17797,39 @@ ], "Superclass": "Instance", "Properties": { + "HiddenSelectionEnabled": { + "Name": "HiddenSelectionEnabled", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "IsInBackground": { + "Name": "IsInBackground", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "IsInCaptureMode": { "Name": "IsInCaptureMode", "Scriptability": "None", @@ -19565,8 +20004,8 @@ }, "Color3": { "Color3": [ - 0.050980397, - 0.41176474, + 0.050980393, + 0.4117647, 0.6745098 ] }, @@ -19824,9 +20263,9 @@ }, "BorderColor3": { "Color3": [ - 0.10588236, + 0.105882354, 0.16470589, - 0.20784315 + 0.20784314 ] }, "BorderMode": { @@ -20220,6 +20659,19 @@ } } }, + "RichText": { + "Name": "RichText", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Size": { "Name": "Size", "Scriptability": "ReadWrite", @@ -21945,6 +22397,22 @@ } } }, + "PreferredTextSize": { + "Name": "PreferredTextSize", + "Scriptability": "Read", + "DataType": { + "Enum": "PreferredTextSize" + }, + "Tags": [ + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "PreferredTransparency": { "Name": "PreferredTransparency", "Scriptability": "Read", @@ -22257,8 +22725,8 @@ }, "Color3": { "Color3": [ - 0.050980397, - 0.41176474, + 0.050980393, + 0.4117647, 0.6745098 ] }, @@ -25297,9 +25765,9 @@ }, "BorderColor3": { "Color3": [ - 0.10588236, + 0.105882354, 0.16470589, - 0.20784315 + 0.20784314 ] }, "BorderMode": { @@ -25778,9 +26246,9 @@ }, "BorderColor3": { "Color3": [ - 0.10588236, + 0.105882354, 0.16470589, - 0.20784315 + 0.20784314 ] }, "BorderMode": { @@ -27693,9 +28161,7 @@ "DataType": { "Enum": "Technology" }, - "Tags": [ - "NotScriptable" - ], + "Tags": [], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -28007,8 +28473,8 @@ }, "Color3": { "Color3": [ - 0.050980397, - 0.41176474, + 0.050980393, + 0.4117647, 0.6745098 ] }, @@ -31158,7 +31624,7 @@ "Float32": 0.0 }, "RenderFidelity": { - "Enum": 1 + "Enum": 0 }, "RightParamA": { "Float32": -0.5 @@ -35593,11 +36059,22 @@ }, "Path2D": { "Name": "Path2D", - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Superclass": "GuiBase", "Properties": { + "Closed": { + "Name": "Closed", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "Color3": { "Name": "Color3", "Scriptability": "ReadWrite", @@ -35702,6 +36179,9 @@ "Capabilities": { "SecurityCapabilities": 0 }, + "Closed": { + "Bool": false + }, "Color3": { "Color3": [ 0.0, @@ -35713,7 +36193,7 @@ "Bool": false }, "PropertiesSerialize": { - "BinaryString": "" + "BinaryString": "AAAAAA==" }, "SourceAssetId": { "Int64": -1 @@ -39505,6 +39985,97 @@ "Properties": {}, "DefaultProperties": {} }, + "RTAnimationTracker": { + "Name": "RTAnimationTracker", + "Tags": [ + "NotReplicated" + ], + "Superclass": "Instance", + "Properties": { + "Active": { + "Name": "Active", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "EnableFallbackAudioInput": { + "Name": "EnableFallbackAudioInput", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "SessionName": { + "Name": "SessionName", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "TrackerMode": { + "Name": "TrackerMode", + "Scriptability": "Read", + "DataType": { + "Enum": "TrackerMode" + }, + "Tags": [ + "Hidden", + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "TrackerType": { + "Name": "TrackerType", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "TrackerType" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + } + }, + "DefaultProperties": {} + }, "RayValue": { "Name": "RayValue", "Tags": [], @@ -42652,9 +43223,7 @@ "DataType": { "Enum": "ScreenInsets" }, - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -42785,7 +43354,10 @@ "DataType": { "Value": "Bool" }, - "Tags": [], + "Tags": [ + "Deprecated", + "Hidden" + ], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -42824,7 +43396,10 @@ "DataType": { "Enum": "Font" }, - "Tags": [], + "Tags": [ + "Deprecated", + "Hidden" + ], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -42837,7 +43412,10 @@ "DataType": { "Value": "Bool" }, - "Tags": [], + "Tags": [ + "Deprecated", + "Hidden" + ], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -43508,9 +44086,9 @@ }, "BorderColor3": { "Color3": [ - 0.10588236, + 0.105882354, 0.16470589, - 0.20784315 + 0.20784314 ] }, "BorderMode": { @@ -44135,8 +44713,8 @@ }, "Color3": { "Color3": [ - 0.050980397, - 0.41176474, + 0.050980393, + 0.4117647, 0.6745098 ] }, @@ -44236,8 +44814,8 @@ }, "Color3": { "Color3": [ - 0.050980397, - 0.41176474, + 0.050980393, + 0.4117647, 0.6745098 ] }, @@ -44288,8 +44866,8 @@ }, "Color3": { "Color3": [ - 0.050980397, - 0.41176474, + 0.050980393, + 0.4117647, 0.6745098 ] }, @@ -44375,8 +44953,8 @@ }, "Color3": { "Color3": [ - 0.050980397, - 0.41176474, + 0.050980393, + 0.4117647, 0.6745098 ] }, @@ -47215,8 +47793,8 @@ }, "Color3": { "Color3": [ - 0.050980397, - 0.41176474, + 0.050980393, + 0.4117647, 0.6745098 ] }, @@ -52603,8 +53181,8 @@ }, "Color3": { "Color3": [ - 0.050980397, - 0.41176474, + 0.050980393, + 0.4117647, 0.6745098 ] }, @@ -54627,6 +55205,35 @@ } } }, + "OpenTypeFeatures": { + "Name": "OpenTypeFeatures", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "OpenTypeFeaturesError": { + "Name": "OpenTypeFeaturesError", + "Scriptability": "Read", + "DataType": { + "Value": "String" + }, + "Tags": [ + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "OverlayNativeInput": { "Name": "OverlayNativeInput", "Scriptability": "None", @@ -55006,9 +55613,9 @@ }, "BorderColor3": { "Color3": [ - 0.10588236, + 0.105882354, 0.16470589, - 0.20784315 + 0.20784314 ] }, "BorderMode": { @@ -55061,6 +55668,9 @@ "MultiLine": { "Bool": false }, + "OpenTypeFeatures": { + "String": "" + }, "PlaceholderColor3": { "Color3": [ 0.7, @@ -55362,6 +55972,35 @@ } } }, + "OpenTypeFeatures": { + "Name": "OpenTypeFeatures", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "OpenTypeFeaturesError": { + "Name": "OpenTypeFeaturesError", + "Scriptability": "Read", + "DataType": { + "Value": "String" + }, + "Tags": [ + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "RichText": { "Name": "RichText", "Scriptability": "ReadWrite", @@ -55631,9 +56270,9 @@ }, "BorderColor3": { "Color3": [ - 0.10588236, + 0.105882354, 0.16470589, - 0.20784315 + 0.20784314 ] }, "BorderMode": { @@ -55683,6 +56322,9 @@ "Modal": { "Bool": false }, + "OpenTypeFeatures": { + "String": "" + }, "Position": { "UDim2": [ [ @@ -56456,6 +57098,35 @@ } } }, + "OpenTypeFeatures": { + "Name": "OpenTypeFeatures", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "OpenTypeFeaturesError": { + "Name": "OpenTypeFeaturesError", + "Scriptability": "Read", + "DataType": { + "Value": "String" + }, + "Tags": [ + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "RichText": { "Name": "RichText", "Scriptability": "ReadWrite", @@ -56722,9 +57393,9 @@ }, "BorderColor3": { "Color3": [ - 0.10588236, + 0.105882354, 0.16470589, - 0.20784315 + 0.20784314 ] }, "BorderMode": { @@ -56771,6 +57442,9 @@ "MaxVisibleGraphemes": { "Int32": -1 }, + "OpenTypeFeatures": { + "String": "" + }, "Position": { "UDim2": [ [ @@ -59033,6 +59707,323 @@ } } }, + "UIDragDetector": { + "Name": "UIDragDetector", + "Tags": [ + "NotBrowsable" + ], + "Superclass": "UIComponent", + "Properties": { + "ActivatedCursorIcon": { + "Name": "ActivatedCursorIcon", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Content" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "BoundingUI": { + "Name": "BoundingUI", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Ref" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "CursorIcon": { + "Name": "CursorIcon", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Content" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DragAxis": { + "Name": "DragAxis", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Vector2" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DragRelativity": { + "Name": "DragRelativity", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "UIDragDetectorDragRelativity" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DragRotation": { + "Name": "DragRotation", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DragSpace": { + "Name": "DragSpace", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "UIDragDetectorDragSpace" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DragStyle": { + "Name": "DragStyle", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "UIDragDetectorDragStyle" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "DragUDim2": { + "Name": "DragUDim2", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "UDim2" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Enabled": { + "Name": "Enabled", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "MaxDragAngle": { + "Name": "MaxDragAngle", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "MaxDragTranslation": { + "Name": "MaxDragTranslation", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "UDim2" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "MinDragAngle": { + "Name": "MinDragAngle", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "MinDragTranslation": { + "Name": "MinDragTranslation", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "UDim2" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "ReferenceUIInstance": { + "Name": "ReferenceUIInstance", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Ref" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "ResponseStyle": { + "Name": "ResponseStyle", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "UIDragDetectorResponseStyle" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "ActivatedCursorIcon": { + "Content": "" + }, + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "CursorIcon": { + "Content": "" + }, + "DefinesCapabilities": { + "Bool": false + }, + "DragAxis": { + "Vector2": [ + 1.0, + 0.0 + ] + }, + "DragRelativity": { + "Enum": 0 + }, + "DragRotation": { + "Float32": 0.0 + }, + "DragSpace": { + "Enum": 0 + }, + "DragStyle": { + "Enum": 0 + }, + "DragUDim2": { + "UDim2": [ + [ + 0.0, + 0 + ], + [ + 0.0, + 0 + ] + ] + }, + "Enabled": { + "Bool": true + }, + "MaxDragAngle": { + "Float32": 0.0 + }, + "MaxDragTranslation": { + "UDim2": [ + [ + 0.0, + 0 + ], + [ + 0.0, + 0 + ] + ] + }, + "MinDragAngle": { + "Float32": 0.0 + }, + "MinDragTranslation": { + "UDim2": [ + [ + 0.0, + 0 + ], + [ + 0.0, + 0 + ] + ] + }, + "ResponseStyle": { + "Enum": 0 + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + } + } + }, + "UIDragDetectorService": { + "Name": "UIDragDetectorService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": {} + }, "UIFlexItem": { "Name": "UIFlexItem", "Tags": [ @@ -61317,6 +62308,22 @@ } } }, + "PreferredTextSize": { + "Name": "PreferredTextSize", + "Scriptability": "None", + "DataType": { + "Enum": "PreferredTextSize" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "PreferredTransparency": { "Name": "PreferredTransparency", "Scriptability": "None", @@ -63496,9 +64503,9 @@ }, "BorderColor3": { "Color3": [ - 0.10588236, + 0.105882354, 0.16470589, - 0.20784315 + 0.20784314 ] }, "BorderMode": { @@ -63803,9 +64810,9 @@ }, "BorderColor3": { "Color3": [ - 0.10588236, + 0.105882354, 0.16470589, - 0.20784315 + 0.20784314 ] }, "BorderMode": { @@ -64054,6 +65061,19 @@ "Serialization": "Serializes" } } + }, + "ToolTip": { + "Name": "ToolTip", + "Scriptability": "None", + "DataType": { + "Value": "String" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } } }, "DefaultProperties": { @@ -64077,6 +65097,9 @@ }, "Title": { "String": "" + }, + "ToolTip": { + "String": "" } } }, @@ -65004,8 +66027,8 @@ }, "Color3": { "Color3": [ - 0.050980397, - 0.41176474, + 0.050980393, + 0.4117647, 0.6745098 ] }, @@ -65217,21 +66240,6 @@ } } }, - "EditorLiveScripting": { - "Name": "EditorLiveScripting", - "Scriptability": "None", - "DataType": { - "Enum": "EditorLiveScripting" - }, - "Tags": [ - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, "ExplicitAutoJoints": { "Name": "ExplicitAutoJoints", "Scriptability": "None", @@ -65720,9 +66728,6 @@ "DistributedGameTime": { "Float64": 0.0 }, - "EditorLiveScripting": { - "Enum": 0 - }, "ExplicitAutoJoints": { "Bool": true }, @@ -65878,6 +66883,44 @@ } } }, + "WorkspaceAnnotation": { + "Name": "WorkspaceAnnotation", + "Tags": [], + "Superclass": "Annotation", + "Properties": { + "Adornee": { + "Name": "Adornee", + "Scriptability": "None", + "DataType": { + "Value": "Ref" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "Position": { + "Name": "Position", + "Scriptability": "None", + "DataType": { + "Value": "CFrame" + }, + "Tags": [ + "Hidden" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + } + }, + "DefaultProperties": {} + }, "WorldModel": { "Name": "WorldModel", "Tags": [], @@ -65981,6 +67024,141 @@ "Properties": {}, "DefaultProperties": {} }, + "WrapDeformer": { + "Name": "WrapDeformer", + "Tags": [ + "NotBrowsable" + ], + "Superclass": "BaseWrap", + "Properties": { + "Amount": { + "Name": "Amount", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Enabled": { + "Name": "Enabled", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "RenderMeshID": { + "Name": "RenderMeshID", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Content" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "Amount": { + "Float32": 1.0 + }, + "Attributes": { + "Attributes": {} + }, + "CageMeshId": { + "Content": "" + }, + "CageOrigin": { + "CFrame": { + "position": [ + 0.0, + 0.0, + 0.0 + ], + "orientation": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0 + ] + ] + } + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "Enabled": { + "Bool": true + }, + "HSRAssetId": { + "Content": "" + }, + "ImportOrigin": { + "CFrame": { + "position": [ + 0.0, + 0.0, + 0.0 + ], + "orientation": [ + [ + 1.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.0 + ] + ] + } + }, + "RenderMeshID": { + "Content": "" + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + }, + "TemporaryCageMeshId": { + "Content": "" + } + } + }, "WrapLayer": { "Name": "WrapLayer", "Tags": [], @@ -66827,6 +68005,22 @@ "Enabled": 2 } }, + "AudioFilterType": { + "name": "AudioFilterType", + "items": { + "Bandpass": 9, + "HighShelf": 2, + "Highpass12dB": 6, + "Highpass24dB": 7, + "Highpass48dB": 8, + "LowShelf": 1, + "Lowpass12dB": 3, + "Lowpass24dB": 4, + "Lowpass48dB": 5, + "Notch": 10, + "Peak": 0 + } + }, "AudioSubType": { "name": "AudioSubType", "items": { @@ -67832,14 +69026,6 @@ "Sine": 1 } }, - "EditorLiveScripting": { - "name": "EditorLiveScripting", - "items": { - "Default": 0, - "Disabled": 1, - "Enabled": 2 - } - }, "ElasticBehavior": { "name": "ElasticBehavior", "items": { @@ -68564,6 +69750,13 @@ "Menu": 319, "Minus": 45, "Mode": 313, + "MouseBackButton": 1021, + "MouseLeftButton": 1018, + "MouseMiddleButton": 1020, + "MouseNoButton": 1022, + "MouseRightButton": 1019, + "MouseX": 1023, + "MouseY": 1024, "N": 110, "Nine": 57, "NumLock": 300, @@ -69359,6 +70552,15 @@ "TwoAttachment": 1 } }, + "PreferredTextSize": { + "name": "PreferredTextSize", + "items": { + "Large": 2, + "Larger": 3, + "Largest": 4, + "Medium": 1 + } + }, "PrimalPhysicsSolver": { "name": "PrimalPhysicsSolver", "items": { @@ -70329,11 +71531,12 @@ "name": "TeleportMethod", "items": { "TeleportPartyAsync": 3, + "TeleportToInstanceBack": 5, "TeleportToPlaceInstance": 1, "TeleportToPrivateServer": 2, "TeleportToSpawnByName": 0, "TeleportToVIPServer": 4, - "TeleportUnknown": 5 + "TeleportUnknown": 6 } }, "TeleportResult": { @@ -70363,6 +71566,7 @@ "name": "TeleportType", "items": { "ToInstance": 1, + "ToInstanceBack": 4, "ToPlace": 0, "ToReservedServer": 2, "ToVIPServer": 3 @@ -70528,6 +71732,13 @@ "Precise": 2 } }, + "TonemapperPreset": { + "name": "TonemapperPreset", + "items": { + "Default": 0, + "Retro": 1 + } + }, "TopBottom": { "name": "TopBottom", "items": { @@ -70624,6 +71835,14 @@ "LODCameraRecommendDisable": 0 } }, + "TrackerType": { + "name": "TrackerType", + "items": { + "Face": 1, + "None": 0, + "UpperBody": 2 + } + }, "TriStateBoolean": { "name": "TriStateBoolean", "items": { @@ -70639,6 +71858,21 @@ "Completed": 1 } }, + "UIDragDetectorDragRelativity": { + "name": "UIDragDetectorDragRelativity", + "items": { + "Absolute": 0, + "Relative": 1 + } + }, + "UIDragDetectorDragSpace": { + "name": "UIDragDetectorDragSpace", + "items": { + "LayerCollector": 1, + "Parent": 0, + "Reference": 2 + } + }, "UIDragDetectorDragStyle": { "name": "UIDragDetectorDragStyle", "items": { diff --git a/rbx_reflection_database/CHANGELOG.md b/rbx_reflection_database/CHANGELOG.md index 82e276822..693fea38d 100644 --- a/rbx_reflection_database/CHANGELOG.md +++ b/rbx_reflection_database/CHANGELOG.md @@ -1,7 +1,7 @@ # rbx\_reflection_database Changelog ## Unreleased Changes -* Updated to Roblox version 628 +* Updated to Roblox version 634 ## 0.2.10+roblox-607 (2024-01-16) * Updated to Roblox version 607 diff --git a/rbx_reflection_database/database.msgpack b/rbx_reflection_database/database.msgpack index 53a8b026c23672009f1914f56447f87ce0c631b3..6ff894b789d64a7aa7f7023f42b552b4daf7929e 100644 GIT binary patch delta 4912 zcmcgwdvH|M8Q*jF-n$_@Lf#2^m;{3%kRb_?fW0d)VZtI!uE7X@K!d^z`@y?|+GDF>x zhvJLDQOBAfxki7dd_5@z4paKsP*RI>&_Q{v{(1TRYoT&{VqEHArK_RA#$%_mt>0u9 zIB99_`PF-Lx`Apz;v}2EgYkxbIoJzPnkR)mtH0x(unXc+_Y|(Tf|$8366J*tcn6uSZXX5PcTpKI zK93EL94Hcai5Ts4Pf)PkOhv-;&+60Xj~0no+popejB9yYi#rGb=Pqi2HrJw8%Q&Z0 zE?8|1Hf){HxGg%V6+Tdnoq~M_Cf0c=Ib4i{f)iAF{E&rfY{b@DCl;OVKxWcJv`4I2}!7^%~4O1<@UZbR6|c z3OOgzXi^)Kn)JhI@f`+OtWM1@YHMSFn@4y>uymdXc3-#)-+oJOI17^8t#YV3^ zPi3PB&+8>&v(SFeZ>ruva`i(6=yAEdrca)?Ioh+xLWjl<8C_PJV6xdIEV?Hdxo2&> zJiIAC;;2_-X?0+?mxju8DmwJ|gr2;$IvLjXFeXE9DQDx|y>RVCbT`veW}Ad`ZPkCYYUjyNJqz6;+{Q*T}(bQiEQ<+;^~i(mJT@V#lyKCw=a2tpUoM3pS%8R_UM2)uxvh7TV~ zn)%83{EUIY^ZAy`zl9G33d56`be3o9HJrKmq!tcJMb2vD8%r9bC9 z4?DR!J3d+|I3@4kwo!|~<7Up`z+$C{omg@QATZ}MI%aMFpbe3^9q~|5uiq#;62c(m z9F-P3eTd|}1j;+{s6HfML#awd8cI$MM1UZ3l~)STwFgiK^t^!Xg=@V`n*7$va3$$5 z`o@sH@AMj*)r$EVY$w|z5xIm{cVTr0;!rh&)+LXaoo2p}tKZfr3NGI2p31|ub*Ms# zJc9m^=d(ch>Jzk)o$lZ+xPLyIq0GIC5@(=xxLC}@Kr%zI@~-g+D6r78VDl!%C|?{- zfR4*36<*rJ+@pN@cl7E4bV%t6r_%Mt6U0*uSR_%(f?K2-+fM8bhI*?pXZ3n2NGSIl zSf(gZ)QUj&r6@5;)aRu^_9`!8>aNg0SRwbMI!nGfJ5E`1nCdkIdYpKGno$YHO8NyD zG3%4z{7U_uQ1LD@DCl3*>899@{!*7s4PXcQitK`ucv}01?WdU>Fn*8nmDyYLpCL7& zh51Ib^%e?({p~*B3@8~s9b*!pfg`bVW(j>4th&G~h4D0$qdrM%@PMgmdFmEIEKPG?fk`e`3<0JA#VH^&Y>8v)k*4t`@M&yu&5AU;8nMe6A(N zJ3+w-6cJNHl0CUb6>4Z0nqXwk7AY6pZ-A|%)Y2tG7O!C>$B{t+Ou(T9z|gZEt%~vk zT3GclT3ikBOW;Ns^E2g_@94KwK+$J(oRS<#AJ@Z{WM-CpY@+8N!rbH=dB#6 zH5ZFqV=hHA}4LbHP;A6~kmn+rV$Q52N!L#EiHg=**~XIE=>2hj4l zfh?F4iq?b;sH+%TY^07=DfvWcB0QZ&$Cr($tgot4YpH4cpc-yBh&Bm(WA2+%?VYMD z=kW2-8sx9ahkYCvA49R=_*|blpDb77;7I*HsLC{Q`XbO4YKWp79GrWOnFpzzR(;a6$&5^!v$SHnl`=ux@1s&Z)oNlPbrr5P`+Ea- zAShQ-cfe_)4b;^>ohOGi8>}`@#Lm`GA|&t+I|$af`+b?)n=O7lT+X$?;X{a2 z6NgZQ{JU$>@Z2G^L?vb)BMkz%9ZpVmVW|F|Ca8uvxX6>`5YVFC>FNRwUY_hU*E4y{>Uo@{ZjsAj6J>A;i3Uf$~9 zoX#18Yix~8HBH#wKn<&;3g+Zm3)u-SH_uvVnBel3TMI)5%7lkC9W+EJzlz?+q&QU- z+AmTym?NY*uWt(Nt;F0mo$^=<9mSOam(fKk&n-22_*%OlW@Br(qk%^tZg!{bRJQr-JXT zAWhPW{t9Kz8|;?}rl5y`yMm!dkCbs@Bc}SaKT+SW{W~SPuN+%#u4V*tKW3wpu#egP zyR!D5w2-piA&6RM)oOIM^7Z=De#|2HL!7#E2HyLDILr-2c><%@=WT?-3-$)tPiq-Ex dYC9x|sE_odB#Y`u>hWa;O3N|Io=}4_^FIQDu5|za delta 1763 zcmah~ZBP|u6z1LCcNYb@B9L+sxrlH_K1`h;^JCy*d=3x^i8G0|To&BC?!w*`#6FZX z(+u^p-VQTOW{yZ>Sfg8=Qc=gLX{Hjf)U0Vzb82$zLo>@MN877%C2;iD?m6dq&Uv19 z&%E3D(^%{tYcn>79AWg3-jIdIKmDFLw>xqhA!~e@6^6jvFpAlH^0E=dy=L@rW1zR0 zPclpB0oM6}%dN{zvfffCdv#T7sgSfL*)918<>Ar+Hq%@%%$-QujKit&tR6|J&8w@E z+!kq$s*Ad;DzjC^t81dH=>B_`4Oe=8-Zzc`Eh;rp@p=Y#xj!V(DS7vRMpcqrzex8F zO$Cs#Z`X-#uO(C0RF8jP5U84IX+0!rr>3fUsT%O(zx{5!IX~XGo|<9&oc^S3NAs-- zx1Rx`F}X3$7)eB4Gtm<^)(0(KG2ofn~_B90~`$k z8EZSD@U zu!HMqReuJbkJ< z9)8(C!=Udxk<9MD+Eek_@uVg+2!Wy^5{WTsBw}1J*Jb7A+kCsqRDF)r;E~;;F4aPD zCz%0{m9j4Uu#;R7NGrCzL%w||zzRd{9I4=MPC{$a$zfzQL`w7lxZcU|#@4g(#_RiM zV)dWo_Y|@LOXHYi7SE4k9=W3f3!Th`f}qxR>{A)%@B#7W<;<`S5uq4VvR@YDp)G#ieBj@h^*wY!8VGj*eA1I zVm$xJEU;Ne0Fwn00lOBnvmhajnE)FFE(%ucq7NjnK7Hqt6Q(nhsR{P;7vCza%2^A&o0 z1ny<|Wm!Qvd-3n-{Hj|^6j;{`+~eZMP{>`$je_s;c@ailW9PvQYJI2E1^iSTU&uRR z`mNjH+8G)O4b}V!l4>LtjK=B({99a}nO7@Y_h*URBvrUIxk0z?1pnQV+sjl%YTcfv zEL}3B42~1bM5Jy$VuU3tx`AIp>_b3S<6CrG*~q7Js5kMU3?@CpFCRuaaLa1m7lFM7 zzjk8s-Kgz@lTiK-pNMmN_zTfY$aS3kC4ZR3mXrL|ILMLtX#D&SzRMZ2W>2N$ks4G@ zFBdhv#pP{L+$_9d7ZgGvB2KtEV)f2SwaEHuh>BYxm^4;6N-<@;aG8bT6rmo7Q;5c= Jox;Ab{{R?-sLB8U diff --git a/rbx_reflector/src/cli/defaults_place.rs b/rbx_reflector/src/cli/defaults_place.rs index 430dbef36..0c93d6d4a 100644 --- a/rbx_reflector/src/cli/defaults_place.rs +++ b/rbx_reflector/src/cli/defaults_place.rs @@ -147,7 +147,8 @@ fn generate_place_with_all_classes(path: &PathBuf, dump: &Dump) -> anyhow::Resul | "Bone" | "BaseWrap" | "WrapLayer" - | "WrapTarget" => continue, + | "WrapTarget" + | "WrapDeformer" => continue, "StarterPlayer" => { instance.add_child(Instance::new("StarterPlayerScripts")); @@ -168,6 +169,7 @@ fn generate_place_with_all_classes(path: &PathBuf, dump: &Dump) -> anyhow::Resul instance.add_child(Instance::new("BaseWrap")); instance.add_child(Instance::new("WrapLayer")); instance.add_child(Instance::new("WrapTarget")); + instance.add_child(Instance::new("WrapDeformer")); } _ => {} From 91ac37cd23b5f9d38c08b1de984c6c1761d39d6e Mon Sep 17 00:00:00 2001 From: Micah Date: Tue, 23 Jul 2024 09:26:48 -0700 Subject: [PATCH 41/64] Release rbx_types v1.9.0 --- rbx_types/CHANGELOG.md | 2 ++ rbx_types/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/rbx_types/CHANGELOG.md b/rbx_types/CHANGELOG.md index 4ac3d09d1..cb2a72953 100644 --- a/rbx_types/CHANGELOG.md +++ b/rbx_types/CHANGELOG.md @@ -1,6 +1,8 @@ # rbx_types Changelog ## Unreleased Changes + +## 1.9.0 (2024-07-23) * Implement `IntoIterator` for `&Attributes`. ([#386]) * Implement `Extend<(String, Variant)>` for `Attributes`. ([#386]) * Implement `clear` and `drain` for `Attributes`. ([#409]) diff --git a/rbx_types/Cargo.toml b/rbx_types/Cargo.toml index d21dd687e..7e3140b48 100644 --- a/rbx_types/Cargo.toml +++ b/rbx_types/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_types" description = "Types used to represent Roblox values" -version = "1.8.0" +version = "1.9.0" authors = ["Lucien Greathouse "] edition = "2018" license = "MIT" From aa1dc0b4899c014b6d713d12496aa8b06597b78a Mon Sep 17 00:00:00 2001 From: Micah Date: Tue, 23 Jul 2024 09:27:18 -0700 Subject: [PATCH 42/64] Release rbx_dom_weak v2.8.0 --- rbx_dom_weak/CHANGELOG.md | 2 ++ rbx_dom_weak/Cargo.toml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/rbx_dom_weak/CHANGELOG.md b/rbx_dom_weak/CHANGELOG.md index 81c2198c2..747646dd8 100644 --- a/rbx_dom_weak/CHANGELOG.md +++ b/rbx_dom_weak/CHANGELOG.md @@ -1,6 +1,8 @@ # rbx_dom_weak Changelog ## Unreleased Changes + +## 2.8.0 (2024-07-23) * Added `InstanceBuilder::with_referent` that allows building instance with predefined `Ref` ([#400]) * Added `WeakDom::get_unique_id` to get the UniqueId for a provided referent. ([#405]) diff --git a/rbx_dom_weak/Cargo.toml b/rbx_dom_weak/Cargo.toml index 91d6b4d7f..3a2c343fe 100644 --- a/rbx_dom_weak/Cargo.toml +++ b/rbx_dom_weak/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_dom_weak" description = "Weakly-typed Roblox DOM implementation for Rust" -version = "2.7.0" +version = "2.8.0" license = "MIT" documentation = "https://docs.rs/rbx_dom_weak" homepage = "https://github.com/rojo-rbx/rbx-dom" @@ -11,7 +11,7 @@ authors = ["Lucien Greathouse "] edition = "2018" [dependencies] -rbx_types = { version = "1.8.0", path = "../rbx_types", features = ["serde"] } +rbx_types = { version = "1.9.0", path = "../rbx_types", features = ["serde"] } serde = "1.0.137" From 5dad8f00db2d725da656c182fd91389cd9fa022b Mon Sep 17 00:00:00 2001 From: Micah Date: Tue, 23 Jul 2024 09:27:40 -0700 Subject: [PATCH 43/64] Release rbx_reflection v4.6.0 --- rbx_reflection/CHANGELOG.md | 2 ++ rbx_reflection/Cargo.toml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/rbx_reflection/CHANGELOG.md b/rbx_reflection/CHANGELOG.md index 5378a731a..dcf6d3578 100644 --- a/rbx_reflection/CHANGELOG.md +++ b/rbx_reflection/CHANGELOG.md @@ -1,6 +1,8 @@ # rbx_reflection Changelog ## Unreleased Changes + +## 4.6.0 (2024-07-23) * Add `superclasses` method to `ReflectionDatabase` to get a set of superclasses for a given class. ([#402]) * Added method `ReflectionDatabase::find_default_property`, which finds the default value of a property given its name and a class that inherits it. ([#420]) diff --git a/rbx_reflection/Cargo.toml b/rbx_reflection/Cargo.toml index 39fa521e2..a0cce8204 100644 --- a/rbx_reflection/Cargo.toml +++ b/rbx_reflection/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_reflection" description = "Roblox reflection database and ambiguous type resolution" -version = "4.5.0" +version = "4.6.0" license = "MIT" documentation = "https://docs.rs/rbx_reflection" homepage = "https://github.com/rojo-rbx/rbx-dom" @@ -11,7 +11,7 @@ authors = ["Lucien Greathouse "] edition = "2018" [dependencies] -rbx_types = { version = "1.8.0", path = "../rbx_types", features = ["serde"] } +rbx_types = { version = "1.9.0", path = "../rbx_types", features = ["serde"] } serde = { version = "1.0.137", features = ["derive"] } thiserror = "1.0.31" From f84c89a0eb6cd54cee96e7ace773e7ea970db219 Mon Sep 17 00:00:00 2001 From: Micah Date: Tue, 23 Jul 2024 09:28:11 -0700 Subject: [PATCH 44/64] Release rbx_reflection_database v0.2.11+roblox-634 --- rbx_reflection_database/CHANGELOG.md | 2 ++ rbx_reflection_database/Cargo.toml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/rbx_reflection_database/CHANGELOG.md b/rbx_reflection_database/CHANGELOG.md index 693fea38d..31f67c22d 100644 --- a/rbx_reflection_database/CHANGELOG.md +++ b/rbx_reflection_database/CHANGELOG.md @@ -1,6 +1,8 @@ # rbx\_reflection_database Changelog ## Unreleased Changes + +# 0.2.11+roblox-634 (2024-07-23) * Updated to Roblox version 634 ## 0.2.10+roblox-607 (2024-01-16) diff --git a/rbx_reflection_database/Cargo.toml b/rbx_reflection_database/Cargo.toml index f3b59b029..14d59e0c5 100644 --- a/rbx_reflection_database/Cargo.toml +++ b/rbx_reflection_database/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_reflection_database" description = "Bundled reflection database for Roblox projects" -version = "0.2.10+roblox-607" +version = "0.2.11+roblox-634" license = "MIT" documentation = "https://docs.rs/rbx_reflection_database" homepage = "https://github.com/rojo-rbx/rbx-dom" @@ -13,7 +13,7 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -rbx_reflection = { version = "4.5.0", path = "../rbx_reflection" } +rbx_reflection = { version = "4.6.0", path = "../rbx_reflection" } lazy_static = "1.4.0" serde = "1.0.137" From 3749df82d4eedd63ad8850f58c5b819f3b4bb9a0 Mon Sep 17 00:00:00 2001 From: Micah Date: Tue, 23 Jul 2024 09:30:22 -0700 Subject: [PATCH 45/64] Release rbx_xml v0.13.4 --- rbx_xml/CHANGELOG.md | 3 +++ rbx_xml/Cargo.toml | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/rbx_xml/CHANGELOG.md b/rbx_xml/CHANGELOG.md index 1808a9745..03a6db207 100644 --- a/rbx_xml/CHANGELOG.md +++ b/rbx_xml/CHANGELOG.md @@ -2,6 +2,9 @@ ## Unreleased +## 0.13.4 (2024-07-23) +* Updated rbx-dom dependencies + ## 0.13.3 (2024-01-16) * Add the ability to specify a `ReflectionDatabase` to use for serializing and deserializing. This takes the form of `DecodeOptions::reflection_database` and `EncodeOptions::reflection_database`. ([#375]) diff --git a/rbx_xml/Cargo.toml b/rbx_xml/Cargo.toml index 173504f6f..6be82d228 100644 --- a/rbx_xml/Cargo.toml +++ b/rbx_xml/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_xml" description = "Implementation of Roblox's XML file formats, rbxlx and rbxmx" -version = "0.13.3" +version = "0.13.4" license = "MIT" documentation = "https://docs.rs/rbx_xml" homepage = "https://github.com/rojo-rbx/rbx-dom" @@ -11,9 +11,9 @@ authors = ["Lucien Greathouse "] edition = "2018" [dependencies] -rbx_dom_weak = { version = "2.7.0", path = "../rbx_dom_weak" } -rbx_reflection = { version = "4.5.0", path = "../rbx_reflection" } -rbx_reflection_database = { version = "0.2.10", path = "../rbx_reflection_database" } +rbx_dom_weak = { version = "2.8.0", path = "../rbx_dom_weak" } +rbx_reflection = { version = "4.6.0", path = "../rbx_reflection" } +rbx_reflection_database = { version = "0.2.11", path = "../rbx_reflection_database" } base64 = "0.13.0" log = "0.4.17" From 29ced42967c8bad8debc77d649da3ce17e9451a8 Mon Sep 17 00:00:00 2001 From: Micah Date: Tue, 23 Jul 2024 09:37:28 -0700 Subject: [PATCH 46/64] Release rbx_binary v0.7.5 --- rbx_binary/CHANGELOG.md | 1 + rbx_binary/Cargo.toml | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/rbx_binary/CHANGELOG.md b/rbx_binary/CHANGELOG.md index 15e76ec51..76a82e192 100644 --- a/rbx_binary/CHANGELOG.md +++ b/rbx_binary/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased +## 0.7.5 (2024-07-23) * Within `PRNT` chunks, parent-child links are now generated depth-first so that parents always come after their children in the chunk. ([#411]) [#411]: https://github.com/rojo-rbx/rbx-dom/pull/411 diff --git a/rbx_binary/Cargo.toml b/rbx_binary/Cargo.toml index 9e1c30963..71d607cb7 100644 --- a/rbx_binary/Cargo.toml +++ b/rbx_binary/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_binary" description = "Implementation of Roblox's binary model (rbxm) and place (rbxl) file formats" -version = "0.7.4" +version = "0.7.5" license = "MIT" documentation = "https://docs.rs/rbx_binary" homepage = "https://github.com/rojo-rbx/rbx-dom" @@ -14,9 +14,9 @@ edition = "2018" unstable_text_format = ["serde"] [dependencies] -rbx_dom_weak = { version = "2.7.0", path = "../rbx_dom_weak" } -rbx_reflection = { version = "4.5.0", path = "../rbx_reflection" } -rbx_reflection_database = { version = "0.2.10", path = "../rbx_reflection_database" } +rbx_dom_weak = { version = "2.8.0", path = "../rbx_dom_weak" } +rbx_reflection = { version = "4.6.0", path = "../rbx_reflection" } +rbx_reflection_database = { version = "0.2.11", path = "../rbx_reflection_database" } log = "0.4.17" lz4 = "1.23.3" From f4c9981474754ae0926def17f1416a1f6da88f52 Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler Date: Mon, 5 Aug 2024 11:27:12 -0700 Subject: [PATCH 47/64] Use as_deref instead of clone when writing font cached face ID (#433) --- rbx_binary/src/serializer/state.rs | 2 +- rbx_types/src/attributes/writer.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rbx_binary/src/serializer/state.rs b/rbx_binary/src/serializer/state.rs index cd2c832f3..6133cdca5 100644 --- a/rbx_binary/src/serializer/state.rs +++ b/rbx_binary/src/serializer/state.rs @@ -798,7 +798,7 @@ impl<'dom, 'db, W: Write> SerializerState<'dom, 'db, W> { chunk.write_le_u16(value.weight.as_u16())?; chunk.write_u8(value.style.as_u8())?; chunk.write_string( - &value.cached_face_id.clone().unwrap_or_default(), + value.cached_face_id.as_deref().unwrap_or_default(), )?; } else { return type_mismatch(i, &rbx_value, "Font"); diff --git a/rbx_types/src/attributes/writer.rs b/rbx_types/src/attributes/writer.rs index 0f31d574f..fcbadb80a 100644 --- a/rbx_types/src/attributes/writer.rs +++ b/rbx_types/src/attributes/writer.rs @@ -95,7 +95,7 @@ pub(crate) fn write_attributes( write_string(&mut writer, &font.family)?; write_string( &mut writer, - &font.cached_face_id.clone().unwrap_or_default(), + font.cached_face_id.as_deref().unwrap_or_default(), )?; } From 064d2c0605220f3fe0a153162a0f874c5ca3b424 Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler Date: Mon, 5 Aug 2024 11:29:04 -0700 Subject: [PATCH 48/64] Populate relevant_instances with depth-first post-order traversal (#432) --- rbx_binary/CHANGELOG.md | 3 + rbx_binary/src/serializer/state.rs | 54 +- ...ts__serializer__default_shared_string.snap | 4 +- ...zer__logical_properties_basepart_size.snap | 4 +- ...ests__serializer__migrated_properties.snap | 59 +- ...binary__tests__serializer__part_color.snap | 9 +- ..._tests__serializer__partially_present.snap | 5 +- ...bx_binary__tests__util__axes__encoded.snap | 16 +- ...__tests__util__baseplate-566__encoded.snap | 1611 ++++++++--------- ...s__util__cframe-case-mixture__encoded.snap | 4 +- ...__util__cframe-special-cases__encoded.snap | 48 +- ...x_binary__tests__util__faces__encoded.snap | 129 +- ...gui-inset-and-font-migration__encoded.snap | 407 +++-- ...s-with-security-capabilities__encoded.snap | 4 +- ...tionalcoordinateframe-models__encoded.snap | 4 +- ...y__tests__util__package-link__encoded.snap | 49 +- ...y__tests__util__ref-adjacent__encoded.snap | 5 +- ...nary__tests__util__ref-child__encoded.snap | 29 +- ...ary__tests__util__ref-parent__encoded.snap | 29 +- ...y__tests__util__sharedstring__encoded.snap | 189 +- ...ry__tests__util__three-beams__encoded.snap | 5 +- ...util__three-brickcolorvalues__encoded.snap | 4 +- ...ts__util__three-color3values__encoded.snap | 5 +- ...tests__util__three-intvalues__encoded.snap | 4 +- ...__util__three-nested-folders__encoded.snap | 12 +- ...tests__util__three-screengui__encoded.snap | 5 +- ...sts__util__three-uigradients__encoded.snap | 5 +- ...s__util__three-uigridlayouts__encoded.snap | 5 +- ...s__util__three-unique-frames__encoded.snap | 5 +- ...ts__util__three-unique-parts__encoded.snap | 5 +- ...s__util__three-vector3values__encoded.snap | 5 +- ...ests__util__two-cframevalues__encoded.snap | 5 +- ...ests__util__two-imagebuttons__encoded.snap | 5 +- ...__util__two-particleemitters__encoded.snap | 5 +- ..._tests__util__two-ray-values__encoded.snap | 5 +- ...ts__util__two-terrainregions__encoded.snap | 4 +- ..._binary__tests__util__unions__encoded.snap | 5 +- ..._tests__util__weldconstraint__encoded.snap | 44 +- 38 files changed, 1402 insertions(+), 1393 deletions(-) diff --git a/rbx_binary/CHANGELOG.md b/rbx_binary/CHANGELOG.md index 76a82e192..c509fb84b 100644 --- a/rbx_binary/CHANGELOG.md +++ b/rbx_binary/CHANGELOG.md @@ -1,6 +1,9 @@ # rbx_binary Changelog ## Unreleased +* Changed the way instances are added to the serializer to a depth-first post-order traversal. ([#432]) + +[#432]: https://github.com/rojo-rbx/rbx-dom/pull/432 ## 0.7.5 (2024-07-23) * Within `PRNT` chunks, parent-child links are now generated depth-first so that parents always come after their children in the chunk. ([#411]) diff --git a/rbx_binary/src/serializer/state.rs b/rbx_binary/src/serializer/state.rs index 6133cdca5..9b83713a7 100644 --- a/rbx_binary/src/serializer/state.rs +++ b/rbx_binary/src/serializer/state.rs @@ -1,6 +1,6 @@ use std::{ borrow::{Borrow, Cow}, - collections::{BTreeMap, BTreeSet, HashMap, HashSet, VecDeque}, + collections::{BTreeMap, BTreeSet, HashMap, HashSet}, convert::TryInto, io::Write, }; @@ -247,19 +247,52 @@ impl<'dom, 'db, W: Write> SerializerState<'dom, 'db, W> { /// serialization with this serializer. #[profiling::function] pub fn add_instances(&mut self, referents: &[Ref]) -> Result<(), InnerError> { - let mut to_visit = VecDeque::new(); - to_visit.extend(referents); + // Populate relevant_instances with a depth-first post-order traversal over the + // tree(s). This is important to ensure that the order of the PRNT chunk (later + // written by SerializerState::serialize_parents) is correct. - while let Some(referent) = to_visit.pop_front() { + // The implementation here slightly deviates from Roblox. Roblox writes the PRNT + // in depth-first post-order, numbers referents in depth-first pre-order, and + // generates type infos in lexical order by class name. See + // https://github.com/rojo-rbx/rbx-dom/pull/411#issuecomment-2103713517 + + // Since it seems only the PRNT chunk has important semantics related to its + // ordering, we do one tree traversal in this function, thereby numbering + // referents, generating type infos, and writing the PRNT chunk all in depth-first + // post-order. + let mut to_visit = Vec::new(); + let mut last_visited_child = None; + + to_visit.extend(referents.iter().rev()); + + while let Some(referent) = to_visit.last() { let instance = self .dom - .get_by_ref(referent) - .ok_or(InnerError::InvalidInstanceId { referent })?; + .get_by_ref(*referent) + .ok_or(InnerError::InvalidInstanceId { + referent: *referent, + })?; - self.relevant_instances.push(referent); - self.collect_type_info(instance)?; + to_visit.extend(instance.children().iter().rev()); - to_visit.extend(instance.children()); + while let Some(referent) = to_visit.last() { + let instance = + self.dom + .get_by_ref(*referent) + .ok_or(InnerError::InvalidInstanceId { + referent: *referent, + })?; + + if !instance.children().is_empty() + && instance.children().last() != last_visited_child.as_ref() + { + break; + } + + self.relevant_instances.push(*referent); + self.collect_type_info(instance)?; + last_visited_child = to_visit.pop(); + } } // Sort shared_strings by their hash, to ensure they are deterministically added @@ -1247,10 +1280,9 @@ impl<'dom, 'db, W: Write> SerializerState<'dom, 'db, W> { let object_referents = self .relevant_instances .iter() - .rev() .map(|id| self.id_to_referent[id]); - let parent_referents = self.relevant_instances.iter().rev().map(|id| { + let parent_referents = self.relevant_instances.iter().map(|id| { let instance = self.dom.get_by_ref(*id).unwrap(); // If there's no parent set OR our parent is not one of the diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__default_shared_string.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__default_shared_string.snap index 37723b5ab..8f514fd5f 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__default_shared_string.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__default_shared_string.snap @@ -36,9 +36,9 @@ chunks: - Prnt: version: 0 links: - - - 1 - - -1 - - 0 - -1 + - - 1 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__logical_properties_basepart_size.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__logical_properties_basepart_size.snap index 5b8b3b56a..9b0d523af 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__logical_properties_basepart_size.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__logical_properties_basepart_size.snap @@ -38,11 +38,11 @@ chunks: - Prnt: version: 0 links: - - - 2 + - - 0 - -1 - - 1 - -1 - - - 0 + - - 2 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__migrated_properties.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__migrated_properties.snap index e8978e625..1a1dbfa0e 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__migrated_properties.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__migrated_properties.snap @@ -6,41 +6,41 @@ num_types: 4 num_instances: 8 chunks: - Inst: - type_id: 0 + type_id: 3 type_name: Folder object_format: 0 referents: - - 0 + - 7 - Inst: - type_id: 2 + type_id: 1 type_name: Part object_format: 0 referents: + - 2 - 3 - 4 - - 5 - Inst: - type_id: 1 + type_id: 0 type_name: ScreenGui object_format: 0 referents: + - 0 - 1 - - 2 - Inst: - type_id: 3 + type_id: 2 type_name: TextLabel object_format: 0 referents: + - 5 - 6 - - 7 - Prop: - type_id: 0 + type_id: 3 prop_name: Name prop_type: String values: - Folder - Prop: - type_id: 2 + type_id: 1 prop_name: Color3uint8 prop_type: Color3uint8 values: @@ -54,7 +54,7 @@ chunks: - 128 - 255 - Prop: - type_id: 2 + type_id: 1 prop_name: Name prop_type: String values: @@ -62,21 +62,21 @@ chunks: - Part - Part - Prop: - type_id: 1 + type_id: 0 prop_name: Name prop_type: String values: - ScreenGui - ScreenGui - Prop: - type_id: 1 + type_id: 0 prop_name: ScreenInsets prop_type: Enum values: - 0 - 1 - Prop: - type_id: 3 + type_id: 2 prop_name: FontFace prop_type: Font values: @@ -89,7 +89,7 @@ chunks: style: Normal cachedFaceId: ~ - Prop: - type_id: 3 + type_id: 2 prop_name: Name prop_type: String values: @@ -98,21 +98,20 @@ chunks: - Prnt: version: 0 links: - - - 7 - - 0 - - - 6 - - 0 - - - 5 - - 0 - - - 4 - - 0 - - - 3 - - 0 - - - 2 - - 0 - - - 1 - - 0 - - 0 + - 7 + - - 1 + - 7 + - - 2 + - 7 + - - 3 + - 7 + - - 4 + - 7 + - - 5 + - 7 + - - 6 + - 7 + - - 7 - -1 - End - diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__part_color.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__part_color.snap index 7c8539a90..78250b979 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__part_color.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__part_color.snap @@ -43,13 +43,12 @@ chunks: - Prnt: version: 0 links: - - - 3 - - -1 - - - 2 + - - 0 - -1 - - 1 - -1 - - - 0 + - - 2 + - -1 + - - 3 - -1 - End - diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__partially_present.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__partially_present.snap index 8821bafed..1dd6b5459 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__partially_present.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__serializer__partially_present.snap @@ -29,9 +29,8 @@ chunks: - Prnt: version: 0 links: - - - 1 - - -1 - - 0 - -1 + - - 1 + - -1 - End - diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__axes__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__axes__encoded.snap index 1cb1d5496..e4d003751 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__axes__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__axes__encoded.snap @@ -146,21 +146,21 @@ chunks: - Prnt: version: 0 links: - - - 7 - - -1 - - - 6 + - - 0 - -1 - - - 5 + - - 1 - -1 - - - 4 + - - 2 - -1 - - 3 - -1 - - - 2 + - - 4 - -1 - - - 1 + - - 5 - -1 - - - 0 + - - 6 + - -1 + - - 7 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap index a24e0ee59..14eabdf83 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap @@ -11,472 +11,472 @@ chunks: - len: 0 hash: af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 - Inst: - type_id: 30 + type_id: 39 type_name: AnalyticsService object_format: 1 referents: - - 30 + - 39 remaining: "01" - Inst: - type_id: 28 + type_id: 37 type_name: AssetService object_format: 1 referents: - - 28 + - 37 remaining: "01" - Inst: - type_id: 55 + type_id: 50 type_name: Atmosphere object_format: 0 referents: - - 55 + - 50 - Inst: - type_id: 56 + type_id: 51 type_name: BloomEffect object_format: 0 referents: - - 56 + - 51 - Inst: - type_id: 3 + type_id: 9 type_name: CSGDictionaryService object_format: 1 referents: - - 3 + - 9 remaining: "01" - Inst: - type_id: 46 + type_id: 0 type_name: Camera object_format: 0 referents: - - 46 + - 0 - Inst: - type_id: 4 + type_id: 10 type_name: Chat object_format: 1 referents: - - 4 + - 10 remaining: "01" - Inst: - type_id: 18 + type_id: 26 type_name: CollectionService object_format: 1 referents: - - 18 + - 26 remaining: "01" - Inst: - type_id: 26 + type_id: 35 type_name: ContextActionService object_format: 1 referents: - - 26 + - 35 remaining: "01" - Inst: - type_id: 24 + type_id: 33 type_name: CookiesService object_format: 1 referents: - - 24 + - 33 remaining: "01" - Inst: - type_id: 41 + type_id: 55 type_name: DataStoreService object_format: 1 referents: - - 41 + - 55 remaining: "01" - Inst: - type_id: 23 + type_id: 32 type_name: Debris object_format: 1 referents: - - 23 + - 32 remaining: "01" - Inst: - type_id: 59 + type_id: 4 type_name: Decal object_format: 0 referents: - - 59 + - 4 - Inst: - type_id: 57 + type_id: 52 type_name: DepthOfFieldEffect object_format: 0 referents: - - 57 + - 52 - Inst: - type_id: 22 + type_id: 31 type_name: GamePassService object_format: 1 referents: - - 22 + - 31 remaining: "01" - Inst: - type_id: 20 + type_id: 28 type_name: Geometry object_format: 1 referents: - - 20 + - 28 remaining: "01" - Inst: - type_id: 42 + type_id: 56 type_name: HttpService object_format: 1 referents: - - 42 + - 56 remaining: "01" - Inst: - type_id: 21 + type_id: 30 type_name: InsertService object_format: 1 referents: - - 21 + - 30 remaining: "01" - Inst: - type_id: 31 + type_id: 40 type_name: Instance object_format: 0 referents: - - 31 + - 40 - Inst: - type_id: 38 + type_id: 47 type_name: LanguageService object_format: 1 referents: - - 38 + - 47 remaining: "01" - Inst: - type_id: 39 + type_id: 53 type_name: Lighting object_format: 1 referents: - - 39 + - 53 remaining: "01" - Inst: - type_id: 16 + type_id: 24 type_name: LocalizationService object_format: 1 referents: - - 16 + - 24 remaining: "01" - Inst: - type_id: 40 + type_id: 54 type_name: LodDataService object_format: 1 referents: - - 40 + - 54 remaining: "01" - Inst: - type_id: 36 + type_id: 45 type_name: LuaWebService object_format: 1 referents: - - 36 + - 45 remaining: "01" - Inst: - type_id: 9 + type_id: 15 type_name: MaterialService object_format: 1 referents: - - 9 + - 15 remaining: "01" - Inst: - type_id: 2 + type_id: 8 type_name: NonReplicatedCSGDictionaryService object_format: 1 referents: - - 2 + - 8 remaining: "01" - Inst: - type_id: 47 + type_id: 2 type_name: Part object_format: 0 referents: - - 47 + - 2 - Inst: - type_id: 10 + type_id: 16 type_name: PermissionsService object_format: 1 referents: - - 10 + - 16 remaining: "01" - Inst: - type_id: 19 + type_id: 27 type_name: PhysicsService object_format: 1 referents: - - 19 + - 27 remaining: "01" - Inst: - type_id: 11 + type_id: 17 type_name: PlayerEmulatorService object_format: 1 referents: - - 11 + - 17 remaining: "01" - Inst: - type_id: 6 + type_id: 12 type_name: Players object_format: 1 referents: - - 6 + - 12 remaining: "01" - Inst: - type_id: 37 + type_id: 46 type_name: ProcessInstancePhysicsService object_format: 1 referents: - - 37 + - 46 remaining: "01" - Inst: - type_id: 7 + type_id: 13 type_name: ReplicatedFirst object_format: 1 referents: - - 7 + - 13 remaining: "01" - Inst: - type_id: 35 + type_id: 44 type_name: ReplicatedStorage object_format: 1 referents: - - 35 + - 44 remaining: "01" - Inst: - type_id: 27 + type_id: 36 type_name: ScriptService object_format: 1 referents: - - 27 + - 36 remaining: "01" - Inst: - type_id: 32 + type_id: 41 type_name: Selection object_format: 1 referents: - - 32 + - 41 remaining: "01" - Inst: - type_id: 33 + type_id: 42 type_name: ServerScriptService object_format: 1 referents: - - 33 + - 42 remaining: "01" - Inst: - type_id: 34 + type_id: 43 type_name: ServerStorage object_format: 1 referents: - - 34 + - 43 remaining: "01" - Inst: - type_id: 53 + type_id: 48 type_name: Sky object_format: 0 referents: - - 53 + - 48 - Inst: - type_id: 1 + type_id: 7 type_name: SoundService object_format: 1 referents: - - 1 + - 7 remaining: "01" - Inst: - type_id: 49 + type_id: 5 type_name: SpawnLocation object_format: 0 referents: - - 49 + - 5 - Inst: - type_id: 51 + type_id: 20 type_name: StarterCharacterScripts object_format: 0 referents: - - 51 + - 20 - Inst: - type_id: 15 + type_id: 23 type_name: StarterGui object_format: 1 referents: - - 15 + - 23 remaining: "01" - Inst: - type_id: 14 + type_id: 22 type_name: StarterPack object_format: 1 referents: - - 14 + - 22 remaining: "01" - Inst: - type_id: 13 + type_id: 21 type_name: StarterPlayer object_format: 1 referents: - - 13 + - 21 remaining: "01" - Inst: - type_id: 50 + type_id: 19 type_name: StarterPlayerScripts object_format: 0 referents: - - 50 + - 19 - Inst: - type_id: 52 + type_id: 29 type_name: StringValue object_format: 0 referents: - - 52 + - 29 - Inst: - type_id: 12 + type_id: 18 type_name: StudioData object_format: 1 referents: - - 12 + - 18 remaining: "01" - Inst: - type_id: 54 + type_id: 49 type_name: SunRaysEffect object_format: 0 referents: - - 54 + - 49 - Inst: - type_id: 43 + type_id: 57 type_name: Teams object_format: 1 referents: - - 43 + - 57 remaining: "01" - Inst: - type_id: 17 + type_id: 25 type_name: TeleportService object_format: 1 referents: - - 17 + - 25 remaining: "01" - Inst: - type_id: 48 + type_id: 3 type_name: Terrain object_format: 0 referents: - - 48 + - 3 - Inst: - type_id: 44 + type_id: 58 type_name: TestService object_format: 1 referents: - - 44 + - 58 remaining: "01" - Inst: - type_id: 58 + type_id: 1 type_name: Texture object_format: 0 referents: - - 58 + - 1 - Inst: - type_id: 5 + type_id: 11 type_name: TimerService object_format: 1 referents: - - 5 + - 11 remaining: "01" - Inst: - type_id: 29 + type_id: 38 type_name: TouchInputService object_format: 1 referents: - - 29 + - 38 remaining: "01" - Inst: - type_id: 8 + type_id: 14 type_name: TweenService object_format: 1 referents: - - 8 + - 14 remaining: "01" - Inst: - type_id: 25 + type_id: 34 type_name: VRService object_format: 1 referents: - - 25 + - 34 remaining: "01" - Inst: - type_id: 45 + type_id: 59 type_name: VirtualInputManager object_format: 1 referents: - - 45 + - 59 remaining: "01" - Inst: - type_id: 0 + type_id: 6 type_name: Workspace object_format: 1 referents: - - 0 + - 6 remaining: "01" - Prop: - type_id: 30 + type_id: 39 prop_name: ApiKey prop_type: String values: - "" - Prop: - type_id: 30 + type_id: 39 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 30 + type_id: 39 prop_name: Name prop_type: String values: - AnalyticsService - Prop: - type_id: 30 + type_id: 39 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 30 + type_id: 39 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 28 + type_id: 37 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 28 + type_id: 37 prop_name: Name prop_type: String values: - AssetService - Prop: - type_id: 28 + type_id: 37 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 28 + type_id: 37 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 55 + type_id: 50 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 55 + type_id: 50 prop_name: Color prop_type: Color3 values: @@ -484,7 +484,7 @@ chunks: - 0.78039217 - 0.78039217 - Prop: - type_id: 55 + type_id: 50 prop_name: Decay prop_type: Color3 values: @@ -492,127 +492,127 @@ chunks: - 0.4392157 - 0.49019608 - Prop: - type_id: 55 + type_id: 50 prop_name: Density prop_type: Float32 values: - 0.3 - Prop: - type_id: 55 + type_id: 50 prop_name: Glare prop_type: Float32 values: - 0 - Prop: - type_id: 55 + type_id: 50 prop_name: Haze prop_type: Float32 values: - 0 - Prop: - type_id: 55 + type_id: 50 prop_name: Name prop_type: String values: - Atmosphere - Prop: - type_id: 55 + type_id: 50 prop_name: Offset prop_type: Float32 values: - 0.25 - Prop: - type_id: 55 + type_id: 50 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 55 + type_id: 50 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 56 + type_id: 51 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 56 + type_id: 51 prop_name: Enabled prop_type: Bool values: - true - Prop: - type_id: 56 + type_id: 51 prop_name: Intensity prop_type: Float32 values: - 1 - Prop: - type_id: 56 + type_id: 51 prop_name: Name prop_type: String values: - Bloom - Prop: - type_id: 56 + type_id: 51 prop_name: Size prop_type: Float32 values: - 24 - Prop: - type_id: 56 + type_id: 51 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 56 + type_id: 51 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 56 + type_id: 51 prop_name: Threshold prop_type: Float32 values: - 2 - Prop: - type_id: 3 + type_id: 9 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 3 + type_id: 9 prop_name: Name prop_type: String values: - CSGDictionaryService - Prop: - type_id: 3 + type_id: 9 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 3 + type_id: 9 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 46 + type_id: 0 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 46 + type_id: 0 prop_name: CFrame prop_type: CFrame values: @@ -631,31 +631,31 @@ chunks: - 0.30549926 - -0.61998665 - Prop: - type_id: 46 + type_id: 0 prop_name: CameraSubject prop_type: Ref values: - -1 - Prop: - type_id: 46 + type_id: 0 prop_name: CameraType prop_type: Enum values: - 0 - Prop: - type_id: 46 + type_id: 0 prop_name: FieldOfView prop_type: Float32 values: - 70 - Prop: - type_id: 46 + type_id: 0 prop_name: FieldOfViewMode prop_type: Enum values: - 0 - Prop: - type_id: 46 + type_id: 0 prop_name: Focus prop_type: CFrame values: @@ -674,217 +674,217 @@ chunks: - 0 - 1 - Prop: - type_id: 46 + type_id: 0 prop_name: HeadLocked prop_type: Bool values: - true - Prop: - type_id: 46 + type_id: 0 prop_name: HeadScale prop_type: Float32 values: - 1 - Prop: - type_id: 46 + type_id: 0 prop_name: Name prop_type: String values: - Camera - Prop: - type_id: 46 + type_id: 0 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 46 + type_id: 0 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 4 + type_id: 10 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 4 + type_id: 10 prop_name: BubbleChatEnabled prop_type: Bool values: - true - Prop: - type_id: 4 + type_id: 10 prop_name: LoadDefaultChat prop_type: Bool values: - true - Prop: - type_id: 4 + type_id: 10 prop_name: Name prop_type: String values: - Chat - Prop: - type_id: 4 + type_id: 10 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 4 + type_id: 10 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 18 + type_id: 26 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 18 + type_id: 26 prop_name: Name prop_type: String values: - CollectionService - Prop: - type_id: 18 + type_id: 26 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 18 + type_id: 26 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 26 + type_id: 35 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 26 + type_id: 35 prop_name: Name prop_type: String values: - ContextActionService - Prop: - type_id: 26 + type_id: 35 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 26 + type_id: 35 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 24 + type_id: 33 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 24 + type_id: 33 prop_name: Name prop_type: String values: - CookiesService - Prop: - type_id: 24 + type_id: 33 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 24 + type_id: 33 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 41 + type_id: 55 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 41 + type_id: 55 prop_name: AutomaticRetry prop_type: Bool values: - true - Prop: - type_id: 41 + type_id: 55 prop_name: LegacyNamingScheme prop_type: Bool values: - false - Prop: - type_id: 41 + type_id: 55 prop_name: Name prop_type: String values: - DataStoreService - Prop: - type_id: 41 + type_id: 55 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 41 + type_id: 55 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 23 + type_id: 32 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 23 + type_id: 32 prop_name: MaxItems prop_type: Int32 values: - 1000 - Prop: - type_id: 23 + type_id: 32 prop_name: Name prop_type: String values: - Debris - Prop: - type_id: 23 + type_id: 32 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 23 + type_id: 32 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 59 + type_id: 4 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 59 + type_id: 4 prop_name: Color3 prop_type: Color3 values: @@ -892,265 +892,265 @@ chunks: - 1 - 1 - Prop: - type_id: 59 + type_id: 4 prop_name: Face prop_type: Enum values: - 1 - Prop: - type_id: 59 + type_id: 4 prop_name: Name prop_type: String values: - Decal - Prop: - type_id: 59 + type_id: 4 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 59 + type_id: 4 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 59 + type_id: 4 prop_name: Texture prop_type: String values: - "rbxasset://textures/SpawnLocation.png" - Prop: - type_id: 59 + type_id: 4 prop_name: Transparency prop_type: Float32 values: - 0 - Prop: - type_id: 59 + type_id: 4 prop_name: ZIndex prop_type: Int32 values: - 1 - Prop: - type_id: 57 + type_id: 52 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 57 + type_id: 52 prop_name: Enabled prop_type: Bool values: - false - Prop: - type_id: 57 + type_id: 52 prop_name: FarIntensity prop_type: Float32 values: - 0.1 - Prop: - type_id: 57 + type_id: 52 prop_name: FocusDistance prop_type: Float32 values: - 0.05 - Prop: - type_id: 57 + type_id: 52 prop_name: InFocusRadius prop_type: Float32 values: - 30 - Prop: - type_id: 57 + type_id: 52 prop_name: Name prop_type: String values: - DepthOfField - Prop: - type_id: 57 + type_id: 52 prop_name: NearIntensity prop_type: Float32 values: - 0.75 - Prop: - type_id: 57 + type_id: 52 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 57 + type_id: 52 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 22 + type_id: 31 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 22 + type_id: 31 prop_name: Name prop_type: String values: - GamePassService - Prop: - type_id: 22 + type_id: 31 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 22 + type_id: 31 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 20 + type_id: 28 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 20 + type_id: 28 prop_name: Name prop_type: String values: - Geometry - Prop: - type_id: 20 + type_id: 28 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 20 + type_id: 28 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 42 + type_id: 56 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 42 + type_id: 56 prop_name: HttpEnabled prop_type: Bool values: - false - Prop: - type_id: 42 + type_id: 56 prop_name: Name prop_type: String values: - HttpService - Prop: - type_id: 42 + type_id: 56 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 42 + type_id: 56 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 21 + type_id: 30 prop_name: AllowClientInsertModels prop_type: Bool values: - false - Prop: - type_id: 21 + type_id: 30 prop_name: AllowInsertFreeModels prop_type: Bool values: - false - Prop: - type_id: 21 + type_id: 30 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 21 + type_id: 30 prop_name: Name prop_type: String values: - InsertService - Prop: - type_id: 21 + type_id: 30 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 21 + type_id: 30 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 31 + type_id: 40 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 31 + type_id: 40 prop_name: Name prop_type: String values: - FilteredSelection - Prop: - type_id: 31 + type_id: 40 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 31 + type_id: 40 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 38 + type_id: 47 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 38 + type_id: 47 prop_name: Name prop_type: String values: - LanguageService - Prop: - type_id: 38 + type_id: 47 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 38 + type_id: 47 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 39 + type_id: 53 prop_name: Ambient prop_type: Color3 values: @@ -1158,19 +1158,19 @@ chunks: - 0.27450982 - 0.27450982 - Prop: - type_id: 39 + type_id: 53 prop_name: AttributesSerialize prop_type: String values: - "\u0001\u0000\u0000\u0000\u0012\u0000\u0000\u0000UseCurrentLighting\u0003\u0000" - Prop: - type_id: 39 + type_id: 53 prop_name: Brightness prop_type: Float32 values: - 3 - Prop: - type_id: 39 + type_id: 53 prop_name: ColorShift_Bottom prop_type: Color3 values: @@ -1178,7 +1178,7 @@ chunks: - 0 - 0 - Prop: - type_id: 39 + type_id: 53 prop_name: ColorShift_Top prop_type: Color3 values: @@ -1186,25 +1186,25 @@ chunks: - 0 - 0 - Prop: - type_id: 39 + type_id: 53 prop_name: EnvironmentDiffuseScale prop_type: Float32 values: - 1 - Prop: - type_id: 39 + type_id: 53 prop_name: EnvironmentSpecularScale prop_type: Float32 values: - 1 - Prop: - type_id: 39 + type_id: 53 prop_name: ExposureCompensation prop_type: Float32 values: - 0 - Prop: - type_id: 39 + type_id: 53 prop_name: FogColor prop_type: Color3 values: @@ -1212,37 +1212,37 @@ chunks: - 0.75294125 - 0.75294125 - Prop: - type_id: 39 + type_id: 53 prop_name: FogEnd prop_type: Float32 values: - 100000 - Prop: - type_id: 39 + type_id: 53 prop_name: FogStart prop_type: Float32 values: - 0 - Prop: - type_id: 39 + type_id: 53 prop_name: GeographicLatitude prop_type: Float32 values: - 0 - Prop: - type_id: 39 + type_id: 53 prop_name: GlobalShadows prop_type: Bool values: - true - Prop: - type_id: 39 + type_id: 53 prop_name: Name prop_type: String values: - Lighting - Prop: - type_id: 39 + type_id: 53 prop_name: OutdoorAmbient prop_type: Color3 values: @@ -1250,421 +1250,421 @@ chunks: - 0.27450982 - 0.27450982 - Prop: - type_id: 39 + type_id: 53 prop_name: Outlines prop_type: Bool values: - false - Prop: - type_id: 39 + type_id: 53 prop_name: ShadowSoftness prop_type: Float32 values: - 0.2 - Prop: - type_id: 39 + type_id: 53 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 39 + type_id: 53 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 39 + type_id: 53 prop_name: Technology prop_type: Enum values: - 3 - Prop: - type_id: 39 + type_id: 53 prop_name: TimeOfDay prop_type: String values: - "14:30:00" - Prop: - type_id: 16 + type_id: 24 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 16 + type_id: 24 prop_name: Name prop_type: String values: - LocalizationService - Prop: - type_id: 16 + type_id: 24 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 16 + type_id: 24 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 40 + type_id: 54 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 40 + type_id: 54 prop_name: Name prop_type: String values: - Instance - Prop: - type_id: 40 + type_id: 54 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 40 + type_id: 54 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 36 + type_id: 45 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 36 + type_id: 45 prop_name: Name prop_type: String values: - Instance - Prop: - type_id: 36 + type_id: 45 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 36 + type_id: 45 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 9 + type_id: 15 prop_name: AsphaltName prop_type: String values: - Asphalt - Prop: - type_id: 9 + type_id: 15 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 9 + type_id: 15 prop_name: BasaltName prop_type: String values: - Basalt - Prop: - type_id: 9 + type_id: 15 prop_name: BrickName prop_type: String values: - Brick - Prop: - type_id: 9 + type_id: 15 prop_name: CobblestoneName prop_type: String values: - Cobblestone - Prop: - type_id: 9 + type_id: 15 prop_name: ConcreteName prop_type: String values: - Concrete - Prop: - type_id: 9 + type_id: 15 prop_name: CorrodedMetalName prop_type: String values: - CorrodedMetal - Prop: - type_id: 9 + type_id: 15 prop_name: CrackedLavaName prop_type: String values: - CrackedLava - Prop: - type_id: 9 + type_id: 15 prop_name: DiamondPlateName prop_type: String values: - DiamondPlate - Prop: - type_id: 9 + type_id: 15 prop_name: FabricName prop_type: String values: - Fabric - Prop: - type_id: 9 + type_id: 15 prop_name: FoilName prop_type: String values: - Foil - Prop: - type_id: 9 + type_id: 15 prop_name: GlacierName prop_type: String values: - Glacier - Prop: - type_id: 9 + type_id: 15 prop_name: GraniteName prop_type: String values: - Granite - Prop: - type_id: 9 + type_id: 15 prop_name: GrassName prop_type: String values: - Grass - Prop: - type_id: 9 + type_id: 15 prop_name: GroundName prop_type: String values: - Ground - Prop: - type_id: 9 + type_id: 15 prop_name: IceName prop_type: String values: - Ice - Prop: - type_id: 9 + type_id: 15 prop_name: LeafyGrassName prop_type: String values: - LeafyGrass - Prop: - type_id: 9 + type_id: 15 prop_name: LimestoneName prop_type: String values: - Limestone - Prop: - type_id: 9 + type_id: 15 prop_name: MarbleName prop_type: String values: - Marble - Prop: - type_id: 9 + type_id: 15 prop_name: MetalName prop_type: String values: - Metal - Prop: - type_id: 9 + type_id: 15 prop_name: MudName prop_type: String values: - Mud - Prop: - type_id: 9 + type_id: 15 prop_name: Name prop_type: String values: - MaterialService - Prop: - type_id: 9 + type_id: 15 prop_name: PavementName prop_type: String values: - Pavement - Prop: - type_id: 9 + type_id: 15 prop_name: PebbleName prop_type: String values: - Pebble - Prop: - type_id: 9 + type_id: 15 prop_name: PlasticName prop_type: String values: - Plastic - Prop: - type_id: 9 + type_id: 15 prop_name: RockName prop_type: String values: - Rock - Prop: - type_id: 9 + type_id: 15 prop_name: SaltName prop_type: String values: - Salt - Prop: - type_id: 9 + type_id: 15 prop_name: SandName prop_type: String values: - Sand - Prop: - type_id: 9 + type_id: 15 prop_name: SandstoneName prop_type: String values: - Sandstone - Prop: - type_id: 9 + type_id: 15 prop_name: SlateName prop_type: String values: - Slate - Prop: - type_id: 9 + type_id: 15 prop_name: SmoothPlasticName prop_type: String values: - SmoothPlastic - Prop: - type_id: 9 + type_id: 15 prop_name: SnowName prop_type: String values: - Snow - Prop: - type_id: 9 + type_id: 15 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 9 + type_id: 15 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 9 + type_id: 15 prop_name: Use2022MaterialsXml prop_type: Bool values: - true - Prop: - type_id: 9 + type_id: 15 prop_name: WoodName prop_type: String values: - Wood - Prop: - type_id: 9 + type_id: 15 prop_name: WoodPlanksName prop_type: String values: - WoodPlanks - Prop: - type_id: 2 + type_id: 8 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 2 + type_id: 8 prop_name: Name prop_type: String values: - NonReplicatedCSGDictionaryService - Prop: - type_id: 2 + type_id: 8 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 2 + type_id: 8 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 47 + type_id: 2 prop_name: Anchored prop_type: Bool values: - true - Prop: - type_id: 47 + type_id: 2 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 47 + type_id: 2 prop_name: BackParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 47 + type_id: 2 prop_name: BackParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 47 + type_id: 2 prop_name: BackSurface prop_type: Enum values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: BackSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: BottomParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 47 + type_id: 2 prop_name: BottomParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 47 + type_id: 2 prop_name: BottomSurface prop_type: Enum values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: BottomSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: CFrame prop_type: CFrame values: @@ -1683,43 +1683,43 @@ chunks: - 0 - 1 - Prop: - type_id: 47 + type_id: 2 prop_name: CanCollide prop_type: Bool values: - true - Prop: - type_id: 47 + type_id: 2 prop_name: CanQuery prop_type: Bool values: - true - Prop: - type_id: 47 + type_id: 2 prop_name: CanTouch prop_type: Bool values: - true - Prop: - type_id: 47 + type_id: 2 prop_name: CastShadow prop_type: Bool values: - true - Prop: - type_id: 47 + type_id: 2 prop_name: CollisionGroup prop_type: String values: - Default - Prop: - type_id: 47 + type_id: 2 prop_name: CollisionGroupId prop_type: Int32 values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: Color3uint8 prop_type: Color3uint8 values: @@ -1727,97 +1727,97 @@ chunks: - 91 - 91 - Prop: - type_id: 47 + type_id: 2 prop_name: CustomPhysicalProperties prop_type: PhysicalProperties values: - Default - Prop: - type_id: 47 + type_id: 2 prop_name: formFactorRaw prop_type: Enum values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: FrontParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 47 + type_id: 2 prop_name: FrontParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 47 + type_id: 2 prop_name: FrontSurface prop_type: Enum values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: FrontSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: LeftParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 47 + type_id: 2 prop_name: LeftParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 47 + type_id: 2 prop_name: LeftSurface prop_type: Enum values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: LeftSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: Locked prop_type: Bool values: - true - Prop: - type_id: 47 + type_id: 2 prop_name: Massless prop_type: Bool values: - false - Prop: - type_id: 47 + type_id: 2 prop_name: Material prop_type: Enum values: - 256 - Prop: - type_id: 47 + type_id: 2 prop_name: MaterialVariantSerialized prop_type: String values: - "" - Prop: - type_id: 47 + type_id: 2 prop_name: Name prop_type: String values: - Baseplate - Prop: - type_id: 47 + type_id: 2 prop_name: PivotOffset prop_type: CFrame values: @@ -1836,43 +1836,43 @@ chunks: - 0 - 1 - Prop: - type_id: 47 + type_id: 2 prop_name: Reflectance prop_type: Float32 values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: RightParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 47 + type_id: 2 prop_name: RightParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 47 + type_id: 2 prop_name: RightSurface prop_type: Enum values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: RightSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: RootPriority prop_type: Int32 values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: RotVelocity prop_type: Vector3 values: @@ -1880,13 +1880,13 @@ chunks: - 0 - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: shape prop_type: Enum values: - 1 - Prop: - type_id: 47 + type_id: 2 prop_name: size prop_type: Vector3 values: @@ -1894,49 +1894,49 @@ chunks: - 16 - 2048 - Prop: - type_id: 47 + type_id: 2 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 47 + type_id: 2 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 47 + type_id: 2 prop_name: TopParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 47 + type_id: 2 prop_name: TopParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 47 + type_id: 2 prop_name: TopSurface prop_type: Enum values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: TopSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: Transparency prop_type: Float32 values: - 0 - Prop: - type_id: 47 + type_id: 2 prop_name: Velocity prop_type: Vector3 values: @@ -1944,559 +1944,559 @@ chunks: - 0 - 0 - Prop: - type_id: 10 + type_id: 16 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 10 + type_id: 16 prop_name: Name prop_type: String values: - PermissionsService - Prop: - type_id: 10 + type_id: 16 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 10 + type_id: 16 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 19 + type_id: 27 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 19 + type_id: 27 prop_name: Name prop_type: String values: - PhysicsService - Prop: - type_id: 19 + type_id: 27 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 19 + type_id: 27 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 11 + type_id: 17 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 11 + type_id: 17 prop_name: CustomPoliciesEnabled prop_type: Bool values: - false - Prop: - type_id: 11 + type_id: 17 prop_name: EmulatedCountryCode prop_type: String values: - "" - Prop: - type_id: 11 + type_id: 17 prop_name: EmulatedGameLocale prop_type: String values: - "" - Prop: - type_id: 11 + type_id: 17 prop_name: Name prop_type: String values: - PlayerEmulatorService - Prop: - type_id: 11 + type_id: 17 prop_name: PlayerEmulationEnabled prop_type: Bool values: - false - Prop: - type_id: 11 + type_id: 17 prop_name: SerializedEmulatedPolicyInfo prop_type: String values: - "" - Prop: - type_id: 11 + type_id: 17 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 11 + type_id: 17 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 6 + type_id: 12 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 6 + type_id: 12 prop_name: CharacterAutoLoads prop_type: Bool values: - true - Prop: - type_id: 6 + type_id: 12 prop_name: MaxPlayersInternal prop_type: Int32 values: - 30 - Prop: - type_id: 6 + type_id: 12 prop_name: Name prop_type: String values: - Players - Prop: - type_id: 6 + type_id: 12 prop_name: PreferredPlayersInternal prop_type: Int32 values: - 30 - Prop: - type_id: 6 + type_id: 12 prop_name: RespawnTime prop_type: Float32 values: - 3 - Prop: - type_id: 6 + type_id: 12 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 6 + type_id: 12 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 6 + type_id: 12 prop_name: UseStrafingAnimations prop_type: Bool values: - false - Prop: - type_id: 37 + type_id: 46 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 37 + type_id: 46 prop_name: Name prop_type: String values: - ProcessInstancePhysicsService - Prop: - type_id: 37 + type_id: 46 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 37 + type_id: 46 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 7 + type_id: 13 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 7 + type_id: 13 prop_name: Name prop_type: String values: - ReplicatedFirst - Prop: - type_id: 7 + type_id: 13 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 7 + type_id: 13 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 35 + type_id: 44 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 35 + type_id: 44 prop_name: Name prop_type: String values: - ReplicatedStorage - Prop: - type_id: 35 + type_id: 44 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 35 + type_id: 44 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 27 + type_id: 36 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 27 + type_id: 36 prop_name: Name prop_type: String values: - Instance - Prop: - type_id: 27 + type_id: 36 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 27 + type_id: 36 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 32 + type_id: 41 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 32 + type_id: 41 prop_name: Name prop_type: String values: - Selection - Prop: - type_id: 32 + type_id: 41 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 32 + type_id: 41 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 33 + type_id: 42 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 33 + type_id: 42 prop_name: LoadStringEnabled prop_type: Bool values: - false - Prop: - type_id: 33 + type_id: 42 prop_name: Name prop_type: String values: - ServerScriptService - Prop: - type_id: 33 + type_id: 42 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 33 + type_id: 42 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 34 + type_id: 43 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 34 + type_id: 43 prop_name: Name prop_type: String values: - ServerStorage - Prop: - type_id: 34 + type_id: 43 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 34 + type_id: 43 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 53 + type_id: 48 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 53 + type_id: 48 prop_name: CelestialBodiesShown prop_type: Bool values: - true - Prop: - type_id: 53 + type_id: 48 prop_name: MoonAngularSize prop_type: Float32 values: - 11 - Prop: - type_id: 53 + type_id: 48 prop_name: MoonTextureId prop_type: String values: - "rbxassetid://6444320592" - Prop: - type_id: 53 + type_id: 48 prop_name: Name prop_type: String values: - Sky - Prop: - type_id: 53 + type_id: 48 prop_name: SkyboxBk prop_type: String values: - "rbxassetid://6444884337" - Prop: - type_id: 53 + type_id: 48 prop_name: SkyboxDn prop_type: String values: - "rbxassetid://6444884785" - Prop: - type_id: 53 + type_id: 48 prop_name: SkyboxFt prop_type: String values: - "rbxassetid://6444884337" - Prop: - type_id: 53 + type_id: 48 prop_name: SkyboxLf prop_type: String values: - "rbxassetid://6444884337" - Prop: - type_id: 53 + type_id: 48 prop_name: SkyboxRt prop_type: String values: - "rbxassetid://6444884337" - Prop: - type_id: 53 + type_id: 48 prop_name: SkyboxUp prop_type: String values: - "rbxassetid://6412503613" - Prop: - type_id: 53 + type_id: 48 prop_name: SourceAssetId prop_type: Int64 values: - 332039975 - Prop: - type_id: 53 + type_id: 48 prop_name: StarCount prop_type: Int32 values: - 3000 - Prop: - type_id: 53 + type_id: 48 prop_name: SunAngularSize prop_type: Float32 values: - 11 - Prop: - type_id: 53 + type_id: 48 prop_name: SunTextureId prop_type: String values: - "rbxassetid://6196665106" - Prop: - type_id: 53 + type_id: 48 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 1 + type_id: 7 prop_name: AmbientReverb prop_type: Enum values: - 0 - Prop: - type_id: 1 + type_id: 7 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 1 + type_id: 7 prop_name: DistanceFactor prop_type: Float32 values: - 3.33 - Prop: - type_id: 1 + type_id: 7 prop_name: DopplerScale prop_type: Float32 values: - 1 - Prop: - type_id: 1 + type_id: 7 prop_name: Name prop_type: String values: - SoundService - Prop: - type_id: 1 + type_id: 7 prop_name: RespectFilteringEnabled prop_type: Bool values: - true - Prop: - type_id: 1 + type_id: 7 prop_name: RolloffScale prop_type: Float32 values: - 1 - Prop: - type_id: 1 + type_id: 7 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 1 + type_id: 7 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 1 + type_id: 7 prop_name: VolumetricAudio prop_type: Enum values: - 1 - Prop: - type_id: 49 + type_id: 5 prop_name: AllowTeamChangeOnTouch prop_type: Bool values: - false - Prop: - type_id: 49 + type_id: 5 prop_name: Anchored prop_type: Bool values: - true - Prop: - type_id: 49 + type_id: 5 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 49 + type_id: 5 prop_name: BackParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 49 + type_id: 5 prop_name: BackParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 49 + type_id: 5 prop_name: BackSurface prop_type: Enum values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: BackSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: BottomParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 49 + type_id: 5 prop_name: BottomParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 49 + type_id: 5 prop_name: BottomSurface prop_type: Enum values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: BottomSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: CFrame prop_type: CFrame values: @@ -2515,43 +2515,43 @@ chunks: - 0 - 1 - Prop: - type_id: 49 + type_id: 5 prop_name: CanCollide prop_type: Bool values: - true - Prop: - type_id: 49 + type_id: 5 prop_name: CanQuery prop_type: Bool values: - true - Prop: - type_id: 49 + type_id: 5 prop_name: CanTouch prop_type: Bool values: - true - Prop: - type_id: 49 + type_id: 5 prop_name: CastShadow prop_type: Bool values: - true - Prop: - type_id: 49 + type_id: 5 prop_name: CollisionGroup prop_type: String values: - Default - Prop: - type_id: 49 + type_id: 5 prop_name: CollisionGroupId prop_type: Int32 values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: Color3uint8 prop_type: Color3uint8 values: @@ -2559,115 +2559,115 @@ chunks: - 162 - 165 - Prop: - type_id: 49 + type_id: 5 prop_name: CustomPhysicalProperties prop_type: PhysicalProperties values: - Default - Prop: - type_id: 49 + type_id: 5 prop_name: Duration prop_type: Int32 values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: Enabled prop_type: Bool values: - true - Prop: - type_id: 49 + type_id: 5 prop_name: formFactorRaw prop_type: Enum values: - 1 - Prop: - type_id: 49 + type_id: 5 prop_name: FrontParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 49 + type_id: 5 prop_name: FrontParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 49 + type_id: 5 prop_name: FrontSurface prop_type: Enum values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: FrontSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: LeftParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 49 + type_id: 5 prop_name: LeftParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 49 + type_id: 5 prop_name: LeftSurface prop_type: Enum values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: LeftSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: Locked prop_type: Bool values: - false - Prop: - type_id: 49 + type_id: 5 prop_name: Massless prop_type: Bool values: - false - Prop: - type_id: 49 + type_id: 5 prop_name: Material prop_type: Enum values: - 256 - Prop: - type_id: 49 + type_id: 5 prop_name: MaterialVariantSerialized prop_type: String values: - "" - Prop: - type_id: 49 + type_id: 5 prop_name: Name prop_type: String values: - SpawnLocation - Prop: - type_id: 49 + type_id: 5 prop_name: Neutral prop_type: Bool values: - true - Prop: - type_id: 49 + type_id: 5 prop_name: PivotOffset prop_type: CFrame values: @@ -2686,43 +2686,43 @@ chunks: - 0 - 1 - Prop: - type_id: 49 + type_id: 5 prop_name: Reflectance prop_type: Float32 values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: RightParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 49 + type_id: 5 prop_name: RightParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 49 + type_id: 5 prop_name: RightSurface prop_type: Enum values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: RightSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: RootPriority prop_type: Int32 values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: RotVelocity prop_type: Vector3 values: @@ -2730,13 +2730,13 @@ chunks: - 0 - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: shape prop_type: Enum values: - 1 - Prop: - type_id: 49 + type_id: 5 prop_name: size prop_type: Vector3 values: @@ -2744,55 +2744,55 @@ chunks: - 1 - 12 - Prop: - type_id: 49 + type_id: 5 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 49 + type_id: 5 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 49 + type_id: 5 prop_name: TeamColor prop_type: BrickColor values: - 194 - Prop: - type_id: 49 + type_id: 5 prop_name: TopParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 49 + type_id: 5 prop_name: TopParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 49 + type_id: 5 prop_name: TopSurface prop_type: Enum values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: TopSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: Transparency prop_type: Float32 values: - 0 - Prop: - type_id: 49 + type_id: 5 prop_name: Velocity prop_type: Vector3 values: @@ -2800,618 +2800,618 @@ chunks: - 0 - 0 - Prop: - type_id: 51 + type_id: 20 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 51 + type_id: 20 prop_name: Name prop_type: String values: - StarterCharacterScripts - Prop: - type_id: 51 + type_id: 20 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 51 + type_id: 20 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 15 + type_id: 23 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 15 + type_id: 23 prop_name: Name prop_type: String values: - StarterGui - Prop: - type_id: 15 + type_id: 23 prop_name: ResetPlayerGuiOnSpawn prop_type: Bool values: - true - Prop: - type_id: 15 + type_id: 23 prop_name: RtlTextSupport prop_type: Enum values: - 0 - Prop: - type_id: 15 + type_id: 23 prop_name: ScreenOrientation prop_type: Enum values: - 4 - Prop: - type_id: 15 + type_id: 23 prop_name: ShowDevelopmentGui prop_type: Bool values: - true - Prop: - type_id: 15 + type_id: 23 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 15 + type_id: 23 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 15 + type_id: 23 prop_name: VirtualCursorMode prop_type: Enum values: - 0 - Prop: - type_id: 14 + type_id: 22 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 14 + type_id: 22 prop_name: Name prop_type: String values: - StarterPack - Prop: - type_id: 14 + type_id: 22 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 14 + type_id: 22 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 13 + type_id: 21 prop_name: AllowCustomAnimations prop_type: Bool values: - true - Prop: - type_id: 13 + type_id: 21 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 13 + type_id: 21 prop_name: AutoJumpEnabled prop_type: Bool values: - true - Prop: - type_id: 13 + type_id: 21 prop_name: CameraMaxZoomDistance prop_type: Float32 values: - 128 - Prop: - type_id: 13 + type_id: 21 prop_name: CameraMinZoomDistance prop_type: Float32 values: - 0.5 - Prop: - type_id: 13 + type_id: 21 prop_name: CameraMode prop_type: Enum values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: CharacterJumpHeight prop_type: Float32 values: - 7.2 - Prop: - type_id: 13 + type_id: 21 prop_name: CharacterJumpPower prop_type: Float32 values: - 50 - Prop: - type_id: 13 + type_id: 21 prop_name: CharacterMaxSlopeAngle prop_type: Float32 values: - 89 - Prop: - type_id: 13 + type_id: 21 prop_name: CharacterUseJumpPower prop_type: Bool values: - false - Prop: - type_id: 13 + type_id: 21 prop_name: CharacterWalkSpeed prop_type: Float32 values: - 16 - Prop: - type_id: 13 + type_id: 21 prop_name: DevCameraOcclusionMode prop_type: Enum values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: DevComputerCameraMovementMode prop_type: Enum values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: DevComputerMovementMode prop_type: Enum values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: DevTouchCameraMovementMode prop_type: Enum values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: DevTouchMovementMode prop_type: Enum values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: EnableDynamicHeads prop_type: Enum values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: EnableMouseLockOption prop_type: Bool values: - true - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsAssetIDFace prop_type: Int64 values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsAssetIDHead prop_type: Int64 values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsAssetIDLeftArm prop_type: Int64 values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsAssetIDLeftLeg prop_type: Int64 values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsAssetIDPants prop_type: Int64 values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsAssetIDRightArm prop_type: Int64 values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsAssetIDRightLeg prop_type: Int64 values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsAssetIDShirt prop_type: Int64 values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsAssetIDTeeShirt prop_type: Int64 values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsAssetIDTorso prop_type: Int64 values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsAvatar prop_type: Enum values: - 1 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsR15Collision prop_type: Enum values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsScaleRangeBodyType prop_type: NumberRange values: - - 0 - 1 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsScaleRangeHead prop_type: NumberRange values: - - 0.95 - 1 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsScaleRangeHeight prop_type: NumberRange values: - - 0.9 - 1.05 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsScaleRangeProportion prop_type: NumberRange values: - - 0 - 1 - Prop: - type_id: 13 + type_id: 21 prop_name: GameSettingsScaleRangeWidth prop_type: NumberRange values: - - 0.7 - 1 - Prop: - type_id: 13 + type_id: 21 prop_name: HealthDisplayDistance prop_type: Float32 values: - 100 - Prop: - type_id: 13 + type_id: 21 prop_name: HumanoidStateMachineMode prop_type: Enum values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: LoadCharacterAppearance prop_type: Bool values: - true - Prop: - type_id: 13 + type_id: 21 prop_name: LoadCharacterLayeredClothing prop_type: Enum values: - 0 - Prop: - type_id: 13 + type_id: 21 prop_name: Name prop_type: String values: - StarterPlayer - Prop: - type_id: 13 + type_id: 21 prop_name: NameDisplayDistance prop_type: Float32 values: - 100 - Prop: - type_id: 13 + type_id: 21 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 13 + type_id: 21 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 13 + type_id: 21 prop_name: UserEmotesEnabled prop_type: Bool values: - true - Prop: - type_id: 50 + type_id: 19 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 50 + type_id: 19 prop_name: Name prop_type: String values: - StarterPlayerScripts - Prop: - type_id: 50 + type_id: 19 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 50 + type_id: 19 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 52 + type_id: 29 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 52 + type_id: 29 prop_name: Name prop_type: String values: - InsertionHash - Prop: - type_id: 52 + type_id: 29 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 52 + type_id: 29 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 52 + type_id: 29 prop_name: Value prop_type: String values: - "{27DB7157-ECC3-47DA-9A78-AF69D482E6A5}" - Prop: - type_id: 12 + type_id: 18 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 12 + type_id: 18 prop_name: EnableScriptCollabByDefaultOnLoad prop_type: Bool values: - false - Prop: - type_id: 12 + type_id: 18 prop_name: Name prop_type: String values: - StudioData - Prop: - type_id: 12 + type_id: 18 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 12 + type_id: 18 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 54 + type_id: 49 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 54 + type_id: 49 prop_name: Enabled prop_type: Bool values: - true - Prop: - type_id: 54 + type_id: 49 prop_name: Intensity prop_type: Float32 values: - 0.01 - Prop: - type_id: 54 + type_id: 49 prop_name: Name prop_type: String values: - SunRays - Prop: - type_id: 54 + type_id: 49 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 54 + type_id: 49 prop_name: Spread prop_type: Float32 values: - 0.1 - Prop: - type_id: 54 + type_id: 49 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 43 + type_id: 57 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 43 + type_id: 57 prop_name: Name prop_type: String values: - Teams - Prop: - type_id: 43 + type_id: 57 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 43 + type_id: 57 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 17 + type_id: 25 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 17 + type_id: 25 prop_name: Name prop_type: String values: - Teleport Service - Prop: - type_id: 17 + type_id: 25 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 17 + type_id: 25 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 48 + type_id: 3 prop_name: AcquisitionMethod prop_type: Enum values: - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: Anchored prop_type: Bool values: - true - Prop: - type_id: 48 + type_id: 3 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 48 + type_id: 3 prop_name: BackParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 48 + type_id: 3 prop_name: BackParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 48 + type_id: 3 prop_name: BackSurface prop_type: Enum values: - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: BackSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: BottomParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 48 + type_id: 3 prop_name: BottomParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 48 + type_id: 3 prop_name: BottomSurface prop_type: Enum values: - 4 - Prop: - type_id: 48 + type_id: 3 prop_name: BottomSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: CFrame prop_type: CFrame values: @@ -3430,43 +3430,43 @@ chunks: - 0 - 1 - Prop: - type_id: 48 + type_id: 3 prop_name: CanCollide prop_type: Bool values: - true - Prop: - type_id: 48 + type_id: 3 prop_name: CanQuery prop_type: Bool values: - true - Prop: - type_id: 48 + type_id: 3 prop_name: CanTouch prop_type: Bool values: - true - Prop: - type_id: 48 + type_id: 3 prop_name: CastShadow prop_type: Bool values: - true - Prop: - type_id: 48 + type_id: 3 prop_name: CollisionGroup prop_type: String values: - Default - Prop: - type_id: 48 + type_id: 3 prop_name: CollisionGroupId prop_type: Int32 values: - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: Color3uint8 prop_type: Color3uint8 values: @@ -3474,109 +3474,109 @@ chunks: - 162 - 165 - Prop: - type_id: 48 + type_id: 3 prop_name: CustomPhysicalProperties prop_type: PhysicalProperties values: - Default - Prop: - type_id: 48 + type_id: 3 prop_name: Decoration prop_type: Bool values: - true - Prop: - type_id: 48 + type_id: 3 prop_name: FrontParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 48 + type_id: 3 prop_name: FrontParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 48 + type_id: 3 prop_name: FrontSurface prop_type: Enum values: - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: FrontSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: LeftParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 48 + type_id: 3 prop_name: LeftParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 48 + type_id: 3 prop_name: LeftSurface prop_type: Enum values: - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: LeftSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: Locked prop_type: Bool values: - true - Prop: - type_id: 48 + type_id: 3 prop_name: Massless prop_type: Bool values: - false - Prop: - type_id: 48 + type_id: 3 prop_name: Material prop_type: Enum values: - 256 - Prop: - type_id: 48 + type_id: 3 prop_name: MaterialColors prop_type: String values: - 00 00 00 00 00 00 6f 7e 3e 58 59 56 98 98 98 8a 61 49 cf cb a7 ac 94 6c 63 64 66 dd e4 e5 eb fd ff 94 7c 5f 79 70 62 4b 4a 4a 8c 82 68 ff 18 43 50 54 54 86 86 76 cc d2 df 6a 86 40 ff ff fe ff f3 c0 8f 90 87 - Prop: - type_id: 48 + type_id: 3 prop_name: MaterialVariantSerialized prop_type: String values: - "" - Prop: - type_id: 48 + type_id: 3 prop_name: Name prop_type: String values: - Terrain - Prop: - type_id: 48 + type_id: 3 prop_name: PhysicsGrid prop_type: String values: - "\u0002\u0003\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" - Prop: - type_id: 48 + type_id: 3 prop_name: PivotOffset prop_type: CFrame values: @@ -3595,43 +3595,43 @@ chunks: - 0 - 1 - Prop: - type_id: 48 + type_id: 3 prop_name: Reflectance prop_type: Float32 values: - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: RightParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 48 + type_id: 3 prop_name: RightParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 48 + type_id: 3 prop_name: RightSurface prop_type: Enum values: - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: RightSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: RootPriority prop_type: Int32 values: - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: RotVelocity prop_type: Vector3 values: @@ -3639,13 +3639,13 @@ chunks: - 0 - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: ShorelinesUpgraded prop_type: Bool values: - false - Prop: - type_id: 48 + type_id: 3 prop_name: size prop_type: Vector3 values: @@ -3653,61 +3653,61 @@ chunks: - 252 - 2044 - Prop: - type_id: 48 + type_id: 3 prop_name: SmoothGrid prop_type: String values: - "\u0001\u0005" - Prop: - type_id: 48 + type_id: 3 prop_name: SmoothVoxelsUpgraded prop_type: Bool values: - false - Prop: - type_id: 48 + type_id: 3 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 48 + type_id: 3 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 48 + type_id: 3 prop_name: TopParamA prop_type: Float32 values: - -0.5 - Prop: - type_id: 48 + type_id: 3 prop_name: TopParamB prop_type: Float32 values: - 0.5 - Prop: - type_id: 48 + type_id: 3 prop_name: TopSurface prop_type: Enum values: - 3 - Prop: - type_id: 48 + type_id: 3 prop_name: TopSurfaceInput prop_type: Enum values: - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: Transparency prop_type: Float32 values: - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: Velocity prop_type: Vector3 values: @@ -3715,7 +3715,7 @@ chunks: - 0 - 0 - Prop: - type_id: 48 + type_id: 3 prop_name: WaterColor prop_type: Color3 values: @@ -3723,103 +3723,103 @@ chunks: - 0.32941177 - 0.36078432 - Prop: - type_id: 48 + type_id: 3 prop_name: WaterReflectance prop_type: Float32 values: - 1 - Prop: - type_id: 48 + type_id: 3 prop_name: WaterTransparency prop_type: Float32 values: - 0.3 - Prop: - type_id: 48 + type_id: 3 prop_name: WaterWaveSize prop_type: Float32 values: - 0.15 - Prop: - type_id: 48 + type_id: 3 prop_name: WaterWaveSpeed prop_type: Float32 values: - 10 - Prop: - type_id: 44 + type_id: 58 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 44 + type_id: 58 prop_name: AutoRuns prop_type: Bool values: - true - Prop: - type_id: 44 + type_id: 58 prop_name: Description prop_type: String values: - "" - Prop: - type_id: 44 + type_id: 58 prop_name: ExecuteWithStudioRun prop_type: Bool values: - false - Prop: - type_id: 44 + type_id: 58 prop_name: IsSleepAllowed prop_type: Bool values: - true - Prop: - type_id: 44 + type_id: 58 prop_name: Name prop_type: String values: - TestService - Prop: - type_id: 44 + type_id: 58 prop_name: NumberOfPlayers prop_type: Int32 values: - 0 - Prop: - type_id: 44 + type_id: 58 prop_name: SimulateSecondsLag prop_type: Float64 values: - 0 - Prop: - type_id: 44 + type_id: 58 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 44 + type_id: 58 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 44 + type_id: 58 prop_name: Timeout prop_type: Float64 values: - 10 - Prop: - type_id: 58 + type_id: 1 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 58 + type_id: 1 prop_name: Color3 prop_type: Color3 values: @@ -3827,241 +3827,241 @@ chunks: - 0 - 0 - Prop: - type_id: 58 + type_id: 1 prop_name: Face prop_type: Enum values: - 1 - Prop: - type_id: 58 + type_id: 1 prop_name: Name prop_type: String values: - Texture - Prop: - type_id: 58 + type_id: 1 prop_name: OffsetStudsU prop_type: Float32 values: - 0 - Prop: - type_id: 58 + type_id: 1 prop_name: OffsetStudsV prop_type: Float32 values: - 0 - Prop: - type_id: 58 + type_id: 1 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 58 + type_id: 1 prop_name: StudsPerTileU prop_type: Float32 values: - 8 - Prop: - type_id: 58 + type_id: 1 prop_name: StudsPerTileV prop_type: Float32 values: - 8 - Prop: - type_id: 58 + type_id: 1 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 58 + type_id: 1 prop_name: Texture prop_type: String values: - "rbxassetid://6372755229" - Prop: - type_id: 58 + type_id: 1 prop_name: Transparency prop_type: Float32 values: - 0.8 - Prop: - type_id: 58 + type_id: 1 prop_name: ZIndex prop_type: Int32 values: - 1 - Prop: - type_id: 5 + type_id: 11 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 5 + type_id: 11 prop_name: Name prop_type: String values: - Instance - Prop: - type_id: 5 + type_id: 11 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 5 + type_id: 11 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 29 + type_id: 38 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 29 + type_id: 38 prop_name: Name prop_type: String values: - TouchInputService - Prop: - type_id: 29 + type_id: 38 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 29 + type_id: 38 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 8 + type_id: 14 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 8 + type_id: 14 prop_name: Name prop_type: String values: - TweenService - Prop: - type_id: 8 + type_id: 14 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 8 + type_id: 14 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 25 + type_id: 34 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 25 + type_id: 34 prop_name: Name prop_type: String values: - VRService - Prop: - type_id: 25 + type_id: 34 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 25 + type_id: 34 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 45 + type_id: 59 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 45 + type_id: 59 prop_name: Name prop_type: String values: - VirtualInputManager - Prop: - type_id: 45 + type_id: 59 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 45 + type_id: 59 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 0 + type_id: 6 prop_name: AllowThirdPartySales prop_type: Bool values: - false - Prop: - type_id: 0 + type_id: 6 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 0 + type_id: 6 prop_name: ClientAnimatorThrottling prop_type: Enum values: - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: CollisionGroupData prop_type: String values: - 01 01 00 04 ff ff ff ff 07 44 65 66 61 75 6c 74 - Prop: - type_id: 0 + type_id: 6 prop_name: CurrentCamera prop_type: Ref values: - - 46 + - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: DistributedGameTime prop_type: Float64 values: - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: ExplicitAutoJoints prop_type: Bool values: - true - Prop: - type_id: 0 + type_id: 6 prop_name: FallenPartsDestroyHeight prop_type: Float32 values: - -500 - Prop: - type_id: 0 + type_id: 6 prop_name: GlobalWind prop_type: Vector3 values: @@ -4069,31 +4069,31 @@ chunks: - 0 - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: Gravity prop_type: Float32 values: - 196.2 - Prop: - type_id: 0 + type_id: 6 prop_name: HumanoidOnlySetCollisionsOnStateChange prop_type: Enum values: - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: LevelOfDetail prop_type: Enum values: - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: MeshPartHeadsAndAccessories prop_type: Enum values: - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: ModelMeshCFrame prop_type: CFrame values: @@ -4112,13 +4112,13 @@ chunks: - 0 - 1 - Prop: - type_id: 0 + type_id: 6 prop_name: ModelMeshData prop_type: SharedString values: - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: ModelMeshSize prop_type: Vector3 values: @@ -4126,121 +4126,121 @@ chunks: - 0 - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: ModelStreamingMode prop_type: Enum values: - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: Name prop_type: String values: - Workspace - Prop: - type_id: 0 + type_id: 6 prop_name: NeedsPivotMigration prop_type: Bool values: - false - Prop: - type_id: 0 + type_id: 6 prop_name: PhysicsSteppingMethod prop_type: Enum values: - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: PrimaryPart prop_type: Ref values: - -1 - Prop: - type_id: 0 + type_id: 6 prop_name: RejectCharacterDeletions prop_type: Enum values: - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: ReplicateInstanceDestroySetting prop_type: Enum values: - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: Retargeting prop_type: Enum values: - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: ScaleFactor prop_type: Float32 values: - 1 - Prop: - type_id: 0 + type_id: 6 prop_name: SignalBehavior2 prop_type: Enum values: - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 0 + type_id: 6 prop_name: StreamOutBehavior prop_type: Enum values: - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: StreamingEnabled prop_type: Bool values: - false - Prop: - type_id: 0 + type_id: 6 prop_name: StreamingIntegrityMode prop_type: Enum values: - 0 - Prop: - type_id: 0 + type_id: 6 prop_name: StreamingMinRadius prop_type: Int32 values: - 64 - Prop: - type_id: 0 + type_id: 6 prop_name: StreamingTargetRadius prop_type: Int32 values: - 1024 - Prop: - type_id: 0 + type_id: 6 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 0 + type_id: 6 prop_name: TerrainWeldsFixed prop_type: Bool values: - true - Prop: - type_id: 0 + type_id: 6 prop_name: TouchesUseCollisionGroups prop_type: Bool values: - false - Prop: - type_id: 0 + type_id: 6 prop_name: WorldPivotData prop_type: OptionalCFrame values: @@ -4261,125 +4261,124 @@ chunks: - Prnt: version: 0 links: - - - 59 - - 49 - - - 58 - - 47 - - - 57 - - 39 - - - 56 - - 39 - - - 55 - - 39 - - - 54 - - 39 - - - 53 - - 39 - - - 52 - - 21 - - - 51 - - 13 - - - 50 - - 13 - - - 49 - - 0 - - - 48 - - 0 - - - 47 - - 0 - - - 46 - - 0 - - - 45 - - -1 - - - 44 + - - 0 + - 6 + - - 1 + - 2 + - - 2 + - 6 + - - 3 + - 6 + - - 4 + - 5 + - - 5 + - 6 + - - 6 - -1 - - - 43 + - - 7 - -1 - - - 42 + - - 8 - -1 - - - 41 + - - 9 - -1 - - - 40 + - - 10 - -1 - - - 39 + - - 11 - -1 - - - 38 + - - 12 - -1 - - - 37 + - - 13 - -1 - - - 36 + - - 14 - -1 - - - 35 + - - 15 - -1 - - - 34 + - - 16 - -1 - - - 33 + - - 17 - -1 - - - 32 + - - 18 - -1 - - - 31 + - - 19 + - 21 + - - 20 + - 21 + - - 21 - -1 - - - 30 + - - 22 - -1 - - - 29 + - - 23 - -1 - - - 28 + - - 24 - -1 - - - 27 + - - 25 - -1 - - 26 - -1 - - - 25 + - - 27 - -1 - - - 24 + - - 28 - -1 - - - 23 + - - 29 + - 30 + - - 30 - -1 - - - 22 + - - 31 - -1 - - - 21 + - - 32 - -1 - - - 20 + - - 33 - -1 - - - 19 + - - 34 - -1 - - - 18 + - - 35 - -1 - - - 17 + - - 36 - -1 - - - 16 + - - 37 - -1 - - - 15 + - - 38 - -1 - - - 14 + - - 39 - -1 - - - 13 + - - 40 - -1 - - - 12 + - - 41 - -1 - - - 11 + - - 42 - -1 - - - 10 + - - 43 - -1 - - - 9 + - - 44 - -1 - - - 8 + - - 45 - -1 - - - 7 + - - 46 - -1 - - - 6 + - - 47 - -1 - - - 5 + - - 48 + - 53 + - - 49 + - 53 + - - 50 + - 53 + - - 51 + - 53 + - - 52 + - 53 + - - 53 - -1 - - - 4 + - - 54 - -1 - - - 3 + - - 55 - -1 - - - 2 + - - 56 - -1 - - - 1 + - - 57 - -1 - - - 0 + - - 58 + - -1 + - - 59 - -1 - End - diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-case-mixture__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-case-mixture__encoded.snap index 13db3a20f..20082502e 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-case-mixture__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-case-mixture__encoded.snap @@ -76,9 +76,9 @@ chunks: - Prnt: version: 0 links: - - - 1 - - -1 - - 0 - -1 + - - 1 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-special-cases__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-special-cases__encoded.snap index 6f76e9157..af12fc4c7 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-special-cases__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__cframe-special-cases__encoded.snap @@ -494,53 +494,53 @@ chunks: - Prnt: version: 0 links: - - - 23 - - -1 - - - 22 + - - 0 - -1 - - - 21 + - - 1 - -1 - - - 20 + - - 2 - -1 - - - 19 + - - 3 - -1 - - - 18 + - - 4 - -1 - - - 17 + - - 5 - -1 - - - 16 + - - 6 - -1 - - - 15 + - - 7 - -1 - - - 14 + - - 8 - -1 - - - 13 + - - 9 - -1 - - - 12 + - - 10 - -1 - - 11 - -1 - - - 10 + - - 12 - -1 - - - 9 + - - 13 - -1 - - - 8 + - - 14 - -1 - - - 7 + - - 15 - -1 - - - 6 + - - 16 - -1 - - - 5 + - - 17 - -1 - - - 4 + - - 18 - -1 - - - 3 + - - 19 - -1 - - - 2 + - - 20 - -1 - - - 1 + - - 21 - -1 - - - 0 + - - 22 + - -1 + - - 23 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__faces__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__faces__encoded.snap index 7fac28170..37675dd82 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__faces__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__faces__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -956,133 +955,133 @@ chunks: - Prnt: version: 0 links: - - - 63 - - -1 - - - 62 + - - 0 - -1 - - - 61 + - - 1 - -1 - - - 60 + - - 2 - -1 - - - 59 + - - 3 - -1 - - - 58 + - - 4 - -1 - - - 57 + - - 5 - -1 - - - 56 + - - 6 - -1 - - - 55 + - - 7 - -1 - - - 54 + - - 8 - -1 - - - 53 + - - 9 - -1 - - - 52 + - - 10 - -1 - - - 51 + - - 11 - -1 - - - 50 + - - 12 - -1 - - - 49 + - - 13 - -1 - - - 48 + - - 14 - -1 - - - 47 + - - 15 - -1 - - - 46 + - - 16 - -1 - - - 45 + - - 17 - -1 - - - 44 + - - 18 - -1 - - - 43 + - - 19 - -1 - - - 42 + - - 20 - -1 - - - 41 + - - 21 - -1 - - - 40 + - - 22 - -1 - - - 39 + - - 23 - -1 - - - 38 + - - 24 - -1 - - - 37 + - - 25 - -1 - - - 36 + - - 26 - -1 - - - 35 + - - 27 - -1 - - - 34 + - - 28 - -1 - - - 33 + - - 29 - -1 - - - 32 + - - 30 - -1 - - 31 - -1 - - - 30 + - - 32 - -1 - - - 29 + - - 33 - -1 - - - 28 + - - 34 - -1 - - - 27 + - - 35 - -1 - - - 26 + - - 36 - -1 - - - 25 + - - 37 - -1 - - - 24 + - - 38 - -1 - - - 23 + - - 39 - -1 - - - 22 + - - 40 - -1 - - - 21 + - - 41 - -1 - - - 20 + - - 42 - -1 - - - 19 + - - 43 - -1 - - - 18 + - - 44 - -1 - - - 17 + - - 45 - -1 - - - 16 + - - 46 - -1 - - - 15 + - - 47 - -1 - - - 14 + - - 48 - -1 - - - 13 + - - 49 - -1 - - - 12 + - - 50 - -1 - - - 11 + - - 51 - -1 - - - 10 + - - 52 - -1 - - - 9 + - - 53 - -1 - - - 8 + - - 54 - -1 - - - 7 + - - 55 - -1 - - - 6 + - - 56 - -1 - - - 5 + - - 57 - -1 - - - 4 + - - 58 - -1 - - - 3 + - - 59 - -1 - - - 2 + - - 60 - -1 - - - 1 + - - 61 - -1 - - - 0 + - - 62 + - -1 + - - 63 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__gui-inset-and-font-migration__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__gui-inset-and-font-migration__encoded.snap index 532824f63..7e5f3f076 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__gui-inset-and-font-migration__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__gui-inset-and-font-migration__encoded.snap @@ -6,219 +6,219 @@ num_types: 5 num_instances: 6 chunks: - Inst: - type_id: 0 + type_id: 4 type_name: Folder object_format: 0 referents: - - 0 + - 5 - Inst: - type_id: 1 + type_id: 0 type_name: ScreenGui object_format: 0 referents: - - 1 - - 2 + - 0 + - 4 - Inst: - type_id: 4 + type_id: 3 type_name: TextBox object_format: 0 referents: - - 5 + - 3 - Inst: - type_id: 3 + type_id: 2 type_name: TextButton object_format: 0 referents: - - 4 + - 2 - Inst: - type_id: 2 + type_id: 1 type_name: TextLabel object_format: 0 referents: - - 3 + - 1 - Prop: - type_id: 0 + type_id: 4 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 0 + type_id: 4 prop_name: Name prop_type: String values: - Folder - Prop: - type_id: 0 + type_id: 4 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 0 + type_id: 4 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 1 + type_id: 0 prop_name: AttributesSerialize prop_type: String values: - "" - "" - Prop: - type_id: 1 + type_id: 0 prop_name: AutoLocalize prop_type: Bool values: - true - true - Prop: - type_id: 1 + type_id: 0 prop_name: ClipToDeviceSafeArea prop_type: Bool values: - true - true - Prop: - type_id: 1 + type_id: 0 prop_name: DisplayOrder prop_type: Int32 values: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: Enabled prop_type: Bool values: - true - true - Prop: - type_id: 1 + type_id: 0 prop_name: Name prop_type: String values: - "IgnoreGuiInset: true" - "IgnoreGuiInset: false" - Prop: - type_id: 1 + type_id: 0 prop_name: ResetOnSpawn prop_type: Bool values: - true - true - Prop: - type_id: 1 + type_id: 0 prop_name: RootLocalizationTable prop_type: Ref values: - -1 - -1 - Prop: - type_id: 1 + type_id: 0 prop_name: SafeAreaCompatibility prop_type: Enum values: - 1 - 1 - Prop: - type_id: 1 + type_id: 0 prop_name: ScreenInsets prop_type: Enum values: - 1 - 2 - Prop: - type_id: 1 + type_id: 0 prop_name: SelectionBehaviorDown prop_type: Enum values: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: SelectionBehaviorLeft prop_type: Enum values: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: SelectionBehaviorRight prop_type: Enum values: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: SelectionBehaviorUp prop_type: Enum values: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: SelectionGroup prop_type: Bool values: - false - false - Prop: - type_id: 1 + type_id: 0 prop_name: SourceAssetId prop_type: Int64 values: - -1 - -1 - Prop: - type_id: 1 + type_id: 0 prop_name: Tags prop_type: String values: - "" - "" - Prop: - type_id: 1 + type_id: 0 prop_name: ZIndexBehavior prop_type: Enum values: - 1 - 1 - Prop: - type_id: 4 + type_id: 3 prop_name: Active prop_type: Bool values: - true - Prop: - type_id: 4 + type_id: 3 prop_name: AnchorPoint prop_type: Vector2 values: - - 0 - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 4 + type_id: 3 prop_name: AutoLocalize prop_type: Bool values: - true - Prop: - type_id: 4 + type_id: 3 prop_name: AutomaticSize prop_type: Enum values: - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: BackgroundColor3 prop_type: Color3 values: @@ -226,13 +226,13 @@ chunks: - 1 - 1 - Prop: - type_id: 4 + type_id: 3 prop_name: BackgroundTransparency prop_type: Float32 values: - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: BorderColor3 prop_type: Color3 values: @@ -240,37 +240,37 @@ chunks: - 0.16470589 - 0.20784315 - Prop: - type_id: 4 + type_id: 3 prop_name: BorderMode prop_type: Enum values: - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: BorderSizePixel prop_type: Int32 values: - 1 - Prop: - type_id: 4 + type_id: 3 prop_name: ClearTextOnFocus prop_type: Bool values: - true - Prop: - type_id: 4 + type_id: 3 prop_name: ClipsDescendants prop_type: Bool values: - false - Prop: - type_id: 4 + type_id: 3 prop_name: Draggable prop_type: Bool values: - false - Prop: - type_id: 4 + type_id: 3 prop_name: FontFace prop_type: Font values: @@ -279,61 +279,61 @@ chunks: style: Italic cachedFaceId: ~ - Prop: - type_id: 4 + type_id: 3 prop_name: LayoutOrder prop_type: Int32 values: - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: LineHeight prop_type: Float32 values: - 1 - Prop: - type_id: 4 + type_id: 3 prop_name: MaxVisibleGraphemes prop_type: Int32 values: - -1 - Prop: - type_id: 4 + type_id: 3 prop_name: MultiLine prop_type: Bool values: - false - Prop: - type_id: 4 + type_id: 3 prop_name: Name prop_type: String values: - TextBox - Prop: - type_id: 4 + type_id: 3 prop_name: NextSelectionDown prop_type: Ref values: - -1 - Prop: - type_id: 4 + type_id: 3 prop_name: NextSelectionLeft prop_type: Ref values: - -1 - Prop: - type_id: 4 + type_id: 3 prop_name: NextSelectionRight prop_type: Ref values: - -1 - Prop: - type_id: 4 + type_id: 3 prop_name: NextSelectionUp prop_type: Ref values: - -1 - Prop: - type_id: 4 + type_id: 3 prop_name: PlaceholderColor3 prop_type: Color3 values: @@ -341,13 +341,13 @@ chunks: - 0.7 - 0.7 - Prop: - type_id: 4 + type_id: 3 prop_name: PlaceholderText prop_type: String values: - "" - Prop: - type_id: 4 + type_id: 3 prop_name: Position prop_type: UDim2 values: @@ -356,79 +356,79 @@ chunks: - - 0 - 110 - Prop: - type_id: 4 + type_id: 3 prop_name: RichText prop_type: Bool values: - false - Prop: - type_id: 4 + type_id: 3 prop_name: RootLocalizationTable prop_type: Ref values: - -1 - Prop: - type_id: 4 + type_id: 3 prop_name: Rotation prop_type: Float32 values: - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: Selectable prop_type: Bool values: - true - Prop: - type_id: 4 + type_id: 3 prop_name: SelectionBehaviorDown prop_type: Enum values: - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: SelectionBehaviorLeft prop_type: Enum values: - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: SelectionBehaviorRight prop_type: Enum values: - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: SelectionBehaviorUp prop_type: Enum values: - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: SelectionGroup prop_type: Bool values: - false - Prop: - type_id: 4 + type_id: 3 prop_name: SelectionImageObject prop_type: Ref values: - -1 - Prop: - type_id: 4 + type_id: 3 prop_name: SelectionOrder prop_type: Int32 values: - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: ShowNativeInput prop_type: Bool values: - true - Prop: - type_id: 4 + type_id: 3 prop_name: Size prop_type: UDim2 values: @@ -437,31 +437,31 @@ chunks: - - 0 - 50 - Prop: - type_id: 4 + type_id: 3 prop_name: SizeConstraint prop_type: Enum values: - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 4 + type_id: 3 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 4 + type_id: 3 prop_name: Text prop_type: String values: - TextBox - Prop: - type_id: 4 + type_id: 3 prop_name: TextColor3 prop_type: Color3 values: @@ -469,25 +469,25 @@ chunks: - 0 - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: TextEditable prop_type: Bool values: - true - Prop: - type_id: 4 + type_id: 3 prop_name: TextScaled prop_type: Bool values: - false - Prop: - type_id: 4 + type_id: 3 prop_name: TextSize prop_type: Float32 values: - 14 - Prop: - type_id: 4 + type_id: 3 prop_name: TextStrokeColor3 prop_type: Color3 values: @@ -495,92 +495,92 @@ chunks: - 0 - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: TextStrokeTransparency prop_type: Float32 values: - 1 - Prop: - type_id: 4 + type_id: 3 prop_name: TextTransparency prop_type: Float32 values: - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: TextTruncate prop_type: Enum values: - 0 - Prop: - type_id: 4 + type_id: 3 prop_name: TextWrapped prop_type: Bool values: - false - Prop: - type_id: 4 + type_id: 3 prop_name: TextXAlignment prop_type: Enum values: - 2 - Prop: - type_id: 4 + type_id: 3 prop_name: TextYAlignment prop_type: Enum values: - 1 - Prop: - type_id: 4 + type_id: 3 prop_name: Visible prop_type: Bool values: - true - Prop: - type_id: 4 + type_id: 3 prop_name: ZIndex prop_type: Int32 values: - 1 - Prop: - type_id: 3 + type_id: 2 prop_name: Active prop_type: Bool values: - true - Prop: - type_id: 3 + type_id: 2 prop_name: AnchorPoint prop_type: Vector2 values: - - 0 - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 3 + type_id: 2 prop_name: AutoButtonColor prop_type: Bool values: - true - Prop: - type_id: 3 + type_id: 2 prop_name: AutoLocalize prop_type: Bool values: - true - Prop: - type_id: 3 + type_id: 2 prop_name: AutomaticSize prop_type: Enum values: - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: BackgroundColor3 prop_type: Color3 values: @@ -588,13 +588,13 @@ chunks: - 1 - 1 - Prop: - type_id: 3 + type_id: 2 prop_name: BackgroundTransparency prop_type: Float32 values: - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: BorderColor3 prop_type: Color3 values: @@ -602,31 +602,31 @@ chunks: - 0.16470589 - 0.20784315 - Prop: - type_id: 3 + type_id: 2 prop_name: BorderMode prop_type: Enum values: - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: BorderSizePixel prop_type: Int32 values: - 1 - Prop: - type_id: 3 + type_id: 2 prop_name: ClipsDescendants prop_type: Bool values: - false - Prop: - type_id: 3 + type_id: 2 prop_name: Draggable prop_type: Bool values: - false - Prop: - type_id: 3 + type_id: 2 prop_name: FontFace prop_type: Font values: @@ -635,61 +635,61 @@ chunks: style: Normal cachedFaceId: ~ - Prop: - type_id: 3 + type_id: 2 prop_name: LayoutOrder prop_type: Int32 values: - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: LineHeight prop_type: Float32 values: - 1 - Prop: - type_id: 3 + type_id: 2 prop_name: MaxVisibleGraphemes prop_type: Int32 values: - -1 - Prop: - type_id: 3 + type_id: 2 prop_name: Modal prop_type: Bool values: - false - Prop: - type_id: 3 + type_id: 2 prop_name: Name prop_type: String values: - TextButton - Prop: - type_id: 3 + type_id: 2 prop_name: NextSelectionDown prop_type: Ref values: - -1 - Prop: - type_id: 3 + type_id: 2 prop_name: NextSelectionLeft prop_type: Ref values: - -1 - Prop: - type_id: 3 + type_id: 2 prop_name: NextSelectionRight prop_type: Ref values: - -1 - Prop: - type_id: 3 + type_id: 2 prop_name: NextSelectionUp prop_type: Ref values: - -1 - Prop: - type_id: 3 + type_id: 2 prop_name: Position prop_type: UDim2 values: @@ -698,79 +698,79 @@ chunks: - - 0 - 55 - Prop: - type_id: 3 + type_id: 2 prop_name: RichText prop_type: Bool values: - false - Prop: - type_id: 3 + type_id: 2 prop_name: RootLocalizationTable prop_type: Ref values: - -1 - Prop: - type_id: 3 + type_id: 2 prop_name: Rotation prop_type: Float32 values: - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: Selectable prop_type: Bool values: - true - Prop: - type_id: 3 + type_id: 2 prop_name: Selected prop_type: Bool values: - false - Prop: - type_id: 3 + type_id: 2 prop_name: SelectionBehaviorDown prop_type: Enum values: - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: SelectionBehaviorLeft prop_type: Enum values: - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: SelectionBehaviorRight prop_type: Enum values: - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: SelectionBehaviorUp prop_type: Enum values: - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: SelectionGroup prop_type: Bool values: - false - Prop: - type_id: 3 + type_id: 2 prop_name: SelectionImageObject prop_type: Ref values: - -1 - Prop: - type_id: 3 + type_id: 2 prop_name: SelectionOrder prop_type: Int32 values: - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: Size prop_type: UDim2 values: @@ -779,37 +779,37 @@ chunks: - - 0 - 50 - Prop: - type_id: 3 + type_id: 2 prop_name: SizeConstraint prop_type: Enum values: - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 3 + type_id: 2 prop_name: Style prop_type: Enum values: - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 3 + type_id: 2 prop_name: Text prop_type: String values: - Button - Prop: - type_id: 3 + type_id: 2 prop_name: TextColor3 prop_type: Color3 values: @@ -817,19 +817,19 @@ chunks: - 0 - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: TextScaled prop_type: Bool values: - false - Prop: - type_id: 3 + type_id: 2 prop_name: TextSize prop_type: Float32 values: - 14 - Prop: - type_id: 3 + type_id: 2 prop_name: TextStrokeColor3 prop_type: Color3 values: @@ -837,86 +837,86 @@ chunks: - 0 - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: TextStrokeTransparency prop_type: Float32 values: - 1 - Prop: - type_id: 3 + type_id: 2 prop_name: TextTransparency prop_type: Float32 values: - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: TextTruncate prop_type: Enum values: - 0 - Prop: - type_id: 3 + type_id: 2 prop_name: TextWrapped prop_type: Bool values: - false - Prop: - type_id: 3 + type_id: 2 prop_name: TextXAlignment prop_type: Enum values: - 2 - Prop: - type_id: 3 + type_id: 2 prop_name: TextYAlignment prop_type: Enum values: - 1 - Prop: - type_id: 3 + type_id: 2 prop_name: Visible prop_type: Bool values: - true - Prop: - type_id: 3 + type_id: 2 prop_name: ZIndex prop_type: Int32 values: - 1 - Prop: - type_id: 2 + type_id: 1 prop_name: Active prop_type: Bool values: - false - Prop: - type_id: 2 + type_id: 1 prop_name: AnchorPoint prop_type: Vector2 values: - - 0 - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 2 + type_id: 1 prop_name: AutoLocalize prop_type: Bool values: - true - Prop: - type_id: 2 + type_id: 1 prop_name: AutomaticSize prop_type: Enum values: - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: BackgroundColor3 prop_type: Color3 values: @@ -924,13 +924,13 @@ chunks: - 1 - 1 - Prop: - type_id: 2 + type_id: 1 prop_name: BackgroundTransparency prop_type: Float32 values: - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: BorderColor3 prop_type: Color3 values: @@ -938,31 +938,31 @@ chunks: - 0.16470589 - 0.20784315 - Prop: - type_id: 2 + type_id: 1 prop_name: BorderMode prop_type: Enum values: - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: BorderSizePixel prop_type: Int32 values: - 1 - Prop: - type_id: 2 + type_id: 1 prop_name: ClipsDescendants prop_type: Bool values: - false - Prop: - type_id: 2 + type_id: 1 prop_name: Draggable prop_type: Bool values: - false - Prop: - type_id: 2 + type_id: 1 prop_name: FontFace prop_type: Font values: @@ -971,55 +971,55 @@ chunks: style: Normal cachedFaceId: ~ - Prop: - type_id: 2 + type_id: 1 prop_name: LayoutOrder prop_type: Int32 values: - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: LineHeight prop_type: Float32 values: - 1 - Prop: - type_id: 2 + type_id: 1 prop_name: MaxVisibleGraphemes prop_type: Int32 values: - -1 - Prop: - type_id: 2 + type_id: 1 prop_name: Name prop_type: String values: - TextLabel - Prop: - type_id: 2 + type_id: 1 prop_name: NextSelectionDown prop_type: Ref values: - -1 - Prop: - type_id: 2 + type_id: 1 prop_name: NextSelectionLeft prop_type: Ref values: - -1 - Prop: - type_id: 2 + type_id: 1 prop_name: NextSelectionRight prop_type: Ref values: - -1 - Prop: - type_id: 2 + type_id: 1 prop_name: NextSelectionUp prop_type: Ref values: - -1 - Prop: - type_id: 2 + type_id: 1 prop_name: Position prop_type: UDim2 values: @@ -1028,73 +1028,73 @@ chunks: - - 0 - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: RichText prop_type: Bool values: - false - Prop: - type_id: 2 + type_id: 1 prop_name: RootLocalizationTable prop_type: Ref values: - -1 - Prop: - type_id: 2 + type_id: 1 prop_name: Rotation prop_type: Float32 values: - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: Selectable prop_type: Bool values: - false - Prop: - type_id: 2 + type_id: 1 prop_name: SelectionBehaviorDown prop_type: Enum values: - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: SelectionBehaviorLeft prop_type: Enum values: - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: SelectionBehaviorRight prop_type: Enum values: - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: SelectionBehaviorUp prop_type: Enum values: - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: SelectionGroup prop_type: Bool values: - false - Prop: - type_id: 2 + type_id: 1 prop_name: SelectionImageObject prop_type: Ref values: - -1 - Prop: - type_id: 2 + type_id: 1 prop_name: SelectionOrder prop_type: Int32 values: - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: Size prop_type: UDim2 values: @@ -1103,31 +1103,31 @@ chunks: - - 0 - 50 - Prop: - type_id: 2 + type_id: 1 prop_name: SizeConstraint prop_type: Enum values: - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 2 + type_id: 1 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 2 + type_id: 1 prop_name: Text prop_type: String values: - Label - Prop: - type_id: 2 + type_id: 1 prop_name: TextColor3 prop_type: Color3 values: @@ -1135,19 +1135,19 @@ chunks: - 0 - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: TextScaled prop_type: Bool values: - false - Prop: - type_id: 2 + type_id: 1 prop_name: TextSize prop_type: Float32 values: - 14 - Prop: - type_id: 2 + type_id: 1 prop_name: TextStrokeColor3 prop_type: Color3 values: @@ -1155,49 +1155,49 @@ chunks: - 0 - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: TextStrokeTransparency prop_type: Float32 values: - 1 - Prop: - type_id: 2 + type_id: 1 prop_name: TextTransparency prop_type: Float32 values: - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: TextTruncate prop_type: Enum values: - 0 - Prop: - type_id: 2 + type_id: 1 prop_name: TextWrapped prop_type: Bool values: - false - Prop: - type_id: 2 + type_id: 1 prop_name: TextXAlignment prop_type: Enum values: - 2 - Prop: - type_id: 2 + type_id: 1 prop_name: TextYAlignment prop_type: Enum values: - 1 - Prop: - type_id: 2 + type_id: 1 prop_name: Visible prop_type: Bool values: - true - Prop: - type_id: 2 + type_id: 1 prop_name: ZIndex prop_type: Int32 values: @@ -1205,17 +1205,16 @@ chunks: - Prnt: version: 0 links: - - - 5 - - 2 - - - 4 - - 2 - - - 3 - - 2 - - - 2 - - 0 - - - 1 - - 0 - - 0 + - 5 + - - 1 + - 4 + - - 2 + - 4 + - - 3 + - 4 + - - 4 + - 5 + - - 5 - -1 - End - diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__number-values-with-security-capabilities__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__number-values-with-security-capabilities__encoded.snap index 3b7283265..935e5a2f6 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__number-values-with-security-capabilities__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__number-values-with-security-capabilities__encoded.snap @@ -64,9 +64,9 @@ chunks: - Prnt: version: 0 links: - - - 1 - - -1 - - 0 - -1 + - - 1 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__optionalcoordinateframe-models__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__optionalcoordinateframe-models__encoded.snap index c2787756d..72461adb2 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__optionalcoordinateframe-models__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__optionalcoordinateframe-models__encoded.snap @@ -227,11 +227,11 @@ chunks: - Prnt: version: 0 links: - - - 2 + - - 0 - -1 - - 1 - -1 - - - 0 + - - 2 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__package-link__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__package-link__encoded.snap index 2189dd39c..718726540 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__package-link__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__package-link__encoded.snap @@ -11,31 +11,31 @@ chunks: - len: 0 hash: af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 - Inst: - type_id: 0 + type_id: 1 type_name: Model object_format: 0 referents: - - 0 + - 1 - Inst: - type_id: 1 + type_id: 0 type_name: PackageLink object_format: 0 referents: - - 1 + - 0 - Prop: - type_id: 0 + type_id: 1 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 0 + type_id: 1 prop_name: LevelOfDetail prop_type: Enum values: - 0 - Prop: - type_id: 0 + type_id: 1 prop_name: ModelMeshCFrame prop_type: CFrame values: @@ -54,13 +54,13 @@ chunks: - 0 - 1 - Prop: - type_id: 0 + type_id: 1 prop_name: ModelMeshData prop_type: SharedString values: - 0 - Prop: - type_id: 0 + type_id: 1 prop_name: ModelMeshSize prop_type: Vector3 values: @@ -68,79 +68,79 @@ chunks: - 0 - 0 - Prop: - type_id: 0 + type_id: 1 prop_name: Name prop_type: String values: - Model - Prop: - type_id: 0 + type_id: 1 prop_name: NeedsPivotMigration prop_type: Bool values: - false - Prop: - type_id: 0 + type_id: 1 prop_name: PrimaryPart prop_type: Ref values: - -1 - Prop: - type_id: 0 + type_id: 1 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 0 + type_id: 1 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 0 + type_id: 1 prop_name: WorldPivotData prop_type: OptionalCFrame values: - ~ - Prop: - type_id: 1 + type_id: 0 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 1 + type_id: 0 prop_name: AutoUpdate prop_type: Bool values: - false - Prop: - type_id: 1 + type_id: 0 prop_name: Name prop_type: String values: - PackageLink - Prop: - type_id: 1 + type_id: 0 prop_name: PackageIdSerialize prop_type: String values: - "rbxassetid://9111823334" - Prop: - type_id: 1 + type_id: 0 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 1 + type_id: 0 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 1 + type_id: 0 prop_name: VersionIdSerialize prop_type: Int64 values: @@ -148,9 +148,8 @@ chunks: - Prnt: version: 0 links: - - - 1 - - 0 - - 0 + - 1 + - - 1 - -1 - End - diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-adjacent__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-adjacent__encoded.snap index c5cc08b62..9165beb78 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-adjacent__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-adjacent__encoded.snap @@ -1,5 +1,6 @@ --- source: rbx_binary/src/tests/util.rs +assertion_line: 46 expression: text_roundtrip --- num_types: 2 @@ -62,9 +63,9 @@ chunks: - Prnt: version: 0 links: - - - 1 - - -1 - - 0 - -1 + - - 1 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-child__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-child__encoded.snap index 391b49041..607ba1d55 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-child__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-child__encoded.snap @@ -6,65 +6,64 @@ num_types: 2 num_instances: 2 chunks: - Inst: - type_id: 1 + type_id: 0 type_name: Folder object_format: 0 referents: - - 1 + - 0 - Inst: - type_id: 0 + type_id: 1 type_name: ObjectValue object_format: 0 referents: - - 0 + - 1 - Prop: - type_id: 1 + type_id: 0 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 1 + type_id: 0 prop_name: Name prop_type: String values: - Ref Target - Prop: - type_id: 1 + type_id: 0 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 0 + type_id: 1 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 0 + type_id: 1 prop_name: Name prop_type: String values: - Value - Prop: - type_id: 0 + type_id: 1 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 0 + type_id: 1 prop_name: Value prop_type: Ref values: - - 1 + - 0 - Prnt: version: 0 links: - - - 1 - - 0 - - 0 + - 1 + - - 1 - -1 - End - diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-parent__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-parent__encoded.snap index db3f55e9a..2e167898e 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-parent__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__ref-parent__encoded.snap @@ -6,65 +6,64 @@ num_types: 2 num_instances: 2 chunks: - Inst: - type_id: 0 + type_id: 1 type_name: Folder object_format: 0 referents: - - 0 + - 1 - Inst: - type_id: 1 + type_id: 0 type_name: ObjectValue object_format: 0 referents: - - 1 + - 0 - Prop: - type_id: 0 + type_id: 1 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 0 + type_id: 1 prop_name: Name prop_type: String values: - Ref Target - Prop: - type_id: 0 + type_id: 1 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 1 + type_id: 0 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 1 + type_id: 0 prop_name: Name prop_type: String values: - Value - Prop: - type_id: 1 + type_id: 0 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 1 + type_id: 0 prop_name: Value prop_type: Ref values: - - 0 + - 1 - Prnt: version: 0 links: - - - 1 - - 0 - - 0 + - 1 + - - 1 - -1 - End - diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__sharedstring__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__sharedstring__encoded.snap index dd14638a1..af1aa2288 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__sharedstring__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__sharedstring__encoded.snap @@ -21,16 +21,17 @@ chunks: - len: 8350 hash: fb095154e907fd5daaca93bae5bf68ca6400ee1c213e897c65cbf95c65fb4463 - Inst: - type_id: 0 + type_id: 1 type_name: Model object_format: 0 referents: - - 0 + - 8 - Inst: - type_id: 1 + type_id: 0 type_name: UnionOperation object_format: 0 referents: + - 0 - 1 - 2 - 3 @@ -38,21 +39,20 @@ chunks: - 5 - 6 - 7 - - 8 - Prop: - type_id: 0 + type_id: 1 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 0 + type_id: 1 prop_name: LevelOfDetail prop_type: Enum values: - 0 - Prop: - type_id: 0 + type_id: 1 prop_name: ModelMeshCFrame prop_type: CFrame values: @@ -71,13 +71,13 @@ chunks: - 0 - 1 - Prop: - type_id: 0 + type_id: 1 prop_name: ModelMeshData prop_type: SharedString values: - 3 - Prop: - type_id: 0 + type_id: 1 prop_name: ModelMeshSize prop_type: Vector3 values: @@ -85,49 +85,49 @@ chunks: - 0 - 0 - Prop: - type_id: 0 + type_id: 1 prop_name: ModelStreamingMode prop_type: Enum values: - 0 - Prop: - type_id: 0 + type_id: 1 prop_name: Name prop_type: String values: - Parts - Prop: - type_id: 0 + type_id: 1 prop_name: NeedsPivotMigration prop_type: Bool values: - false - Prop: - type_id: 0 + type_id: 1 prop_name: PrimaryPart prop_type: Ref values: - -1 - Prop: - type_id: 0 + type_id: 1 prop_name: ScaleFactor prop_type: Float32 values: - 1 - Prop: - type_id: 0 + type_id: 1 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 0 + type_id: 1 prop_name: Tags prop_type: String values: - "" - Prop: - type_id: 0 + type_id: 1 prop_name: WorldPivotData prop_type: OptionalCFrame values: @@ -146,7 +146,7 @@ chunks: - 0.021851815 - 0.10633871 - Prop: - type_id: 1 + type_id: 0 prop_name: Anchored prop_type: Bool values: @@ -159,7 +159,7 @@ chunks: - false - false - Prop: - type_id: 1 + type_id: 0 prop_name: AssetId prop_type: String values: @@ -172,7 +172,7 @@ chunks: - "" - "https://www.roblox.com//asset/?id=2892119179" - Prop: - type_id: 1 + type_id: 0 prop_name: AttributesSerialize prop_type: String values: @@ -185,7 +185,7 @@ chunks: - "" - "" - Prop: - type_id: 1 + type_id: 0 prop_name: BackParamA prop_type: Float32 values: @@ -198,7 +198,7 @@ chunks: - -0.5 - -0.5 - Prop: - type_id: 1 + type_id: 0 prop_name: BackParamB prop_type: Float32 values: @@ -211,7 +211,7 @@ chunks: - 0.5 - 0.5 - Prop: - type_id: 1 + type_id: 0 prop_name: BackSurface prop_type: Enum values: @@ -224,7 +224,7 @@ chunks: - 10 - 10 - Prop: - type_id: 1 + type_id: 0 prop_name: BackSurfaceInput prop_type: Enum values: @@ -237,7 +237,7 @@ chunks: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: BottomParamA prop_type: Float32 values: @@ -250,7 +250,7 @@ chunks: - -0.5 - -0.5 - Prop: - type_id: 1 + type_id: 0 prop_name: BottomParamB prop_type: Float32 values: @@ -263,7 +263,7 @@ chunks: - 0.5 - 0.5 - Prop: - type_id: 1 + type_id: 0 prop_name: BottomSurface prop_type: Enum values: @@ -276,7 +276,7 @@ chunks: - 10 - 10 - Prop: - type_id: 1 + type_id: 0 prop_name: BottomSurfaceInput prop_type: Enum values: @@ -289,7 +289,7 @@ chunks: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: CFrame prop_type: CFrame values: @@ -406,7 +406,7 @@ chunks: - 0.02185183 - -0.10633907 - Prop: - type_id: 1 + type_id: 0 prop_name: CanCollide prop_type: Bool values: @@ -419,7 +419,7 @@ chunks: - false - false - Prop: - type_id: 1 + type_id: 0 prop_name: CanQuery prop_type: Bool values: @@ -432,7 +432,7 @@ chunks: - true - true - Prop: - type_id: 1 + type_id: 0 prop_name: CanTouch prop_type: Bool values: @@ -445,7 +445,7 @@ chunks: - true - true - Prop: - type_id: 1 + type_id: 0 prop_name: CastShadow prop_type: Bool values: @@ -458,7 +458,7 @@ chunks: - true - true - Prop: - type_id: 1 + type_id: 0 prop_name: ChildData prop_type: String values: @@ -471,7 +471,7 @@ chunks: - "" - "" - Prop: - type_id: 1 + type_id: 0 prop_name: ChildData2 prop_type: SharedString values: @@ -484,7 +484,7 @@ chunks: - 3 - 3 - Prop: - type_id: 1 + type_id: 0 prop_name: CollisionGroup prop_type: String values: @@ -497,7 +497,7 @@ chunks: - Default - Default - Prop: - type_id: 1 + type_id: 0 prop_name: CollisionGroupId prop_type: Int32 values: @@ -510,7 +510,7 @@ chunks: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: Color3uint8 prop_type: Color3uint8 values: @@ -539,7 +539,7 @@ chunks: - 161 - 172 - Prop: - type_id: 1 + type_id: 0 prop_name: CustomPhysicalProperties prop_type: PhysicalProperties values: @@ -552,7 +552,7 @@ chunks: - Default - Default - Prop: - type_id: 1 + type_id: 0 prop_name: FormFactor prop_type: Enum values: @@ -565,7 +565,7 @@ chunks: - 3 - 3 - Prop: - type_id: 1 + type_id: 0 prop_name: FrontParamA prop_type: Float32 values: @@ -578,7 +578,7 @@ chunks: - -0.5 - -0.5 - Prop: - type_id: 1 + type_id: 0 prop_name: FrontParamB prop_type: Float32 values: @@ -591,7 +591,7 @@ chunks: - 0.5 - 0.5 - Prop: - type_id: 1 + type_id: 0 prop_name: FrontSurface prop_type: Enum values: @@ -604,7 +604,7 @@ chunks: - 10 - 10 - Prop: - type_id: 1 + type_id: 0 prop_name: FrontSurfaceInput prop_type: Enum values: @@ -617,7 +617,7 @@ chunks: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: InitialSize prop_type: Vector3 values: @@ -646,7 +646,7 @@ chunks: - 18 - 31.000004 - Prop: - type_id: 1 + type_id: 0 prop_name: LeftParamA prop_type: Float32 values: @@ -659,7 +659,7 @@ chunks: - -0.5 - -0.5 - Prop: - type_id: 1 + type_id: 0 prop_name: LeftParamB prop_type: Float32 values: @@ -672,7 +672,7 @@ chunks: - 0.5 - 0.5 - Prop: - type_id: 1 + type_id: 0 prop_name: LeftSurface prop_type: Enum values: @@ -685,7 +685,7 @@ chunks: - 10 - 10 - Prop: - type_id: 1 + type_id: 0 prop_name: LeftSurfaceInput prop_type: Enum values: @@ -698,7 +698,7 @@ chunks: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: Locked prop_type: Bool values: @@ -711,7 +711,7 @@ chunks: - false - false - Prop: - type_id: 1 + type_id: 0 prop_name: Massless prop_type: Bool values: @@ -724,7 +724,7 @@ chunks: - false - false - Prop: - type_id: 1 + type_id: 0 prop_name: Material prop_type: Enum values: @@ -737,7 +737,7 @@ chunks: - 1088 - 272 - Prop: - type_id: 1 + type_id: 0 prop_name: MaterialVariantSerialized prop_type: String values: @@ -750,7 +750,7 @@ chunks: - "" - "" - Prop: - type_id: 1 + type_id: 0 prop_name: MeshData prop_type: String values: @@ -763,7 +763,7 @@ chunks: - "" - "" - Prop: - type_id: 1 + type_id: 0 prop_name: MeshData2 prop_type: SharedString values: @@ -776,7 +776,7 @@ chunks: - 0 - 3 - Prop: - type_id: 1 + type_id: 0 prop_name: Name prop_type: String values: @@ -789,7 +789,7 @@ chunks: - Union - Union - Prop: - type_id: 1 + type_id: 0 prop_name: PhysicalConfigData prop_type: SharedString values: @@ -802,7 +802,7 @@ chunks: - 2 - 5 - Prop: - type_id: 1 + type_id: 0 prop_name: PhysicsData prop_type: String values: @@ -815,7 +815,7 @@ chunks: - "" - "" - Prop: - type_id: 1 + type_id: 0 prop_name: PivotOffset prop_type: CFrame values: @@ -932,7 +932,7 @@ chunks: - 0 - 1 - Prop: - type_id: 1 + type_id: 0 prop_name: Reflectance prop_type: Float32 values: @@ -945,7 +945,7 @@ chunks: - 0.2 - 0.1 - Prop: - type_id: 1 + type_id: 0 prop_name: RenderFidelity prop_type: Enum values: @@ -958,7 +958,7 @@ chunks: - 1 - 1 - Prop: - type_id: 1 + type_id: 0 prop_name: RightParamA prop_type: Float32 values: @@ -971,7 +971,7 @@ chunks: - -0.5 - -0.5 - Prop: - type_id: 1 + type_id: 0 prop_name: RightParamB prop_type: Float32 values: @@ -984,7 +984,7 @@ chunks: - 0.5 - 0.5 - Prop: - type_id: 1 + type_id: 0 prop_name: RightSurface prop_type: Enum values: @@ -997,7 +997,7 @@ chunks: - 10 - 10 - Prop: - type_id: 1 + type_id: 0 prop_name: RightSurfaceInput prop_type: Enum values: @@ -1010,7 +1010,7 @@ chunks: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: RootPriority prop_type: Int32 values: @@ -1023,7 +1023,7 @@ chunks: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: RotVelocity prop_type: Vector3 values: @@ -1052,7 +1052,7 @@ chunks: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: size prop_type: Vector3 values: @@ -1081,7 +1081,7 @@ chunks: - 0.36000717 - 0.62001246 - Prop: - type_id: 1 + type_id: 0 prop_name: SmoothingAngle prop_type: Float32 values: @@ -1094,7 +1094,7 @@ chunks: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: SourceAssetId prop_type: Int64 values: @@ -1107,7 +1107,7 @@ chunks: - -1 - -1 - Prop: - type_id: 1 + type_id: 0 prop_name: Tags prop_type: String values: @@ -1120,7 +1120,7 @@ chunks: - "" - "" - Prop: - type_id: 1 + type_id: 0 prop_name: TopParamA prop_type: Float32 values: @@ -1133,7 +1133,7 @@ chunks: - -0.5 - -0.5 - Prop: - type_id: 1 + type_id: 0 prop_name: TopParamB prop_type: Float32 values: @@ -1146,7 +1146,7 @@ chunks: - 0.5 - 0.5 - Prop: - type_id: 1 + type_id: 0 prop_name: TopSurface prop_type: Enum values: @@ -1159,7 +1159,7 @@ chunks: - 10 - 10 - Prop: - type_id: 1 + type_id: 0 prop_name: TopSurfaceInput prop_type: Enum values: @@ -1172,7 +1172,7 @@ chunks: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: Transparency prop_type: Float32 values: @@ -1185,7 +1185,7 @@ chunks: - 0 - 0 - Prop: - type_id: 1 + type_id: 0 prop_name: UsePartColor prop_type: Bool values: @@ -1198,7 +1198,7 @@ chunks: - false - true - Prop: - type_id: 1 + type_id: 0 prop_name: Velocity prop_type: Vector3 values: @@ -1229,23 +1229,22 @@ chunks: - Prnt: version: 0 links: - - - 8 - - 0 - - - 7 - - 0 - - - 6 - - 0 - - - 5 - - 0 - - - 4 - - 0 - - - 3 - - 0 - - - 2 - - 0 - - - 1 - - 0 - - 0 + - 8 + - - 1 + - 8 + - - 2 + - 8 + - - 3 + - 8 + - - 4 + - 8 + - - 5 + - 8 + - - 6 + - 8 + - - 7 + - 8 + - - 8 - -1 - End - diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-beams__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-beams__encoded.snap index b13c5f971..a886a9c22 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-beams__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-beams__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -251,11 +250,11 @@ chunks: - Prnt: version: 0 links: - - - 2 + - - 0 - -1 - - 1 - -1 - - - 0 + - - 2 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-brickcolorvalues__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-brickcolorvalues__encoded.snap index cb6434cb5..0da66bd00 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-brickcolorvalues__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-brickcolorvalues__encoded.snap @@ -49,11 +49,11 @@ chunks: - Prnt: version: 0 links: - - - 2 + - - 0 - -1 - - 1 - -1 - - - 0 + - - 2 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-color3values__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-color3values__encoded.snap index f4a9b8a41..cab9e3d21 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-color3values__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-color3values__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -55,11 +54,11 @@ chunks: - Prnt: version: 0 links: - - - 2 + - - 0 - -1 - - 1 - -1 - - - 0 + - - 2 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-intvalues__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-intvalues__encoded.snap index 306edf6fa..d9a5b42a9 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-intvalues__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-intvalues__encoded.snap @@ -49,11 +49,11 @@ chunks: - Prnt: version: 0 links: - - - 2 + - - 0 - -1 - - 1 - -1 - - - 0 + - - 2 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-nested-folders__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-nested-folders__encoded.snap index a93d1b0e2..05d9bbb40 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-nested-folders__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-nested-folders__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -27,9 +26,9 @@ chunks: prop_name: Name prop_type: String values: - - Grandparent - - Parent - Child + - Parent + - Grandparent - Prop: type_id: 0 prop_name: Tags @@ -41,11 +40,10 @@ chunks: - Prnt: version: 0 links: - - - 2 + - - 0 - 1 - - 1 - - 0 - - - 0 + - 2 + - - 2 - -1 - End - diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-screengui__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-screengui__encoded.snap index 5abd25233..35699dd9e 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-screengui__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-screengui__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -97,11 +96,11 @@ chunks: - Prnt: version: 0 links: - - - 2 + - - 0 - -1 - - 1 - -1 - - - 0 + - - 2 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigradients__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigradients__encoded.snap index 21e23e59d..f9af74d95 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigradients__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigradients__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -152,11 +151,11 @@ chunks: - Prnt: version: 0 links: - - - 2 + - - 0 - -1 - - 1 - -1 - - - 0 + - - 2 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigridlayouts__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigridlayouts__encoded.snap index cd633c3c6..1d7a9d05d 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigridlayouts__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-uigridlayouts__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -123,11 +122,11 @@ chunks: - Prnt: version: 0 links: - - - 2 + - - 0 - -1 - - 1 - -1 - - - 0 + - - 2 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-frames__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-frames__encoded.snap index 5d0fe3e82..237c2e811 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-frames__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-frames__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -274,11 +273,11 @@ chunks: - Prnt: version: 0 links: - - - 2 + - - 0 - -1 - - 1 - -1 - - - 0 + - - 2 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-parts__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-parts__encoded.snap index 743f68086..7c3cd8c67 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-parts__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-unique-parts__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -456,11 +455,11 @@ chunks: - Prnt: version: 0 links: - - - 2 + - - 0 - -1 - - 1 - -1 - - - 0 + - - 2 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-vector3values__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-vector3values__encoded.snap index 1a450eb92..b43b94459 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-vector3values__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__three-vector3values__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -63,11 +62,11 @@ chunks: - Prnt: version: 0 links: - - - 2 + - - 0 - -1 - - 1 - -1 - - - 0 + - - 2 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-cframevalues__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-cframevalues__encoded.snap index c8c87b87b..4c5beec61 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-cframevalues__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-cframevalues__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -77,9 +76,9 @@ chunks: - Prnt: version: 0 links: - - - 1 - - -1 - - 0 - -1 + - - 1 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-imagebuttons__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-imagebuttons__encoded.snap index c9a3e3604..f836bc528 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-imagebuttons__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-imagebuttons__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -366,9 +365,9 @@ chunks: - Prnt: version: 0 links: - - - 1 - - -1 - - 0 - -1 + - - 1 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-particleemitters__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-particleemitters__encoded.snap index 2a6ad461a..5cab72c6c 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-particleemitters__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-particleemitters__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -253,9 +252,9 @@ chunks: - Prnt: version: 0 links: - - - 1 - - -1 - - 0 - -1 + - - 1 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-ray-values__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-ray-values__encoded.snap index 80802a187..d5d950b07 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-ray-values__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-ray-values__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -65,9 +64,9 @@ chunks: - Prnt: version: 0 links: - - - 1 - - -1 - - 0 - -1 + - - 1 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-terrainregions__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-terrainregions__encoded.snap index 9e7fefd5c..6caeabb0f 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-terrainregions__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__two-terrainregions__encoded.snap @@ -73,9 +73,9 @@ chunks: - Prnt: version: 0 links: - - - 1 - - -1 - - 0 - -1 + - - 1 + - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__unions__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__unions__encoded.snap index 24235e6dd..a7c00b84d 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__unions__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__unions__encoded.snap @@ -1,6 +1,5 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 1 @@ -535,11 +534,11 @@ chunks: - Prnt: version: 0 links: - - - 2 + - - 0 - -1 - - 1 - -1 - - - 0 + - - 2 - -1 - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__weldconstraint__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__weldconstraint__encoded.snap index 05e536d98..c442b6198 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__weldconstraint__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__weldconstraint__encoded.snap @@ -1,17 +1,16 @@ --- source: rbx_binary/src/tests/util.rs -assertion_line: 46 expression: text_roundtrip --- num_types: 3 num_instances: 4 chunks: - Inst: - type_id: 0 + type_id: 2 type_name: Folder object_format: 0 referents: - - 0 + - 3 - Inst: type_id: 1 type_name: Part @@ -20,31 +19,31 @@ chunks: - 1 - 2 - Inst: - type_id: 2 + type_id: 0 type_name: WeldConstraint object_format: 0 referents: - - 3 + - 0 - Prop: - type_id: 0 + type_id: 2 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 0 + type_id: 2 prop_name: Name prop_type: String values: - Folder - Prop: - type_id: 0 + type_id: 2 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 0 + type_id: 2 prop_name: Tags prop_type: String values: @@ -461,13 +460,13 @@ chunks: - 0 - 0 - Prop: - type_id: 2 + type_id: 0 prop_name: AttributesSerialize prop_type: String values: - "" - Prop: - type_id: 2 + type_id: 0 prop_name: CFrame0 prop_type: CFrame values: @@ -486,37 +485,37 @@ chunks: - 0 - 1 - Prop: - type_id: 2 + type_id: 0 prop_name: Name prop_type: String values: - WeldConstraint - Prop: - type_id: 2 + type_id: 0 prop_name: Part0Internal prop_type: Ref values: - 1 - Prop: - type_id: 2 + type_id: 0 prop_name: Part1Internal prop_type: Ref values: - 2 - Prop: - type_id: 2 + type_id: 0 prop_name: SourceAssetId prop_type: Int64 values: - -1 - Prop: - type_id: 2 + type_id: 0 prop_name: State prop_type: Int32 values: - 3 - Prop: - type_id: 2 + type_id: 0 prop_name: Tags prop_type: String values: @@ -524,13 +523,12 @@ chunks: - Prnt: version: 0 links: - - - 3 + - - 0 - 1 - - - 2 - - 0 - - 1 - - 0 - - - 0 + - 3 + - - 2 + - 3 + - - 3 - -1 - End - From a51553a50e0067d6f5c3a4f80d9de87b48db30d3 Mon Sep 17 00:00:00 2001 From: Micah Date: Tue, 6 Aug 2024 11:07:51 -0700 Subject: [PATCH 49/64] Release rbx-binary v0.7.6 (#434) --- rbx_binary/CHANGELOG.md | 2 ++ rbx_binary/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/rbx_binary/CHANGELOG.md b/rbx_binary/CHANGELOG.md index c509fb84b..ecd2db98c 100644 --- a/rbx_binary/CHANGELOG.md +++ b/rbx_binary/CHANGELOG.md @@ -1,6 +1,8 @@ # rbx_binary Changelog ## Unreleased + +## 0.7.6 (2024-08-06) * Changed the way instances are added to the serializer to a depth-first post-order traversal. ([#432]) [#432]: https://github.com/rojo-rbx/rbx-dom/pull/432 diff --git a/rbx_binary/Cargo.toml b/rbx_binary/Cargo.toml index 71d607cb7..fcd4686e7 100644 --- a/rbx_binary/Cargo.toml +++ b/rbx_binary/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_binary" description = "Implementation of Roblox's binary model (rbxm) and place (rbxl) file formats" -version = "0.7.5" +version = "0.7.6" license = "MIT" documentation = "https://docs.rs/rbx_binary" homepage = "https://github.com/rojo-rbx/rbx-dom" From 2b32623e46c78c19e859b977667e39d62687ad97 Mon Sep 17 00:00:00 2001 From: Micah Date: Thu, 15 Aug 2024 16:07:40 -0700 Subject: [PATCH 50/64] Set display of Lua files to Luau (#436) --- .gitattributes | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..ba715681f --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.lua linguist-language=Luau \ No newline at end of file From 99b73ccb3e745970e1ebf7239d44133c16934a8b Mon Sep 17 00:00:00 2001 From: Micah Date: Fri, 16 Aug 2024 14:12:25 -0700 Subject: [PATCH 51/64] Serialize UniqueId properties + support setting default property value in patches (#437) --- patches/instance.yml | 19 +- patches/lua-source-container.yml | 9 +- ...__tests__util__baseplate-566__decoded.snap | 240 + ...__tests__util__baseplate-566__encoded.snap | 721 ++ ...efault-inserted-modulescript__decoded.snap | 2 + ...efault-inserted-modulescript__encoded.snap | 6 + rbx_dom_lua/src/database.json | 8874 +++++++++++++++-- rbx_reflection_database/CHANGELOG.md | 6 +- rbx_reflection_database/database.msgpack | Bin 471845 -> 545491 bytes rbx_reflector/src/cli/generate.rs | 15 +- rbx_reflector/src/patches.rs | 64 +- ...efault-inserted-modulescript__decoded.snap | 2 + ...ault-inserted-modulescript__roundtrip.snap | 2 + 13 files changed, 9351 insertions(+), 609 deletions(-) diff --git a/patches/instance.yml b/patches/instance.yml index f1973c937..517cd3d7f 100644 --- a/patches/instance.yml +++ b/patches/instance.yml @@ -1,15 +1,15 @@ Change: Instance: - # UniqueId properties might be random everytime Studio saves a place file - # and don't have a use right now outside of packages, which Rojo doesn't - # account for anyway. They generate diff noise, so we shouldn't serialize - # them until we have to. + # UniqueId is randomized per Studio load, but that's not a useful default. + # Rather than getting the default from Studio, we manually specify it here + # instead. The all-zero UniqueId can appear in files multiple times so it's + # the only default value that makes sense. UniqueId: - Serialization: - Type: DoesNotSerialize + DefaultValue: + UniqueId: "00000000000000000000000000000000" HistoryId: - Serialization: - Type: DoesNotSerialize + DefaultValue: + UniqueId: "00000000000000000000000000000000" archivable: AliasFor: Archivable @@ -17,6 +17,9 @@ Change: Serialization: Type: SerializesAs As: archivable + # Archivable has no default value recorded but we need it to be true + DefaultValue: + Bool: true # Attributes serialize as a BinaryString with a strange name, but we want to # refer to them with a different name. diff --git a/patches/lua-source-container.yml b/patches/lua-source-container.yml index 4768ddd15..edd532933 100644 --- a/patches/lua-source-container.yml +++ b/patches/lua-source-container.yml @@ -1,10 +1,13 @@ Change: LuaSourceContainer: # ScriptGuid is randomly generated everytime a script is saved from Studio - # and it makes no sense for us to write it ourselves at this moment. + # which means that its default would change every time a database was + # generated. To get around this, we need to override the default. Roblox + # generates a new ScriptGuid if the one in a file is an empty string, so + # setting the default to be an empty string is a reasonable default. ScriptGuid: - Serialization: - Type: DoesNotSerialize + DefaultValue: + String: "" Script: Source: diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__decoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__decoded.snap index c985b1c6e..9dfa0a1fd 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__decoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__decoded.snap @@ -28,6 +28,8 @@ expression: decoded_viewed - 0 Gravity: Float32: 196.2 + HistoryId: + UniqueId: "00000000000000000000000000000000" HumanoidOnlySetCollisionsOnStateChange: Enum: 0 LevelOfDetail: @@ -93,6 +95,8 @@ expression: decoded_viewed Bool: true TouchesUseCollisionGroups: Bool: false + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004815fc WorldPivotData: OptionalCFrame: position: @@ -159,10 +163,14 @@ expression: decoded_viewed Bool: true HeadScale: Float32: 1 + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004831f8 children: [] - referent: referent-2 name: Baseplate @@ -233,6 +241,8 @@ expression: decoded_viewed Enum: 0 FrontSurfaceInput: Enum: 0 + HistoryId: + UniqueId: "00000000000000000000000000000000" LeftParamA: Float32: -0.5 LeftParamB: @@ -303,6 +313,8 @@ expression: decoded_viewed Enum: 0 Transparency: Float32: 0 + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004831fd Velocity: Vector3: - 0 @@ -322,6 +334,8 @@ expression: decoded_viewed - 0 Face: Enum: 1 + HistoryId: + UniqueId: "00000000000000000000000000000000" OffsetStudsU: Float32: 0 OffsetStudsV: @@ -338,6 +352,8 @@ expression: decoded_viewed Content: "rbxassetid://6372755229" Transparency: Float32: 0.8 + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483207 ZIndex: Int32: 1 children: [] @@ -412,6 +428,8 @@ expression: decoded_viewed Enum: 0 FrontSurfaceInput: Enum: 0 + HistoryId: + UniqueId: "00000000000000000000000000000000" LeftParamA: Float32: -0.5 LeftParamB: @@ -574,6 +592,8 @@ expression: decoded_viewed Enum: 0 Transparency: Float32: 0 + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483205 Velocity: Vector3: - 0 @@ -668,6 +688,8 @@ expression: decoded_viewed Enum: 0 FrontSurfaceInput: Enum: 0 + HistoryId: + UniqueId: "00000000000000000000000000000000" LeftParamA: Float32: -0.5 LeftParamB: @@ -742,6 +764,8 @@ expression: decoded_viewed Enum: 0 Transparency: Float32: 0 + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004831ff Velocity: Vector3: - 0 @@ -761,6 +785,8 @@ expression: decoded_viewed - 1 Face: Enum: 1 + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: @@ -769,6 +795,8 @@ expression: decoded_viewed Content: "rbxasset://textures/SpawnLocation.png" Transparency: Float32: 0 + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004831fa ZIndex: Int32: 1 children: [] @@ -784,6 +812,8 @@ expression: decoded_viewed Float32: 3.33 DopplerScale: Float32: 1 + HistoryId: + UniqueId: "00000000000000000000000000000000" RespectFilteringEnabled: Bool: true RolloffScale: @@ -792,6 +822,8 @@ expression: decoded_viewed Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d0048304f VolumetricAudio: Enum: 1 children: [] @@ -801,10 +833,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d0048305b children: [] - referent: referent-9 name: CSGDictionaryService @@ -812,10 +848,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d0048305c children: [] - referent: referent-10 name: Chat @@ -825,12 +865,16 @@ expression: decoded_viewed Attributes: {} BubbleChatEnabled: Bool: true + HistoryId: + UniqueId: "00000000000000000000000000000000" LoadDefaultChat: Bool: true SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483061 children: [] - referent: referent-11 name: Instance @@ -838,10 +882,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483062 children: [] - referent: referent-12 name: Players @@ -851,6 +899,8 @@ expression: decoded_viewed Attributes: {} CharacterAutoLoads: Bool: true + HistoryId: + UniqueId: "00000000000000000000000000000000" MaxPlayers: Int32: 30 PreferredPlayers: @@ -861,6 +911,8 @@ expression: decoded_viewed Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483064 UseStrafingAnimations: Bool: false children: [] @@ -870,10 +922,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483068 children: [] - referent: referent-14 name: TweenService @@ -881,10 +937,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d0048306a children: [] - referent: referent-15 name: MaterialService @@ -920,6 +980,8 @@ expression: decoded_viewed String: Grass GroundName: String: Ground + HistoryId: + UniqueId: "00000000000000000000000000000000" IceName: String: Ice LeafyGrassName: @@ -956,6 +1018,8 @@ expression: decoded_viewed Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d0048306b Use2022MaterialsXml: Bool: true WoodName: @@ -969,10 +1033,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d0048306f children: [] - referent: referent-17 name: PlayerEmulatorService @@ -986,6 +1054,8 @@ expression: decoded_viewed String: "" EmulatedGameLocale: String: "" + HistoryId: + UniqueId: "00000000000000000000000000000000" PlayerEmulationEnabled: Bool: false SerializedEmulatedPolicyInfo: @@ -994,6 +1064,8 @@ expression: decoded_viewed Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483071 children: [] - referent: referent-18 name: StudioData @@ -1003,10 +1075,14 @@ expression: decoded_viewed Attributes: {} EnableScriptCollabByDefaultOnLoad: Bool: false + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483074 children: [] - referent: referent-19 name: StarterPlayer @@ -1094,6 +1170,8 @@ expression: decoded_viewed - 1 HealthDisplayDistance: Float32: 100 + HistoryId: + UniqueId: "00000000000000000000000000000000" HumanoidStateMachineMode: Enum: 0 LoadCharacterAppearance: @@ -1106,6 +1184,8 @@ expression: decoded_viewed Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483075 UserEmotesEnabled: Bool: true children: @@ -1115,10 +1195,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483201 children: [] - referent: referent-21 name: StarterCharacterScripts @@ -1126,10 +1210,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483200 children: [] - referent: referent-22 name: StarterPack @@ -1137,10 +1225,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483076 children: [] - referent: referent-23 name: StarterGui @@ -1148,6 +1240,8 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" ResetPlayerGuiOnSpawn: Bool: true RtlTextSupport: @@ -1160,6 +1254,8 @@ expression: decoded_viewed Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483077 VirtualCursorMode: Enum: 0 children: [] @@ -1169,10 +1265,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483079 children: [] - referent: referent-25 name: Teleport Service @@ -1180,10 +1280,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d0048307d children: [] - referent: referent-26 name: CollectionService @@ -1191,10 +1295,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d0048307f children: [] - referent: referent-27 name: PhysicsService @@ -1202,10 +1310,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483080 children: [] - referent: referent-28 name: Geometry @@ -1213,10 +1325,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483082 children: [] - referent: referent-29 name: InsertService @@ -1228,10 +1344,14 @@ expression: decoded_viewed Bool: false Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483084 children: - referent: referent-30 name: InsertionHash @@ -1239,10 +1359,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483202 Value: String: "{27DB7157-ECC3-47DA-9A78-AF69D482E6A5}" children: [] @@ -1252,10 +1376,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483085 children: [] - referent: referent-32 name: Debris @@ -1263,12 +1391,16 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" MaxItems: Int32: 1000 SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483086 children: [] - referent: referent-33 name: CookiesService @@ -1276,10 +1408,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483087 children: [] - referent: referent-34 name: VRService @@ -1287,10 +1423,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483091 children: [] - referent: referent-35 name: ContextActionService @@ -1298,10 +1438,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483093 children: [] - referent: referent-36 name: Instance @@ -1309,10 +1453,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483095 children: [] - referent: referent-37 name: AssetService @@ -1320,10 +1468,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483096 children: [] - referent: referent-38 name: TouchInputService @@ -1331,10 +1483,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483097 children: [] - referent: referent-39 name: AnalyticsService @@ -1344,10 +1500,14 @@ expression: decoded_viewed String: "" Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d0048309a children: [] - referent: referent-40 name: FilteredSelection @@ -1355,10 +1515,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 3152d93110d773a904200e490000773a children: [] - referent: referent-41 name: Selection @@ -1366,10 +1530,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d0048309d children: [] - referent: referent-42 name: ServerScriptService @@ -1377,12 +1545,16 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" LoadStringEnabled: Bool: false SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d0048309e children: [] - referent: referent-43 name: ServerStorage @@ -1390,10 +1562,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d0048309f children: [] - referent: referent-44 name: ReplicatedStorage @@ -1401,10 +1577,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004830a0 children: [] - referent: referent-45 name: Instance @@ -1412,10 +1592,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004830a7 children: [] - referent: referent-46 name: ProcessInstancePhysicsService @@ -1423,10 +1607,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004830a8 children: [] - referent: referent-47 name: LanguageService @@ -1434,10 +1622,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004831f0 children: [] - referent: referent-48 name: Lighting @@ -1483,6 +1675,8 @@ expression: decoded_viewed Float32: 0 GlobalShadows: Bool: true + HistoryId: + UniqueId: "00000000000000000000000000000000" OutdoorAmbient: Color3: - 0.27450982 @@ -1500,6 +1694,8 @@ expression: decoded_viewed Enum: 3 TimeOfDay: String: "14:30:00" + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004830cd children: - referent: referent-49 name: Sky @@ -1509,6 +1705,8 @@ expression: decoded_viewed Attributes: {} CelestialBodiesShown: Bool: true + HistoryId: + UniqueId: "00000000000000000000000000000000" MoonAngularSize: Float32: 11 MoonTextureId: @@ -1535,6 +1733,8 @@ expression: decoded_viewed Content: "rbxassetid://6196665106" Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004831fe children: [] - referent: referent-50 name: SunRays @@ -1544,6 +1744,8 @@ expression: decoded_viewed Attributes: {} Enabled: Bool: true + HistoryId: + UniqueId: "00000000000000000000000000000000" Intensity: Float32: 0.01 SourceAssetId: @@ -1552,6 +1754,8 @@ expression: decoded_viewed Float32: 0.1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483203 children: [] - referent: referent-51 name: Atmosphere @@ -1575,12 +1779,16 @@ expression: decoded_viewed Float32: 0 Haze: Float32: 0 + HistoryId: + UniqueId: "00000000000000000000000000000000" Offset: Float32: 0.25 SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004831f6 children: [] - referent: referent-52 name: Bloom @@ -1590,6 +1798,8 @@ expression: decoded_viewed Attributes: {} Enabled: Bool: true + HistoryId: + UniqueId: "00000000000000000000000000000000" Intensity: Float32: 1 Size: @@ -1600,6 +1810,8 @@ expression: decoded_viewed Tags: [] Threshold: Float32: 2 + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004831f7 children: [] - referent: referent-53 name: DepthOfField @@ -1613,6 +1825,8 @@ expression: decoded_viewed Float32: 0.1 FocusDistance: Float32: 0.05 + HistoryId: + UniqueId: "00000000000000000000000000000000" InFocusRadius: Float32: 30 NearIntensity: @@ -1621,6 +1835,8 @@ expression: decoded_viewed Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004831fb children: [] - referent: referent-54 name: Instance @@ -1628,10 +1844,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004830d0 children: [] - referent: referent-55 name: DataStoreService @@ -1641,12 +1861,16 @@ expression: decoded_viewed Attributes: {} AutomaticRetry: Bool: true + HistoryId: + UniqueId: "00000000000000000000000000000000" LegacyNamingScheme: Bool: false SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004831f9 children: [] - referent: referent-56 name: HttpService @@ -1654,12 +1878,16 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" HttpEnabled: Bool: false SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d004831fc children: [] - referent: referent-57 name: Teams @@ -1667,10 +1895,14 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483204 children: [] - referent: referent-58 name: TestService @@ -1684,6 +1916,8 @@ expression: decoded_viewed String: "" ExecuteWithStudioRun: Bool: false + HistoryId: + UniqueId: "00000000000000000000000000000000" IsSleepAllowed: Bool: true NumberOfPlayers: @@ -1696,6 +1930,8 @@ expression: decoded_viewed Tags: [] Timeout: Float64: 10 + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483206 children: [] - referent: referent-59 name: VirtualInputManager @@ -1703,9 +1939,13 @@ expression: decoded_viewed properties: Attributes: Attributes: {} + HistoryId: + UniqueId: "00000000000000000000000000000000" SourceAssetId: Int64: -1 Tags: Tags: [] + UniqueId: + UniqueId: 44b188dace632b4702e9c68d00483208 children: [] diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap index 14eabdf83..090c11e82 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__baseplate-566__encoded.snap @@ -427,6 +427,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 39 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 39 prop_name: Name @@ -445,12 +451,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 39 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d0048309a - Prop: type_id: 37 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 37 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 37 prop_name: Name @@ -469,6 +487,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 37 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483096 - Prop: type_id: 50 prop_name: AttributesSerialize @@ -509,6 +533,12 @@ chunks: prop_type: Float32 values: - 0 + - Prop: + type_id: 50 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 50 prop_name: Name @@ -533,6 +563,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 50 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004831f6 - Prop: type_id: 51 prop_name: AttributesSerialize @@ -545,6 +581,12 @@ chunks: prop_type: Bool values: - true + - Prop: + type_id: 51 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 51 prop_name: Intensity @@ -581,12 +623,24 @@ chunks: prop_type: Float32 values: - 2 + - Prop: + type_id: 51 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004831f7 - Prop: type_id: 9 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 9 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 9 prop_name: Name @@ -605,6 +659,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 9 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d0048305c - Prop: type_id: 0 prop_name: AttributesSerialize @@ -685,6 +745,12 @@ chunks: prop_type: Float32 values: - 1 + - Prop: + type_id: 0 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 0 prop_name: Name @@ -703,6 +769,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 0 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004831f8 - Prop: type_id: 10 prop_name: AttributesSerialize @@ -715,6 +787,12 @@ chunks: prop_type: Bool values: - true + - Prop: + type_id: 10 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 10 prop_name: LoadDefaultChat @@ -739,12 +817,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 10 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483061 - Prop: type_id: 26 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 26 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 26 prop_name: Name @@ -763,12 +853,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 26 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d0048307f - Prop: type_id: 35 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 35 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 35 prop_name: Name @@ -787,12 +889,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 35 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483093 - Prop: type_id: 33 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 33 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 33 prop_name: Name @@ -811,6 +925,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 33 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483087 - Prop: type_id: 55 prop_name: AttributesSerialize @@ -823,6 +943,12 @@ chunks: prop_type: Bool values: - true + - Prop: + type_id: 55 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 55 prop_name: LegacyNamingScheme @@ -847,12 +973,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 55 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004831f9 - Prop: type_id: 32 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 32 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 32 prop_name: MaxItems @@ -877,6 +1015,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 32 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483086 - Prop: type_id: 4 prop_name: AttributesSerialize @@ -897,6 +1041,12 @@ chunks: prop_type: Enum values: - 1 + - Prop: + type_id: 4 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 4 prop_name: Name @@ -927,6 +1077,12 @@ chunks: prop_type: Float32 values: - 0 + - Prop: + type_id: 4 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004831fa - Prop: type_id: 4 prop_name: ZIndex @@ -957,6 +1113,12 @@ chunks: prop_type: Float32 values: - 0.05 + - Prop: + type_id: 52 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 52 prop_name: InFocusRadius @@ -987,12 +1149,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 52 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004831fb - Prop: type_id: 31 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 31 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 31 prop_name: Name @@ -1011,12 +1185,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 31 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483085 - Prop: type_id: 28 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 28 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 28 prop_name: Name @@ -1035,12 +1221,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 28 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483082 - Prop: type_id: 56 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 56 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 56 prop_name: HttpEnabled @@ -1065,6 +1263,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 56 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004831fc - Prop: type_id: 30 prop_name: AllowClientInsertModels @@ -1083,6 +1287,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 30 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 30 prop_name: Name @@ -1101,12 +1311,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 30 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483084 - Prop: type_id: 40 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 40 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 40 prop_name: Name @@ -1125,12 +1347,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 40 + prop_name: UniqueId + prop_type: UniqueId + values: + - 3152d93110d773a904200e490000773a - Prop: type_id: 47 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 47 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 47 prop_name: Name @@ -1149,6 +1383,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 47 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004831f0 - Prop: type_id: 53 prop_name: Ambient @@ -1235,6 +1475,12 @@ chunks: prop_type: Bool values: - true + - Prop: + type_id: 53 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 53 prop_name: Name @@ -1285,12 +1531,24 @@ chunks: prop_type: String values: - "14:30:00" + - Prop: + type_id: 53 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004830cd - Prop: type_id: 24 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 24 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 24 prop_name: Name @@ -1309,12 +1567,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 24 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483079 - Prop: type_id: 54 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 54 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 54 prop_name: Name @@ -1333,12 +1603,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 54 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004830d0 - Prop: type_id: 45 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 45 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 45 prop_name: Name @@ -1357,6 +1639,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 45 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004830a7 - Prop: type_id: 15 prop_name: AsphaltName @@ -1447,6 +1735,12 @@ chunks: prop_type: String values: - Ground + - Prop: + type_id: 15 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 15 prop_name: IceName @@ -1561,6 +1855,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 15 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d0048306b - Prop: type_id: 15 prop_name: Use2022MaterialsXml @@ -1585,6 +1885,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 8 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 8 prop_name: Name @@ -1603,6 +1909,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 8 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d0048305b - Prop: type_id: 2 prop_name: Anchored @@ -1762,6 +2074,12 @@ chunks: prop_type: Enum values: - 0 + - Prop: + type_id: 2 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 2 prop_name: LeftParamA @@ -1935,6 +2253,12 @@ chunks: prop_type: Float32 values: - 0 + - Prop: + type_id: 2 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004831fd - Prop: type_id: 2 prop_name: Velocity @@ -1949,6 +2273,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 16 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 16 prop_name: Name @@ -1967,12 +2297,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 16 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d0048306f - Prop: type_id: 27 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 27 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 27 prop_name: Name @@ -1991,6 +2333,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 27 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483080 - Prop: type_id: 17 prop_name: AttributesSerialize @@ -2015,6 +2363,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 17 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 17 prop_name: Name @@ -2045,6 +2399,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 17 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483071 - Prop: type_id: 12 prop_name: AttributesSerialize @@ -2057,6 +2417,12 @@ chunks: prop_type: Bool values: - true + - Prop: + type_id: 12 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 12 prop_name: MaxPlayersInternal @@ -2093,6 +2459,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 12 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483064 - Prop: type_id: 12 prop_name: UseStrafingAnimations @@ -2105,6 +2477,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 46 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 46 prop_name: Name @@ -2123,12 +2501,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 46 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004830a8 - Prop: type_id: 13 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 13 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 13 prop_name: Name @@ -2147,12 +2537,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 13 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483068 - Prop: type_id: 44 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 44 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 44 prop_name: Name @@ -2171,12 +2573,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 44 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004830a0 - Prop: type_id: 36 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 36 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 36 prop_name: Name @@ -2195,12 +2609,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 36 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483095 - Prop: type_id: 41 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 41 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 41 prop_name: Name @@ -2219,12 +2645,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 41 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d0048309d - Prop: type_id: 42 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 42 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 42 prop_name: LoadStringEnabled @@ -2249,12 +2687,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 42 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d0048309e - Prop: type_id: 43 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 43 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 43 prop_name: Name @@ -2273,6 +2723,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 43 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d0048309f - Prop: type_id: 48 prop_name: AttributesSerialize @@ -2285,6 +2741,12 @@ chunks: prop_type: Bool values: - true + - Prop: + type_id: 48 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 48 prop_name: MoonAngularSize @@ -2369,6 +2831,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 48 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004831fe - Prop: type_id: 7 prop_name: AmbientReverb @@ -2393,6 +2861,12 @@ chunks: prop_type: Float32 values: - 1 + - Prop: + type_id: 7 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 7 prop_name: Name @@ -2423,6 +2897,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 7 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d0048304f - Prop: type_id: 7 prop_name: VolumetricAudio @@ -2606,6 +3086,12 @@ chunks: prop_type: Enum values: - 0 + - Prop: + type_id: 5 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 5 prop_name: LeftParamA @@ -2791,6 +3277,12 @@ chunks: prop_type: Float32 values: - 0 + - Prop: + type_id: 5 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004831ff - Prop: type_id: 5 prop_name: Velocity @@ -2805,6 +3297,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 20 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 20 prop_name: Name @@ -2823,12 +3321,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 20 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483200 - Prop: type_id: 23 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 23 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 23 prop_name: Name @@ -2871,6 +3381,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 23 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483077 - Prop: type_id: 23 prop_name: VirtualCursorMode @@ -2883,6 +3399,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 22 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 22 prop_name: Name @@ -2901,6 +3423,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 22 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483076 - Prop: type_id: 21 prop_name: AllowCustomAnimations @@ -3122,6 +3650,12 @@ chunks: prop_type: Float32 values: - 100 + - Prop: + type_id: 21 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 21 prop_name: HumanoidStateMachineMode @@ -3164,6 +3698,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 21 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483075 - Prop: type_id: 21 prop_name: UserEmotesEnabled @@ -3176,6 +3716,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 19 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 19 prop_name: Name @@ -3194,12 +3740,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 19 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483201 - Prop: type_id: 29 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 29 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 29 prop_name: Name @@ -3218,6 +3776,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 29 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483202 - Prop: type_id: 29 prop_name: Value @@ -3236,6 +3800,12 @@ chunks: prop_type: Bool values: - false + - Prop: + type_id: 18 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 18 prop_name: Name @@ -3254,6 +3824,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 18 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483074 - Prop: type_id: 49 prop_name: AttributesSerialize @@ -3266,6 +3842,12 @@ chunks: prop_type: Bool values: - true + - Prop: + type_id: 49 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 49 prop_name: Intensity @@ -3296,12 +3878,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 49 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483203 - Prop: type_id: 57 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 57 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 57 prop_name: Name @@ -3320,12 +3914,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 57 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483204 - Prop: type_id: 25 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 25 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 25 prop_name: Name @@ -3344,6 +3950,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 25 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d0048307d - Prop: type_id: 3 prop_name: AcquisitionMethod @@ -3509,6 +4121,12 @@ chunks: prop_type: Enum values: - 0 + - Prop: + type_id: 3 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 3 prop_name: LeftParamA @@ -3706,6 +4324,12 @@ chunks: prop_type: Float32 values: - 0 + - Prop: + type_id: 3 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483205 - Prop: type_id: 3 prop_name: Velocity @@ -3770,6 +4394,12 @@ chunks: prop_type: Bool values: - false + - Prop: + type_id: 58 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 58 prop_name: IsSleepAllowed @@ -3812,6 +4442,12 @@ chunks: prop_type: Float64 values: - 10 + - Prop: + type_id: 58 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483206 - Prop: type_id: 1 prop_name: AttributesSerialize @@ -3832,6 +4468,12 @@ chunks: prop_type: Enum values: - 1 + - Prop: + type_id: 1 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 1 prop_name: Name @@ -3886,6 +4528,12 @@ chunks: prop_type: Float32 values: - 0.8 + - Prop: + type_id: 1 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483207 - Prop: type_id: 1 prop_name: ZIndex @@ -3898,6 +4546,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 11 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 11 prop_name: Name @@ -3916,12 +4570,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 11 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483062 - Prop: type_id: 38 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 38 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 38 prop_name: Name @@ -3940,12 +4606,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 38 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483097 - Prop: type_id: 14 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 14 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 14 prop_name: Name @@ -3964,12 +4642,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 14 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d0048306a - Prop: type_id: 34 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 34 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 34 prop_name: Name @@ -3988,12 +4678,24 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 34 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483091 - Prop: type_id: 59 prop_name: AttributesSerialize prop_type: String values: - "" + - Prop: + type_id: 59 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 59 prop_name: Name @@ -4012,6 +4714,12 @@ chunks: prop_type: String values: - "" + - Prop: + type_id: 59 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d00483208 - Prop: type_id: 6 prop_name: AllowThirdPartySales @@ -4074,6 +4782,12 @@ chunks: prop_type: Float32 values: - 196.2 + - Prop: + type_id: 6 + prop_name: HistoryId + prop_type: UniqueId + values: + - "00000000000000000000000000000000" - Prop: type_id: 6 prop_name: HumanoidOnlySetCollisionsOnStateChange @@ -4239,6 +4953,12 @@ chunks: prop_type: Bool values: - false + - Prop: + type_id: 6 + prop_name: UniqueId + prop_type: UniqueId + values: + - 44b188dace632b4702e9c68d004815fc - Prop: type_id: 6 prop_name: WorldPivotData @@ -4382,3 +5102,4 @@ chunks: - - 59 - -1 - End + diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__default-inserted-modulescript__decoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__default-inserted-modulescript__decoded.snap index 081383007..dcf80970d 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__default-inserted-modulescript__decoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__default-inserted-modulescript__decoded.snap @@ -10,6 +10,8 @@ expression: decoded_viewed Attributes: {} LinkedSource: Content: "" + ScriptGuid: + String: "{27E39FEB-27B7-43EC-9398-04115CF856B2}" Source: String: "local module = {}\n\nreturn module\n" Tags: diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__default-inserted-modulescript__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__default-inserted-modulescript__encoded.snap index c7974eb1d..a2a98b690 100644 --- a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__default-inserted-modulescript__encoded.snap +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__default-inserted-modulescript__encoded.snap @@ -29,6 +29,12 @@ chunks: prop_type: String values: - ModuleScript + - Prop: + type_id: 0 + prop_name: ScriptGuid + prop_type: String + values: + - "{27E39FEB-27B7-43EC-9398-04115CF856B2}" - Prop: type_id: 0 prop_name: Source diff --git a/rbx_dom_lua/src/database.json b/rbx_dom_lua/src/database.json index 4e36341b5..fa0a829ea 100644 --- a/rbx_dom_lua/src/database.json +++ b/rbx_dom_lua/src/database.json @@ -1,9 +1,9 @@ { "Version": [ 0, - 634, - 585, - 6340000 + 638, + 1, + 6380615 ], "Classes": { "Accessory": { @@ -29,6 +29,9 @@ "AccessoryType": { "Enum": 0 }, + "Archivable": { + "Bool": true + }, "AttachmentPoint": { "CFrame": { "position": [ @@ -64,11 +67,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -201,6 +210,9 @@ "AccessoryType": { "Enum": 0 }, + "Archivable": { + "Bool": true + }, "AssetId": { "Int64": 0 }, @@ -213,6 +225,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "IsLayered": { "Bool": false }, @@ -248,6 +263,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -260,7 +278,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Accoutrement": { "Name": "Accoutrement", @@ -362,6 +390,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "AttachmentPoint": { "CFrame": { "position": [ @@ -397,11 +428,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -414,7 +451,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Actor": { "Name": "Actor", @@ -422,6 +469,9 @@ "Superclass": "Model", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -431,6 +481,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LevelOfDetail": { "Enum": 0 }, @@ -482,6 +535,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "WorldPivotData": { "OptionalCFrame": { "position": [ @@ -571,7 +627,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AdPortal": { "Name": "AdPortal", @@ -629,7 +695,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AdService": { "Name": "AdService", @@ -639,14 +715,34 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AdvancedDragger": { "Name": "AdvancedDragger", "Tags": [], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AirController": { "Name": "AirController", @@ -762,6 +858,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -780,6 +879,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaintainAngularMomentum": { "Bool": true }, @@ -803,6 +905,9 @@ }, "TurnSpeedFactor": { "Float32": 1.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -978,6 +1083,9 @@ "AlignType": { "Enum": 5 }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -1019,6 +1127,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxAngularVelocity": { "Float32": null }, @@ -1046,6 +1157,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -1204,6 +1318,9 @@ "ApplyAtCenterOfMass": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -1225,6 +1342,9 @@ "ForceRelativeTo": { "Enum": 2 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxAxesForce": { "Vector3": [ 10000.0, @@ -1263,6 +1383,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -1275,7 +1398,17 @@ ], "Superclass": "GenericSettings", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AnalyticsService": { "Name": "AnalyticsService", @@ -1302,7 +1435,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AngularVelocity": { "Name": "AngularVelocity", @@ -1370,6 +1513,9 @@ 0.0 ] }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -1385,6 +1531,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxTorque": { "Float32": 0.0 }, @@ -1400,6 +1549,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -1428,6 +1580,9 @@ "AnimationId": { "Content": "" }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -1437,11 +1592,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -1511,7 +1672,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AnimationClipProvider": { "Name": "AnimationClipProvider", @@ -1522,7 +1693,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AnimationConstraint": { "Name": "AnimationConstraint", @@ -1657,6 +1838,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -1672,6 +1856,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "IsKinematic": { "Bool": false }, @@ -1713,6 +1900,9 @@ ] } }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -1724,6 +1914,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -1733,11 +1926,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -1750,6 +1949,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -1759,11 +1961,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -1776,7 +1984,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AnimationImportData": { "Name": "AnimationImportData", @@ -1786,29 +2004,23 @@ ], "Superclass": "BaseImportData", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AnimationRigData": { "Name": "AnimationRigData", "Tags": [], "Superclass": "Instance", "Properties": { - "articulatedJoint": { - "Name": "articulatedJoint", - "Scriptability": "None", - "DataType": { - "Value": "BinaryString" - }, - "Tags": [ - "Hidden", - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "Serializes" - } - } - }, "label": { "Name": "label", "Scriptability": "None", @@ -1907,6 +2119,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -1916,14 +2131,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, - "articulatedJoint": { - "BinaryString": "" + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" }, "label": { "BinaryString": "AQAAAAEAAAAAAAAA" @@ -2055,7 +2273,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AnimationTrack": { "Name": "AnimationTrack", @@ -2202,7 +2430,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Animator": { "Name": "Animator", @@ -2275,6 +2513,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -2284,6 +2525,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "PreferLodEnabled": { "Bool": true }, @@ -2292,6 +2536,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -2406,7 +2653,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AnnotationsService": { "Name": "AnnotationsService", @@ -2449,7 +2706,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AppLifecycleObserverService": { "Name": "AppLifecycleObserverService", @@ -2460,7 +2727,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AppStorageService": { "Name": "AppStorageService", @@ -2471,7 +2748,17 @@ ], "Superclass": "LocalStorageService", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AppUpdateService": { "Name": "AppUpdateService", @@ -2482,7 +2769,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ArcHandles": { "Name": "ArcHandles", @@ -2584,6 +2881,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -2607,6 +2907,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -2616,6 +2919,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true } @@ -2630,7 +2936,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AssetDeliveryProxy": { "Name": "AssetDeliveryProxy", @@ -2681,7 +2997,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AssetImportService": { "Name": "AssetImportService", @@ -2692,7 +3018,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AssetImportSession": { "Name": "AssetImportSession", @@ -2702,7 +3038,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AssetManagerService": { "Name": "AssetManagerService", @@ -2713,7 +3059,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AssetPatchSettings": { "Name": "AssetPatchSettings", @@ -2763,7 +3119,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AssetService": { "Name": "AssetService", @@ -2774,6 +3140,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -2783,11 +3152,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -2798,7 +3173,17 @@ ], "Superclass": "CustomSoundEffect", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Atmosphere": { "Name": "Atmosphere", @@ -2885,6 +3270,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -2917,6 +3305,9 @@ "Haze": { "Float32": 0.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Offset": { "Float32": 0.0 }, @@ -2925,6 +3316,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -2967,6 +3361,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -2976,12 +3373,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UpdateType": { "Enum": 0 } @@ -3194,6 +3597,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -3229,12 +3635,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -3278,9 +3690,25 @@ "Serialization": "DoesNotSerialize" } } + }, + "SpectrumEnabled": { + "Name": "SpectrumEnabled", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -3290,11 +3718,20 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, + "SpectrumEnabled": { + "Bool": true + }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -3359,6 +3796,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -3374,6 +3814,9 @@ "Depth": { "Float32": 0.45 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Mix": { "Float32": 0.85 }, @@ -3385,6 +3828,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -3475,6 +3921,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attack": { "Float32": 0.1 }, @@ -3490,6 +3939,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MakeupGain": { "Float32": 0.0 }, @@ -3507,6 +3959,9 @@ }, "Threshold": { "Float32": -40.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -3622,6 +4077,9 @@ "Active": { "Bool": true }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -3631,6 +4089,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Muted": { "Bool": false }, @@ -3640,6 +4101,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Volume": { "Float32": 1.0 } @@ -3667,6 +4131,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -3676,11 +4143,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -3719,6 +4192,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -3731,6 +4207,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Level": { "Float32": 0.5 }, @@ -3739,6 +4218,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -3816,6 +4298,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -3837,12 +4322,18 @@ "Feedback": { "Float32": 0.5 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "WetLevel": { "Float32": 0.0 } @@ -3883,6 +4374,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -3898,11 +4392,17 @@ "DistanceAttenuation": { "BinaryString": "AA==" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -3926,6 +4426,21 @@ } } }, + "Editor": { + "Name": "Editor", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "HighGain": { "Name": "HighGain", "Scriptability": "ReadWrite", @@ -3980,6 +4495,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -3995,6 +4513,9 @@ "HighGain": { "Float32": 0.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LowGain": { "Float32": 0.0 }, @@ -4012,6 +4533,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -4050,6 +4574,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -4062,12 +4589,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Volume": { "Float32": 1.0 } @@ -4093,6 +4626,21 @@ } } }, + "Editor": { + "Name": "Editor", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "FilterType": { "Name": "FilterType", "Scriptability": "ReadWrite", @@ -4147,6 +4695,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -4168,6 +4719,9 @@ "Gain": { "Float32": 0.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Q": { "Float32": 0.707 }, @@ -4176,6 +4730,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -4240,6 +4797,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -4255,6 +4815,9 @@ "Depth": { "Float32": 0.45 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Mix": { "Float32": 0.85 }, @@ -4266,6 +4829,30 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } + }, + "AudioFocusService": { + "Name": "AudioFocusService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -4291,6 +4878,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -4303,11 +4893,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -4319,7 +4915,17 @@ ], "Superclass": "Pages", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AudioPitchShifter": { "Name": "AudioPitchShifter", @@ -4356,6 +4962,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -4368,6 +4977,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Pitch": { "Float32": 1.25 }, @@ -4376,6 +4988,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -4553,6 +5168,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "AssetId": { "String": "" }, @@ -4568,6 +5186,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LoopRegion": { "NumberRange": [ 0.0, @@ -4595,6 +5216,9 @@ "TimePosition": { "Float64": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Volume": { "Float32": 1.0 } @@ -4778,6 +5402,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -4811,6 +5438,9 @@ "HighCutFrequency": { "Float32": 20000.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LateDelayTime": { "Float32": 0.04 }, @@ -4829,6 +5459,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "WetLevel": { "Float32": -6.0 } @@ -4962,7 +5595,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Avatar2DGenerationJob": { "Name": "Avatar2DGenerationJob", @@ -4985,7 +5628,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Avatar3DGenerationJob": { "Name": "Avatar3DGenerationJob", @@ -5008,7 +5661,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AvatarChatService": { "Name": "AvatarChatService", @@ -5068,7 +5731,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AvatarCreationService": { "Name": "AvatarCreationService", @@ -5078,7 +5751,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AvatarEditorService": { "Name": "AvatarEditorService", @@ -5089,7 +5772,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AvatarGenerationJob": { "Name": "AvatarGenerationJob", @@ -5151,7 +5844,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AvatarGenerationSession": { "Name": "AvatarGenerationSession", @@ -5160,7 +5863,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "AvatarImportService": { "Name": "AvatarImportService", @@ -5171,7 +5884,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Backpack": { "Name": "Backpack", @@ -5179,6 +5902,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -5188,11 +5914,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -5217,7 +5949,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "BadgeService": { "Name": "BadgeService", @@ -5227,7 +5969,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "BallSocketConstraint": { "Name": "BallSocketConstraint", @@ -5357,6 +6109,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -5372,6 +6127,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LimitsEnabled": { "Bool": false }, @@ -5399,6 +6157,9 @@ "TwistUpperAngle": { "Float32": 45.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UpperAngle": { "Float32": 45.0 }, @@ -5415,7 +6176,17 @@ ], "Superclass": "Pages", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "BaseImportData": { "Name": "BaseImportData", @@ -5468,7 +6239,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "BasePart": { "Name": "BasePart", @@ -6284,38 +7065,6 @@ } } }, - "PhysicsCFrame": { - "Name": "PhysicsCFrame", - "Scriptability": "None", - "DataType": { - "Value": "CFrame" - }, - "Tags": [ - "Hidden", - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "DoesNotSerialize" - } - } - }, - "PhysicsLinearVelocity": { - "Name": "PhysicsLinearVelocity", - "Scriptability": "None", - "DataType": { - "Value": "Vector3" - }, - "Tags": [ - "Hidden", - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "DoesNotSerialize" - } - } - }, "PhysicsRepRootPart": { "Name": "PhysicsRepRootPart", "Scriptability": "None", @@ -6332,22 +7081,6 @@ } } }, - "PhysicsRotationalVelocity": { - "Name": "PhysicsRotationalVelocity", - "Scriptability": "None", - "DataType": { - "Value": "Vector3" - }, - "Tags": [ - "Hidden", - "NotScriptable" - ], - "Kind": { - "Canonical": { - "Serialization": "DoesNotSerialize" - } - } - }, "PivotOffset": { "Name": "PivotOffset", "Scriptability": "ReadWrite", @@ -6724,7 +7457,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "BasePlayerGui": { "Name": "BasePlayerGui", @@ -6733,7 +7476,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "BaseRemoteEvent": { "Name": "BaseRemoteEvent", @@ -6742,7 +7495,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "BaseScript": { "Name": "BaseScript", @@ -6808,7 +7571,20 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "ScriptGuid": { + "String": "" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "BaseWrap": { "Name": "BaseWrap", @@ -6968,7 +7744,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Beam": { "Name": "Beam", @@ -7240,6 +8026,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -7286,6 +8075,9 @@ "FaceCamera": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LightEmission": { "Float32": 0.0 }, @@ -7329,6 +8121,9 @@ ] } }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Width0": { "Float32": 1.0 }, @@ -7398,7 +8193,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "BillboardGui": { "Name": "BillboardGui", @@ -7650,6 +8455,9 @@ "AlwaysOnTop": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -7694,6 +8502,9 @@ 0.0 ] }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LightInfluence": { "Float32": 0.0 }, @@ -7756,6 +8567,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "ZIndexBehavior": { "Enum": 0 } @@ -7784,6 +8598,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -7793,12 +8610,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Value": { "BinaryString": "" } @@ -7810,6 +8633,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -7819,11 +8645,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -7833,6 +8665,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -7842,11 +8677,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -7856,6 +8697,9 @@ "Superclass": "BevelMesh", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -7874,6 +8718,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Offset": { "Vector3": [ 0.0, @@ -7894,6 +8741,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VertexColor": { "Vector3": [ 1.0, @@ -7949,6 +8799,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -7961,6 +8814,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Intensity": { "Float32": 0.4 }, @@ -7975,6 +8831,9 @@ }, "Threshold": { "Float32": 0.95 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -7998,6 +8857,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -8010,6 +8872,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Size": { "Float32": 24.0 }, @@ -8018,6 +8883,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -8108,6 +8976,9 @@ 0.0 ] }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -8117,6 +8988,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxTorque": { "Vector3": [ 4000.0, @@ -8132,6 +9006,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -8298,6 +9175,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -8314,6 +9194,9 @@ 0.5529412 ] }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LeftArmColor3": { "Color3": [ 0.9921569, @@ -8354,6 +9237,9 @@ 0.49803925, 0.2784314 ] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -8395,6 +9281,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -8411,11 +9300,17 @@ 0.0 ] }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -8512,6 +9407,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -8550,6 +9448,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxTorque": { "Vector3": [ 400000.0, @@ -8565,6 +9466,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -8576,7 +9480,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "BodyPartDescription": { "Name": "BodyPartDescription", @@ -8639,6 +9553,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "AssetId": { "Int64": 0 }, @@ -8661,11 +9578,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -8762,6 +9685,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -8774,6 +9700,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxForce": { "Vector3": [ 4000.0, @@ -8796,6 +9725,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -8866,6 +9798,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -8882,6 +9817,9 @@ 0.0 ] }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Location": { "Vector3": [ 0.0, @@ -8894,6 +9832,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -8977,6 +9918,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -8986,6 +9930,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxForce": { "Vector3": [ 4000.0, @@ -9002,6 +9949,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Velocity": { "Vector3": [ 0.0, @@ -9066,6 +10016,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -9101,12 +10054,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -9132,6 +10091,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -9141,12 +10103,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Value": { "Bool": false } @@ -9178,6 +10146,9 @@ "AlwaysOnTop": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -9220,6 +10191,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Size": { "Vector3": [ 1.0, @@ -9243,6 +10217,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -9441,7 +10418,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "BrickColorValue": { "Name": "BrickColorValue", @@ -9463,6 +10450,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -9472,12 +10462,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Value": { "BrickColor": 194 } @@ -9492,7 +10488,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "BubbleChatConfiguration": { "Name": "BubbleChatConfiguration", @@ -9716,6 +10722,9 @@ "AdorneeName": { "String": "HumanoidRootPart" }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -9755,6 +10764,9 @@ "cachedFaceId": "rbxasset://fonts/Montserrat-Medium.ttf" } }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LocalPlayerStudsOffset": { "Vector3": [ 0.0, @@ -9790,6 +10802,9 @@ "TextSize": { "Int64": 16 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VerticalStudsOffset": { "Float32": 0.0 } @@ -9880,6 +10895,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -9889,11 +10907,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -9906,7 +10930,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "BuoyancySensor": { "Name": "BuoyancySensor", @@ -9941,6 +10975,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -9953,6 +10990,9 @@ "FullySubmerged": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -9962,6 +11002,9 @@ "TouchingSurface": { "Bool": false }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UpdateType": { "Enum": 0 } @@ -9987,6 +11030,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -9996,12 +11042,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Value": { "CFrame": { "position": [ @@ -10038,6 +11090,9 @@ "Superclass": "FlyweightService", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -10047,11 +11102,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -10064,7 +11125,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CalloutService": { "Name": "CalloutService", @@ -10075,7 +11146,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Camera": { "Name": "Camera", @@ -10298,6 +11379,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -10374,12 +11458,18 @@ "HeadScale": { "Float32": 1.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VRTiltAndRollEnabled": { "Bool": false } @@ -10415,6 +11505,19 @@ "Serialization": "Serializes" } } + }, + "ResolutionScale": { + "Name": "ResolutionScale", + "Scriptability": "None", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } } }, "DefaultProperties": { @@ -10427,6 +11530,9 @@ 0.0 ] }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -10481,6 +11587,9 @@ "GroupTransparency": { "Float32": 0.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Interactable": { "Bool": true }, @@ -10499,6 +11608,9 @@ ] ] }, + "ResolutionScale": { + "Float32": 1.0 + }, "Rotation": { "Float32": 0.0 }, @@ -10544,6 +11656,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -10560,7 +11675,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CatalogPages": { "Name": "CatalogPages", @@ -10570,7 +11695,17 @@ ], "Superclass": "Pages", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ChangeHistoryService": { "Name": "ChangeHistoryService", @@ -10580,7 +11715,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ChannelSelectorSoundEffect": { "Name": "ChannelSelectorSoundEffect", @@ -10605,6 +11750,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -10620,6 +11768,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Priority": { "Int32": 0 }, @@ -10628,6 +11779,261 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } + }, + "ChannelTabsConfiguration": { + "Name": "ChannelTabsConfiguration", + "Tags": [ + "NotCreatable" + ], + "Superclass": "TextChatConfigurations", + "Properties": { + "AbsolutePosition": { + "Name": "AbsolutePosition", + "Scriptability": "Read", + "DataType": { + "Value": "Vector2" + }, + "Tags": [ + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "AbsoluteSize": { + "Name": "AbsoluteSize", + "Scriptability": "Read", + "DataType": { + "Value": "Vector2" + }, + "Tags": [ + "NotReplicated", + "ReadOnly" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "BackgroundColor3": { + "Name": "BackgroundColor3", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Color3" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "BackgroundTransparency": { + "Name": "BackgroundTransparency", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float64" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Enabled": { + "Name": "Enabled", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "FontFace": { + "Name": "FontFace", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Font" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "HoverBackgroundColor3": { + "Name": "HoverBackgroundColor3", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Color3" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "SelectedTabTextColor3": { + "Name": "SelectedTabTextColor3", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Color3" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "TextColor3": { + "Name": "TextColor3", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Color3" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "TextSize": { + "Name": "TextSize", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Int64" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "TextStrokeColor3": { + "Name": "TextStrokeColor3", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Color3" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "TextStrokeTransparency": { + "Name": "TextStrokeTransparency", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Float64" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "Attributes": { + "Attributes": {} + }, + "BackgroundColor3": { + "Color3": [ + 0.09803922, + 0.105882354, + 0.11372549 + ] + }, + "BackgroundTransparency": { + "Float64": 0.0 + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "Enabled": { + "Bool": false + }, + "FontFace": { + "Font": { + "family": "rbxasset://fonts/families/GothamSSm.json", + "weight": "Bold", + "style": "Normal", + "cachedFaceId": "rbxasset://fonts/Montserrat-Bold.ttf" + } + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "HoverBackgroundColor3": { + "Color3": [ + 0.49019608, + 0.49019608, + 0.49019608 + ] + }, + "SelectedTabTextColor3": { + "Color3": [ + 1.0, + 1.0, + 1.0 + ] + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + }, + "TextColor3": { + "Color3": [ + 0.6862745, + 0.6862745, + 0.6862745 + ] + }, + "TextSize": { + "Int64": 14 + }, + "TextStrokeColor3": { + "Color3": [ + 0.0, + 0.0, + 0.0 + ] + }, + "TextStrokeTransparency": { + "Float64": 1.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -10638,7 +12044,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CharacterMesh": { "Name": "CharacterMesh", @@ -10699,6 +12115,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -10714,6 +12133,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MeshId": { "Int64": 0 }, @@ -10725,6 +12147,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -10765,6 +12190,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -10777,6 +12205,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LoadDefaultChat": { "Bool": true }, @@ -10785,6 +12216,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -11059,6 +12493,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -11092,6 +12529,9 @@ "cachedFaceId": "rbxasset://fonts/Montserrat-Medium.ttf" } }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "KeyboardKeyCode": { "Enum": 47 }, @@ -11127,6 +12567,9 @@ }, "TextStrokeTransparency": { "Float64": 0.5 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -11357,6 +12800,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -11390,6 +12836,9 @@ "HeightScale": { "Float32": 1.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "HorizontalAlignment": { "Enum": 1 }, @@ -11419,6 +12868,9 @@ "TextStrokeTransparency": { "Float64": 0.5 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VerticalAlignment": { "Enum": 1 }, @@ -11436,7 +12888,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ChorusSoundEffect": { "Name": "ChorusSoundEffect", @@ -11484,6 +12946,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -11499,6 +12964,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Mix": { "Float32": 0.5 }, @@ -11513,6 +12981,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -11549,6 +13020,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -11561,6 +13035,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxActivationDistance": { "Float32": 32.0 }, @@ -11569,6 +13046,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -11580,7 +13060,17 @@ ], "Superclass": "NetworkReplicator", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ClimbController": { "Name": "ClimbController", @@ -11644,6 +13134,9 @@ "AccelerationTime": { "Float32": 0.0 }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -11662,6 +13155,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MoveMaxForce": { "Float32": 10000.0 }, @@ -11673,6 +13169,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -11731,7 +13230,38 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } + }, + "CloudCRUDService": { + "Name": "CloudCRUDService", + "Tags": [ + "NotCreatable", + "NotReplicated", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CloudLocalizationTable": { "Name": "CloudLocalizationTable", @@ -11741,7 +13271,17 @@ ], "Superclass": "LocalizationTable", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Clouds": { "Name": "Clouds", @@ -11802,6 +13342,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -11827,11 +13370,17 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -11844,7 +13393,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Collaborator": { "Name": "Collaborator", @@ -11990,7 +13549,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CollaboratorsService": { "Name": "CollaboratorsService", @@ -12000,7 +13569,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CollectionService": { "Name": "CollectionService", @@ -12011,6 +13590,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -12020,11 +13602,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -12048,6 +13636,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -12057,12 +13648,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Value": { "Color3": [ 0.0, @@ -12131,6 +13728,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -12149,6 +13749,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Saturation": { "Float32": 0.0 }, @@ -12164,6 +13767,9 @@ 1.0, 1.0 ] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -12189,6 +13795,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -12201,6 +13810,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -12209,6 +13821,9 @@ }, "TonemapperPreset": { "Enum": 0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -12360,7 +13975,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CommandService": { "Name": "CommandService", @@ -12371,7 +13996,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CommerceService": { "Name": "CommerceService", @@ -12381,7 +14016,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CompressorSoundEffect": { "Name": "CompressorSoundEffect", @@ -12468,6 +14113,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attack": { "Float32": 0.1 }, @@ -12486,6 +14134,9 @@ "GainMakeup": { "Float32": 0.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Priority": { "Int32": 0 }, @@ -12503,6 +14154,9 @@ }, "Threshold": { "Float32": -40.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -12545,6 +14199,9 @@ "AlwaysOnTop": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -12590,6 +14247,9 @@ "Height": { "Float32": 2.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Radius": { "Float32": 0.5 }, @@ -12609,6 +14269,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -12623,6 +14286,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -12632,11 +14298,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -12648,7 +14320,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ConnectivityService": { "Name": "ConnectivityService", @@ -12676,7 +14358,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Constraint": { "Name": "Constraint", @@ -12767,7 +14459,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ContentProvider": { "Name": "ContentProvider", @@ -12811,7 +14513,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ContextActionService": { "Name": "ContextActionService", @@ -12822,6 +14534,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -12831,11 +14546,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -12846,7 +14567,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ControllerBase": { "Name": "ControllerBase", @@ -12898,7 +14629,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ControllerManager": { "Name": "ControllerManager", @@ -13024,6 +14765,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -13046,6 +14790,9 @@ 1.0 ] }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MovingDirection": { "Vector3": [ 0.0, @@ -13059,6 +14806,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UpDirection": { "Vector3": [ 0.0, @@ -13140,6 +14890,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -13149,6 +14902,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "HitFrame": { "CFrame": { "position": [ @@ -13194,6 +14950,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UpdateType": { "Enum": 0 } @@ -13206,7 +14965,17 @@ ], "Superclass": "SensorBase", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ControllerService": { "Name": "ControllerService", @@ -13217,7 +14986,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ConversationalAIAcceptanceService": { "Name": "ConversationalAIAcceptanceService", @@ -13228,7 +15007,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CookiesService": { "Name": "CookiesService", @@ -13239,6 +15028,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -13248,11 +15040,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -13295,7 +15093,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CorePackages": { "Name": "CorePackages", @@ -13306,7 +15114,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CoreScript": { "Name": "CoreScript", @@ -13316,7 +15134,20 @@ ], "Superclass": "BaseScript", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "ScriptGuid": { + "String": "" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CoreScriptDebuggingManagerHelper": { "Name": "CoreScriptDebuggingManagerHelper", @@ -13326,7 +15157,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CoreScriptSyncService": { "Name": "CoreScriptSyncService", @@ -13337,7 +15178,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CornerWedgePart": { "Name": "CornerWedgePart", @@ -13348,6 +15199,9 @@ "Anchored": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -13450,6 +15304,9 @@ "FrontSurfaceInput": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LeftParamA": { "Float32": -0.5 }, @@ -13553,6 +15410,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Velocity": { "Vector3": [ 0.0, @@ -13571,7 +15431,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CrossDMScriptChangeListener": { "Name": "CrossDMScriptChangeListener", @@ -13582,7 +15452,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CurveAnimation": { "Name": "CurveAnimation", @@ -13590,6 +15470,9 @@ "Superclass": "AnimationClip", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -13602,6 +15485,9 @@ "GuidBinaryString": { "BinaryString": "AAAAAAAAAAAAAAAAAAAAAA==" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Loop": { "Bool": true }, @@ -13613,6 +15499,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -13641,6 +15530,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -13650,6 +15542,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "PersistedCurrentValue": { "Float32": 0.0 }, @@ -13658,6 +15553,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -13683,6 +15581,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -13692,11 +15593,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -13707,7 +15614,17 @@ ], "Superclass": "SoundEffect", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "CylinderHandleAdornment": { "Name": "CylinderHandleAdornment", @@ -13777,6 +15694,9 @@ "Angle": { "Float32": 360.0 }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -13822,6 +15742,9 @@ "Height": { "Float32": 1.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "InnerRadius": { "Float32": 0.0 }, @@ -13844,6 +15767,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -13860,6 +15786,9 @@ "Superclass": "BevelMesh", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -13878,6 +15807,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Offset": { "Vector3": [ 0.0, @@ -13898,6 +15830,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VertexColor": { "Vector3": [ 1.0, @@ -14164,6 +16099,9 @@ "AngularVelocity": { "Float32": 0.0 }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -14179,6 +16117,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "InclinationAngle": { "Float32": 0.0 }, @@ -14242,6 +16183,9 @@ "TargetPosition": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UpperAngle": { "Float32": 45.0 }, @@ -14578,7 +16522,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataModelMesh": { "Name": "DataModelMesh", @@ -14628,7 +16582,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataModelPatchService": { "Name": "DataModelPatchService", @@ -14639,7 +16603,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataModelSession": { "Name": "DataModelSession", @@ -14683,7 +16657,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataStore": { "Name": "DataStore", @@ -14693,7 +16677,17 @@ ], "Superclass": "GlobalDataStore", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataStoreGetOptions": { "Name": "DataStoreGetOptions", @@ -14716,7 +16710,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataStoreIncrementOptions": { "Name": "DataStoreIncrementOptions", @@ -14725,7 +16729,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataStoreInfo": { "Name": "DataStoreInfo", @@ -14784,7 +16798,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataStoreKey": { "Name": "DataStoreKey", @@ -14811,7 +16835,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataStoreKeyInfo": { "Name": "DataStoreKeyInfo", @@ -14870,7 +16904,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataStoreKeyPages": { "Name": "DataStoreKeyPages", @@ -14897,7 +16941,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataStoreListingPages": { "Name": "DataStoreListingPages", @@ -14924,7 +16978,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataStoreObjectVersionInfo": { "Name": "DataStoreObjectVersionInfo", @@ -14983,7 +17047,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataStoreOptions": { "Name": "DataStoreOptions", @@ -15006,7 +17080,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataStorePages": { "Name": "DataStorePages", @@ -15016,7 +17100,17 @@ ], "Superclass": "Pages", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataStoreService": { "Name": "DataStoreService", @@ -15060,6 +17154,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -15072,6 +17169,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LegacyNamingScheme": { "Bool": false }, @@ -15080,6 +17180,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -15090,7 +17193,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DataStoreVersionPages": { "Name": "DataStoreVersionPages", @@ -15100,7 +17213,17 @@ ], "Superclass": "Pages", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Debris": { "Name": "Debris", @@ -15127,6 +17250,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -15136,6 +17262,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxItems": { "Int32": 1000 }, @@ -15144,6 +17273,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -15276,7 +17408,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DebuggablePluginWatcher": { "Name": "DebuggablePluginWatcher", @@ -15287,7 +17429,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DebuggerBreakpoint": { "Name": "DebuggerBreakpoint", @@ -15394,7 +17546,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DebuggerConnection": { "Name": "DebuggerConnection", @@ -15473,7 +17635,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DebuggerConnectionManager": { "Name": "DebuggerConnectionManager", @@ -15501,7 +17673,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DebuggerLuaResponse": { "Name": "DebuggerLuaResponse", @@ -15597,7 +17779,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DebuggerManager": { "Name": "DebuggerManager", @@ -15625,7 +17817,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DebuggerUIService": { "Name": "DebuggerUIService", @@ -15636,7 +17838,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DebuggerVariable": { "Name": "DebuggerVariable", @@ -15749,7 +17961,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DebuggerWatch": { "Name": "DebuggerWatch", @@ -15770,7 +17992,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Decal": { "Name": "Decal", @@ -15879,6 +18111,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -15898,6 +18133,9 @@ "Face": { "Enum": 5 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -15910,6 +18148,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "ZIndex": { "Int32": 1 } @@ -15974,6 +18215,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -15992,6 +18236,9 @@ "FocusDistance": { "Float32": 0.05 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "InFocusRadius": { "Float32": 10.0 }, @@ -16003,6 +18250,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -16015,7 +18265,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Dialog": { "Name": "Dialog", @@ -16154,6 +18414,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -16175,6 +18438,9 @@ "GoodbyeDialog": { "String": "" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "InitialPrompt": { "String": "" }, @@ -16199,6 +18465,9 @@ 0.0, 0.0 ] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -16261,6 +18530,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -16276,6 +18548,9 @@ "GoodbyeDialog": { "String": "" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "ResponseDialog": { "String": "" }, @@ -16285,6 +18560,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UserDialog": { "String": "" } @@ -16310,6 +18588,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -16322,6 +18603,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Level": { "Float32": 0.75 }, @@ -16333,6 +18617,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -16361,7 +18648,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DoubleConstrainedValue": { "Name": "DoubleConstrainedValue", @@ -16445,6 +18742,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -16454,6 +18754,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxValue": { "Float64": 1.0 }, @@ -16466,6 +18769,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "value": { "Float64": 0.0 } @@ -16480,7 +18786,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DragDetector": { "Name": "DragDetector", @@ -16905,6 +19221,9 @@ "ApplyAtCenterOfMass": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -16952,6 +19271,9 @@ "GamepadModeSwitchKeyCode": { "Enum": 1004 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "KeyboardModeSwitchKeyCode": { "Enum": 306 }, @@ -17015,6 +19337,9 @@ "TrackballRollFactor": { "Float32": 1.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VRSwitchKeyCode": { "Enum": 1007 } @@ -17025,7 +19350,17 @@ "Tags": [], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DraggerService": { "Name": "DraggerService", @@ -17325,7 +19660,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "DynamicRotate": { "Name": "DynamicRotate", @@ -17348,7 +19693,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "EchoSoundEffect": { "Name": "EchoSoundEffect", @@ -17409,6 +19764,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -17430,6 +19788,9 @@ "Feedback": { "Float32": 0.5 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Priority": { "Int32": 0 }, @@ -17439,6 +19800,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "WetLevel": { "Float32": 0.0 } @@ -17465,6 +19829,23 @@ } } }, + "IsReplicatedCopy": { + "Name": "IsReplicatedCopy", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "Size": { "Name": "Size", "Scriptability": "ReadWrite", @@ -17479,13 +19860,40 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "EditableMesh": { "Name": "EditableMesh", "Tags": [], "Superclass": "DataModelMesh", "Properties": { + "IsReplicatedCopy": { + "Name": "IsReplicatedCopy", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "MeshData": { "Name": "MeshData", "Scriptability": "None", @@ -17516,7 +19924,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "EmotesPages": { "Name": "EmotesPages", @@ -17526,18 +19944,17 @@ ], "Superclass": "InventoryPages", "Properties": {}, - "DefaultProperties": {} - }, - "EngineAPICloudProcessingService": { - "Name": "EngineAPICloudProcessingService", - "Tags": [ - "NotCreatable", - "NotReplicated", - "Service" - ], - "Superclass": "Instance", - "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "EqualizerSoundEffect": { "Name": "EqualizerSoundEffect", @@ -17585,6 +20002,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -17600,6 +20020,9 @@ "HighGain": { "Float32": 0.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LowGain": { "Float32": -20.0 }, @@ -17614,6 +20037,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -17637,6 +20063,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -17646,6 +20075,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "RotationOrder": { "Enum": 0 }, @@ -17654,6 +20086,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -17665,7 +20100,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ExampleService": { "Name": "ExampleService", @@ -17676,7 +20121,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ExperienceAuthService": { "Name": "ExperienceAuthService", @@ -17686,7 +20141,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ExperienceInviteOptions": { "Name": "ExperienceInviteOptions", @@ -17748,7 +20213,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ExperienceNotificationService": { "Name": "ExperienceNotificationService", @@ -17760,6 +20235,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -17769,11 +20247,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -17786,7 +20270,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ExperienceStateCaptureService": { "Name": "ExperienceStateCaptureService", @@ -17848,7 +20342,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Explosion": { "Name": "Explosion", @@ -17964,6 +20468,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -17985,6 +20492,9 @@ "ExplosionType": { "Enum": 1 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Position": { "Vector3": [ 0.0, @@ -18001,6 +20511,9 @@ "TimeScale": { "Float32": 1.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true } @@ -18080,7 +20593,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "FaceControls": { "Name": "FaceControls", @@ -18839,6 +21362,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -18848,11 +21374,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -18878,7 +21410,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "FacialAnimationRecordingService": { "Name": "FacialAnimationRecordingService", @@ -18906,7 +21448,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "FacialAnimationStreamingServiceStats": { "Name": "FacialAnimationStreamingServiceStats", @@ -18916,7 +21468,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "FacialAnimationStreamingServiceV2": { "Name": "FacialAnimationStreamingServiceV2", @@ -18942,7 +21504,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "FacialAnimationStreamingSubsessionStats": { "Name": "FacialAnimationStreamingSubsessionStats", @@ -18952,7 +21524,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "FacsImportData": { "Name": "FacsImportData", @@ -18962,7 +21544,17 @@ ], "Superclass": "BaseImportData", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Feature": { "Name": "Feature", @@ -19024,7 +21616,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "File": { "Name": "File", @@ -19052,7 +21654,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "FileMesh": { "Name": "FileMesh", @@ -19087,6 +21699,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -19096,6 +21711,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MeshId": { "Content": "" }, @@ -19122,6 +21740,9 @@ "TextureId": { "Content": "" }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VertexColor": { "Vector3": [ 1.0, @@ -19288,6 +21909,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -19310,6 +21934,9 @@ "Heat": { "Float32": 9.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SecondaryColor": { "Color3": [ 0.54509807, @@ -19328,6 +21955,9 @@ }, "TimeScale": { "Float32": 1.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -19353,6 +21983,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -19394,6 +22027,9 @@ ] } }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LevelOfDetail": { "Enum": 0 }, @@ -19460,6 +22096,9 @@ "ToolTip": { "String": "" }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "WorldPivotData": { "OptionalCFrame": { "position": [ @@ -19513,6 +22152,9 @@ "Anchored": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -19618,6 +22260,9 @@ "FrontSurfaceInput": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LeftParamA": { "Float32": -0.5 }, @@ -19727,6 +22372,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Velocity": { "Vector3": [ 0.0, @@ -19744,7 +22392,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "FlangeSoundEffect": { "Name": "FlangeSoundEffect", @@ -19792,6 +22450,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -19807,6 +22468,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Mix": { "Float32": 0.85 }, @@ -19821,6 +22485,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -19863,6 +22530,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -19872,12 +22542,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "ValuesAndTimes": { "BinaryString": "AQAAAAAAAAABAAAAAAAAAA==" } @@ -19996,6 +22672,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -20015,6 +22694,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -20036,6 +22718,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Velocity": { "Float32": 2.0 }, @@ -20055,6 +22740,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -20064,11 +22752,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -20095,6 +22789,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -20104,11 +22801,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -20132,6 +22835,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -20141,12 +22847,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true } @@ -20211,7 +22923,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Frame": { "Name": "Frame", @@ -20242,6 +22964,9 @@ 0.0 ] }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -20286,6 +23011,9 @@ "Draggable": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Interactable": { "Bool": true }, @@ -20352,6 +23080,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -20368,7 +23099,17 @@ ], "Superclass": "Pages", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "FriendService": { "Name": "FriendService", @@ -20378,7 +23119,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "FunctionalTest": { "Name": "FunctionalTest", @@ -20486,6 +23237,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -20501,11 +23255,17 @@ "HasMigratedSettingsToTestService": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -20518,6 +23278,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -20527,11 +23290,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -20573,7 +23342,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GamepadService": { "Name": "GamepadService", @@ -20598,7 +23377,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GenericChallengeService": { "Name": "GenericChallengeService", @@ -20608,7 +23397,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GenericSettings": { "Name": "GenericSettings", @@ -20617,7 +23416,17 @@ ], "Superclass": "ServiceProvider", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Geometry": { "Name": "Geometry", @@ -20627,7 +23436,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GeometryService": { "Name": "GeometryService", @@ -20637,7 +23456,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GetTextBoundsParams": { "Name": "GetTextBoundsParams", @@ -20712,7 +23541,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GlobalDataStore": { "Name": "GlobalDataStore", @@ -20722,7 +23561,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GlobalSettings": { "Name": "GlobalSettings", @@ -20732,7 +23581,17 @@ ], "Superclass": "GenericSettings", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Glue": { "Name": "Glue", @@ -20795,6 +23654,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -20887,11 +23749,17 @@ 0.0 ] }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -20921,7 +23789,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GroundController": { "Name": "GroundController", @@ -21079,6 +23957,9 @@ "AccelerationTime": { "Float32": 0.0 }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -21109,6 +23990,9 @@ "GroundOffset": { "Float32": 1.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MoveSpeedFactor": { "Float32": 1.0 }, @@ -21126,6 +24010,9 @@ }, "TurnSpeedFactor": { "Float32": 1.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -21177,7 +24064,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GroupService": { "Name": "GroupService", @@ -21188,7 +24085,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GuiBase": { "Name": "GuiBase", @@ -21197,7 +24104,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GuiBase2d": { "Name": "GuiBase2d", @@ -21448,7 +24365,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GuiBase3d": { "Name": "GuiBase3d", @@ -21514,7 +24441,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GuiButton": { "Name": "GuiButton", @@ -21673,7 +24610,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GuiLabel": { "Name": "GuiLabel", @@ -21682,7 +24629,17 @@ ], "Superclass": "GuiObject", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GuiMain": { "Name": "GuiMain", @@ -21692,6 +24649,9 @@ "Superclass": "ScreenGui", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -21713,6 +24673,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "ResetOnSpawn": { "Bool": true }, @@ -21743,6 +24706,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "ZIndexBehavior": { "Enum": 0 } @@ -22262,7 +25228,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GuiService": { "Name": "GuiService", @@ -22506,7 +25482,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "GuidRegistryService": { "Name": "GuidRegistryService", @@ -22516,7 +25502,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "HSRDataContentProvider": { "Name": "HSRDataContentProvider", @@ -22527,7 +25523,17 @@ ], "Superclass": "CacheableContentProvider", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "HandleAdornment": { "Name": "HandleAdornment", @@ -22602,7 +25608,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Handles": { "Name": "Handles", @@ -22717,6 +25733,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -22743,6 +25762,9 @@ "Front" ] }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -22755,6 +25777,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true } @@ -22767,7 +25792,131 @@ ], "Superclass": "PartAdornment", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } + }, + "HapticEffect": { + "Name": "HapticEffect", + "Tags": [], + "Superclass": "Instance", + "Properties": { + "Looped": { + "Name": "Looped", + "Scriptability": "ReadWrite", + "DataType": { + "Value": "Bool" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Position": { + "Name": "Position", + "Scriptability": "None", + "DataType": { + "Value": "Vector3" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Radius": { + "Name": "Radius", + "Scriptability": "None", + "DataType": { + "Value": "Float32" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Type": { + "Name": "Type", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "HapticEffectType" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, + "Waveform": { + "Name": "Waveform", + "Scriptability": "None", + "DataType": { + "Value": "Ref" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + } + }, + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "Attributes": { + "Attributes": {} + }, + "Capabilities": { + "SecurityCapabilities": 0 + }, + "DefinesCapabilities": { + "Bool": false + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "Looped": { + "Bool": false + }, + "Position": { + "Vector3": [ + 0.0, + 0.0, + 0.0 + ] + }, + "Radius": { + "Float32": 3.0 + }, + "SourceAssetId": { + "Int64": -1 + }, + "Tags": { + "Tags": [] + }, + "Type": { + "Enum": 1 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "HapticService": { "Name": "HapticService", @@ -22778,7 +25927,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Hat": { "Name": "Hat", @@ -22788,6 +25947,9 @@ "Superclass": "Accoutrement", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "AttachmentPoint": { "CFrame": { "position": [ @@ -22823,11 +25985,37 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } + }, + "HeatmapService": { + "Name": "HeatmapService", + "Tags": [ + "NotCreatable", + "Service" + ], + "Superclass": "Instance", + "Properties": {}, + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -22839,7 +26027,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "HiddenSurfaceRemovalAsset": { "Name": "HiddenSurfaceRemovalAsset", @@ -22882,6 +26080,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -22897,11 +26098,17 @@ "HSRMeshIdData": { "BinaryString": "" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -23033,6 +26240,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -23058,6 +26268,9 @@ "FillTransparency": { "Float32": 0.5 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "OutlineColor": { "Color3": [ 1.0, @@ -23073,6 +26286,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -23295,6 +26511,9 @@ "AngularVelocity": { "Float32": 0.0 }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -23310,6 +26529,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LimitsEnabled": { "Bool": false }, @@ -23343,6 +26565,9 @@ "TargetAngle": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UpperAngle": { "Float32": 45.0 }, @@ -23359,6 +26584,9 @@ "Superclass": "Message", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -23368,6 +26596,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -23376,6 +26607,9 @@ }, "Text": { "String": "" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -23387,6 +26621,9 @@ "Superclass": "Feature", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -23399,6 +26636,9 @@ "FaceId": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "InOut": { "Enum": 2 }, @@ -23413,6 +26653,9 @@ }, "TopBottom": { "Enum": 1 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -23425,7 +26668,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "HopperBin": { "Name": "HopperBin", @@ -23501,6 +26754,9 @@ "Active": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -23513,6 +26769,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LevelOfDetail": { "Enum": 0 }, @@ -23567,6 +26826,9 @@ "TextureId": { "Content": "" }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "WorldPivotData": { "OptionalCFrame": { "position": [ @@ -23603,7 +26865,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "HttpRequest": { "Name": "HttpRequest", @@ -23612,7 +26884,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "HttpService": { "Name": "HttpService", @@ -23637,6 +26919,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -23646,6 +26931,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "HttpEnabled": { "Bool": false }, @@ -23654,6 +26942,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -24404,6 +27695,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -24449,6 +27743,9 @@ "HipHeight": { "Float32": 0.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "InternalBodyScale": { "Vector3": [ 1.0, @@ -24489,6 +27786,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UseJumpPower": { "Bool": true }, @@ -24503,6 +27803,9 @@ "Superclass": "Controller", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -24512,11 +27815,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -25114,18 +28423,15 @@ } }, "DefaultProperties": { - "AccessoryBlob": { - "String": "[]" - }, "AccessoryRigidAndLayeredBlob": { "String": "[]" }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, - "BackAccessory": { - "String": "" - }, "BodyTypeScale": { "Float32": 0.3 }, @@ -25150,107 +28456,42 @@ "Face": { "Int64": 0 }, - "FaceAccessory": { - "String": "" - }, "FallAnimation": { "Int64": 0 }, - "FrontAccessory": { - "String": "" - }, "GraphicTShirt": { "Int64": 0 }, - "HairAccessory": { - "String": "" - }, - "HatAccessory": { - "String": "" - }, - "Head": { - "Int64": 0 - }, - "HeadColor": { - "Color3": [ - 0.0, - 0.0, - 0.0 - ] - }, "HeadScale": { "Float32": 1.0 }, "HeightScale": { "Float32": 1.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "IdleAnimation": { "Int64": 0 }, "JumpAnimation": { "Int64": 0 }, - "LeftArm": { - "Int64": 0 - }, - "LeftArmColor": { - "Color3": [ - 0.0, - 0.0, - 0.0 - ] - }, - "LeftLeg": { - "Int64": 0 - }, - "LeftLegColor": { - "Color3": [ - 0.0, - 0.0, - 0.0 - ] - }, "MoodAnimation": { "Int64": 0 }, - "NeckAccessory": { - "String": "" - }, "Pants": { "Int64": 0 }, "ProportionScale": { "Float32": 1.0 }, - "RightArm": { - "Int64": 0 - }, - "RightArmColor": { - "Color3": [ - 0.0, - 0.0, - 0.0 - ] - }, - "RightLeg": { - "Int64": 0 - }, - "RightLegColor": { - "Color3": [ - 0.0, - 0.0, - 0.0 - ] - }, "RunAnimation": { "Int64": 0 }, "Shirt": { "Int64": 0 }, - "ShouldersAccessory": { - "String": "" - }, "SourceAssetId": { "Int64": -1 }, @@ -25260,18 +28501,8 @@ "Tags": { "Tags": [] }, - "Torso": { - "Int64": 0 - }, - "TorsoColor": { - "Color3": [ - 0.0, - 0.0, - 0.0 - ] - }, - "WaistAccessory": { - "String": "" + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" }, "WalkAnimation": { "Int64": 0 @@ -25431,6 +28662,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -25469,6 +28703,9 @@ ] } }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Offset": { "CFrame": { "position": [ @@ -25510,6 +28747,9 @@ "Type": { "Enum": 0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Weight": { "Float32": 1.0 } @@ -25523,7 +28763,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "IXPService": { "Name": "IXPService", @@ -25534,7 +28784,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ImageButton": { "Name": "ImageButton", @@ -25741,6 +29001,9 @@ 0.0 ] }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -25788,6 +29051,9 @@ "Draggable": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "HoverImage": { "Content": "" }, @@ -25924,6 +29190,9 @@ ] ] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -25971,6 +29240,9 @@ "AlwaysOnTop": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -26013,6 +29285,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Image": { "Content": "rbxasset://textures/SurfacesDefault.png" }, @@ -26038,6 +29313,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -26225,6 +29503,9 @@ 0.0 ] }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -26269,6 +29550,9 @@ "Draggable": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Image": { "Content": "" }, @@ -26390,6 +29674,9 @@ ] ] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -26473,7 +29760,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "InputObject": { "Name": "InputObject", @@ -26548,7 +29845,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "InsertService": { "Name": "InsertService", @@ -26598,6 +29905,9 @@ "AllowInsertFreeModels": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -26607,11 +29917,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -26697,9 +30013,7 @@ "DataType": { "Value": "SecurityCapabilities" }, - "Tags": [ - "NotScriptable" - ], + "Tags": [], "Kind": { "Canonical": { "Serialization": "Serializes" @@ -26769,7 +30083,7 @@ ], "Kind": { "Canonical": { - "Serialization": "DoesNotSerialize" + "Serialization": "Serializes" } } }, @@ -26841,8 +30155,7 @@ "Value": "Bool" }, "Tags": [ - "NotReplicated", - "NotScriptable" + "NotReplicated" ], "Kind": { "Canonical": { @@ -26893,7 +30206,7 @@ ], "Kind": { "Canonical": { - "Serialization": "DoesNotSerialize" + "Serialization": "Serializes" } } }, @@ -26948,7 +30261,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "InstanceAdornment": { "Name": "InstanceAdornment", @@ -26971,7 +30294,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "IntConstrainedValue": { "Name": "IntConstrainedValue", @@ -27055,6 +30388,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -27064,6 +30400,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxValue": { "Int64": 10 }, @@ -27076,6 +30415,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "value": { "Int64": 0 } @@ -27101,6 +30443,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -27110,12 +30455,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Value": { "Int64": 0 } @@ -27189,7 +30540,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "InternalSyncService": { "Name": "InternalSyncService", @@ -27200,7 +30561,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "IntersectOperation": { "Name": "IntersectOperation", @@ -27211,6 +30582,9 @@ "Anchored": { "Bool": false }, + "Archivable": { + "Bool": true + }, "AssetId": { "Content": "" }, @@ -27325,6 +30699,9 @@ "FrontSurfaceInput": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "InitialSize": { "Vector3": [ 1.0, @@ -27392,7 +30769,7 @@ "Float32": 0.0 }, "RenderFidelity": { - "Enum": 1 + "Enum": 0 }, "RightParamA": { "Float32": -0.5 @@ -27447,6 +30824,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UnscaledCofm": { "Vector3": [ null, @@ -27491,7 +30871,17 @@ ], "Superclass": "Pages", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "JointImportData": { "Name": "JointImportData", @@ -27501,7 +30891,17 @@ ], "Superclass": "BaseImportData", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "JointInstance": { "Name": "JointInstance", @@ -27609,7 +31009,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "JointsService": { "Name": "JointsService", @@ -27620,7 +31030,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "KeyboardService": { "Name": "KeyboardService", @@ -27630,7 +31050,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Keyframe": { "Name": "Keyframe", @@ -27652,6 +31082,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -27661,6 +31094,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -27669,6 +31105,9 @@ }, "Time": { "Float32": 0.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -27692,6 +31131,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -27701,12 +31143,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Value": { "String": "" } @@ -27734,6 +31182,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -27749,6 +31200,9 @@ "GuidBinaryString": { "BinaryString": "AAAAAAAAAAAAAAAAAAAAAA==" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Loop": { "Bool": true }, @@ -27760,6 +31214,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -27772,7 +31229,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "LSPFileSyncService": { "Name": "LSPFileSyncService", @@ -27783,7 +31250,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "LanguageService": { "Name": "LanguageService", @@ -27794,7 +31271,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "LayerCollector": { "Name": "LayerCollector", @@ -27844,7 +31331,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "LegacyStudioBridge": { "Name": "LegacyStudioBridge", @@ -27855,7 +31352,17 @@ ], "Superclass": "ILegacyStudioBridge", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Light": { "Name": "Light", @@ -27917,7 +31424,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Lighting": { "Name": "Lighting", @@ -28206,6 +31723,9 @@ 0.5 ] }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -28260,6 +31780,9 @@ "GlobalShadows": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "OutdoorAmbient": { "Color3": [ 0.5, @@ -28284,6 +31807,9 @@ }, "TimeOfDay": { "String": "14:00:00" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -28362,6 +31888,9 @@ "ApplyAtCenterOfMass": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -28377,6 +31906,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "InverseSquareLaw": { "Bool": false }, @@ -28395,6 +31927,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -28439,6 +31974,9 @@ "AlwaysOnTop": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -28481,6 +32019,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Length": { "Float32": 5.0 }, @@ -28503,6 +32044,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -28687,6 +32231,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -28708,6 +32255,9 @@ "ForceLimitsEnabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LineDirection": { "Vector3": [ 1.0, @@ -28763,6 +32313,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VectorVelocity": { "Vector3": [ 0.0, @@ -28787,7 +32340,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "LiveScriptingService": { "Name": "LiveScriptingService", @@ -28814,7 +32377,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "LocalDebuggerConnection": { "Name": "LocalDebuggerConnection", @@ -28824,7 +32397,17 @@ ], "Superclass": "DebuggerConnection", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "LocalScript": { "Name": "LocalScript", @@ -28832,6 +32415,9 @@ "Superclass": "Script", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -28844,12 +32430,18 @@ "Disabled": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LinkedSource": { "Content": "" }, "RunContext": { "Enum": 0 }, + "ScriptGuid": { + "String": "" + }, "Source": { "String": "" }, @@ -28858,6 +32450,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -28870,7 +32465,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "LocalizationService": { "Name": "LocalizationService", @@ -29042,6 +32647,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -29051,11 +32659,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -29145,6 +32759,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -29157,6 +32774,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -29165,6 +32785,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -29256,7 +32879,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "LodDataService": { "Name": "LodDataService", @@ -29268,6 +32901,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -29277,11 +32913,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -29294,7 +32936,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "LogService": { "Name": "LogService", @@ -29304,7 +32956,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "LoginService": { "Name": "LoginService", @@ -29314,7 +32976,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "LuaSettings": { "Name": "LuaSettings", @@ -29324,7 +32996,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "LuaSourceContainer": { "Name": "LuaSourceContainer", @@ -29444,12 +33126,25 @@ ], "Kind": { "Canonical": { - "Serialization": "DoesNotSerialize" + "Serialization": "Serializes" } } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "ScriptGuid": { + "String": "" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "LuaWebService": { "Name": "LuaWebService", @@ -29460,6 +33155,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -29469,11 +33167,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -29486,7 +33190,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ManualGlue": { "Name": "ManualGlue", @@ -29496,6 +33210,9 @@ "Superclass": "ManualSurfaceJointInstance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -29560,11 +33277,17 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -29576,7 +33299,17 @@ ], "Superclass": "JointInstance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ManualWeld": { "Name": "ManualWeld", @@ -29586,6 +33319,9 @@ "Superclass": "ManualSurfaceJointInstance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -29650,11 +33386,17 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -29697,6 +33439,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -29706,12 +33451,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "ValuesAndTimes": { "BinaryString": "AQAAAAAAAAABAAAAAAAAAA==" } @@ -29725,7 +33476,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MaterialGenerationService": { "Name": "MaterialGenerationService", @@ -29736,7 +33497,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MaterialGenerationSession": { "Name": "MaterialGenerationSession", @@ -29746,7 +33517,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MaterialImportData": { "Name": "MaterialImportData", @@ -29825,7 +33606,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MaterialService": { "Name": "MaterialService", @@ -30470,6 +34261,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "AsphaltName": { "String": "Asphalt" }, @@ -30533,6 +34327,9 @@ "GroundName": { "String": "Ground" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "IceName": { "String": "Ice" }, @@ -30599,6 +34396,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Use2022MaterialsXml": { "Bool": false }, @@ -30771,6 +34571,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -30789,6 +34592,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaterialPattern": { "Enum": 0 }, @@ -30812,6 +34618,9 @@ }, "TexturePack": { "Content": "" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -30823,7 +34632,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MemStorageService": { "Name": "MemStorageService", @@ -30834,7 +34653,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MemoryStoreHashMap": { "Name": "MemoryStoreHashMap", @@ -30844,7 +34673,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MemoryStoreHashMapPages": { "Name": "MemoryStoreHashMapPages", @@ -30854,7 +34693,17 @@ ], "Superclass": "Pages", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MemoryStoreQueue": { "Name": "MemoryStoreQueue", @@ -30864,7 +34713,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MemoryStoreService": { "Name": "MemoryStoreService", @@ -30874,6 +34733,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -30883,11 +34745,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -30899,7 +34767,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MeshContentProvider": { "Name": "MeshContentProvider", @@ -30910,7 +34788,17 @@ ], "Superclass": "CacheableContentProvider", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MeshImportData": { "Name": "MeshImportData", @@ -31208,7 +35096,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MeshPart": { "Name": "MeshPart", @@ -31436,6 +35334,9 @@ "Anchored": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -31550,6 +35451,9 @@ "HasSkinnedMesh": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "InitialSize": { "Vector3": [ 0.0, @@ -31679,6 +35583,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UnscaledCofm": { "Vector3": [ null, @@ -31737,6 +35644,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -31746,6 +35656,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -31754,6 +35667,9 @@ }, "Text": { "String": "" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -31765,7 +35681,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MessageBusService": { "Name": "MessageBusService", @@ -31776,7 +35702,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MessagingService": { "Name": "MessagingService", @@ -31787,7 +35723,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MetaBreakpoint": { "Name": "MetaBreakpoint", @@ -31962,6 +35908,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -31980,6 +35929,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Line": { "Int32": 0 }, @@ -31997,6 +35949,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -32026,6 +35981,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -32038,11 +35996,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -32055,7 +36019,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Model": { "Name": "Model", @@ -32249,6 +36223,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -32258,6 +36235,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LevelOfDetail": { "Enum": 0 }, @@ -32309,6 +36289,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "WorldPivotData": { "OptionalCFrame": { "position": [ @@ -32389,6 +36372,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -32398,9 +36384,15 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LinkedSource": { "Content": "" }, + "ScriptGuid": { + "String": "" + }, "Source": { "String": "" }, @@ -32409,6 +36401,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -32457,9 +36452,28 @@ "Serialization": "Serializes" } } + }, + "ReplicateCurrentAngle": { + "Name": "ReplicateCurrentAngle", + "Scriptability": "None", + "DataType": { + "Value": "Float32" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -32527,6 +36541,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxVelocity": { "Float32": 0.0 }, @@ -32535,6 +36552,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -32577,6 +36597,38 @@ } } }, + "ReplicateCurrentAngle6D": { + "Name": "ReplicateCurrentAngle6D", + "Scriptability": "None", + "DataType": { + "Value": "Vector3" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, + "ReplicateCurrentOffset6D": { + "Name": "ReplicateCurrentOffset6D", + "Scriptability": "None", + "DataType": { + "Value": "Vector3" + }, + "Tags": [ + "Hidden", + "NotScriptable" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "Transform": { "Name": "Transform", "Scriptability": "ReadWrite", @@ -32595,6 +36647,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -32662,6 +36717,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxVelocity": { "Float32": 0.0 }, @@ -32670,6 +36728,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -32681,6 +36742,9 @@ "Superclass": "Feature", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -32693,6 +36757,9 @@ "FaceId": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "InOut": { "Enum": 2 }, @@ -32707,6 +36774,9 @@ }, "TopBottom": { "Enum": 1 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -32923,7 +36993,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MouseService": { "Name": "MouseService", @@ -32934,7 +37014,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "MultipleDocumentInterfaceInstance": { "Name": "MultipleDocumentInterfaceInstance", @@ -32962,7 +37052,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "NegateOperation": { "Name": "NegateOperation", @@ -32973,6 +37073,9 @@ "Anchored": { "Bool": true }, + "Archivable": { + "Bool": true + }, "AssetId": { "Content": "" }, @@ -33087,6 +37190,9 @@ "FrontSurfaceInput": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "InitialSize": { "Vector3": [ 1.0, @@ -33154,7 +37260,7 @@ "Float32": 0.0 }, "RenderFidelity": { - "Enum": 1 + "Enum": 0 }, "RightParamA": { "Float32": -0.5 @@ -33209,6 +37315,9 @@ "Transparency": { "Float32": 0.1 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UnscaledCofm": { "Vector3": [ null, @@ -33254,7 +37363,17 @@ ], "Superclass": "NetworkPeer", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "NetworkMarker": { "Name": "NetworkMarker", @@ -33264,7 +37383,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "NetworkPeer": { "Name": "NetworkPeer", @@ -33274,7 +37403,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "NetworkReplicator": { "Name": "NetworkReplicator", @@ -33284,7 +37423,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "NetworkServer": { "Name": "NetworkServer", @@ -33295,7 +37444,17 @@ ], "Superclass": "NetworkPeer", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "NetworkSettings": { "Name": "NetworkSettings", @@ -33474,7 +37633,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "NoCollisionConstraint": { "Name": "NoCollisionConstraint", @@ -33522,6 +37691,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -33534,11 +37706,17 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -33576,7 +37754,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "NonReplicatedCSGDictionaryService": { "Name": "NonReplicatedCSGDictionaryService", @@ -33586,6 +37774,9 @@ "Superclass": "FlyweightService", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -33595,11 +37786,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -33677,7 +37874,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "NumberPose": { "Name": "NumberPose", @@ -33699,6 +37906,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -33714,12 +37924,18 @@ "EasingStyle": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Value": { "Float64": 0.0 }, @@ -33748,6 +37964,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -33757,12 +37976,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Value": { "Float64": 0.0 } @@ -33788,6 +38013,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -33797,11 +38025,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -33814,7 +38048,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "OpenCloudApiV1": { "Name": "OpenCloudApiV1", @@ -33824,7 +38068,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "OpenCloudService": { "Name": "OpenCloudService", @@ -33836,6 +38090,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -33845,11 +38102,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -33859,6 +38122,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -33868,11 +38134,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -33884,7 +38156,17 @@ ], "Superclass": "GlobalDataStore", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "OutfitPages": { "Name": "OutfitPages", @@ -33894,7 +38176,17 @@ ], "Superclass": "Pages", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PVAdornment": { "Name": "PVAdornment", @@ -33917,7 +38209,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PVInstance": { "Name": "PVInstance", @@ -33960,7 +38262,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PackageLink": { "Name": "PackageLink", @@ -34193,7 +38505,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PackageService": { "Name": "PackageService", @@ -34204,7 +38526,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PackageUIService": { "Name": "PackageUIService", @@ -34215,7 +38547,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Pages": { "Name": "Pages", @@ -34242,7 +38584,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Pants": { "Name": "Pants", @@ -34264,6 +38616,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -34280,6 +38635,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "PantsTemplate": { "Content": "" }, @@ -34288,6 +38646,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -34373,6 +38734,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -34389,6 +38753,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -34398,6 +38765,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true } @@ -34464,6 +38834,9 @@ "Anchored": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -34569,6 +38942,9 @@ "FrontSurfaceInput": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LeftParamA": { "Float32": -0.5 }, @@ -34675,6 +39051,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Velocity": { "Vector3": [ 0.0, @@ -34705,7 +39084,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PartOperation": { "Name": "PartOperation", @@ -34970,6 +39359,9 @@ "Anchored": { "Bool": false }, + "Archivable": { + "Bool": true + }, "AssetId": { "Content": "" }, @@ -35084,6 +39476,9 @@ "FrontSurfaceInput": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "InitialSize": { "Vector3": [ 1.0, @@ -35151,7 +39546,7 @@ "Float32": 0.0 }, "RenderFidelity": { - "Enum": 1 + "Enum": 0 }, "RightParamA": { "Float32": -0.5 @@ -35206,6 +39601,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UnscaledCofm": { "Vector3": [ null, @@ -35282,6 +39680,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -35294,6 +39695,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MeshData": { "BinaryString": "" }, @@ -35302,6 +39706,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -35780,6 +40187,9 @@ 0.0 ] }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -35841,6 +40251,9 @@ "FlipbookStartRandom": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Lifetime": { "NumberRange": [ 5.0, @@ -35958,6 +40371,9 @@ ] } }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VelocityInheritance": { "Float32": 0.0 }, @@ -35978,7 +40394,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PatchMapping": { "Name": "PatchMapping", @@ -36028,7 +40454,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Path": { "Name": "Path", @@ -36055,7 +40491,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Path2D": { "Name": "Path2D", @@ -36173,6 +40619,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -36192,6 +40641,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "PropertiesSerialize": { "BinaryString": "AAAAAA==" }, @@ -36207,6 +40659,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -36274,6 +40729,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -36283,6 +40741,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "IsBidirectional": { "Bool": true }, @@ -36294,6 +40755,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -36330,6 +40794,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -36339,6 +40806,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Label": { "String": "" }, @@ -36350,6 +40820,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -36379,7 +40852,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PausedState": { "Name": "PausedState", @@ -36441,7 +40924,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PausedStateBreakpoint": { "Name": "PausedStateBreakpoint", @@ -36469,7 +40962,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PausedStateException": { "Name": "PausedStateException", @@ -36497,7 +41000,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PermissionsService": { "Name": "PermissionsService", @@ -36508,6 +41021,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -36517,11 +41033,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -36534,6 +41056,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -36543,11 +41068,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -37187,7 +41718,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PitchShiftSoundEffect": { "Name": "PitchShiftSoundEffect", @@ -37209,6 +41750,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -37221,6 +41765,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Octave": { "Float32": 1.25 }, @@ -37232,6 +41779,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -37244,7 +41794,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PlacesService": { "Name": "PlacesService", @@ -37255,7 +41815,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Plane": { "Name": "Plane", @@ -37265,6 +41835,9 @@ "Superclass": "PlaneConstraint", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -37280,12 +41853,18 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -37297,6 +41876,9 @@ "Superclass": "Constraint", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -37312,12 +41894,18 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -37330,7 +41918,17 @@ ], "Superclass": "Part", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PlatformCloudStorageService": { "Name": "PlatformCloudStorageService", @@ -37341,7 +41939,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PlatformFriendsService": { "Name": "PlatformFriendsService", @@ -37352,7 +41960,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Player": { "Name": "Player", @@ -38209,7 +42827,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PlayerEmulatorService": { "Name": "PlayerEmulatorService", @@ -38318,6 +42946,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -38336,6 +42967,9 @@ "EmulatedGameLocale": { "String": "" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "PlayerEmulationEnabled": { "Bool": false }, @@ -38350,6 +42984,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -38404,7 +43041,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PlayerHydrationService": { "Name": "PlayerHydrationService", @@ -38414,7 +43061,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PlayerMouse": { "Name": "PlayerMouse", @@ -38423,7 +43080,17 @@ ], "Superclass": "Mouse", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PlayerScripts": { "Name": "PlayerScripts", @@ -38433,7 +43100,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PlayerViewService": { "Name": "PlayerViewService", @@ -38444,7 +43121,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Players": { "Name": "Players", @@ -38698,6 +43385,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -38710,6 +43400,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxPlayers": { "Int32": 12 }, @@ -38725,6 +43418,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UseStrafingAnimations": { "Bool": false } @@ -38837,7 +43533,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PluginAction": { "Name": "PluginAction", @@ -38959,7 +43665,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PluginCapabilities": { "Name": "PluginCapabilities", @@ -38981,6 +43697,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -38990,6 +43709,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Manifest": { "String": "{\"Metadata\":{\"TargetDataModels\": [\"Edit\", \"Server\", \"Client\"]},\"Permissions\":{}}" }, @@ -38998,6 +43720,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -39010,7 +43735,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PluginDragEvent": { "Name": "PluginDragEvent", @@ -39085,7 +43820,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PluginGui": { "Name": "PluginGui", @@ -39109,7 +43854,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PluginGuiService": { "Name": "PluginGuiService", @@ -39120,7 +43875,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PluginManagementService": { "Name": "PluginManagementService", @@ -39131,7 +43896,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PluginManager": { "Name": "PluginManager", @@ -39140,7 +43915,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PluginManagerInterface": { "Name": "PluginManagerInterface", @@ -39150,7 +43935,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PluginMenu": { "Name": "PluginMenu", @@ -39191,7 +43986,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PluginMouse": { "Name": "PluginMouse", @@ -39200,7 +44005,17 @@ ], "Superclass": "Mouse", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PluginPolicyService": { "Name": "PluginPolicyService", @@ -39211,7 +44026,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PluginToolbar": { "Name": "PluginToolbar", @@ -39220,7 +44045,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PluginToolbarButton": { "Name": "PluginToolbarButton", @@ -39275,7 +44110,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PointLight": { "Name": "PointLight", @@ -39297,6 +44142,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -39319,6 +44167,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Range": { "Float32": 8.0 }, @@ -39330,6 +44181,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -39342,7 +44196,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PolicyService": { "Name": "PolicyService", @@ -39384,7 +44248,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Pose": { "Name": "Pose", @@ -39422,6 +44296,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -39463,12 +44340,18 @@ "EasingStyle": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Weight": { "Float32": 1.0 } @@ -39521,7 +44404,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PostEffect": { "Name": "PostEffect", @@ -39544,7 +44437,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "PrismaticConstraint": { "Name": "PrismaticConstraint", @@ -39555,6 +44458,9 @@ "ActuatorType": { "Enum": 0 }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -39570,6 +44476,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LimitsEnabled": { "Bool": false }, @@ -39609,6 +44518,9 @@ "TargetPosition": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UpperLimit": { "Float32": 5.0 }, @@ -39629,6 +44541,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -39638,25 +44553,20 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, - "ProjectFolderService": { - "Name": "ProjectFolderService", - "Tags": [ - "NotCreatable", - "NotReplicated", - "Service" - ], - "Superclass": "Instance", - "Properties": {}, - "DefaultProperties": {} - }, "ProximityPrompt": { "Name": "ProximityPrompt", "Tags": [], @@ -39849,6 +44759,9 @@ "ActionText": { "String": "Interact" }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -39873,6 +44786,9 @@ "GamepadKeyCode": { "Enum": 1000 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "HoldDuration": { "Float32": 0.0 }, @@ -39902,6 +44818,9 @@ 0.0, 0.0 ] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -39941,6 +44860,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -39953,6 +44875,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxPromptsVisible": { "Int32": 16 }, @@ -39961,6 +44886,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -39973,7 +44901,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "QWidgetPluginGui": { "Name": "QWidgetPluginGui", @@ -39983,7 +44921,17 @@ ], "Superclass": "PluginGui", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RTAnimationTracker": { "Name": "RTAnimationTracker", @@ -40074,7 +45022,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RayValue": { "Name": "RayValue", @@ -40096,6 +45054,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -40105,12 +45066,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Value": { "Ray": { "origin": [ @@ -40135,7 +45102,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ReflectionMetadata": { "Name": "ReflectionMetadata", @@ -40143,6 +45120,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -40152,11 +45132,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -40166,6 +45152,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -40175,11 +45164,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -40258,6 +45253,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -40297,6 +45295,9 @@ "FFlag": { "String": "" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Insertable": { "Bool": true }, @@ -40335,6 +45336,9 @@ }, "UINumTicks": { "Float64": 0.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -40344,6 +45348,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -40353,11 +45360,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -40367,6 +45380,9 @@ "Superclass": "ReflectionMetadataItem", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -40400,6 +45416,9 @@ "FFlag": { "String": "" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "IsBackend": { "Bool": false }, @@ -40429,6 +45448,9 @@ }, "UINumTicks": { "Float64": 0.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -40438,6 +45460,9 @@ "Superclass": "ReflectionMetadataItem", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -40471,6 +45496,9 @@ "FFlag": { "String": "" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "IsBackend": { "Bool": false }, @@ -40500,6 +45528,9 @@ }, "UINumTicks": { "Float64": 0.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -40509,6 +45540,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -40518,11 +45552,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -40532,6 +45572,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -40541,11 +45584,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -40555,6 +45604,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -40564,11 +45616,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -40788,7 +45846,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ReflectionMetadataMember": { "Name": "ReflectionMetadataMember", @@ -40796,6 +45864,9 @@ "Superclass": "ReflectionMetadataItem", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -40829,6 +45900,9 @@ "FFlag": { "String": "" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "IsBackend": { "Bool": false }, @@ -40858,6 +45932,9 @@ }, "UINumTicks": { "Float64": 0.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -40867,6 +45944,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -40876,11 +45956,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -40890,6 +45976,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -40899,11 +45988,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -40916,7 +46011,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RemoteCursorService": { "Name": "RemoteCursorService", @@ -40926,7 +46031,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RemoteDebuggerServer": { "Name": "RemoteDebuggerServer", @@ -40937,7 +46052,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RemoteEvent": { "Name": "RemoteEvent", @@ -40945,6 +46070,9 @@ "Superclass": "BaseRemoteEvent", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -40954,11 +46082,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -40968,6 +46102,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -40977,11 +46114,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -41193,7 +46336,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RenderingTest": { "Name": "RenderingTest", @@ -41403,6 +46556,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -41453,6 +46609,9 @@ "FieldOfView": { "Float32": 70.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "PerfTest": { "Bool": false }, @@ -41479,6 +46638,9 @@ }, "Timeout": { "Int32": 10 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -41491,6 +46653,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -41500,11 +46665,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -41517,6 +46688,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -41526,11 +46700,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -41606,6 +46786,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -41630,6 +46813,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Priority": { "Int32": 0 }, @@ -41639,6 +46825,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "WetLevel": { "Float32": 0.0 } @@ -41653,7 +46842,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RigidConstraint": { "Name": "RigidConstraint", @@ -41661,6 +46860,9 @@ "Superclass": "Constraint", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -41676,12 +46878,18 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -41711,6 +46919,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -41720,6 +46931,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "ImageDataSerialize": { "BinaryString": "" }, @@ -41734,6 +46948,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -41761,6 +46978,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -41770,6 +46990,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MeshDataSerialize": { "BinaryString": "" }, @@ -41796,6 +47019,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VertexColor": { "Vector3": [ 1.0, @@ -41814,7 +47040,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RobloxReplicatedStorage": { "Name": "RobloxReplicatedStorage", @@ -41825,7 +47061,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RobloxServerStorage": { "Name": "RobloxServerStorage", @@ -41836,7 +47082,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RocketPropulsion": { "Name": "RocketPropulsion", @@ -42006,6 +47262,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -42018,6 +47277,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxSpeed": { "Float32": 30.0 }, @@ -42058,6 +47320,9 @@ }, "TurnP": { "Float32": 3000.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -42149,6 +47414,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -42164,6 +47432,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Length": { "Float32": 5.0 }, @@ -42185,6 +47456,9 @@ "Thickness": { "Float32": 0.1 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -42198,7 +47472,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RootImportData": { "Name": "RootImportData", @@ -42540,7 +47824,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RopeConstraint": { "Name": "RopeConstraint", @@ -42669,6 +47963,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -42684,6 +47981,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Length": { "Float32": 5.0 }, @@ -42699,6 +47999,9 @@ "Thickness": { "Float32": 0.1 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false }, @@ -42727,6 +48030,9 @@ "Superclass": "JointInstance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -42791,11 +48097,17 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -42807,6 +48119,9 @@ "Superclass": "DynamicRotate", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -42874,11 +48189,17 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -42890,6 +48211,9 @@ "Superclass": "DynamicRotate", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -42957,11 +48281,17 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -43004,6 +48334,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -43013,12 +48346,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "ValuesAndTimes": { "BinaryString": "AQAAAAAAAAABAAAAAAAAAA==" } @@ -43033,7 +48372,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RunService": { "Name": "RunService", @@ -43076,7 +48425,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RunningAverageItemDouble": { "Name": "RunningAverageItemDouble", @@ -43085,7 +48444,17 @@ ], "Superclass": "StatsItem", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RunningAverageItemInt": { "Name": "RunningAverageItemInt", @@ -43094,7 +48463,17 @@ ], "Superclass": "StatsItem", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RunningAverageTimeIntervalItem": { "Name": "RunningAverageTimeIntervalItem", @@ -43103,7 +48482,17 @@ ], "Superclass": "StatsItem", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "RuntimeScriptService": { "Name": "RuntimeScriptService", @@ -43114,7 +48503,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "SafetyService": { "Name": "SafetyService", @@ -43138,7 +48537,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ScreenGui": { "Name": "ScreenGui", @@ -43232,6 +48641,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -43253,6 +48665,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "ResetOnSpawn": { "Bool": true }, @@ -43283,6 +48698,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "ZIndexBehavior": { "Enum": 0 } @@ -43436,7 +48854,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Script": { "Name": "Script", @@ -43458,6 +48886,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -43470,12 +48901,18 @@ "Disabled": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LinkedSource": { "Content": "" }, "RunContext": { "Enum": 0 }, + "ScriptGuid": { + "String": "" + }, "Source": { "String": "" }, @@ -43484,6 +48921,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -43495,7 +48935,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ScriptChangeService": { "Name": "ScriptChangeService", @@ -43506,7 +48956,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ScriptCloneWatcher": { "Name": "ScriptCloneWatcher", @@ -43517,7 +48977,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ScriptCloneWatcherHelper": { "Name": "ScriptCloneWatcherHelper", @@ -43528,7 +48998,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ScriptCommitService": { "Name": "ScriptCommitService", @@ -43539,7 +49019,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ScriptContext": { "Name": "ScriptContext", @@ -43566,7 +49056,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ScriptDebugger": { "Name": "ScriptDebugger", @@ -43672,7 +49172,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ScriptDocument": { "Name": "ScriptDocument", @@ -43682,7 +49192,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ScriptEditorService": { "Name": "ScriptEditorService", @@ -43693,7 +49213,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ScriptProfilerService": { "Name": "ScriptProfilerService", @@ -43703,7 +49233,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ScriptRegistrationService": { "Name": "ScriptRegistrationService", @@ -43714,7 +49254,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ScriptRuntime": { "Name": "ScriptRuntime", @@ -43724,7 +49274,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ScriptService": { "Name": "ScriptService", @@ -43735,6 +49295,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -43744,11 +49307,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -44062,6 +49631,9 @@ 0.0 ] }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -44133,6 +49705,9 @@ "ElasticBehavior": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "HorizontalScrollBarInset": { "Enum": 0 }, @@ -44224,6 +49799,9 @@ "TopImage": { "Content": "rbxasset://textures/ui/Scroll/scroll-top.png" }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VerticalScrollBarInset": { "Enum": 0 }, @@ -44277,6 +49855,9 @@ "Anchored": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -44385,6 +49966,9 @@ "FrontSurfaceInput": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LeftParamA": { "Float32": -0.5 }, @@ -44491,6 +50075,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Velocity": { "Vector3": [ 0.0, @@ -44610,6 +50197,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -44619,11 +50209,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -44705,6 +50301,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -44721,6 +50320,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LineThickness": { "Float32": 0.15 }, @@ -44746,6 +50348,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true } @@ -44759,7 +50364,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "SelectionLasso": { "Name": "SelectionLasso", @@ -44782,7 +50397,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "SelectionPartLasso": { "Name": "SelectionPartLasso", @@ -44806,6 +50431,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -44822,6 +50450,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -44831,6 +50462,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true } @@ -44858,6 +50492,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -44874,6 +50511,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Point": { "Vector3": [ 0.0, @@ -44890,6 +50530,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true } @@ -44945,6 +50588,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -44961,6 +50607,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -44980,6 +50629,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true } @@ -45006,7 +50658,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ServerReplicator": { "Name": "ServerReplicator", @@ -45016,7 +50678,17 @@ ], "Superclass": "NetworkReplicator", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ServerScriptService": { "Name": "ServerScriptService", @@ -45045,6 +50717,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -45054,6 +50729,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LoadStringEnabled": { "Bool": false }, @@ -45062,6 +50740,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -45075,6 +50756,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -45084,11 +50768,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -45100,7 +50790,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ServiceVisibilityService": { "Name": "ServiceVisibilityService", @@ -45138,6 +50838,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -45150,12 +50853,18 @@ "HiddenServices": { "BinaryString": "AAAAAA==" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VisibleServices": { "BinaryString": "AAAAAA==" } @@ -45169,7 +50878,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "SharedTableRegistry": { "Name": "SharedTableRegistry", @@ -45180,7 +50899,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Shirt": { "Name": "Shirt", @@ -45202,6 +50931,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -45218,6 +50950,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "ShirtTemplate": { "Content": "" }, @@ -45226,6 +50961,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -45262,6 +51000,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -45281,11 +51022,17 @@ "Graphic": { "Content": "" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -45298,7 +51045,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "SkateboardController": { "Name": "SkateboardController", @@ -45339,6 +51096,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -45348,11 +51108,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -45455,6 +51221,9 @@ "Anchored": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -45560,6 +51329,9 @@ "FrontSurfaceInput": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LeftParamA": { "Float32": -0.5 }, @@ -45675,6 +51447,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Velocity": { "Vector3": [ 0.0, @@ -45706,6 +51481,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -45715,6 +51493,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SkinColor": { "BrickColor": 226 }, @@ -45723,6 +51504,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -45889,6 +51673,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -45901,6 +51688,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MoonAngularSize": { "Float32": 11.0 }, @@ -45939,6 +51729,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -46150,7 +51943,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Smoke": { "Name": "Smoke", @@ -46313,6 +52116,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -46332,6 +52138,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Opacity": { "Float32": 0.5 }, @@ -46349,6 +52158,9 @@ }, "TimeScale": { "Float32": 1.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -46361,7 +52173,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Snap": { "Name": "Snap", @@ -46371,6 +52193,9 @@ "Superclass": "JointInstance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -46435,11 +52260,17 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -46452,7 +52283,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "SocialService": { "Name": "SocialService", @@ -46463,7 +52304,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "SolidModelContentProvider": { "Name": "SolidModelContentProvider", @@ -46474,7 +52325,17 @@ ], "Superclass": "CacheableContentProvider", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Sound": { "Name": "Sound", @@ -46975,6 +52836,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -46984,6 +52848,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LoopRegion": { "NumberRange": [ 0.0, @@ -47032,6 +52899,9 @@ "TimePosition": { "Float64": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Volume": { "Float32": 0.5 } @@ -47071,7 +52941,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "SoundGroup": { "Name": "SoundGroup", @@ -47093,6 +52973,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -47102,12 +52985,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Volume": { "Float32": 0.5 } @@ -47206,6 +53095,9 @@ "AmbientReverb": { "Enum": 0 }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -47221,6 +53113,9 @@ "DopplerScale": { "Float32": 1.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "RespectFilteringEnabled": { "Bool": false }, @@ -47233,6 +53128,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VolumetricAudio": { "Enum": 1 } @@ -47316,6 +53214,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -47328,6 +53229,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -47343,6 +53247,9 @@ }, "TimeScale": { "Float32": 1.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -47424,6 +53331,9 @@ "Anchored": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -47535,6 +53445,9 @@ "FrontSurfaceInput": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LeftParamA": { "Float32": -0.5 }, @@ -47647,6 +53560,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Velocity": { "Vector3": [ 0.0, @@ -47664,7 +53580,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "SpecialMesh": { "Name": "SpecialMesh", @@ -47686,6 +53612,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -47695,6 +53624,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MeshId": { "Content": "" }, @@ -47724,6 +53656,9 @@ "TextureId": { "Content": "" }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VertexColor": { "Vector3": [ 1.0, @@ -47759,6 +53694,9 @@ "AlwaysOnTop": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -47801,6 +53739,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Radius": { "Float32": 1.0 }, @@ -47820,6 +53761,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -47877,6 +53821,9 @@ "Angle": { "Float32": 90.0 }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -47902,6 +53849,9 @@ "Face": { "Enum": 5 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Range": { "Float32": 16.0 }, @@ -47913,6 +53863,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -48069,6 +54022,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -48093,6 +54049,9 @@ "FreeLength": { "Float32": 1.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LimitsEnabled": { "Bool": false }, @@ -48120,6 +54079,9 @@ "Thickness": { "Float32": 0.1 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -48287,7 +54249,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StandalonePluginScripts": { "Name": "StandalonePluginScripts", @@ -48295,6 +54267,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -48304,11 +54279,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -48320,7 +54301,17 @@ ], "Superclass": "Pages", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StarterCharacterScripts": { "Name": "StarterCharacterScripts", @@ -48330,6 +54321,9 @@ "Superclass": "StarterPlayerScripts", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -48339,11 +54333,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -48353,6 +54353,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -48362,11 +54365,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -48467,6 +54476,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -48476,6 +54488,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "ResetPlayerGuiOnSpawn": { "Bool": true }, @@ -48494,6 +54509,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VirtualCursorMode": { "Enum": 0 } @@ -48508,6 +54526,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -48517,11 +54538,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -49166,6 +55193,9 @@ "AllowCustomAnimations": { "Bool": true }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -49295,6 +55325,9 @@ "HealthDisplayDistance": { "Float32": 100.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LoadCharacterAppearance": { "Bool": true }, @@ -49313,6 +55346,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UserEmotesEnabled": { "Bool": true } @@ -49326,6 +55362,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -49335,11 +55374,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -49352,7 +55397,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Stats": { "Name": "Stats", @@ -49523,7 +55578,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StatsItem": { "Name": "StatsItem", @@ -49550,7 +55615,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Status": { "Name": "Status", @@ -49560,7 +55635,17 @@ ], "Superclass": "Model", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StopWatchReporter": { "Name": "StopWatchReporter", @@ -49571,7 +55656,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StreamingService": { "Name": "StreamingService", @@ -49582,7 +55677,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StringValue": { "Name": "StringValue", @@ -49604,6 +55709,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -49613,12 +55721,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Value": { "String": "" } @@ -51711,7 +57825,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StudioAssetService": { "Name": "StudioAssetService", @@ -51722,7 +57846,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StudioAttachment": { "Name": "StudioAttachment", @@ -51797,7 +57931,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StudioCallout": { "Name": "StudioCallout", @@ -51903,7 +58047,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StudioData": { "Name": "StudioData", @@ -51930,6 +58084,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -51942,11 +58099,17 @@ "EnableScriptCollabByDefaultOnLoad": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -52027,7 +58190,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StudioObjectBase": { "Name": "StudioObjectBase", @@ -52037,7 +58210,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StudioPublishService": { "Name": "StudioPublishService", @@ -52062,7 +58245,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StudioScriptDebugEventListener": { "Name": "StudioScriptDebugEventListener", @@ -52073,7 +58266,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StudioSdkService": { "Name": "StudioSdkService", @@ -52084,7 +58287,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StudioService": { "Name": "StudioService", @@ -52161,6 +58374,22 @@ } } }, + "ForceShowConstraintDetails": { + "Name": "ForceShowConstraintDetails", + "Scriptability": "None", + "DataType": { + "Value": "Bool" + }, + "Tags": [ + "Hidden", + "NotReplicated" + ], + "Kind": { + "Canonical": { + "Serialization": "DoesNotSerialize" + } + } + }, "GridSize": { "Name": "GridSize", "Scriptability": "Read", @@ -52304,7 +58533,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StudioTheme": { "Name": "StudioTheme", @@ -52314,7 +58553,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StudioWidget": { "Name": "StudioWidget", @@ -52324,7 +58573,17 @@ ], "Superclass": "StudioObjectBase", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StudioWidgetsService": { "Name": "StudioWidgetsService", @@ -52335,7 +58594,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StyleBase": { "Name": "StyleBase", @@ -52344,7 +58613,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "StyleDerive": { "Name": "StyleDerive", @@ -52382,6 +58661,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -52391,6 +58673,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Index": { "Int32": -1 }, @@ -52399,6 +58684,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -52422,6 +58710,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -52431,11 +58722,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -52507,6 +58804,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -52516,6 +58816,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Index": { "Int32": -1 }, @@ -52530,6 +58833,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -52539,6 +58845,9 @@ "Superclass": "StyleBase", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -52548,11 +58857,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -52565,7 +58880,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "SunRaysEffect": { "Name": "SunRaysEffect", @@ -52600,6 +58925,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -52612,6 +58940,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Intensity": { "Float32": 0.25 }, @@ -52623,6 +58954,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -52727,6 +59061,9 @@ "AlphaMode": { "Enum": 0 }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -52746,6 +59083,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MetalnessMap": { "Content": "" }, @@ -52763,6 +59103,9 @@ }, "TexturePack": { "Content": "" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -52939,6 +59282,9 @@ "AlwaysOnTop": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -52969,6 +59315,9 @@ "Face": { "Enum": 5 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LightInfluence": { "Float32": 0.0 }, @@ -53008,6 +59357,9 @@ "ToolPunchThroughDistance": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "ZIndexBehavior": { "Enum": 0 }, @@ -53063,7 +59415,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "SurfaceLight": { "Name": "SurfaceLight", @@ -53114,6 +59476,9 @@ "Angle": { "Float32": 90.0 }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -53139,6 +59504,9 @@ "Face": { "Enum": 5 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Range": { "Float32": 16.0 }, @@ -53150,6 +59518,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -53173,6 +59544,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -53189,6 +59563,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -53201,6 +59578,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true } @@ -53281,6 +59661,9 @@ "AccelerationTime": { "Float32": 0.0 }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -53293,6 +59676,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MoveSpeedFactor": { "Float32": 1.0 }, @@ -53313,6 +59699,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -53392,7 +59781,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TaskScheduler": { "Name": "TaskScheduler", @@ -53464,7 +59863,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Team": { "Name": "Team", @@ -53546,6 +59955,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -53558,6 +59970,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -53566,6 +59981,9 @@ }, "TeamColor": { "BrickColor": 1 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -53594,7 +60012,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TeamCreatePublishService": { "Name": "TeamCreatePublishService", @@ -53604,7 +60032,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TeamCreateService": { "Name": "TeamCreateService", @@ -53615,7 +60053,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Teams": { "Name": "Teams", @@ -53626,6 +60074,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -53635,11 +60086,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -53683,7 +60140,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TeleportOptions": { "Name": "TeleportOptions", @@ -53731,6 +60198,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -53740,6 +60210,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "ReservedServerAccessCode": { "String": "" }, @@ -53754,6 +60227,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -53783,6 +60259,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -53792,11 +60271,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -53809,7 +60294,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TemporaryScriptService": { "Name": "TemporaryScriptService", @@ -53820,7 +60315,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Terrain": { "Name": "Terrain", @@ -54130,6 +60635,9 @@ "Anchored": { "Bool": true }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -54238,6 +60746,9 @@ "GrassLength": { "Float32": 0.7 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LeftParamA": { "Float32": -0.5 }, @@ -54462,6 +60973,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Velocity": { "Vector3": [ 0.0, @@ -54604,6 +61118,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -54619,6 +61136,9 @@ "Face": { "Enum": 1 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaterialPattern": { "Enum": 0 }, @@ -54642,6 +61162,9 @@ }, "TexturePack": { "Content": "" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -54752,6 +61275,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -54775,6 +61301,9 @@ 0 ] }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SmoothGrid": { "BinaryString": "AQU=" }, @@ -54783,6 +61312,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -54966,6 +61498,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -54984,6 +61519,9 @@ "ExecuteWithStudioRun": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "IsSleepAllowed": { "Bool": true }, @@ -55001,6 +61539,9 @@ }, "Timeout": { "Float64": 10.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -55592,6 +62133,9 @@ 0.0 ] }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -55647,6 +62191,9 @@ "cachedFaceId": "rbxasset://fonts/Arimo-Regular.ttf" } }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Interactable": { "Bool": true }, @@ -55791,6 +62338,9 @@ "TextYAlignment": { "Enum": 1 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -55807,7 +62357,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TextButton": { "Name": "TextButton", @@ -56246,6 +62806,9 @@ 0.0 ] }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -56301,6 +62864,9 @@ "cachedFaceId": "rbxasset://fonts/Arimo-Regular.ttf" } }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Interactable": { "Bool": true }, @@ -56435,6 +63001,9 @@ "TextYAlignment": { "Enum": 1 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -56449,6 +63018,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -56458,11 +63030,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -56525,6 +63103,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -56540,6 +63121,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "PrimaryAlias": { "String": "" }, @@ -56551,6 +63135,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -56562,7 +63149,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TextChatMessage": { "Name": "TextChatMessage", @@ -56689,7 +63286,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TextChatMessageProperties": { "Name": "TextChatMessageProperties", @@ -56737,6 +63344,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -56746,11 +63356,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -56850,6 +63466,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -56874,11 +63493,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -56890,7 +63515,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TextFilterTranslatedResult": { "Name": "TextFilterTranslatedResult", @@ -56933,7 +63568,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TextLabel": { "Name": "TextLabel", @@ -57372,6 +64017,9 @@ 0.0 ] }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -57424,6 +64072,9 @@ "cachedFaceId": "rbxasset://fonts/Arimo-Regular.ttf" } }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Interactable": { "Bool": true }, @@ -57549,6 +64200,9 @@ "TextYAlignment": { "Enum": 1 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -57566,7 +64220,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TextSource": { "Name": "TextSource", @@ -57621,7 +64285,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Texture": { "Name": "Texture", @@ -57682,6 +64356,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -57701,6 +64378,9 @@ "Face": { "Enum": 5 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "OffsetStudsU": { "Float32": 0.0 }, @@ -57725,6 +64405,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "ZIndex": { "Int32": 1 } @@ -57738,7 +64421,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TextureGenerationService": { "Name": "TextureGenerationService", @@ -57749,7 +64442,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TextureGenerationUnwrappingRequest": { "Name": "TextureGenerationUnwrappingRequest", @@ -57759,7 +64462,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ThirdPartyUserService": { "Name": "ThirdPartyUserService", @@ -57770,7 +64483,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ThreadState": { "Name": "ThreadState", @@ -57849,7 +64572,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TimerService": { "Name": "TimerService", @@ -57860,6 +64593,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -57869,11 +64605,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -57886,7 +64628,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Tool": { "Name": "Tool", @@ -58037,6 +64789,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -58078,6 +64833,9 @@ ] } }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LevelOfDetail": { "Enum": 0 }, @@ -58141,6 +64899,9 @@ "ToolTip": { "String": "" }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "WorldPivotData": { "OptionalCFrame": { "position": [ @@ -58202,6 +64963,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -58217,6 +64981,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "RelativeTo": { "Enum": 0 }, @@ -58233,6 +65000,9 @@ 0.0 ] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -58381,6 +65151,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -58402,6 +65175,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LimitEnabled": { "Bool": false }, @@ -58429,6 +65205,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -58441,7 +65220,17 @@ ], "Superclass": "StatsItem", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TouchInputService": { "Name": "TouchInputService", @@ -58452,6 +65241,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -58461,11 +65253,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -58477,7 +65275,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TracerService": { "Name": "TracerService", @@ -58488,7 +65296,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TrackerLodController": { "Name": "TrackerLodController", @@ -58551,7 +65369,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TrackerStreamAnimation": { "Name": "TrackerStreamAnimation", @@ -58560,7 +65388,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Trail": { "Name": "Trail", @@ -58793,6 +65631,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -58833,6 +65674,9 @@ "FaceCamera": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Lifetime": { "Float32": 2.0 }, @@ -58879,6 +65723,9 @@ ] } }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "WidthScale": { "NumberSequence": { "keypoints": [ @@ -58922,7 +65769,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TremoloSoundEffect": { "Name": "TremoloSoundEffect", @@ -58970,6 +65827,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -58991,6 +65851,9 @@ "Frequency": { "Float32": 5.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Priority": { "Int32": 0 }, @@ -58999,6 +65862,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -59164,7 +66030,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TrussPart": { "Name": "TrussPart", @@ -59207,6 +66083,9 @@ "Anchored": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -59309,6 +66188,9 @@ "FrontSurfaceInput": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LeftParamA": { "Float32": -0.5 }, @@ -59412,6 +66294,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Velocity": { "Vector3": [ 0.0, @@ -59433,7 +66318,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Tween": { "Name": "Tween", @@ -59458,6 +66353,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -59467,11 +66365,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -59500,7 +66404,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "TweenService": { "Name": "TweenService", @@ -59511,6 +66425,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -59520,11 +66437,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -59537,6 +66460,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -59546,11 +66472,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -59563,7 +66495,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "UIAspectRatioConstraint": { "Name": "UIAspectRatioConstraint", @@ -59611,6 +66553,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "AspectRatio": { "Float32": 1.0 }, @@ -59629,11 +66574,17 @@ "DominantAxis": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -59644,7 +66595,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "UIComponent": { "Name": "UIComponent", @@ -59653,7 +66614,17 @@ ], "Superclass": "UIBase", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "UIConstraint": { "Name": "UIConstraint", @@ -59662,7 +66633,17 @@ ], "Superclass": "UIComponent", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "UICorner": { "Name": "UICorner", @@ -59684,6 +66665,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -59699,11 +66683,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -59727,6 +66717,19 @@ } } }, + "BoundingBehavior": { + "Name": "BoundingBehavior", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "UIDragDetectorBoundingBehavior" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "BoundingUI": { "Name": "BoundingUI", "Scriptability": "ReadWrite", @@ -59927,9 +66930,15 @@ "ActivatedCursorIcon": { "Content": "" }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, + "BoundingBehavior": { + "Enum": 0 + }, "Capabilities": { "SecurityCapabilities": 0 }, @@ -59972,6 +66981,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxDragAngle": { "Float32": 0.0 }, @@ -60010,6 +67022,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -60022,13 +67037,21 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "UIFlexItem": { "Name": "UIFlexItem", - "Tags": [ - "NotBrowsable" - ], + "Tags": [], "Superclass": "UIComponent", "Properties": { "FlexMode": { @@ -60085,6 +67108,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -60100,6 +67126,9 @@ "GrowRatio": { "Float32": 0.0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "ItemLineAlignment": { "Enum": 0 }, @@ -60111,6 +67140,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -60186,6 +67218,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -60220,6 +67255,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Offset": { "Vector2": [ 0.0, @@ -60250,6 +67288,9 @@ } ] } + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -60344,6 +67385,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -60383,6 +67427,9 @@ "FillDirectionMaxCells": { "Int32": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "HorizontalAlignment": { "Enum": 1 }, @@ -60398,6 +67445,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VerticalAlignment": { "Enum": 1 } @@ -60480,7 +67530,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "UILayout": { "Name": "UILayout", @@ -60489,7 +67549,17 @@ ], "Superclass": "UIComponent", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "UIListLayout": { "Name": "UIListLayout", @@ -60595,6 +67665,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -60607,6 +67680,9 @@ "FillDirection": { "Enum": 1 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "HorizontalAlignment": { "Enum": 1 }, @@ -60631,6 +67707,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VerticalAlignment": { "Enum": 1 }, @@ -60701,6 +67780,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -60710,6 +67792,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "PaddingBottom": { "UDim": [ 0.0, @@ -60739,6 +67824,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -60885,6 +67973,9 @@ "Animated": { "Bool": true }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -60909,6 +68000,9 @@ "GamepadInputEnabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "HorizontalAlignment": { "Enum": 1 }, @@ -60936,6 +68030,9 @@ "TweenTime": { "Float32": 1.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VerticalAlignment": { "Enum": 1 } @@ -60961,6 +68058,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -60970,6 +68070,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Scale": { "Float32": 1.0 }, @@ -60978,6 +68081,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -61014,6 +68120,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -61023,6 +68132,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxSize": { "Vector2": [ null, @@ -61040,6 +68152,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -61131,6 +68246,9 @@ "ApplyStrokeMode": { "Enum": 0 }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -61150,6 +68268,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LineJoinMode": { "Enum": 0 }, @@ -61164,6 +68285,9 @@ }, "Transparency": { "Float32": 0.0 + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -61226,6 +68350,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -61244,6 +68371,9 @@ "FillEmptySpaceRows": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "HorizontalAlignment": { "Enum": 1 }, @@ -61271,6 +68401,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "VerticalAlignment": { "Enum": 1 } @@ -61309,6 +68442,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -61318,6 +68454,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxTextSize": { "Int32": 100 }, @@ -61329,6 +68468,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -61341,6 +68483,9 @@ "Anchored": { "Bool": false }, + "Archivable": { + "Bool": true + }, "AssetId": { "Content": "" }, @@ -61455,6 +68600,9 @@ "FrontSurfaceInput": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "InitialSize": { "Vector3": [ 1.0, @@ -61522,7 +68670,7 @@ "Float32": 0.0 }, "RenderFidelity": { - "Enum": 1 + "Enum": 0 }, "RightParamA": { "Float32": -0.5 @@ -61577,6 +68725,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UnscaledCofm": { "Vector3": [ null, @@ -61672,6 +68823,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -61687,6 +68841,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LimitsEnabled": { "Bool": false }, @@ -61705,6 +68862,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -61716,6 +68876,9 @@ "Superclass": "BaseRemoteEvent", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -61725,11 +68888,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -61759,6 +68928,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -61771,11 +68943,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -62752,7 +69930,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "UserInputService": { "Name": "UserInputService", @@ -62851,6 +70039,7 @@ "Value": "Bool" }, "Tags": [ + "Deprecated", "Hidden" ], "Kind": { @@ -63125,7 +70314,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "UserService": { "Name": "UserService", @@ -63135,7 +70334,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "UserSettings": { "Name": "UserSettings", @@ -63144,7 +70353,17 @@ ], "Superclass": "GenericSettings", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "UserStorageService": { "Name": "UserStorageService", @@ -63155,7 +70374,17 @@ ], "Superclass": "LocalStorageService", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "VRService": { "Name": "VRService", @@ -63191,6 +70420,19 @@ } } }, + "ControllerModels": { + "Name": "ControllerModels", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "VRControllerModelMode" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "DidPointerHit": { "Name": "DidPointerHit", "Scriptability": "None", @@ -63253,6 +70495,19 @@ } } }, + "LaserPointer": { + "Name": "LaserPointer", + "Scriptability": "ReadWrite", + "DataType": { + "Enum": "VRLaserPointerMode" + }, + "Tags": [], + "Kind": { + "Canonical": { + "Serialization": "Serializes" + } + } + }, "PointerHitCFrame": { "Name": "PointerHitCFrame", "Scriptability": "None", @@ -63387,6 +70642,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -63399,17 +70657,29 @@ "Capabilities": { "SecurityCapabilities": 0 }, + "ControllerModels": { + "Enum": 1 + }, "DefinesCapabilities": { "Bool": false }, "FadeOutViewOnCollision": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "LaserPointer": { + "Enum": 1 + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -63421,7 +70691,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "ValueBase": { "Name": "ValueBase", @@ -63430,7 +70710,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Vector3Curve": { "Name": "Vector3Curve", @@ -63438,6 +70728,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -63447,11 +70740,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -63475,6 +70774,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -63484,12 +70786,18 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Value": { "Vector3": [ 0.0, @@ -63548,6 +70856,9 @@ "ApplyAtCenterOfMass": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -63570,6 +70881,9 @@ 0.0 ] }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "RelativeTo": { "Enum": 0 }, @@ -63579,6 +70893,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": false } @@ -63590,6 +70907,9 @@ "Superclass": "Controller", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -63599,11 +70919,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -63770,6 +71096,9 @@ "Anchored": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -63878,6 +71207,9 @@ "HeadsUpDisplay": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LeftParamA": { "Float32": -0.5 }, @@ -64002,6 +71334,9 @@ "TurnSpeed": { "Float32": 1.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Velocity": { "Vector3": [ 0.0, @@ -64070,6 +71405,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -64140,6 +71478,9 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "MaxVelocity": { "Float32": 0.0 }, @@ -64148,6 +71489,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -64191,7 +71535,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "VideoCaptureService": { "Name": "VideoCaptureService", @@ -64235,6 +71589,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -64244,11 +71601,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -64315,7 +71678,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "VideoFrame": { "Name": "VideoFrame", @@ -64482,6 +71855,9 @@ 0.0 ] }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -64526,6 +71902,9 @@ "Draggable": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Interactable": { "Bool": true }, @@ -64598,6 +71977,9 @@ "TimePosition": { "Float64": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Video": { "Content": "" }, @@ -64621,6 +72003,9 @@ "Superclass": "Instance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -64630,11 +72015,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -64789,6 +72180,9 @@ 0.0 ] }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -64862,6 +72256,9 @@ "Draggable": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "ImageColor3": { "Color3": [ 1.0, @@ -64949,6 +72346,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -64982,6 +72382,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -64991,11 +72394,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -65008,7 +72417,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "VisibilityCheckDispatcher": { "Name": "VisibilityCheckDispatcher", @@ -65018,7 +72437,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "Visit": { "Name": "Visit", @@ -65029,7 +72458,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "VisualizationMode": { "Name": "VisualizationMode", @@ -65077,6 +72516,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -65089,6 +72531,9 @@ "Enabled": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -65100,6 +72545,9 @@ }, "ToolTip": { "String": "" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -65136,6 +72584,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -65148,6 +72599,9 @@ "Enabled": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -65156,6 +72610,9 @@ }, "Title": { "String": "" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -65167,7 +72624,17 @@ ], "Superclass": "Instance", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "VoiceChatInternal": { "Name": "VoiceChatInternal", @@ -65198,6 +72665,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -65207,11 +72677,17 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -65341,6 +72817,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -65353,12 +72832,18 @@ "EnableDefaultVoice": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "UseAudioApi": { "Enum": 1 } @@ -65373,6 +72858,9 @@ "Anchored": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -65478,6 +72966,9 @@ "FrontSurfaceInput": { "Enum": 0 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LeftParamA": { "Float32": -0.5 }, @@ -65581,6 +73072,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Velocity": { "Vector3": [ 0.0, @@ -65596,6 +73090,9 @@ "Superclass": "JointInstance", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -65660,11 +73157,17 @@ "Enabled": { "Bool": true }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -65821,6 +73324,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -65856,6 +73362,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -65864,6 +73373,9 @@ }, "Tags": { "Tags": [] + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -65944,6 +73456,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -65953,6 +73468,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "SourceAssetId": { "Int64": -1 }, @@ -65964,6 +73482,9 @@ }, "TargetName": { "String": "Input" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -65993,6 +73514,9 @@ "AlwaysOnTop": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -66035,6 +73559,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "Scale": { "Vector3": [ 1.0, @@ -66058,6 +73585,9 @@ "Transparency": { "Float32": 0.0 }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "Visible": { "Bool": true }, @@ -66701,6 +74231,9 @@ "AllowThirdPartySales": { "Bool": false }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -66747,6 +74280,9 @@ "Gravity": { "Float32": 196.2 }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "IKControlConstraintSupport": { "Enum": 0 }, @@ -66855,6 +74391,9 @@ "TouchesUseCollisionGroups": { "Bool": false }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "WorldPivotData": { "OptionalCFrame": { "position": [ @@ -66919,7 +74458,17 @@ } } }, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "WorldModel": { "Name": "WorldModel", @@ -66927,6 +74476,9 @@ "Superclass": "WorldRoot", "Properties": {}, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -66936,6 +74488,9 @@ "DefinesCapabilities": { "Bool": false }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "LevelOfDetail": { "Enum": 0 }, @@ -66987,6 +74542,9 @@ "Tags": { "Tags": [] }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + }, "WorldPivotData": { "OptionalCFrame": { "position": [ @@ -67022,7 +74580,17 @@ ], "Superclass": "Model", "Properties": {}, - "DefaultProperties": {} + "DefaultProperties": { + "Archivable": { + "Bool": true + }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" + } + } }, "WrapDeformer": { "Name": "WrapDeformer", @@ -67075,6 +74643,9 @@ "Amount": { "Float32": 1.0 }, + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -67119,6 +74690,9 @@ "HSRAssetId": { "Content": "" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "ImportOrigin": { "CFrame": { "position": [ @@ -67156,6 +74730,9 @@ }, "TemporaryCageMeshId": { "Content": "" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -67334,6 +74911,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -67407,6 +74987,9 @@ "HSRAssetId": { "Content": "" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "ImportOrigin": { "CFrame": { "position": [ @@ -67482,6 +75065,9 @@ }, "TemporaryReferenceId": { "Content": "" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } }, @@ -67537,6 +75123,9 @@ } }, "DefaultProperties": { + "Archivable": { + "Bool": true + }, "Attributes": { "Attributes": {} }, @@ -67578,6 +75167,9 @@ "HSRAssetId": { "Content": "" }, + "HistoryId": { + "UniqueId": "00000000000000000000000000000000" + }, "ImportOrigin": { "CFrame": { "position": [ @@ -67615,6 +75207,9 @@ }, "TemporaryCageMeshId": { "Content": "" + }, + "UniqueId": { + "UniqueId": "00000000000000000000000000000000" } } } @@ -67712,7 +75307,8 @@ "FullscreenButtonClicked": 2, "PauseButtonClicked": 4, "PlayButtonClicked": 3, - "VolumeButtonClicked": 1 + "VolumeButtonClicked": 1, + "WhyThisAdClicked": 6 } }, "AdUIType": { @@ -67856,6 +75452,15 @@ "Enabled": 2 } }, + "AppLifecycleManagerState": { + "name": "AppLifecycleManagerState", + "items": { + "Active": 1, + "Detached": 0, + "Hidden": 3, + "Inactive": 2 + } + }, "AppShellActionType": { "name": "AppShellActionType", "items": { @@ -68128,10 +75733,11 @@ "items": { "Canceled": 3, "DownloadFailed": 2, + "JobNotFound": 6, "None": 0, "Offensive": 4, - "Timeout": 1, - "Unknown": 5 + "Timeout": 5, + "Unknown": 1 } }, "AvatarGenerationJobStatus": { @@ -68491,6 +76097,17 @@ "Enabled": 2 } }, + "CloseReason": { + "name": "CloseReason", + "items": { + "DeveloperShutdown": 2, + "DeveloperUpdate": 3, + "OutOfMemory": 5, + "RobloxMaintenance": 1, + "ServerEmpty": 4, + "Unknown": 0 + } + }, "CollaboratorStatus": { "name": "CollaboratorStatus", "items": { @@ -68910,6 +76527,14 @@ "DeviceCapture": 0 } }, + "DeviceLevel": { + "name": "DeviceLevel", + "items": { + "High": 2, + "Low": 0, + "Medium": 1 + } + }, "DeviceType": { "name": "DeviceType", "items": { @@ -69379,6 +77004,16 @@ "Resize": 0 } }, + "HapticEffectType": { + "name": "HapticEffectType", + "items": { + "GameplayCollision": 4, + "GameplayExplosion": 3, + "UIClick": 1, + "UIHover": 0, + "UINotification": 2 + } + }, "HighlightDepthMode": { "name": "HighlightDepthMode", "items": { @@ -70009,6 +77644,14 @@ "Enabled": 2 } }, + "LocationType": { + "name": "LocationType", + "items": { + "Camera": 1, + "Character": 0, + "ObjectPosition": 2 + } + }, "MarketplaceBulkPurchasePromptStatus": { "name": "MarketplaceBulkPurchasePromptStatus", "items": { @@ -71027,6 +78670,28 @@ "Y": 2 } }, + "SecurityCapability": { + "name": "SecurityCapability", + "items": { + "AccessOutsideWrite": 2, + "Animation": 15, + "AssetRequire": 3, + "Audio": 8, + "Avatar": 16, + "Basic": 7, + "CSG": 13, + "Chat": 14, + "CreateInstances": 6, + "DataStore": 9, + "LoadString": 4, + "Network": 10, + "Physics": 11, + "RunClientScript": 0, + "RunServerScript": 1, + "ScriptGlobals": 5, + "UI": 12 + } + }, "SelectionBehavior": { "name": "SelectionBehavior", "items": { @@ -71858,6 +79523,14 @@ "Completed": 1 } }, + "UIDragDetectorBoundingBehavior": { + "name": "UIDragDetectorBoundingBehavior", + "items": { + "Automatic": 0, + "EntireObject": 1, + "HitPoint": 2 + } + }, "UIDragDetectorDragRelativity": { "name": "UIDragDetectorDragRelativity", "items": { @@ -71986,6 +79659,21 @@ "Normal": 1 } }, + "VRControllerModelMode": { + "name": "VRControllerModelMode", + "items": { + "Disabled": 0, + "Transparent": 1 + } + }, + "VRLaserPointerMode": { + "name": "VRLaserPointerMode", + "items": { + "Disabled": 0, + "DualPointer": 2, + "Pointer": 1 + } + }, "VRSafetyBubbleMode": { "name": "VRSafetyBubbleMode", "items": { diff --git a/rbx_reflection_database/CHANGELOG.md b/rbx_reflection_database/CHANGELOG.md index 31f67c22d..42d6e34ea 100644 --- a/rbx_reflection_database/CHANGELOG.md +++ b/rbx_reflection_database/CHANGELOG.md @@ -1,6 +1,10 @@ # rbx\_reflection_database Changelog ## Unreleased Changes +* Update to Roblox version 638. +* `Instance.UniqueId`, `Instance.HistoryId`, and `LuaSourceContainer.ScriptGuid` are marked as `Serializes` again ([#437]) + +[#437]: https://github.com/rojo-rbx/rbx-dom/pull/437 # 0.2.11+roblox-634 (2024-07-23) * Updated to Roblox version 634 @@ -17,7 +21,7 @@ ## 0.2.7+roblox-588 * Updated to Roblox version 588. -* `Instance.UniqueId`, `Instance.HistoryId`, and `LuaSourceContainer` are now marked as `DoesNotSerialize` ([#327]) +* `Instance.UniqueId`, `Instance.HistoryId`, and `LuaSourceContainer.ScriptGuid` are now marked as `DoesNotSerialize` ([#327]) [#327]: https://github.com/rojo-rbx/rbx-dom/pull/327 diff --git a/rbx_reflection_database/database.msgpack b/rbx_reflection_database/database.msgpack index 6ff894b789d64a7aa7f7023f42b552b4daf7929e..ddfdbd46afdc73d072c9e894f9075a25a8646731 100644 GIT binary patch delta 82813 zcmd6Qc|cXw_Aqoebj!U7%N&H+i`IqOH+sX~w)fOK#z)!ffN5^#jfMSx%dybJH?R z1%}j2@nnF-l6h?Tnw@@|;!Sy0@q-EJbIMZ8rks3ZLi%fNPSt-PWHIU3=H@pX{YcG^ zmgkV?X~zprZj!*Y!jtW_5lU2>JH9~8r)$fUSLEJ98^RMO%(X}M&WP5)kwf(vzM8r} zVGrZJ5>#v0AO#r_ZBm0~&dYAW1B&-3t!!Kgl;8?H{~Y&%p?&COInKZ*9}q)%NTbmN z8Ljg9&gs}NwC@^+A)}!MxO74WQ9jJ&B6Ydo)TFiyzZRO64w#K!&cD>2|K#9Xs zzO`u+#n)p~bf#&F`9I2u*M_f!p2>&pNu;S}@d}oGk5yh3a*|kXYW^Z4o^T;h^=)ud zD^>}Al+Ut23A`a{H}%%O_PHnrQG3G|{V@CZt#}Ym@xjO>;sG-fNfT(WgF2Ug;ulBA zGVPTk{+j>U294|(808ag<6S!mS_=nDU$T;7Enl@(6$6LugyQ9ynOGd zyzb^si)fvXu1IzUK7@VB8wY((9q9RL7Res3sqOa49C6LR{Xpl1cJgpP`J!EHZ@gy^ z?IhHclhfI@+NbSXY9Dn-LuQWFuOqrjL0=kHs%hsq(f12B~(tSl^^aoi6UdB`S-bo4I(7M zN9z(X1RKnZhzZyr&PI$x22mc|_g(7zq}{3X>_1h;Hv_kP>K#z0MgtPf+_jVa$6#X< z6y=S6VMaxxE6f$q*gmB8MKn4y`VMG`&WtfJ5%+u(%V|Z;IW`tsY)8hfBo3~|D4$@s zp(zcuo^f*}4cSu7u+2lOh-)o}T=}&)ZSJuBEw?9U8`G@0`B?+awt!Q5$;}5avN`E>Pe!|6{LK%k{?zI?*7{L~DS2}$ z|1Pdm720m-a(#Gf;y~&8Ka{BX8$DzV;vU99a)c>gHS#s$eyizK{pQ-l4 zF~7@4jp{|oliHHetsPJ~Sju|YkeF{ZrfZ+p@8Ek!dTQQTzFPd4LTn8X@xaRtsu*rY8E&=s7N z&~|moVxX2}=vWt~`wjIRVQM@2?b0G;u$`0^E{ARTinO5nqh@06cnoWtj-Ao@=_X5@ zB`rTM*_c~kN;8(+@<`ix1wCT-0fxry&e=LFwg9onA=yEo9 zin|sKQ_I_}e7rs~Zrav$=+@2W>v|(&QSSS^narMdi||!j15$Uh)8^!~TvN7nP`)XB zPHD0=*JPfuPRepD8(_#Yj>$D-mx%wBKl4HvdVqaE>6hHO#Vv?dXJ5DcQ_|=u@3OTX zsrzh|cir|Rw#=6w+P<5^m2XHBZQgG8T3$C?Y^8X>N?+arDgt;AjF>^YYhCxeCgEw6 zU)!^g$hjI?;oemaEbsf8bX&4768i>;-QNWp#O3_~_K`lAIG8*xX8?m+v63pslyc`+ z+#UIUZlpil;KWr@(zW>qjdB3B?+#9K;JDl^yfp{Ij*Mh3+8<|35>&M1SmDNa)wO)y**@4+5ZdAMW^4*>ykNlA6Ado5<)pb5`bE21 z7f5;57o&;n;XU}Nm-f+@?@J!6ZC?$e*j7ftx7f~{cKq8n9jFJ}Re0%=r;Lu(T7Tyy zM>4JVch-9rwvJLB$cE8|%zW)ygCW|(m*cRxGxACcZN!y$WZ~AHxq=;LEC2e6I~Vo4 zZnxaDRo6u58L#q=KZX+-L68)JtJj)o@KdnJ@E-eVtyc7m(%h1nZ#7xW$!Ug6W6Aa; zV_x-x6$@BbcEPC)_!rX9S_iw*A1Xh5eFBlu!EX;xJ89dLhA`<7+N{wnAmI7c++FV; zq54QTfmP)%%YGS#&G8Gr^uq?>`zv~3mFd?F4mC@VHsrTHQpM5U>q*bSGFgJXF&PH4 z*_b)XkeU}`F;6y4$dZ)Nffv$w4T2)T|gOSoNlf8ezGxB6e-+%3^@%* zI7~Egt_}Zu9vp5&%C*oOUQ2$ptS`J_cw-Wx*wSwB{9qDebLLzi=1JZZTB)Rii|DS& zOfMZ~$;~oko(%#&7vj^y_Na^1I$17|Q}yalTu58C?DyMm|2}^6uidx2G(6`*TEmE9 zr8PY3LOdIXY~OLbf6ZTT$c2pSbhRosD5ZkoYBLeBJo#H^WDzd^?YCqHRy$b22-l|l zK1uf0Kk@tEP$|UL3n87lII5U5Kr#G_=zVMZN#Bi@Y8bx{$KE z;DWa+c>-B*V1q09+Cf>yh|^J8)JQkD?nat+lsjNACYq*$+j`OpIyNDa(GHl{guLxQ zaD=xBr&f@za&8$^G!dOAJDSSYqQECjNfI()_3rK@myo5ftql*TrSB>`fr90zx+PI4 zVr^DCPgvHB$c1$D3h|Ry`Cv zFXHJywQALcj9&0*b294wnS?N=1;MVx)wi}FvDoPd_`!!@n^n-ymtZ%>z#qOO^`1So z;5zP>DqEt`Q!_%7G~QhQ*^h{;+`dpQYD+Vi?oUjT7b<+}PsYm>H$vY4veuyru8OG3 zh&H6RCe4FnP}Lu4P4dx2?^+vz?IuG1wj>%^zv*+@k`u)J)^6gOnD4~o&bAPJWzGZM zY)@Lqcz);GlR_zx7}bFs6wYQ-n4L#E*Sfq!8|ijPNFYtxMG4`RxWvFSn9RAGSRd>T zChd{q6=3N^yujRvV2ABtV<++|wwz4uOe(N5vU;Bo(i9sAB!-e9*sO2bm4sk(WI$IE zflVxZRyT5n+FunmuWwzD#L0Am#^EGU&h6443@67O-Af`L-a)DYzAWBkg*nUVaH!}- zta4BxrZ*Xm%q!4(6YR(`H0nbFp9-Ap@Uy^_gV?TU*-fzFV^ zRI&=0Sh`0VNkvEG;dHVV84>7W6lbxskt|0Bq#rht9CV6xokC_KBLX|8pr3dBrzxa? zgQ__2G?5g^dj+PMNMA`~WTOckB_LCY=ZdKWyO9zirjkehmJ#PVO*T8H$4(<-(Sx;X z%w!_6OzVG|NhWsFq&_W&oJ7|Ez4FLzY-;^8kMzW*7PKuOdyx@=iv{SOq2B#rvIL!2 zM+=DsnOJ()86?9&G*P4(f}moQ(g)mT5@)GwP`{a^bKM3%GL;{(^QJ@)fNtrBCZu7`9byHK{Fps1=%2V62 zL>K0gZnEIC`J|5|4NuJ{OKuaexQkvKIJ$sH4t;_83&}C;b8vDYIsdo11b{3i56F!~ z+)w}ki$x+TcQF}^jn~1&WK}~^om2EC_k)5J#BNM$bp+B2o_&V+A!EC7|1$(Tm;eW!Cq>A3=zU)xy&cWb5(QfD_KReMbnU2AH<)e0 zL_abYiq{iE;Esg6Bx81_Da{}XI%6!^g(Y@RVEI2ul6L61KyAm%Es#k8T{e)8L38ci z;Wlpt-b0u_4By4OXho4tVDAQWeGm0Z@k2g`N(s5`eaVR%v@0W?62$;wz>p^lFOyCG z!E!;(f@u6 zzQG=|mF&ePmj3%Ta=^iSXn1EQ*(KK$t!)(ph~7Ef8YWtl=5^bDmHim{m0hGWwlku8 z?zSiyWGSTPrIX7NSoG%j^5&gu|)h_)4Mw2~lm(?*u8v zreMVhf<3(n5>BGmk?JKUNjGer0B@cmi?A7z{5IL-z?&9DI+7{gQ59sq+%;X9D7;ZY zx;q*lP&4KgiryoG<+7r0zDEkAsuTOZPo_G1)$YcC!|#)wQjm19WTh8@;&a0BI`{zz zltb6HYUMqj-eu9|vt#X2lZxViACs>E6Jb$xn)JRnKy-WSPv$JVCAP)kV|bKa(*`jJn_ zXouTcD#Ko`2|{bXyp#XjeqFOx`Q82Yr!5nB>wlpjSyWw$vZIN`6PC8|=SE zp2vnU?gxUsjRCg(fM2Ec{STx&Hmw4G#Bca8{`g-gBKYtp{P0Sv>-a|dwChAA_B)us z?z)Z>|8OqbY=y2(RTE2Ea?Nm_I5NJxu<_iydm3a zN*g$NvY6pg@|UlQ%M#3aR&Fq-86SsFtxBYpz0w^b3RGtZ>8jMzCLM0EBA&RyhE>c% zD@tk(1E)~$#yf8PK$tU_`g)Er6c{IqF)k%#HUC>b%wmRs7BtAg_81Yj>Mqq>Ryx#T z$-Wts5#x>7ilNS0*%3JyYEk^24eBJqLZjwI_9v!xDUZ3PARo`~*L{m&O^=#A5a8 zP3%(ChHNjEBnkPao)o*3R}bk$HR2=s>`SB5tfqqM9rAV|W%#x?9VQo1wyh7}DAtEd zj<~K|9}Zh1D0Zg`{1`#8H$Fg{zVs2tQrS`J4tXiwYR!h|;j+6$_0Eyhzp1l-trS4G zK65x7D>I5ue|H28m1Px8qLZ-0TGx`OhkiAQPG~HYQN|?Nv6g0m!;|R8u+u=@n{6E= zM%!nY(ncj`m~yRiHYAv>;XNQRm3Eht)LE&ti|5uvizPkUY|5&fPgngRP7squJHh!h z8mRsFyC-x@r;?lh^wsIK1GA3^{AW@|=L|Yda@#~H9Q~7yfR8fh15%SspsR^u*RjKL z6Z%orKQz%S1u7PC7f3hrz`u$>kX~%2QL+Qi^mi=utVHi$%`iz<_`h7L-(m8|d{`UB zI!NAYkYlC$WzB2bkYPO`pMJndC&?Uu>}z~!p|9EoZt7y-rY>{OR&JJE_KT|?Hj`dQ z_iKV@(*x*0zAmC|30VX#kI{aAm8e#>x%T%htEV4(jP{_wf@pKy_i?(2X#T;C>a8DU z$TF6!hb9lHJ@g;v(}xH|^<><(rVkb_q?e#LU3J#yJwbb769QgYM6v5y^xli`105*#94?)&q`#xf23?RWur#Axl=# z2k-f?g5g=}Ubl2X_Oldw69J?=N7vdrhR}F5UH_`nVii$lFTaxr0r=T^3~ccDh1B z{oLFcqF>rBJQ?Tawfyr|ko_`UE(ug8yXk1sNiMoNT7=Clxv(>t1;Fe*bOy4>f}2j8 zfvZk+Y(Ssrv^iYV@smXz_R`k&DHeEVsu(!mJ6M%n?*+4(FfTa1mp1iqw7(C|?WNr$ zh1X>tx>cx8-bX)FkYhW#eu%brT!s|{>-9{CNqz zyaAHG!?(b9en;J5$9J?H_MJBJGDR;vfAKQKp4zH6x{kYG-I|Pm^SJXkx ztla_vhkvIZNEV^IlwdYlO@>U^(TDo#`~RSqByx7U*Rfb~&v)P56oF(?hAt_GC_`66 zO&K~KdOBmJjx*pvFsL3IEqhh0uE!=zUKOl9d&PkqxREySM|~D~AC1Rx4H&uwv9|%6 zr#L7f5J^g@z0tM`91s;amnEqux=IcDzg$`9-%Hrp0v@-Ib##`BUu{UVi11a(251qY zCcv`8q%#a`%1S!#zBvUZCO^Nd#UYkO;dUd?wZe-Hd0Rhw#C+IE5w%~<#QMF>fu`q-0&+Gj^>Wia<#HrG{( z1%lxDdB&2;e;{C`NWy>R#fGEz7=-&U^g8w;A9e}Zvw&&7th-%$_?QDnL!^g?5&aK8 zc7WVdl6ZTY$de~e)ydMDL~%G22Qlp7$#5}<4Zx;w>oyE~oh%sIF!XZqt!>cxq5s~7 zeTIH?FLq?#IkX<+w~uwJQ;uyT2sR9}m~5)4@*ikY#+$?RP7J*S;#wz$-RG~L>dbz? zj(Wh65H`v2odVNCnM~%OV_P{!fxm4e;<->Z-GN}p6^q>!q_4WNiP+xm;cm=`t=rmk zXXtg@)4H>f*t81o!8&5Y_^1aPfz6NLFoqsJ%LrrH$ari#8^*A;i~dnK+scs=%P?0jQI4bE2wra6P-@U?yf2w#H`3-uY1Qct7_*~+}dVTlfU?{RGo&y zoD}xcZDecLXx2kkwsM{pRVn_#(%m8cW7v&`qyzY;viA0MS4B`^R=hXHj z*kXxDDHKg++pw7&GKINeYiWqeV2iO4Ihny8b}%`!avoRFG!`!_9R?HgfOYQN9loE& zQtDO*H+xX@)J$7s+rEobn4XeD^#06Z@sgpMI5XS(w_uI7Fv*@#SY=^{u-P{@o6SI% z!}oL8K4e5-X)Zg04P$s78-#7?x>*_aLQwrJE8El*n^<`Z*dz7@DmQ!kWc5PILg}-) zdLe#N=-NX3U{T}~!l7DxOBk^-St#1XQ)SF4NkyhCVv*=TE-Yf<*mBlvF~d$8!_38O zJTe~o$BWsI&9H$~JkNf1GzP(Dw6hH?NA^_Cd{GqaF5bWjYhuA>5n+3E(485cH+#z-YTa?co7S&(&6PiNLqHUiO%&%6&)i#{77nGi0nX-qg=}C54B8+$OB>T!iK+QG+?rxS6c6yu1ZWqpY z8$YeI=WT|*AdpnBq3Cw#u+wa;V>|S|jSGQ*cUeC6;e~fuH{|03lip)KF!4Rs{+jExuY z@er(che;nZMSt`nD?_hm>;DC70sX#UVdz2-`4t<6&7k&Qv)0h=Yt{uDP{r5i@goTQ z2ER%;>l-!}`|A0>Z&)xkKQg~XuffvYF0tO&H9z{`@7bq{{cLzmI4H31Csrmmt#aaZ zwoUS?Y5XsSzJBJ-f3bnc5}+^mnLXiPyGCWSHSt%r;QlWj_5#1(70lC4NueibDu(j%-8|d*eeeDf4n`xmryp}Uud8i&@N>5o+`zfY0AW|_CeU+m8 zMxd3uQX8mk43a?-Ah^_1R>}zml-5&*A~Q?>v7Qo-z205#>!y53o!x6YMwR2$v)vWx zQCWg^p0LwhNtPs_;-MU{*HHI+631uFluq`6yNye|6mlP{0usFb8&GyMS3buMDu^*0 zU7=q~1$~Ku)>5J9@y#9HN(;yWbwox9iH+%kZF`iTrEj_}#|_;olo)1}W&> z+au!@$2I3cU?ZK3qa@jlR@r_6%Mz5i_D)%4c)$iPSZd9c(}ocilUdt&pr!WC=|GrO z!5hmh8q_}>tV|&Gmefu768QST$)SoxR!#;dDzmX~nd6B{5;hFqVaid*4ya^iF?_fp z8|2Fwt_(re84x}K-)oyWLb>iBMrte6I6hKoEg@^NLq}bblvHd9$VtMtW!_3s?$ndp zNlrU#t=!lJ&-G(HBm+{PBrCfda;mZyc<6oPRAdUiFR(U6xrBUvbT&rmKz$-GT8oDg zxX@X3f%+4aQvVdQDJS2y1@UH`$7^o3VJ9_z;Pe3A7Ahtv`F~40JvUL2?c)AmqOyQF zd)Ng{Z4Du-(&QuDr_+=`S)=YJqe9UWi9b(OW-{lcc8Ep!1m9JS=&xpFmdsLi$hRma zY^`iHMh^f_rVHs6!f7>=W~>na4rWu5U7XeDovg3gLJk{X>#_2zHXK>p4_=q zN%PKX39d!TZfqfYy+}!QtbQa){_4g-FQ23IqybB}MrWm(#B{JldSw8Zh?{@qa5@l3zVgVM1s!~N@%TQqHSJ< z@LgvwR<_6?S?RWZ{G{@e?9hs1Rt{kp$bK>Dk0eCf5)o| z`gC&Tn1ViKee|)vVF}6|5WU-L3jT_tup8*{ZGG_#T&dG)6?tmwb)vvd3~OR4P$YC)aQfAQa!K%e~a|o zA7{x;GbU$P9*(h?^Q^fBli3<;v>HsAc_nxF9^{mhSp9NC{sg*ZTHwOby{A1c=pwqp zm7^C#J?P3iV@v2lSN^gCJjW_*;CVZZwID|Yxv)s8!5}~i% zc_1=EFwcXdS8%-R!FSllK}Fv4?wW?bZN`VoQBLpW$-SxXvQ5#M*%^jJOS>OvVgK19_-qEJ^<|kiSU;n%mm& zfZ9y_vJD?EwaYLOmLJFFpnj}9{|7pdXFBo|4rYGB%uYN-id#$0 z5zn^dW*Y8x2{~J04jOgl*z;gve`k*FGP-o($0IZCU>MGJ3%ST)H|+-(x61WAS1AcVI;m$#5m-uv&}(nq@TLOG0}cQ?Kd`FrVOH!x}Uk z&WmKxTQr<6YgLB=(cMSze>Nr&FviSl=g4gB4j$U!>t`WsB7alDx`DR`s3CCSNj^(2 zoy1!*$%`2(()ciB4@UP(=e-(|-VX2#(u>VBionu|+;VqF{+7*OlNoJptM=5E{o)Ge z@;G*?MW12ifg$ldR-CP{2pX2`U^Z5UczS7jW!_QTm?+{0er|O21sleF^d{ zpwE4TuXdE+u~q+!pT&2`m{OA537L%^;?N6cbANPGU{w(hYe>RwTM;kR)D>vt$9>?i zg*LgXv#bk+JO4UHd^ z(D_ZC=Gg0a;JK%H3wZWvjy^uHK?x6n`XwB_u4+^XN6$CzDB-8Dg$`x`k3d$jkhoH? zf9Ohd_Uk1pc`S4GtnF;U;rGc-Df?F!yKo;QlIq;H2N%Yz5s9KDwISLX?lp^7u#5$B zZMWE4U$U0R)O}d>_t)~Cj!IRlt6+?>x?#tQ{HP?BIqUgEWc3QC*K_RQFi^Y!UH;(g z26WA%w<+bXplgNCHlh%$ter?mQNoU{?LCAZ^Vq+6m50f2NYeP}e~d?vCQy8g zd%&_|JZ|ug0hWAoy2(6cfHA{RV6xsIq{ zxw8u0KIMBH^!v)giu#O?3#_9x)plv?t3KmrNZ``#(b?IVg~`@j%QT}zEldN5N)<on$lS2O)xzT_qe9g+7X&v7_0QG^aFg?q@|^0*$n_%%F7 z%e(%6v=~_5dX*1%G^*sDHetY$AGqY6FSz~#N1vsA@JC)|e}ZAwPkhP!GqUu~*LlB| z$d8fs~5E0Cs;bI2y)5Dsoq#iO*=-EQ;jSVBGh1v%j#+DZ9By1RsTdFm*s zgQQk`)nARqW{?t~qE|L|3sBJ)YrGqv8ts*u%@VtR1z9^=tDOj03Ks%Z-&$^6O=#)}pZS96#(ds!#S=5&f zP=AogW>n6tTNbPCMMe^i4pgyAETBQ0iaxh>Vw@U*eN8?ar(U>CX`)!>=F;lbJDUO! zvX}(Jgap+keB&sKC3BQ1drqlvGeyX8om5mABIDJT&^KOP>A)qc?hd(&w~)MaG80tv z+U+9=>buC2t~(D=1KDi|w_ups^8UF!aBP?wQFlVkc7<+|&!z3si;~nMvQtqEqf~Eu zS-sC=`}MUcYI_GXg-;$(mrKyo4;GA7Tgu6y{`^>Vy@RF*IqS|3${$ku%RvI?acT=_ zG)|p*`w=WMm)V>O5~%%gMk2^lIc`%IBUn6|k`VC7R(saEY;;4mx=nfxZM0GK);s2^ z0ZbC%%5s-2`Re~+Yfx)}8tA;tE?OxJ^gxMCG$2ZNykKY_dRY>$s}HM-u~B+-y836J zaBfSZvqb*LI%i{Cro~|G-tBn*A}6QXm_nDi>ZZylAxxT~Hj}g(;PPB`44j;yj*-J# z4}3&*R_yC9^!V9oH)$!d0o6|zsUDI=Q~H;4)KEtTyTJL-U0}Msz0_rRft2cN=BcMB zSpb;})WW7a#$*(Z$}r_cr^jTP(xw^HRsG8aY7!r_SHyFNnkF053ez%;i3YRSWt5w2 z718sjZu^~irO|0tQ-P6`*}ApUGK}d?rSYcpbfcM-C72DB-_ygFsI<|L1!XY?bDA;J zn9jDvS{^nF?x)9z25)0JeQB^Ib(qB(XUi+9>xWs)MyE|8Wn?txiH}w`jxuE#E%{cy zF~vO1EPj)~@|9{!y?CV>>^%FWm`qEaQREx*EasQa$jG;*i(jPM zZ$3)NP8W!=mxkwChfhv4W?6Cz`OYLuYNlm+qOJMdXtup9c`4bLE9R07%*wVFDmCz( zcEyOOj3L#MYq08XtXEfgbbd*Euqn+r)CTdXTfdmQKHfAXgT6S_@~~5BqA}f+pGEXZ z`_$F0nLFYQ*;Z59K!IqQbyQ)t@hQ6}kMA60$TDVU8VYR?O?f7ZS-JUW;Ph;Px_HDk ziu|CBl|=j}-Xh-DXOUe zQx2Y8aB8wEIxWqZmnX=bXG%9#riSUJs^pA#Ki4hMd3i=L11=}ulxt)gqVv;Dmind9 z1qQ1j*KLC+5iq6Idod{3dM)yHQJt(Zx+N76X%lCa!uJ*C)}GuTdV#Zlxayd zWajY~QWBhZCJVV0!fY|u6m4mhZ|!rF+)MlXzwi6^d3tyDK6_r%Z>_a`S?pi@eLWX_ zRh7@^jL&GF^Ht)GZ@xwEuW+75-q6!{T|KVaetk`1fb|@Ci;{e!33#I3NI9k}YJZYz z-KTD#1Px|Ge%|>ppj9?&`8DA~`7`b=dSY^So_QsaYwC zKF{O@n}S)Up61h)ALwt&fmXYymtN*`!1_tOt&F&>Zq0ll;~39@s8HsvH}&^`o1x58 zpY4BJpBEr^*)DK3{`!~t!<076$vV7YG{If3Z`48#i-Be9)RwSf5_Qv;G#;+=Ce!hl zbDDTUz7unY+NEl^zBbX{I=N|9r>XfZusq!#b<2CoW&Hl;1zP&)d@@DbbxMck9C!Vw z^Du@*akq;Ek0>{)M0B=JjEJMSm4KeV;_uX`1pMs~Jq~{#Mi0i`Z}s|ulEv8DQ{UKk zvOJnTsGkoUSx;)|8~ep#k6|%B@@DSzchgJz_rSk$2Oz`f;REaF-3LZuhth%GvP10P zE)G{Qc}P$E)zU-AD+4bx~vl>z|dWhXl0HZznFdPo(#pe9%~Qk`iOiHYbBAngm;aoidA%B{;iT z|1KpOEYTzo0{$ZI`a7xju(!Ohy0gaV0cj2OQ^NyvYgz~0H@O?cz96UdF6q6?hyIoB zp?A!%=;t!_7)zLq8@`=bS5MChmIJIUv$cwK-k#P~ua(orYR+lsa4pR?^D`aEa_s|9BnY*SjBeiX!^GgnI1rgJ^yKY(kDWt6@UJ&~>b=DVcki5}k zBc3u>-?ga=84SzM@d#_<%?WNEC4&;DXC%dEL`J8ZQp`maRcNq*b%C_+iA$qHLVR8wo|Wna2O+y1mUoUNvM>3(M#>T|#P10Jf}*Lvhq z0s+fCytdI-7M4r0r265nyEKZ-ubZsTcP*G44ntzgQ&Ch`tvTRP$83%RQqr^!ifo6S180&6e^^aLh8b%>ZA#{wICs) zS`E^Lz+@-#lbBJH44`)6z^2+{C=MLtLQdOu5A$77k#r6SfKpfD0rlKSrhOfyc!ViA zOD8`4K-3}84)a``$-LlxUD6vT)7=SbVbRTlxG5<1cyuwh9*H5aZ><^t9qW^DG9RYb zC!5%quo3CJ`Y3OUJWlGsnpUJ0ZXmEVp3R`6C%hFz%+NBJ^o4c7{I)F*Ip9(RX#I+HKOjxOY&LR`S51(^UBBS=1l1#8uRosdtQ&G`ZDhM|y z7)6qx{%A55HjgG7Y)o$xRk_CVG00|J#u8-0T&QW1)P{FWBm#@n3B+BbOdy94=SX|E z3J&g9T~?dPL|AMl$4J4;JP!R5kW*hzAam?24$+CEnZstsB_SV0MR6J@W3WBMv6c6~(LOij{_%sv%ET2pzUsHoHp72*D*$gMM zNIwyhP0mO=hvecrdnaYW{se6x+{z)DFl{;+h*LM5VMxi-8A!_~GbFKK=STFbNOegR({_1m;k|=2lGP16 z3Bok!x{EBpqW*3&06(7DO%mnD!ad|otmc& zEU{qq$Fn3684KR>Qu@Q7rb;uocAhxtgHr>b^##&O$vQUJ!Gc>;SJTWUaVzg~ZuZ*hn~e8R`A>D(MWd*GPUj6G-z33$K%2 zPdw z#9RFLXL5x==`RFv#Ey&y1nCH$|3Pwb)H_c|Csa*_MjP@cf}(!Ws1W-Ha|3vGMSULk z7cuF}-wlMgpQslOy!ebX$L6%Z$zH6@dQPG`=6(>Bnt;G4Vo;yRWJ}h>LFtxwb4CXG z2}8~4*-7!{qJQrIxt$mazi9A+;D0u?D$iZCmUc)Dyxc zD;YM`Gprkxs_VCI)WMp$z{qgw3I*Xb7MvpJO$R%2q6d9lde|rhqv3EAZI5Wm9hyYb z*|2pzafR#Abb`Zu)#**wI8+z(p(cmPj`hXc#MO&p@Kk=4Frg=@1P8SV44TiqBtobU zg9gzs?0s(#?TS~sXfVA+%gxqj!)SL2>tOnD8sV_siV^e~j`(RLeM=6ErRa0Q+Se%R zN(dcA+hTEg6pqLh38Sf@dpe9Y`0DytgM16eQB_*G{oC2EHlf}SN7HP4GQ&g<;=pAS z=qiQ>_n$<=1zL0;qPw`agS!cIj7UnP9pw4`PNIEk@oI`*7}R`IUIQF{lLjK$%A+`Nay|8e6YD8DT;jD26k&>VNJqlejkFz% zeaZsFj7{_!HFQZVe6WSaRoyc%D>E7O0^F&Egq*UKMv5=DQuMan;p$GBVYe~TVXG@# zchjn*(q#*>vkc^~WVIl95A`eeEq>oaYeDl8Iv6&WP;^U0$Guc1&IQ{e;xm)7G0tNc zU)-K2sQc&uLyC4_B&l48>K>p`c))iL&=4$oS?NsMTFTqKGc(h`KZu2hl7qB?EAf?c zh(A82X+-3oM$*8oPidT;*F@d3G`*&GP)S6*)OeQk={=Gy6XtEVMM<`d9t&@srM@*B z8svl?B|S{>Q!0m4eBBJ!zNXjb#+(27r6k&voE(vwlw$ah^NRbVW_D;-Wp8x4B{lP3 zdiP2*_{=x~j;^xY9-o|GApo>DPjPkG%w#?~dqobXZ?tlPW5glp8@qhx^j zU+*Rd*J-eGNK!(g<3c4B4fbiuJ2@<6>-6$k+pf_-w*x~HEm_GE&FLAH_X78)pj&eD z8V&F&9%f0;uvF}Kw^6e%eaoJBHD*9N+lnPtUEM?lOXtbuo{e(+g-GZSEGp7{sX;AVcR`==@oFj2uA))5eNND zkJ?e4*m9p z`xotos}Dzw8YosiqiredOJq&Nt><(xN+kwCVAFU~L(jbDs$Yz$f2f3wCi;U(&JYJ$ z3us5#J)@Io#?YqY;XdFDjiy+uu+J)B%kLWN3FE7>B)e#fP1V>G**&oa!ypfYI59T} zc4CcPBK~3IW|gsOOuYSw(_yII#$~^+5rv2@hPD6&@XBx1iXK^}v~;>M#Te zqO1;kCg<<#!K4dY=D{McDDY&X?3;jfUbyO)UM#_(&BcdpD)%w3`>+)@K`8^sLv$KtJ8o5%5{qTSX`~#;uy)NMYaM~v_No?~EsgfuybsVS}jNja}gmI`G{{*3@Q`!yqV{1sUMr&1lw4+>K^UB$!U= zgS4=Fa4Y&6H`lWtlji1XKZZ61(qkBEa`<%%a}&P(Su``)30q1BF^3owI1gdoP-_U2 zrtZ)X)}7?p4YlDY7Y;)dR4|NTybnT#|4WCm5$v`Dp%L5!!{t~ek>$+SSUeVCqma3C z#c!innIu`{SXQkTX)VT2VKeFBRMvxvgfte)%TfKgOtv1DXR$pnKATCbQEM7Q)CnI< zlN<<>bJ#E}>P{h(1=T0Sa1a@K+f?nILEiR zzXh4D$W|1V7}tlpx+)`+ZK4N1P7v^gk?xj6?Z^h{p#_&7Ywknt=KZ~AZuIQu3^N+ zgRJ)dq*~tLUC*8S4AvFm-CEpO2l)ILLk|~bzh~$g-{Z`PVjX7^I8At8eiOAmVBg5q z2YkeSveCjGXld{<+kl_CeZm5v>nF&gl^j8=u;M6p6A7o;EvZkop24Hq4wiD3HHWJg z)BsWp8>Ht~?;OjqQ@Nsb!DpyQD(8bE=b0JjnRS6l%+uf^lHLBX*XOLcL$&u8O#0Nn zf59Z=F8q?Ep~E=tD?@L+cZroK*!szJgR9eT7~JH4lNDm4^DQ@Pqs#j~gM*@RnbGi`^c8s%!!3XEj+b&f23vo#0ODUME@!hzi zle`lfb*%Sk$2(xRo9#F%D%jGVkHtNW?Z6+^ z#d2>9|HFp-!{G5iJ{6V@;`yTMU_Mvw*n22P3kjbL<*l(8I*d!-^YJjbx+osbJygRv z4ucwFczc*Mh9_c_lDms)WBK3G8=n}*_e&#^5zo`g@|5BPsO4` z4v(zsjvSSlWkQu`&q!CXnQ9~2hMv$+0!L=>^>(uQAH;~tWHjE<7711>f+`NJaHqK< zBPlIs@f_~!x?B1|megV9oXiU6Vkf!`=5$khW~EbESanZtoUdnAI-K;!;2Oro55wE@ z`8VavXF%7M3wapiFXYmYbzH<{ps92bkCF6PlE+`OYackem}g<@TT75Co0sqg_U*&! zrO4uyN=NKp#vc)k!$lPFZ(wZ!?{r?#t_FSbJ`m0RJk}TTI;wMxrm1lZ}Oc|Qy<^N2fQ?2=PleZ z7cyfj$6&)&B&vPBIok{=3M%FjkX$atJIRIo?YxCUpMo7ITa`mZ;ZEKOHK}N_m*26a zN^SWo*lFcEA^RZT1HBG$$B4%G!`vatFJ=n9SUxwvJQfT+!r#CINjoD?43?u@;+NoK zxJL(Jj(v}RSWeZqkMpq*@jl*D`1{CXwxC<`2Yjsz0mHx(Qm&!;NiO}9k56*M_Y1L^DyHE;6gM&rR7|I(Oqi+}6Ddj^D?P%7nH z)V;&06uN?MFoLxF8{{0cdfy@)bK%2pd93{MUtSlM{}=fHZ|XZUaBOb@vUYkrT6#yuOjFFbt27vYMR9&@vl zqBVaYX)#at1ohCsC&m_g&>A0l0sF{AikRN^Zy(#G>(xMj5)5-&KQ%a$WquMho_8qp=eoKdFqf{6wllg z1jdF@%Z7FC$}yWgTkN5Xz_WDqRC2Iz^HR|0NW+)?lHG?AZ)G8pS$=?0A7zX&SXk;Q zF)~+G-rpT^>nj%9ya5dqj8(7pQ)Iw(pPzEF+zgNar3;t>6vyn)fp^q z8|7^OdLs<-HmHsATeqYm(%7F?vQ@c4Xa`rVG{%&(c z5_4J$<(>m2I<``pQJ0SYpC~2*Hgwl&K~_6uyDcPZYOiD&$BKo74oWBSpAO0!jJOy= zx304iDxP#!0;ve^s!*vrHuq3wJI0VB;99gY2WIzD5}b0k4NWzr6&b%!FphfD+*c*- zZXZQzbiFU$9lAUH6p5v3#we~%_;dr2hrs6?V~L)<&=n#_DTlC6&@g1Fl+oDV_RL4d zT|-7Gb;Y(ZN;~Slv?L;BLXtT(a|pg>NuOYQX(e;|BVputr6U{~uZ$5L;uOTRMlQVq z3cJIn6O=w8G+tRoFah$>L?u{6wpKmMgV~)DlsyJZ0w&I)#j!-?F@dipD{;7^l~a_& z^327OWM#FXzb2HJnQhyg>2a`1l}c~C z07f~hQ5c+6ddVm+f}-wleG@+GIFO}GHG-8eE?e0vLZ&GtQY(bbRKn~m0Rv|#GS+;5 zmNML-)oYH@&|VdF<|>PADa(=2YQB;O*XARC+a;VWRIa+Bgx_4PG|=Dla|et5fJFKa3e}{GmvDsy|U$VNw67a?rN9S{MPHXwETWb8XwafO$bQ z5Z?V$iMQW{c=#8pnR0GZpDRhQ{3){V+s_pzdnZ`_LJC4rCv~3#UqT*H2a0Dz^`WlI z@cCd`qN%@SV)^qy1FRV@%RHcntF0lwlNzfJ3UGq{is~-%6!lw%;3m168d&+*X1Bin zQd@Dpy6Q>vs4MQm-$^x+sEcc=*Z-eb5k7KO=auVB!y9*ZQG;!IbGnQAsno^tae<5; z!ZJ5?EM_C>L#sOK8gZ|ViaGFH;p(AYl4X>ade-J{ctRH+RfhWlpmV5<=R=)(>R!BN zKVMaH#OGKb8x1p?Qjm>|0@=vVetF{c2C7W{ifaBUCJ}9N9qfmeteRoNS~@$6;1ub+JamL2Zo>9VK&LILLM!4pQq;*q_fPi#;LgK4!B$TiUCE@{ySY zJMNv-&PJp~^y;i)M#{EiXjg2_Z>QD+YgaWu{Ml6= zMAcEI4g9|cBqNmG4^{Zd3wx_kmFL0B00WU2cM zYIMw2QF_GfY}HTR?${i)eRa$bI|O#U7OED9osV3kuBEnYS=&4n<5=SBJhi19J7Ebv zw6!Jf9Mad2yi7d~1M<~mq=@Ho)r7^fg}jxj!z)Ym z-C-6}My3&^0IRN|HzZzLrQ)L$H$28GX-j_s&MAruObVqgwgl$vH<8Dd*g&Iv<_b60 zsly~3bQb3IYC|-6mFm_ElQyd-A?7VrdU4gZU{JhLJwl_ca%DKXRqj}1Zd2crTV1~0 z*iXA1YGVamntwR#KGN>^i-ZykqQKt0C=$7F=N454db>))7 z>U%EjUN!D=;xXbsLLEw_b?PbRA5~kHKkIn>9`XPJz~kyvhwc9UzFLf}Pd{+HN~m#C zb$H(kjZUek?Zk~!$W(}&+&)qPsy@J{RUZFQo8aj6|52sJZuYS%UGd`|tCJ0F7zWv& zs4^uR0G_9D{@U62+rDRTIG#hw9{%pU2MX&I&o$!78EMYTu8>xB(ps7>Lg zFVx|}{H2QizCqhae2Hj8NQ?`2CfoJG%ib_qLtcs!wff``pOLzqX;7YrkaZxX#-#kEX6Zayxf{2u>0(a z%?kyo`V!)ohz-fvEko11z|w9xjKD zpZKJku_Pm8NTzb^P>`QiiHDV_Gn*P$}NiPi!>zo0gU<`2}i zV*Ud)1sx^(UekV6Ln}9|!QEfg3C1BI?;$E{Tj=MTM`~Xf{8$b7-vqbBqd(PFm9NPw zp2Xr~`pv4x>gVcU$bPO4aNy2$FVvlA$C0bOiY(eP$x0%TXx+T=rg=SWH-&*eDhKn5HX^Kmd%ilU0UEH+$XKI z!A5vwR*+U7^!bRVeS)3S2rz|3XCt}v!$idIlT;Z zBeggqCM}*tYN1lctccQnb69F@FD(GhNjoXk7Z_@z#!YSNm`eGszk@Ded!6x1R@i3ArS1!%3q(PCu=^h`u?J3s@BxD zmM6qb)m9)6xQYtvPm>rfbh#^0!B%Sh7+x zD;)=jSVw(9tkOOMr}f%MAgi^JV)kmy2~{sjyr($$rq+fC{5FM%^&2$IkSsL>4W4Y& zj@!nFmiQv#Vz$x{k~eGhG48)X9N4UVhW|DOa<^*JMU8FR5Jeo?rI8vwukVbMnUiGm zM7Fo5Wm+n_FB79pNm!?F>!9XUo$MH%IwcjqD1sc)qMXFhlUi{dvFx(8!C4f2uXS`6 gP8d39C?5M)of(MFSgZPq2T@g9a anyhow::Result<()> { + pub fn apply_pre_default(&self, database: &mut ReflectionDatabase) -> anyhow::Result<()> { for (class_name, class_changes) in &self.change { let class = database .classes @@ -90,6 +91,66 @@ impl Patches { Ok(()) } + + pub fn apply_post_default(&self, database: &mut ReflectionDatabase) -> anyhow::Result<()> { + // A map of every class to all subclasses, by name. This uses `String` + // rather than some borrowed variant to get around borrowing `database` + // as both mutable and immutable + let mut subclass_map: HashMap> = + HashMap::with_capacity(database.classes.len()); + + for (class_name, class_descriptor) in &database.classes { + for superclass in database.superclasses(class_descriptor).unwrap() { + subclass_map + .entry(superclass.name.to_string()) + .or_default() + .push(class_name.to_string()); + } + } + + for (class_name, class_changes) in &self.change { + for (prop_name, prop_change) in class_changes { + let default_value = match &prop_change.default_value { + Some(value) => value, + None => continue, + }; + let prop_data = database + .classes + .get(class_name.as_str()) + // This is already validated pre-default application, so unwrap is fine + .unwrap() + .properties + .get(prop_name.as_str()); + if let Some(prop_data) = prop_data { + match (&prop_data.data_type, default_value.ty()) { + (DataType::Enum(_), VariantType::Enum) => {} + (DataType::Value(existing), new) if *existing == new => {} + (expected, actual) => bail!( + "Bad type given for {class_name}.{prop_name}'s DefaultValue patch.\n\ + Expected {expected:?}, got {actual:?}" + ), + } + } + let subclass_list = subclass_map.get(class_name).ok_or_else(|| { + anyhow!( + "Class {} modified in patch file does not exist in database", + class_name + ) + })?; + for descendant in subclass_list { + let class = database + .classes + .get_mut(descendant.as_str()) + .expect("class listed in subclass map should exist"); + class + .default_properties + .insert(prop_name.clone().into(), default_value.clone()); + } + } + } + + Ok(()) + } } #[derive(Deserialize)] @@ -106,6 +167,7 @@ struct PropertyChange { alias_for: Option, serialization: Option, scriptability: Option, + default_value: Option, } impl PropertyChange { diff --git a/rbx_xml/src/tests/snapshots/rbx_xml__tests__default-inserted-modulescript__decoded.snap b/rbx_xml/src/tests/snapshots/rbx_xml__tests__default-inserted-modulescript__decoded.snap index a0d385e78..6e54c1fd2 100644 --- a/rbx_xml/src/tests/snapshots/rbx_xml__tests__default-inserted-modulescript__decoded.snap +++ b/rbx_xml/src/tests/snapshots/rbx_xml__tests__default-inserted-modulescript__decoded.snap @@ -10,6 +10,8 @@ expression: "DomViewer::new().view_children(&decoded)" Attributes: {} LinkedSource: Content: "" + ScriptGuid: + String: "{27E39FEB-27B7-43EC-9398-04115CF856B2}" Source: String: "local module = {}\n\nreturn module\n" Tags: diff --git a/rbx_xml/src/tests/snapshots/rbx_xml__tests__default-inserted-modulescript__roundtrip.snap b/rbx_xml/src/tests/snapshots/rbx_xml__tests__default-inserted-modulescript__roundtrip.snap index 61b5ccfe3..b4ab7c5ca 100644 --- a/rbx_xml/src/tests/snapshots/rbx_xml__tests__default-inserted-modulescript__roundtrip.snap +++ b/rbx_xml/src/tests/snapshots/rbx_xml__tests__default-inserted-modulescript__roundtrip.snap @@ -10,6 +10,8 @@ expression: "DomViewer::new().view_children(&roundtrip)" Attributes: {} LinkedSource: Content: "" + ScriptGuid: + String: "{27E39FEB-27B7-43EC-9398-04115CF856B2}" Source: String: "local module = {}\n\nreturn module\n" Tags: From 7b3eaeb748a3ff243d68ec1250862f5095fd7d78 Mon Sep 17 00:00:00 2001 From: Micah Date: Mon, 19 Aug 2024 10:42:00 -0700 Subject: [PATCH 52/64] Implement descendant iterators for WeakDom (#431) --- rbx_dom_weak/CHANGELOG.md | 3 ++ rbx_dom_weak/src/dom.rs | 74 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) diff --git a/rbx_dom_weak/CHANGELOG.md b/rbx_dom_weak/CHANGELOG.md index 747646dd8..e2e7c5fdc 100644 --- a/rbx_dom_weak/CHANGELOG.md +++ b/rbx_dom_weak/CHANGELOG.md @@ -1,6 +1,9 @@ # rbx_dom_weak Changelog ## Unreleased Changes +* Added `WeakDom::descendants` and `WeakDom::descendants_of` to support iterating through the descendants of a DOM. ([#431]) + +[#431]: https://github.com/rojo-rbx/rbx-dom/pull/431 ## 2.8.0 (2024-07-23) * Added `InstanceBuilder::with_referent` that allows building instance with predefined `Ref` ([#400]) diff --git a/rbx_dom_weak/src/dom.rs b/rbx_dom_weak/src/dom.rs index a2b74f9de..e558790bc 100644 --- a/rbx_dom_weak/src/dom.rs +++ b/rbx_dom_weak/src/dom.rs @@ -75,6 +75,33 @@ impl WeakDom { } } + /// Returns an iterator that goes through every descendant Instance of the + /// root referent. + /// + /// The descendants are guaranteed to be top-down such that children come + /// after their parents. + #[inline] + pub fn descendants(&self) -> WeakDomDescendants { + self.descendants_of(self.root_ref) + } + + /// Returns an iterator that goes through the descendants of a particular + /// [`Ref`]. The passed `Ref` *must* be a part of this `WeakDom`. + /// + /// ## Panics + /// + /// Panics if `referent` is not a member of this DOM. + #[inline] + pub fn descendants_of(&self, referent: Ref) -> WeakDomDescendants { + if !self.instances.contains_key(&referent) { + panic!("the referent provided to `descendants_of` must be a part of the DOM") + } + WeakDomDescendants { + dom: self, + queue: [referent].into(), + } + } + /// Insert a new instance into the DOM with the given parent. The parent is allowed to /// be the none Ref. /// @@ -356,6 +383,29 @@ impl WeakDom { } } +/// A struct for iterating through the descendants of an Instance in a +/// [`WeakDom`]. +/// +/// See: [`WeakDom::descendants`] and [`WeakDom::descendants_of`]. +#[derive(Debug)] +pub struct WeakDomDescendants<'a> { + dom: &'a WeakDom, + queue: VecDeque, +} + +impl<'a> Iterator for WeakDomDescendants<'a> { + type Item = &'a Instance; + + fn next(&mut self) -> Option { + let instance = self + .queue + .pop_front() + .and_then(|r| self.dom.get_by_ref(r))?; + self.queue.extend(instance.children()); + Some(instance) + } +} + impl Default for WeakDom { fn default() -> WeakDom { WeakDom { @@ -737,4 +787,28 @@ mod test { panic!("UniqueId property must exist and contain a Variant::UniqueId") }; } + + #[test] + fn descendants() { + let mut dom = WeakDom::new(InstanceBuilder::new("ROOT")); + + let child_1 = dom.insert(dom.root_ref(), InstanceBuilder::new("Folder")); + let sibling_1 = dom.insert(child_1, InstanceBuilder::new("Folder")); + let child_2 = dom.insert(dom.root_ref(), InstanceBuilder::new("Folder")); + let sibling_2 = dom.insert(child_1, InstanceBuilder::new("Folder")); + + let mut descendants = dom.descendants(); + assert_eq!(descendants.next().unwrap().referent(), dom.root_ref()); + assert_eq!(descendants.next().unwrap().referent(), child_1); + assert_eq!(descendants.next().unwrap().referent(), child_2); + assert_eq!(descendants.next().unwrap().referent(), sibling_1); + assert_eq!(descendants.next().unwrap().referent(), sibling_2); + assert!(descendants.next().is_none()); + + let mut descendants_2 = dom.descendants_of(child_1); + assert_eq!(descendants_2.next().unwrap().referent(), child_1); + assert_eq!(descendants_2.next().unwrap().referent(), sibling_1); + assert_eq!(descendants_2.next().unwrap().referent(), sibling_2); + assert!(descendants_2.next().is_none()); + } } From 9fcfe7f6d9036cdf7181f6853148f38b8861f4b5 Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler Date: Thu, 22 Aug 2024 04:48:57 -0700 Subject: [PATCH 53/64] Implement Int32 attributes (#439) --- docs/attributes.md | 4 + rbx_binary/src/tests/models.rs | 1 + ...ighting-with-int32-attribute__decoded.snap | 70 +++++++ ...ighting-with-int32-attribute__encoded.snap | 168 +++++++++++++++++ ..._lighting-with-int32-attribute__input.snap | 172 ++++++++++++++++++ rbx_types/src/attributes/reader.rs | 4 + rbx_types/src/attributes/type_id.rs | 2 +- rbx_types/src/attributes/writer.rs | 5 + rbx_xml/src/tests/models.rs | 1 + ...ighting-with-int32-attribute__decoded.snap | 70 +++++++ ...hting-with-int32-attribute__roundtrip.snap | 70 +++++++ test-files | 2 +- 12 files changed, 567 insertions(+), 2 deletions(-) create mode 100644 rbx_binary/src/tests/snapshots/rbx_binary__tests__util__lighting-with-int32-attribute__decoded.snap create mode 100644 rbx_binary/src/tests/snapshots/rbx_binary__tests__util__lighting-with-int32-attribute__encoded.snap create mode 100644 rbx_binary/src/tests/snapshots/rbx_binary__tests__util__lighting-with-int32-attribute__input.snap create mode 100644 rbx_xml/src/tests/snapshots/rbx_xml__tests__lighting-with-int32-attribute__decoded.snap create mode 100644 rbx_xml/src/tests/snapshots/rbx_xml__tests__lighting-with-int32-attribute__roundtrip.snap diff --git a/docs/attributes.md b/docs/attributes.md index db618989c..4e5a6f347 100644 --- a/docs/attributes.md +++ b/docs/attributes.md @@ -70,6 +70,10 @@ The `Bool` type is stored as a single byte. If the byte is `0x00`, the bool is ` It is worth noting that Roblox Studio will interpret any non-zero value as `true`. +### Int32 +**Type ID `0x04`** +The `Int32` type is stored as a little-endian 32-bit integer. + ### Float32 **Type ID `0x05`** diff --git a/rbx_binary/src/tests/models.rs b/rbx_binary/src/tests/models.rs index 50381c7a7..5105d6bcb 100644 --- a/rbx_binary/src/tests/models.rs +++ b/rbx_binary/src/tests/models.rs @@ -65,4 +65,5 @@ binary_tests! { folder_with_cframe_attributes, folder_with_font_attribute, number_values_with_security_capabilities, + lighting_with_int32_attribute, } diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__lighting-with-int32-attribute__decoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__lighting-with-int32-attribute__decoded.snap new file mode 100644 index 000000000..e6d8b824a --- /dev/null +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__lighting-with-int32-attribute__decoded.snap @@ -0,0 +1,70 @@ +--- +source: rbx_binary/src/tests/util.rs +expression: decoded_viewed +--- +- referent: referent-0 + name: Lighting + class: Lighting + properties: + Ambient: + Color3: + - 0.27450982 + - 0.27450982 + - 0.27450982 + Attributes: + Attributes: + RBX_OriginalTechnologyOnFileLoad: + Int32: 3 + Brightness: + Float32: 3 + Capabilities: + SecurityCapabilities: 0 + ColorShift_Bottom: + Color3: + - 0 + - 0 + - 0 + ColorShift_Top: + Color3: + - 0 + - 0 + - 0 + DefinesCapabilities: + Bool: false + EnvironmentDiffuseScale: + Float32: 1 + EnvironmentSpecularScale: + Float32: 1 + ExposureCompensation: + Float32: 0 + FogColor: + Color3: + - 0.75294125 + - 0.75294125 + - 0.75294125 + FogEnd: + Float32: 100000 + FogStart: + Float32: 0 + GeographicLatitude: + Float32: 0 + GlobalShadows: + Bool: true + OutdoorAmbient: + Color3: + - 0.27450982 + - 0.27450982 + - 0.27450982 + Outlines: + Bool: false + ShadowSoftness: + Float32: 0.2 + SourceAssetId: + Int64: -1 + Tags: + Tags: [] + Technology: + Enum: 3 + TimeOfDay: + String: "14:30:00" + children: [] diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__lighting-with-int32-attribute__encoded.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__lighting-with-int32-attribute__encoded.snap new file mode 100644 index 000000000..0baa2f63a --- /dev/null +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__lighting-with-int32-attribute__encoded.snap @@ -0,0 +1,168 @@ +--- +source: rbx_binary/src/tests/util.rs +expression: text_roundtrip +--- +num_types: 1 +num_instances: 1 +chunks: + - Inst: + type_id: 0 + type_name: Lighting + object_format: 1 + referents: + - 0 + remaining: "01" + - Prop: + type_id: 0 + prop_name: Ambient + prop_type: Color3 + values: + - - 0.27450982 + - 0.27450982 + - 0.27450982 + - Prop: + type_id: 0 + prop_name: AttributesSerialize + prop_type: String + values: + - "\u0001\u0000\u0000\u0000 \u0000\u0000\u0000RBX_OriginalTechnologyOnFileLoad\u0004\u0003\u0000\u0000\u0000" + - Prop: + type_id: 0 + prop_name: Brightness + prop_type: Float32 + values: + - 3 + - Prop: + type_id: 0 + prop_name: Capabilities + prop_type: SecurityCapabilities + values: + - 0 + - Prop: + type_id: 0 + prop_name: ColorShift_Bottom + prop_type: Color3 + values: + - - 0 + - 0 + - 0 + - Prop: + type_id: 0 + prop_name: ColorShift_Top + prop_type: Color3 + values: + - - 0 + - 0 + - 0 + - Prop: + type_id: 0 + prop_name: DefinesCapabilities + prop_type: Bool + values: + - false + - Prop: + type_id: 0 + prop_name: EnvironmentDiffuseScale + prop_type: Float32 + values: + - 1 + - Prop: + type_id: 0 + prop_name: EnvironmentSpecularScale + prop_type: Float32 + values: + - 1 + - Prop: + type_id: 0 + prop_name: ExposureCompensation + prop_type: Float32 + values: + - 0 + - Prop: + type_id: 0 + prop_name: FogColor + prop_type: Color3 + values: + - - 0.75294125 + - 0.75294125 + - 0.75294125 + - Prop: + type_id: 0 + prop_name: FogEnd + prop_type: Float32 + values: + - 100000 + - Prop: + type_id: 0 + prop_name: FogStart + prop_type: Float32 + values: + - 0 + - Prop: + type_id: 0 + prop_name: GeographicLatitude + prop_type: Float32 + values: + - 0 + - Prop: + type_id: 0 + prop_name: GlobalShadows + prop_type: Bool + values: + - true + - Prop: + type_id: 0 + prop_name: Name + prop_type: String + values: + - Lighting + - Prop: + type_id: 0 + prop_name: OutdoorAmbient + prop_type: Color3 + values: + - - 0.27450982 + - 0.27450982 + - 0.27450982 + - Prop: + type_id: 0 + prop_name: Outlines + prop_type: Bool + values: + - false + - Prop: + type_id: 0 + prop_name: ShadowSoftness + prop_type: Float32 + values: + - 0.2 + - Prop: + type_id: 0 + prop_name: SourceAssetId + prop_type: Int64 + values: + - -1 + - Prop: + type_id: 0 + prop_name: Tags + prop_type: String + values: + - "" + - Prop: + type_id: 0 + prop_name: Technology + prop_type: Enum + values: + - 3 + - Prop: + type_id: 0 + prop_name: TimeOfDay + prop_type: String + values: + - "14:30:00" + - Prnt: + version: 0 + links: + - - 0 + - -1 + - End diff --git a/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__lighting-with-int32-attribute__input.snap b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__lighting-with-int32-attribute__input.snap new file mode 100644 index 000000000..4a50287d2 --- /dev/null +++ b/rbx_binary/src/tests/snapshots/rbx_binary__tests__util__lighting-with-int32-attribute__input.snap @@ -0,0 +1,172 @@ +--- +source: rbx_binary/src/tests/util.rs +expression: text_decoded +--- +num_types: 1 +num_instances: 1 +chunks: + - Meta: + entries: + - - ExplicitAutoJoints + - "true" + - Inst: + type_id: 0 + type_name: Lighting + object_format: 1 + referents: + - 0 + remaining: "00" + - Prop: + type_id: 0 + prop_name: Ambient + prop_type: Color3 + values: + - - 0.27450982 + - 0.27450982 + - 0.27450982 + - Prop: + type_id: 0 + prop_name: AttributesSerialize + prop_type: String + values: + - "\u0001\u0000\u0000\u0000 \u0000\u0000\u0000RBX_OriginalTechnologyOnFileLoad\u0004\u0003\u0000\u0000\u0000" + - Prop: + type_id: 0 + prop_name: Brightness + prop_type: Float32 + values: + - 3 + - Prop: + type_id: 0 + prop_name: Capabilities + prop_type: SecurityCapabilities + values: + - 0 + - Prop: + type_id: 0 + prop_name: ColorShift_Bottom + prop_type: Color3 + values: + - - 0 + - 0 + - 0 + - Prop: + type_id: 0 + prop_name: ColorShift_Top + prop_type: Color3 + values: + - - 0 + - 0 + - 0 + - Prop: + type_id: 0 + prop_name: DefinesCapabilities + prop_type: Bool + values: + - false + - Prop: + type_id: 0 + prop_name: EnvironmentDiffuseScale + prop_type: Float32 + values: + - 1 + - Prop: + type_id: 0 + prop_name: EnvironmentSpecularScale + prop_type: Float32 + values: + - 1 + - Prop: + type_id: 0 + prop_name: ExposureCompensation + prop_type: Float32 + values: + - 0 + - Prop: + type_id: 0 + prop_name: FogColor + prop_type: Color3 + values: + - - 0.75294125 + - 0.75294125 + - 0.75294125 + - Prop: + type_id: 0 + prop_name: FogEnd + prop_type: Float32 + values: + - 100000 + - Prop: + type_id: 0 + prop_name: FogStart + prop_type: Float32 + values: + - 0 + - Prop: + type_id: 0 + prop_name: GeographicLatitude + prop_type: Float32 + values: + - 0 + - Prop: + type_id: 0 + prop_name: GlobalShadows + prop_type: Bool + values: + - true + - Prop: + type_id: 0 + prop_name: Name + prop_type: String + values: + - Lighting + - Prop: + type_id: 0 + prop_name: OutdoorAmbient + prop_type: Color3 + values: + - - 0.27450982 + - 0.27450982 + - 0.27450982 + - Prop: + type_id: 0 + prop_name: Outlines + prop_type: Bool + values: + - false + - Prop: + type_id: 0 + prop_name: ShadowSoftness + prop_type: Float32 + values: + - 0.2 + - Prop: + type_id: 0 + prop_name: SourceAssetId + prop_type: Int64 + values: + - -1 + - Prop: + type_id: 0 + prop_name: Tags + prop_type: String + values: + - "" + - Prop: + type_id: 0 + prop_name: Technology + prop_type: Enum + values: + - 3 + - Prop: + type_id: 0 + prop_name: TimeOfDay + prop_type: String + values: + - "14:30:00" + - Prnt: + version: 0 + links: + - - 0 + - -1 + - End diff --git a/rbx_types/src/attributes/reader.rs b/rbx_types/src/attributes/reader.rs index e14ca4b2c..74c17ad50 100644 --- a/rbx_types/src/attributes/reader.rs +++ b/rbx_types/src/attributes/reader.rs @@ -71,6 +71,10 @@ pub(crate) fn read_attributes( ColorSequence { keypoints }.into() } + VariantType::Int32 => read_i32(&mut value) + .map_err(|_| AttributeError::ReadType("int32"))? + .into(), + VariantType::Float32 => read_f32(&mut value) .map_err(|_| AttributeError::ReadType("float32"))? .into(), diff --git a/rbx_types/src/attributes/type_id.rs b/rbx_types/src/attributes/type_id.rs index 4350af7a9..2af23ec7b 100644 --- a/rbx_types/src/attributes/type_id.rs +++ b/rbx_types/src/attributes/type_id.rs @@ -24,7 +24,7 @@ type_ids! { // ??? => 0x01, BinaryString => 0x02, Bool => 0x03, - // ??? => 0x04, + Int32 => 0x04, Float32 => 0x05, Float64 => 0x06, // ??? => 0x07, diff --git a/rbx_types/src/attributes/writer.rs b/rbx_types/src/attributes/writer.rs index fcbadb80a..bd32da72f 100644 --- a/rbx_types/src/attributes/writer.rs +++ b/rbx_types/src/attributes/writer.rs @@ -42,6 +42,7 @@ pub(crate) fn write_attributes( write_color3(&mut writer, keypoint.color)?; } } + Variant::Int32(int) => write_i32(&mut writer, *int)?, Variant::Float32(float) => write_f32(&mut writer, *float)?, Variant::Float64(float) => write_f64(&mut writer, *float)?, Variant::NumberRange(range) => { @@ -106,6 +107,10 @@ pub(crate) fn write_attributes( Ok(()) } +fn write_i32(mut writer: W, n: i32) -> io::Result<()> { + writer.write_all(&n.to_le_bytes()[..]) +} + fn write_f32(mut writer: W, n: f32) -> io::Result<()> { writer.write_all(&n.to_le_bytes()[..]) } diff --git a/rbx_xml/src/tests/models.rs b/rbx_xml/src/tests/models.rs index be085827f..eaffd828a 100644 --- a/rbx_xml/src/tests/models.rs +++ b/rbx_xml/src/tests/models.rs @@ -66,4 +66,5 @@ model_tests! { folder_with_cframe_attributes, folder_with_font_attribute, number_values_with_security_capabilities, + lighting_with_int32_attribute, } diff --git a/rbx_xml/src/tests/snapshots/rbx_xml__tests__lighting-with-int32-attribute__decoded.snap b/rbx_xml/src/tests/snapshots/rbx_xml__tests__lighting-with-int32-attribute__decoded.snap new file mode 100644 index 000000000..bf7eda439 --- /dev/null +++ b/rbx_xml/src/tests/snapshots/rbx_xml__tests__lighting-with-int32-attribute__decoded.snap @@ -0,0 +1,70 @@ +--- +source: rbx_xml/src/tests/mod.rs +expression: "DomViewer::new().view_children(&decoded)" +--- +- referent: referent-0 + name: Lighting + class: Lighting + properties: + Ambient: + Color3: + - 0.27450982 + - 0.27450982 + - 0.27450982 + Attributes: + Attributes: + RBX_OriginalTechnologyOnFileLoad: + Int32: 3 + Brightness: + Float32: 3 + Capabilities: + SecurityCapabilities: 0 + ColorShift_Bottom: + Color3: + - 0 + - 0 + - 0 + ColorShift_Top: + Color3: + - 0 + - 0 + - 0 + DefinesCapabilities: + Bool: false + EnvironmentDiffuseScale: + Float32: 1 + EnvironmentSpecularScale: + Float32: 1 + ExposureCompensation: + Float32: 0 + FogColor: + Color3: + - 0.75294125 + - 0.75294125 + - 0.75294125 + FogEnd: + Float32: 100000 + FogStart: + Float32: 0 + GeographicLatitude: + Float32: 0 + GlobalShadows: + Bool: true + OutdoorAmbient: + Color3: + - 0.27450982 + - 0.27450982 + - 0.27450982 + Outlines: + Bool: false + ShadowSoftness: + Float32: 0.2 + SourceAssetId: + Int64: -1 + Tags: + Tags: [] + Technology: + Enum: 3 + TimeOfDay: + String: "14:30:00" + children: [] diff --git a/rbx_xml/src/tests/snapshots/rbx_xml__tests__lighting-with-int32-attribute__roundtrip.snap b/rbx_xml/src/tests/snapshots/rbx_xml__tests__lighting-with-int32-attribute__roundtrip.snap new file mode 100644 index 000000000..2fb8924f9 --- /dev/null +++ b/rbx_xml/src/tests/snapshots/rbx_xml__tests__lighting-with-int32-attribute__roundtrip.snap @@ -0,0 +1,70 @@ +--- +source: rbx_xml/src/tests/mod.rs +expression: "DomViewer::new().view_children(&roundtrip)" +--- +- referent: referent-0 + name: Lighting + class: Lighting + properties: + Ambient: + Color3: + - 0.27450982 + - 0.27450982 + - 0.27450982 + Attributes: + Attributes: + RBX_OriginalTechnologyOnFileLoad: + Int32: 3 + Brightness: + Float32: 3 + Capabilities: + SecurityCapabilities: 0 + ColorShift_Bottom: + Color3: + - 0 + - 0 + - 0 + ColorShift_Top: + Color3: + - 0 + - 0 + - 0 + DefinesCapabilities: + Bool: false + EnvironmentDiffuseScale: + Float32: 1 + EnvironmentSpecularScale: + Float32: 1 + ExposureCompensation: + Float32: 0 + FogColor: + Color3: + - 0.75294125 + - 0.75294125 + - 0.75294125 + FogEnd: + Float32: 100000 + FogStart: + Float32: 0 + GeographicLatitude: + Float32: 0 + GlobalShadows: + Bool: true + OutdoorAmbient: + Color3: + - 0.27450982 + - 0.27450982 + - 0.27450982 + Outlines: + Bool: false + ShadowSoftness: + Float32: 0.2 + SourceAssetId: + Int64: -1 + Tags: + Tags: [] + Technology: + Enum: 3 + TimeOfDay: + String: "14:30:00" + children: [] diff --git a/test-files b/test-files index 9f1573df5..d73518185 160000 --- a/test-files +++ b/test-files @@ -1 +1 @@ -Subproject commit 9f1573df5b54cf812a3ec1b6ebb50b6d72e4b462 +Subproject commit d735181859222c02192eb13535057c29368a097d From ff8c90da955d0fbac3c24090785fd0a88fb6d807 Mon Sep 17 00:00:00 2001 From: Micah Date: Thu, 22 Aug 2024 08:16:49 -0700 Subject: [PATCH 54/64] Add `len` and `is_empty` to Tags (#438) --- rbx_types/CHANGELOG.md | 3 +++ rbx_types/src/tags.rs | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/rbx_types/CHANGELOG.md b/rbx_types/CHANGELOG.md index cb2a72953..cecf6f1d1 100644 --- a/rbx_types/CHANGELOG.md +++ b/rbx_types/CHANGELOG.md @@ -1,6 +1,9 @@ # rbx_types Changelog ## Unreleased Changes +* Add `len` and `is_empty` to `Tags` ([#438]) + +[#438]: https://github.com/rojo-rbx/rbx-dom/pull/438 ## 1.9.0 (2024-07-23) * Implement `IntoIterator` for `&Attributes`. ([#386]) diff --git a/rbx_types/src/tags.rs b/rbx_types/src/tags.rs index ab64ead3d..d3e49a93b 100644 --- a/rbx_types/src/tags.rs +++ b/rbx_types/src/tags.rs @@ -50,6 +50,16 @@ impl Tags { pub fn encode(&self) -> Vec { self.members.join("\0").into_bytes() } + + /// Returns the number of strings stored within this `Tags`. + pub fn len(&self) -> usize { + self.members.len() + } + + /// Returns `true` if this `Tags` contains no strings. + pub fn is_empty(&self) -> bool { + self.members.is_empty() + } } impl From> for Tags { From 0ca78c5c4123aacc00113ae11fa4ca2acbc8cd78 Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler Date: Thu, 22 Aug 2024 08:40:50 -0700 Subject: [PATCH 55/64] Validate attribute removals, handle reserved failures separately from invalid ones (#440) --- rbx_dom_lua/src/customProperties.lua | 54 +++++++++++++++++++--------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/rbx_dom_lua/src/customProperties.lua b/rbx_dom_lua/src/customProperties.lua index 8653b1f8d..46aa0ce9d 100644 --- a/rbx_dom_lua/src/customProperties.lua +++ b/rbx_dom_lua/src/customProperties.lua @@ -26,6 +26,21 @@ local TERRAIN_MATERIAL_COLORS = { Enum.Material.Pavement, } +local function isAttributeNameValid(attributeName) + -- For SetAttribute to succeed, the attribute name must be less than or + -- equal to 100 characters... + return #attributeName <= 100 + -- ...and must only contain alphanumeric characters, periods, hyphens, + -- underscores, or forward slashes. + and attributeName:match("[^%w%.%-_/]") == nil +end + +local function isAttributeNameReserved(attributeName) + -- For SetAttribute to succeed, attribute names must not use the RBX + -- prefix, which is reserved by Roblox. + return attributeName:sub(1, 3) ~= "RBX" +end + -- Defines how to read and write properties that aren't directly scriptable. -- -- The reflection database refers to these as having scriptability = "Custom" @@ -40,26 +55,33 @@ return { local didAllWritesSucceed = true for attributeName, attributeValue in pairs(value) do - local isNameValid = - -- For our SetAttribute to succeed, the attribute name must be - -- less than or equal to 100 characters... - #attributeName <= 100 - -- ...must only contain alphanumeric characters, periods, hyphens, - -- underscores, or forward slashes... - and attributeName:match("[^%w%.%-_/]") == nil - -- ... and must not use the RBX prefix, which is reserved by Roblox. - and attributeName:sub(1, 3) ~= "RBX" - - if isNameValid then - instance:SetAttribute(attributeName, attributeValue) - else + if isAttributeNameReserved(attributeName) then + -- If the attribute name is reserved, then we don't + -- really care about reporting any failures about + -- it. + continue + end + + if not isAttributeNameValid(attributeName) then didAllWritesSucceed = false + continue end + + instance:SetAttribute(attributeName, attributeValue) end - for key in pairs(existing) do - if value[key] == nil then - instance:SetAttribute(key, nil) + for existingAttributeName in pairs(existing) do + if isAttributeNameReserved(existingAttributeName) then + continue + end + + if not isAttributeNameValid(existingAttributeName) then + didAllWritesSucceed = false + continue + end + + if value[existingAttributeName] == nil then + instance:SetAttribute(existingAttributeName, nil) end end From 3cb261e292db778a0c3ee8c514a775d6cac9cd2e Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler Date: Thu, 22 Aug 2024 08:45:43 -0700 Subject: [PATCH 56/64] Use correct comparison for isAttributeNameReserved (#441) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In #440 I copy pasted some code and forgot to change the comparison operator! 🫠 --- rbx_dom_lua/src/customProperties.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rbx_dom_lua/src/customProperties.lua b/rbx_dom_lua/src/customProperties.lua index 46aa0ce9d..d8c12d5a1 100644 --- a/rbx_dom_lua/src/customProperties.lua +++ b/rbx_dom_lua/src/customProperties.lua @@ -38,7 +38,7 @@ end local function isAttributeNameReserved(attributeName) -- For SetAttribute to succeed, attribute names must not use the RBX -- prefix, which is reserved by Roblox. - return attributeName:sub(1, 3) ~= "RBX" + return attributeName:sub(1, 3) == "RBX" end -- Defines how to read and write properties that aren't directly scriptable. From 827b2b303504a1bbec9f8d7a9068b89aea077741 Mon Sep 17 00:00:00 2001 From: Micah Date: Thu, 22 Aug 2024 09:00:47 -0700 Subject: [PATCH 57/64] Release rbx_types v1.10.0 --- rbx_types/CHANGELOG.md | 4 ++++ rbx_types/Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/rbx_types/CHANGELOG.md b/rbx_types/CHANGELOG.md index cecf6f1d1..c4c4ae351 100644 --- a/rbx_types/CHANGELOG.md +++ b/rbx_types/CHANGELOG.md @@ -1,9 +1,13 @@ # rbx_types Changelog ## Unreleased Changes + +# 1.10.0 (2024-08-22) +* Add support for `Int32` values within `Attributes` ([#439]) * Add `len` and `is_empty` to `Tags` ([#438]) [#438]: https://github.com/rojo-rbx/rbx-dom/pull/438 +[#439]: https://github.com/rojo-rbx/rbx-dom/pull/439 ## 1.9.0 (2024-07-23) * Implement `IntoIterator` for `&Attributes`. ([#386]) diff --git a/rbx_types/Cargo.toml b/rbx_types/Cargo.toml index 7e3140b48..26fe20a29 100644 --- a/rbx_types/Cargo.toml +++ b/rbx_types/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_types" description = "Types used to represent Roblox values" -version = "1.9.0" +version = "1.10.0" authors = ["Lucien Greathouse "] edition = "2018" license = "MIT" From 2493cbe2206515d6ad8609f88950fd116adf8565 Mon Sep 17 00:00:00 2001 From: Micah Date: Thu, 22 Aug 2024 09:01:39 -0700 Subject: [PATCH 58/64] Release rbx_dom_weak v2.9.0 --- rbx_dom_weak/CHANGELOG.md | 2 ++ rbx_dom_weak/Cargo.toml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/rbx_dom_weak/CHANGELOG.md b/rbx_dom_weak/CHANGELOG.md index e2e7c5fdc..40054189f 100644 --- a/rbx_dom_weak/CHANGELOG.md +++ b/rbx_dom_weak/CHANGELOG.md @@ -1,6 +1,8 @@ # rbx_dom_weak Changelog ## Unreleased Changes + +## 2.9.0 (2024-08-22) * Added `WeakDom::descendants` and `WeakDom::descendants_of` to support iterating through the descendants of a DOM. ([#431]) [#431]: https://github.com/rojo-rbx/rbx-dom/pull/431 diff --git a/rbx_dom_weak/Cargo.toml b/rbx_dom_weak/Cargo.toml index 3a2c343fe..e59388ed6 100644 --- a/rbx_dom_weak/Cargo.toml +++ b/rbx_dom_weak/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_dom_weak" description = "Weakly-typed Roblox DOM implementation for Rust" -version = "2.8.0" +version = "2.9.0" license = "MIT" documentation = "https://docs.rs/rbx_dom_weak" homepage = "https://github.com/rojo-rbx/rbx-dom" @@ -11,7 +11,7 @@ authors = ["Lucien Greathouse "] edition = "2018" [dependencies] -rbx_types = { version = "1.9.0", path = "../rbx_types", features = ["serde"] } +rbx_types = { version = "1.10.0", path = "../rbx_types", features = ["serde"] } serde = "1.0.137" From a807a766c84fea088ac6652f52f92bba268f074e Mon Sep 17 00:00:00 2001 From: Micah Date: Thu, 22 Aug 2024 09:02:58 -0700 Subject: [PATCH 59/64] Release rbx_reflection v4.7.0 --- rbx_reflection/CHANGELOG.md | 4 ++++ rbx_reflection/Cargo.toml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/rbx_reflection/CHANGELOG.md b/rbx_reflection/CHANGELOG.md index dcf6d3578..bf32ac241 100644 --- a/rbx_reflection/CHANGELOG.md +++ b/rbx_reflection/CHANGELOG.md @@ -2,7 +2,11 @@ ## Unreleased Changes +## 4.7.0 (2024-08-22) +* Update to rbx_types 1.10 + ## 4.6.0 (2024-07-23) +* Update to rbx_types 1.9 * Add `superclasses` method to `ReflectionDatabase` to get a set of superclasses for a given class. ([#402]) * Added method `ReflectionDatabase::find_default_property`, which finds the default value of a property given its name and a class that inherits it. ([#420]) diff --git a/rbx_reflection/Cargo.toml b/rbx_reflection/Cargo.toml index a0cce8204..2770848bc 100644 --- a/rbx_reflection/Cargo.toml +++ b/rbx_reflection/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_reflection" description = "Roblox reflection database and ambiguous type resolution" -version = "4.6.0" +version = "4.7.0" license = "MIT" documentation = "https://docs.rs/rbx_reflection" homepage = "https://github.com/rojo-rbx/rbx-dom" @@ -11,7 +11,7 @@ authors = ["Lucien Greathouse "] edition = "2018" [dependencies] -rbx_types = { version = "1.9.0", path = "../rbx_types", features = ["serde"] } +rbx_types = { version = "1.10.0", path = "../rbx_types", features = ["serde"] } serde = { version = "1.0.137", features = ["derive"] } thiserror = "1.0.31" From c0b574736a3ebf29065be152425f3288b394d932 Mon Sep 17 00:00:00 2001 From: Micah Date: Thu, 22 Aug 2024 09:03:47 -0700 Subject: [PATCH 60/64] Release rbx_reflection_database v0.2.12+roblox-638 --- rbx_reflection_database/CHANGELOG.md | 2 ++ rbx_reflection_database/Cargo.toml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/rbx_reflection_database/CHANGELOG.md b/rbx_reflection_database/CHANGELOG.md index 42d6e34ea..ec0bae4e2 100644 --- a/rbx_reflection_database/CHANGELOG.md +++ b/rbx_reflection_database/CHANGELOG.md @@ -1,6 +1,8 @@ # rbx\_reflection_database Changelog ## Unreleased Changes + +## 0.2.12+roblox-638 (2024-08-22) * Update to Roblox version 638. * `Instance.UniqueId`, `Instance.HistoryId`, and `LuaSourceContainer.ScriptGuid` are marked as `Serializes` again ([#437]) diff --git a/rbx_reflection_database/Cargo.toml b/rbx_reflection_database/Cargo.toml index 14d59e0c5..6902ae8d7 100644 --- a/rbx_reflection_database/Cargo.toml +++ b/rbx_reflection_database/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_reflection_database" description = "Bundled reflection database for Roblox projects" -version = "0.2.11+roblox-634" +version = "0.2.12+roblox-638" license = "MIT" documentation = "https://docs.rs/rbx_reflection_database" homepage = "https://github.com/rojo-rbx/rbx-dom" @@ -13,7 +13,7 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -rbx_reflection = { version = "4.6.0", path = "../rbx_reflection" } +rbx_reflection = { version = "4.7.0", path = "../rbx_reflection" } lazy_static = "1.4.0" serde = "1.0.137" From 6d1d22ddba1196f5d545c808417684f726ff19dd Mon Sep 17 00:00:00 2001 From: Micah Date: Thu, 22 Aug 2024 09:05:15 -0700 Subject: [PATCH 61/64] Release rbx_binary v0.7.7 --- rbx_binary/CHANGELOG.md | 3 +++ rbx_binary/Cargo.toml | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/rbx_binary/CHANGELOG.md b/rbx_binary/CHANGELOG.md index ecd2db98c..df77bf08f 100644 --- a/rbx_binary/CHANGELOG.md +++ b/rbx_binary/CHANGELOG.md @@ -2,6 +2,9 @@ ## Unreleased +## 0.7.7 (2024-08-22) +* Updated rbx-dom dependencies + ## 0.7.6 (2024-08-06) * Changed the way instances are added to the serializer to a depth-first post-order traversal. ([#432]) diff --git a/rbx_binary/Cargo.toml b/rbx_binary/Cargo.toml index fcd4686e7..aeabeaec9 100644 --- a/rbx_binary/Cargo.toml +++ b/rbx_binary/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_binary" description = "Implementation of Roblox's binary model (rbxm) and place (rbxl) file formats" -version = "0.7.6" +version = "0.7.7" license = "MIT" documentation = "https://docs.rs/rbx_binary" homepage = "https://github.com/rojo-rbx/rbx-dom" @@ -14,9 +14,9 @@ edition = "2018" unstable_text_format = ["serde"] [dependencies] -rbx_dom_weak = { version = "2.8.0", path = "../rbx_dom_weak" } -rbx_reflection = { version = "4.6.0", path = "../rbx_reflection" } -rbx_reflection_database = { version = "0.2.11", path = "../rbx_reflection_database" } +rbx_dom_weak = { version = "2.9.0", path = "../rbx_dom_weak" } +rbx_reflection = { version = "4.7.0", path = "../rbx_reflection" } +rbx_reflection_database = { version = "0.2.12", path = "../rbx_reflection_database" } log = "0.4.17" lz4 = "1.23.3" From c7fbf50e0297f976d36f4a2b3d4576bc3870437c Mon Sep 17 00:00:00 2001 From: Micah Date: Thu, 22 Aug 2024 09:05:44 -0700 Subject: [PATCH 62/64] Release rbx_xml v0.13.5 --- rbx_xml/CHANGELOG.md | 3 +++ rbx_xml/Cargo.toml | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/rbx_xml/CHANGELOG.md b/rbx_xml/CHANGELOG.md index 03a6db207..b2736bce7 100644 --- a/rbx_xml/CHANGELOG.md +++ b/rbx_xml/CHANGELOG.md @@ -2,6 +2,9 @@ ## Unreleased +## 0.13.5 (2024-08-22) +* Updated rbx-dom dependencies + ## 0.13.4 (2024-07-23) * Updated rbx-dom dependencies diff --git a/rbx_xml/Cargo.toml b/rbx_xml/Cargo.toml index 6be82d228..bedf265f5 100644 --- a/rbx_xml/Cargo.toml +++ b/rbx_xml/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rbx_xml" description = "Implementation of Roblox's XML file formats, rbxlx and rbxmx" -version = "0.13.4" +version = "0.13.5" license = "MIT" documentation = "https://docs.rs/rbx_xml" homepage = "https://github.com/rojo-rbx/rbx-dom" @@ -11,9 +11,9 @@ authors = ["Lucien Greathouse "] edition = "2018" [dependencies] -rbx_dom_weak = { version = "2.8.0", path = "../rbx_dom_weak" } -rbx_reflection = { version = "4.6.0", path = "../rbx_reflection" } -rbx_reflection_database = { version = "0.2.11", path = "../rbx_reflection_database" } +rbx_dom_weak = { version = "2.9.0", path = "../rbx_dom_weak" } +rbx_reflection = { version = "4.7.0", path = "../rbx_reflection" } +rbx_reflection_database = { version = "0.2.12", path = "../rbx_reflection_database" } base64 = "0.13.0" log = "0.4.17" From 500f6535f2dd5d697d9a8da0ac0bff10aa6e355e Mon Sep 17 00:00:00 2001 From: Euphoriah <95628489+phoriah@users.noreply.github.com> Date: Sat, 31 Aug 2024 01:17:09 +0200 Subject: [PATCH 63/64] Add Int32 to Contents List in attributes.md (#445) --- docs/attributes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/attributes.md b/docs/attributes.md index 4e5a6f347..fda407fca 100644 --- a/docs/attributes.md +++ b/docs/attributes.md @@ -8,6 +8,7 @@ This document describes the Attribute binary format. In this format there is no - [Data Types](#data-types) - [String](#string) - [Bool](#bool) + - [Int32](#int32) - [Float32](#float32) - [Float64](#float64) - [UDim](#udim) From c5f705e8263141082354f96eb5ca7adab78dad2e Mon Sep 17 00:00:00 2001 From: Micah Date: Tue, 3 Sep 2024 11:12:15 -0700 Subject: [PATCH 64/64] Add a step to CI to validate all the workspace crates are set to the correct versions (#443) --- .github/workflows/ci.yml | 11 +++ .lune/semver.luau | 81 ++++++++++++++++++++++ .lune/validate-crate-versions.luau | 107 +++++++++++++++++++++++++++++ aftman.toml | 1 + 4 files changed, 200 insertions(+) create mode 100644 .lune/semver.luau create mode 100644 .lune/validate-crate-versions.luau diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 46c1b56eb..34814f171 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,6 +10,17 @@ on: - master jobs: + validate: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - uses: ok-nick/setup-aftman@v0.4.2 + + - name: Validate Crate Versions + run: lune run validate-crate-versions + build: runs-on: ubuntu-latest diff --git a/.lune/semver.luau b/.lune/semver.luau new file mode 100644 index 000000000..73ceda378 --- /dev/null +++ b/.lune/semver.luau @@ -0,0 +1,81 @@ +--!strict +local SemVer = {} +SemVer.__index = SemVer + +export type SemVer = { + major: number, + minor: number?, + patch: number?, +} + +local function compare(a: number, b: number): number + if a > b then + return 1 + elseif a < b then + return -1 + end + + return 0 +end + +function SemVer.__tostring(self: SemVer): string + return string.format("%i.%i.%i", self.major, self.minor or 0, self.patch or 0) +end + +--[[ + Constructs a new SemVer from the provided parts. +]] +function SemVer.new(major: number, minor: number?, patch: number?): SemVer + return (setmetatable({ + major = major, + minor = minor, + patch = patch, + }, SemVer) :: any) :: SemVer +end + +--[[ + Parses `version` into a SemVer. +]] +function SemVer.parse(version: string) + local major, minor, patch, _ = version:match("^(%d+)%.(%d+)%.(%d+)(.*)$") + local realVersion = { + major = tonumber(major), + minor = tonumber(minor), + patch = tonumber(patch), + } + if realVersion.major == nil then + error(`could not parse major version from '{version}'`, 2) + end + if minor and realVersion.minor == nil then + error(`could not parse minor version from '{version}'`, 2) + end + if patch and realVersion.patch == nil then + error(`could not parse patch version from '{version}'`, 2) + end + + return (setmetatable(realVersion, SemVer) :: any) :: SemVer +end + +--[[ + Compares two SemVers and returns their status compared to one another. + + If `1` is returned, a is 'newer' than b. + If `-1` is returned, a is 'older' than b. + If `0` is returned, they are identical. +]] +function SemVer.compare(a: SemVer, b: SemVer) + local major = compare(a.major, b.major) + local minor = compare(a.minor or 0, b.minor or 0) + + if major ~= 0 then + return major + end + + if minor ~= 0 then + return minor + end + + return compare(a.patch or 0, b.patch or 0) +end + +return SemVer diff --git a/.lune/validate-crate-versions.luau b/.lune/validate-crate-versions.luau new file mode 100644 index 000000000..45d9b7ca1 --- /dev/null +++ b/.lune/validate-crate-versions.luau @@ -0,0 +1,107 @@ +--!strict +--#selene: allow(incorrect_standard_library_use) + +local IGNORE_CRATE_LIST = { + "rbx_util", + "rbx_reflector", +} + +local fs = require("@lune/fs") +local serde = require("@lune/serde") +local stdio = require("@lune/stdio") +local process = require("@lune/process") + +local SemVer = require("semver") + +type WorkspaceCargo = { + workspace: { + members: { string }, + }, +} + +type CrateCargo = { + package: { + name: string, + version: string, + }, + dependencies: { [string]: Dependency }, + ["dev-dependencies"]: { [string]: Dependency }?, +} + +type Dependency = string | { version: string?, path: string?, features: { string }, optional: boolean? } + +local function warn(...) + stdio.write(`[{stdio.color("yellow")}WARN{stdio.color("reset")}] `) + print(...) +end + +local function processDependencies(dependency_list: { [string]: Dependency }, output: { [string]: Dependency }) + for name, dependency in dependency_list do + if typeof(dependency) == "string" then + continue + end + if dependency.path then + output[name] = dependency + end + end +end + +local workspace: WorkspaceCargo = serde.decode("toml", fs.readFile("Cargo.toml")) + +local crate_info = {} + +for _, crate_name in workspace.workspace.members do + if table.find(IGNORE_CRATE_LIST, crate_name) then + continue + end + local cargo: CrateCargo = serde.decode("toml", fs.readFile(`{crate_name}/Cargo.toml`)) + local dependencies = {} + local dev_dependencies = {} + processDependencies(cargo.dependencies, dependencies) + if cargo.package["dev-dependencies"] then + processDependencies(cargo["dev-dependencies"] :: any, dev_dependencies) + end + crate_info[crate_name] = { + version = SemVer.parse(cargo.package.version), + dependencies = dependencies, + dev_dependencies = dev_dependencies, + } +end + +table.freeze(crate_info) + +local all_ok = true + +for crate_name, cargo in crate_info do + for name, dependency in cargo.dependencies do + if typeof(dependency) == "string" then + error("invariant: string dependency made it into path list") + end + if not crate_info[name] then + warn(`Dependency {name} of crate {crate_name} has a path but is not local to this workspace.`) + all_ok = false + continue + end + if not dependency.version then + warn(`Dependency {name} of crate {crate_name} has a path but no version specified. Please fix this.`) + all_ok = false + continue + end + local dependency_version = SemVer.parse(dependency.version :: string) + local cmp = SemVer.compare(crate_info[name].version, dependency_version) + if cmp == 0 then + continue + else + all_ok = false + warn( + `Dependency {name} of crate {crate_name} has a version mismatch. Current version: {dependency_version}. Should be: {crate_info[name].version}` + ) + end + end +end + +if all_ok then + process.exit(0) +else + process.exit(1) +end diff --git a/aftman.toml b/aftman.toml index b1bd6be64..0364079bf 100644 --- a/aftman.toml +++ b/aftman.toml @@ -3,3 +3,4 @@ rojo = "rojo-rbx/rojo@7.3.0" run-in-roblox = "rojo-rbx/run-in-roblox@0.3.0" selene = "Kampfkarren/selene@0.25.0" stylua = "JohnnyMorganz/StyLua@0.18.2" +lune = "lune-org/lune@0.8.8"