mirror of
https://github.com/luau/UniversalSynSaveInstance.git
synced 2026-02-10 01:22:41 +02:00
Added NotScriptable Proxy Dumper
This commit is contained in:
260
Tools/NotScriptable-Related/NotScriptable Dumper/Dump
Normal file
260
Tools/NotScriptable-Related/NotScriptable Dumper/Dump
Normal file
@@ -0,0 +1,260 @@
|
||||
|
||||
Instance.AttributesSerialize {BinaryString}
|
||||
Instance.Capabilities
|
||||
Instance.DefinesCapabilities
|
||||
Instance.HistoryId
|
||||
Instance.Tags {BinaryString}
|
||||
Instance.UniqueId
|
||||
|
||||
AnimationClip.GuidBinaryString {BinaryString}
|
||||
|
||||
AnimationRigData.articulatedJoint {BinaryString}
|
||||
AnimationRigData.endEffectorRotationConstraint {BinaryString}
|
||||
AnimationRigData.endEffectorTranslationConstraint {BinaryString}
|
||||
AnimationRigData.endEffectorWeight {BinaryString}
|
||||
AnimationRigData.facsControl {BinaryString}
|
||||
AnimationRigData.label {BinaryString}
|
||||
AnimationRigData.name {BinaryString}
|
||||
AnimationRigData.parent {BinaryString}
|
||||
AnimationRigData.postTransform {BinaryString}
|
||||
AnimationRigData.preTransform {BinaryString}
|
||||
AnimationRigData.rootMotion {BinaryString}
|
||||
AnimationRigData.transform {BinaryString}
|
||||
AnimationRigData.weight {BinaryString}
|
||||
|
||||
StarterGui.RtlTextSupport
|
||||
StarterGui.VirtualCursorMode
|
||||
|
||||
BaseWrap.HSRAssetId
|
||||
BaseWrap.HSRData
|
||||
BaseWrap.HSRMeshIdData
|
||||
BaseWrap.TemporaryCageMeshId
|
||||
|
||||
WrapLayer.TemporaryReferenceId
|
||||
|
||||
BallSocketConstraint.MaxFrictionTorqueXml
|
||||
|
||||
CustomEvent.PersistedCurrentValue
|
||||
|
||||
BevelMesh.Bevel
|
||||
BevelMesh.Bevel Roundness
|
||||
BevelMesh.Bulge
|
||||
|
||||
RobloxEditableMesh.MeshDataSerialize {BinaryString}
|
||||
|
||||
DebuggerBreakpoint.line
|
||||
|
||||
RobloxEditableImage.ImageDataSerialize {BinaryString}
|
||||
|
||||
Fire.heat_xml
|
||||
Fire.size_xml
|
||||
|
||||
FloatCurve.ValuesAndTimes {BinaryString}
|
||||
|
||||
FunctionalTest.HasMigratedSettingsToTestService
|
||||
|
||||
GoogleAnalyticsConfiguration.gaID
|
||||
|
||||
ViewportFrame.CameraCFrame
|
||||
ViewportFrame.CameraFieldOfView
|
||||
|
||||
Path2D.PropertiesSerialize {BinaryString}
|
||||
|
||||
HiddenSurfaceRemovalAsset.HSRData {BinaryString}
|
||||
HiddenSurfaceRemovalAsset.HSRMeshIdData {BinaryString}
|
||||
|
||||
Humanoid.Health_XML
|
||||
Humanoid.InternalBodyScale
|
||||
Humanoid.InternalHeadScale
|
||||
|
||||
HumanoidDescription.AccessoryBlob
|
||||
HumanoidDescription.AccessoryRigidAndLayeredBlob
|
||||
HumanoidDescription.EmotesDataInternal
|
||||
HumanoidDescription.EquippedEmotesDataInternal
|
||||
|
||||
InsertService.AllowClientInsertModels
|
||||
|
||||
Lighting.Technology
|
||||
|
||||
LocalizationTable.Contents
|
||||
|
||||
LuaSourceContainer.ScriptGuid
|
||||
|
||||
MarkerCurve.ValuesAndTimes {BinaryString}
|
||||
|
||||
MaterialService.AsphaltName
|
||||
MaterialService.BasaltName
|
||||
MaterialService.BrickName
|
||||
MaterialService.CardboardName
|
||||
MaterialService.CarpetName
|
||||
MaterialService.CeramicTilesName
|
||||
MaterialService.ClayRoofTilesName
|
||||
MaterialService.CobblestoneName
|
||||
MaterialService.ConcreteName
|
||||
MaterialService.CorrodedMetalName
|
||||
MaterialService.CrackedLavaName
|
||||
MaterialService.DiamondPlateName
|
||||
MaterialService.FabricName
|
||||
MaterialService.FoilName
|
||||
MaterialService.GlacierName
|
||||
MaterialService.GraniteName
|
||||
MaterialService.GrassName
|
||||
MaterialService.GroundName
|
||||
MaterialService.IceName
|
||||
MaterialService.LeafyGrassName
|
||||
MaterialService.LeatherName
|
||||
MaterialService.LimestoneName
|
||||
MaterialService.MarbleName
|
||||
MaterialService.MetalName
|
||||
MaterialService.MudName
|
||||
MaterialService.PavementName
|
||||
MaterialService.PebbleName
|
||||
MaterialService.PlasterName
|
||||
MaterialService.PlasticName
|
||||
MaterialService.RockName
|
||||
MaterialService.RoofShinglesName
|
||||
MaterialService.RubberName
|
||||
MaterialService.SaltName
|
||||
MaterialService.SandName
|
||||
MaterialService.SandstoneName
|
||||
MaterialService.SlateName
|
||||
MaterialService.SmoothPlasticName
|
||||
MaterialService.SnowName
|
||||
MaterialService.Use2022MaterialsXml
|
||||
MaterialService.WoodName
|
||||
MaterialService.WoodPlanksName
|
||||
|
||||
MaterialVariant.TexturePack
|
||||
|
||||
MetaBreakpointContext.ContextDataInternal
|
||||
|
||||
BasePart.Color3uint8
|
||||
BasePart.MaterialVariantSerialized
|
||||
BasePart.size
|
||||
|
||||
FormFactorPart.formFactorRaw
|
||||
|
||||
Part.shape
|
||||
|
||||
Terrain.AcquisitionMethod
|
||||
Terrain.Decoration
|
||||
Terrain.GrassLength
|
||||
Terrain.MaterialColors {BinaryString}
|
||||
Terrain.PhysicsGrid {BinaryString}
|
||||
Terrain.SmoothGrid {BinaryString}
|
||||
|
||||
TriangleMeshPart.AeroMeshData
|
||||
TriangleMeshPart.FluidFidelityInternal
|
||||
TriangleMeshPart.PhysicalConfigData
|
||||
|
||||
MeshPart.InitialSize
|
||||
MeshPart.PhysicsData {BinaryString}
|
||||
MeshPart.VertexCount
|
||||
|
||||
PartOperation.AssetId
|
||||
PartOperation.ChildData {BinaryString}
|
||||
PartOperation.ChildData2
|
||||
PartOperation.FormFactor
|
||||
PartOperation.InitialSize
|
||||
PartOperation.MeshData {BinaryString}
|
||||
PartOperation.MeshData2
|
||||
PartOperation.PhysicsData {BinaryString}
|
||||
|
||||
TrussPart.style
|
||||
|
||||
Model.ModelMeshCFrame
|
||||
Model.ModelMeshData
|
||||
Model.ModelMeshSize
|
||||
Model.NeedsPivotMigration
|
||||
Model.ScaleFactor
|
||||
Model.WorldPivotData
|
||||
|
||||
Workspace.AvatarUnificationMode
|
||||
Workspace.CSGAsyncDynamicCollision
|
||||
Workspace.CollisionGroupData {BinaryString}
|
||||
Workspace.DecreaseMinimumPartDensityMode
|
||||
Workspace.EditorLiveScripting
|
||||
Workspace.ExplicitAutoJoints
|
||||
Workspace.FluidForces
|
||||
Workspace.IKControlConstraintSupport
|
||||
Workspace.MeshPartHeadsAndAccessories
|
||||
Workspace.ModelStreamingBehavior
|
||||
Workspace.PhysicsSteppingMethod
|
||||
Workspace.PlayerCharacterDestroyBehavior
|
||||
Workspace.PrimalPhysicsSolver
|
||||
Workspace.RejectCharacterDeletions
|
||||
Workspace.RenderingCacheOptimizations
|
||||
Workspace.ReplicateInstanceDestroySetting
|
||||
Workspace.SignalBehavior2
|
||||
Workspace.StreamOutBehavior
|
||||
Workspace.StreamingIntegrityMode
|
||||
Workspace.StreamingMinRadius
|
||||
Workspace.StreamingTargetRadius
|
||||
Workspace.TerrainWeldsFixed
|
||||
Workspace.TouchesUseCollisionGroups
|
||||
|
||||
PackageLink.AutoUpdate
|
||||
PackageLink.ModifiedState
|
||||
PackageLink.PackageIdSerialize
|
||||
PackageLink.VersionIdSerialize
|
||||
|
||||
PartOperationAsset.ChildData {BinaryString}
|
||||
PartOperationAsset.MeshData {BinaryString}
|
||||
|
||||
Player.RawJoinData {BinaryString}
|
||||
|
||||
Players.UseStrafingAnimations
|
||||
|
||||
RotationCurve.ValuesAndTimes {BinaryString}
|
||||
|
||||
ScriptDebugger.CoreScriptIdentifier
|
||||
ScriptDebugger.ScriptGuid
|
||||
|
||||
ServerScriptService.LoadStringEnabled
|
||||
|
||||
Smoke.opacity_xml
|
||||
Smoke.riseVelocity_xml
|
||||
Smoke.size_xml
|
||||
|
||||
Sound.xmlRead_MaxDistance_3 {RollOffMaxDistance}
|
||||
|
||||
SoundService.VolumetricAudio
|
||||
|
||||
StarterPlayer.AvatarJointUpgrade_Serialized
|
||||
StarterPlayer.EnableDynamicHeads
|
||||
StarterPlayer.LoadCharacterLayeredClothing
|
||||
|
||||
StyleRule.Index
|
||||
StyleRule.PropertiesSerialize {BinaryString}
|
||||
|
||||
StyleDerive.Index
|
||||
|
||||
TerrainDetail.TexturePack
|
||||
|
||||
TerrainRegion.ExtentsMax
|
||||
TerrainRegion.ExtentsMin
|
||||
TerrainRegion.SmoothGrid {BinaryString}
|
||||
|
||||
UnvalidatedAssetService.CachedData
|
||||
|
||||
UserGameSettings.CompletedTutorials
|
||||
UserGameSettings.ComputerCameraMovementChanged
|
||||
UserGameSettings.ComputerMovementChanged
|
||||
UserGameSettings.StartMaximized
|
||||
UserGameSettings.StartScreenPosition
|
||||
UserGameSettings.StartScreenSize
|
||||
UserGameSettings.TouchCameraMovementChanged
|
||||
UserGameSettings.TouchMovementChanged
|
||||
UserGameSettings.gaID
|
||||
|
||||
BinaryStringValue.Value {BinaryString}
|
||||
|
||||
DoubleConstrainedValue.value
|
||||
|
||||
IntConstrainedValue.value
|
||||
|
||||
WeldConstraint.CFrame0
|
||||
WeldConstraint.Part0Internal
|
||||
WeldConstraint.Part1Internal
|
||||
WeldConstraint.State
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
-- ! Meant for Studio
|
||||
|
||||
local GlobalSettings, GlobalBasicSettings = settings(), UserSettings()
|
||||
local service = setmetatable({}, {
|
||||
__index = function(self, index)
|
||||
local Service = game:GetService(index)
|
||||
or GlobalSettings:GetService(index)
|
||||
or GlobalBasicSettings:GetService(index)
|
||||
self[index] = Service
|
||||
return Service
|
||||
end,
|
||||
})
|
||||
|
||||
service.HttpService.HttpEnabled = true
|
||||
|
||||
local function ArrayToDictionary(Table, HybridMode, ValueOverride)
|
||||
local tmp = {}
|
||||
|
||||
if HybridMode == "adjust" then
|
||||
for Some1, Some2 in Table do
|
||||
if type(Some1) == "number" then
|
||||
tmp[Some2] = ValueOverride or true
|
||||
elseif type(Some2) == "table" then
|
||||
tmp[Some1] = ArrayToDictionary(Some2, "adjust") -- Some1 is Class, Some2 is Name
|
||||
else
|
||||
tmp[Some1] = Some2
|
||||
end
|
||||
end
|
||||
else
|
||||
for _, Key in Table do
|
||||
if type(Key) == "string" then
|
||||
tmp[Key] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return tmp
|
||||
end
|
||||
local s = "\n"
|
||||
do
|
||||
local function FetchAPI()
|
||||
local API_Dump_Url =
|
||||
"https://raw.githubusercontent.com/MaximumADHD/Roblox-Client-Tracker/roblox/Mini-API-Dump.json"
|
||||
local API_Dump = service.HttpService:GetAsync(API_Dump_Url, true)
|
||||
local API_Classes = service.HttpService:JSONDecode(API_Dump).Classes
|
||||
for _index_0 = 1, #API_Classes do
|
||||
local API_Class = API_Classes[_index_0]
|
||||
local ClassName = API_Class.Name
|
||||
local ClassMembers = API_Class.Members
|
||||
|
||||
local prevsiz = #s
|
||||
for _index_1 = 1, #ClassMembers do
|
||||
local Member = ClassMembers[_index_1]
|
||||
local MemberName = Member.Name
|
||||
local MemberType = Member.MemberType
|
||||
if MemberType == "Property" then
|
||||
local Serialization = Member.Serialization
|
||||
local MemberTags = Member.Tags
|
||||
|
||||
local Special
|
||||
|
||||
if MemberTags then
|
||||
MemberTags = ArrayToDictionary(MemberTags)
|
||||
Special = MemberTags.NotScriptable
|
||||
end
|
||||
if Serialization.CanLoad and Serialization.CanSave and Special then
|
||||
local ValueType = Member.ValueType.Name
|
||||
s ..= ClassName .. "." .. MemberName .. (ValueType == "BinaryString" and " {BinaryString}" or "") .. "\n"
|
||||
end
|
||||
end
|
||||
end
|
||||
if prevsiz ~= #s then
|
||||
s ..= "\n"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local ok, result = pcall(FetchAPI)
|
||||
|
||||
if ok then
|
||||
print(s)
|
||||
else
|
||||
warn(result)
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,75 @@
|
||||
import requests
|
||||
import os
|
||||
|
||||
|
||||
def array_to_dictionary(table, hybrid_mode=None):
|
||||
tmp = {}
|
||||
if hybrid_mode == "adjust":
|
||||
for key, value in table.items():
|
||||
if isinstance(key, int):
|
||||
tmp[value] = True
|
||||
elif isinstance(value, dict):
|
||||
tmp[key] = array_to_dictionary(value, "adjust")
|
||||
else:
|
||||
tmp[key] = value
|
||||
else:
|
||||
for value in table:
|
||||
if isinstance(value, str):
|
||||
tmp[value] = True
|
||||
return tmp
|
||||
|
||||
|
||||
def find_first_table(array):
|
||||
|
||||
for item in array:
|
||||
if isinstance(item, dict):
|
||||
return item
|
||||
return None
|
||||
|
||||
|
||||
s = "\n"
|
||||
|
||||
|
||||
def fetch_api():
|
||||
api_dump_url = "https://raw.githubusercontent.com/MaximumADHD/Roblox-Client-Tracker/roblox/Mini-API-Dump.json"
|
||||
response = requests.get(api_dump_url)
|
||||
api_classes = response.json()["Classes"]
|
||||
|
||||
global s
|
||||
for api_class in api_classes:
|
||||
class_name = api_class["Name"]
|
||||
class_members = api_class["Members"]
|
||||
|
||||
prev_len = len(s)
|
||||
for member in class_members:
|
||||
member_name = member["Name"]
|
||||
member_type = member["MemberType"]
|
||||
if member_type == "Property":
|
||||
serialization = member["Serialization"]
|
||||
member_tags = member.get("Tags")
|
||||
original_tags = member_tags
|
||||
special = False
|
||||
if member_tags:
|
||||
member_tags = array_to_dictionary(member_tags)
|
||||
special = member_tags.get("NotScriptable")
|
||||
|
||||
if serialization["CanLoad"] and serialization["CanSave"] and special:
|
||||
value_type = member["ValueType"]["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 += "\n"
|
||||
if len(s) != prev_len:
|
||||
s += "\n"
|
||||
|
||||
|
||||
try:
|
||||
fetch_api()
|
||||
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:
|
||||
file.write(s)
|
||||
except Exception as e:
|
||||
print(f"Error: {e}")
|
||||
Reference in New Issue
Block a user