diff --git a/Tools/NotScriptable-Related/NotScriptable Dumper/Dump b/Tools/NotScriptable-Related/NotScriptable Dumper/Dump index 2ce4245..5fbcd70 100644 --- a/Tools/NotScriptable-Related/NotScriptable Dumper/Dump +++ b/Tools/NotScriptable-Related/NotScriptable Dumper/Dump @@ -125,8 +125,12 @@ BasePart.MaterialVariantSerialized BasePart.size FormFactorPart.formFactorRaw +formFactorRaw -> FormFactor +formFactorRaw -> formFactor Part.shape +shape -> Shape +shape -> shap Terrain.AcquisitionMethod Terrain.Decoration @@ -134,10 +138,12 @@ Terrain.GrassLength Terrain.MaterialColors {BinaryString} Terrain.PhysicsGrid {BinaryString} Terrain.SmoothGrid {BinaryString} +AcquisitionMethod -> LastUsedModificationMethod TriangleMeshPart.AeroMeshData TriangleMeshPart.FluidFidelityInternal TriangleMeshPart.PhysicalConfigData +FluidFidelityInternal -> FluidFidelity MeshPart.InitialSize MeshPart.PhysicsData {BinaryString} @@ -153,6 +159,7 @@ PartOperation.MeshData2 PartOperation.PhysicsData {BinaryString} TrussPart.style +style -> Style Model.ModelMeshCFrame Model.ModelMeshData @@ -184,6 +191,7 @@ Workspace.StreamingMinRadius Workspace.StreamingTargetRadius Workspace.TerrainWeldsFixed Workspace.TouchesUseCollisionGroups +SignalBehavior2 -> SignalBehavior PackageLink.AutoUpdate PackageLink.ModifiedState @@ -208,13 +216,15 @@ Smoke.opacity_xml Smoke.riseVelocity_xml Smoke.size_xml -Sound.xmlRead_MaxDistance_3 {RollOffMaxDistance} +Sound.xmlRead_MaxDistance_3 {PreferredDescriptorName: RollOffMaxDistance} SoundService.VolumetricAudio StarterPlayer.AvatarJointUpgrade_Serialized StarterPlayer.EnableDynamicHeads StarterPlayer.LoadCharacterLayeredClothing +AvatarJointUpgrade_Serialized -> AvatarJointUpgrade +LoadCharacterLayeredClothing -> LoadCharacterLayeredClothing StyleRule.Index StyleRule.PropertiesSerialize {BinaryString} diff --git a/Tools/NotScriptable-Related/NotScriptable Dumper/NotScriptable Dumper.py b/Tools/NotScriptable-Related/NotScriptable Dumper/NotScriptable Dumper.py index 8c33146..0413a03 100644 --- a/Tools/NotScriptable-Related/NotScriptable Dumper/NotScriptable Dumper.py +++ b/Tools/NotScriptable-Related/NotScriptable Dumper/NotScriptable Dumper.py @@ -20,7 +20,6 @@ def array_to_dictionary(table, hybrid_mode=None): def find_first_table(array): - for item in array: if isinstance(item, dict): return item @@ -41,6 +40,8 @@ def fetch_api(): class_members = api_class["Members"] prev_len = len(s) + enum_members = {} + for member in class_members: member_name = member["Name"] member_type = member["MemberType"] @@ -55,18 +56,32 @@ def fetch_api(): if serialization["CanLoad"] and serialization["CanSave"] and special: value_type = member["ValueType"]["Name"] + value_category = member["ValueType"]["Category"] + if value_category == "Enum": + enum_members[value_type] = member_name s += f"{class_name}.{member_name} {'{BinaryString}' if value_type == 'BinaryString' else ''}" table_found = find_first_table(original_tags) if table_found: - s += f"{'{'+table_found.get('PreferredDescriptorName')+'}'}" + s += f"{'{PreferredDescriptorName: '+table_found.get('PreferredDescriptorName')+'}'}" s += "\n" + for enum_type, real_member_name in enum_members.items(): + for member in class_members: + member_name = member["Name"] + member_type = member["MemberType"] + if member_name != real_member_name and member_type == "Property": + value_category = member["ValueType"]["Category"] + if value_category == "Enum": + value_type = member["ValueType"]["Name"] + if value_type == enum_type: + s += f"{real_member_name} -> {member_name}\n" + if len(s) != prev_len: s += "\n" try: fetch_api() - print(s) + # print(s) script_dir = os.path.dirname(os.path.realpath(__file__)) output_file_path = os.path.join(script_dir, "Dump") with open(output_file_path, "w") as file: