Added NotScriptable Proxy Dumper

This commit is contained in:
phoriah
2024-06-03 16:45:52 +02:00
parent cf4ba4f77c
commit 978bd5076c
7 changed files with 333 additions and 0 deletions

View 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

View File

@@ -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

View File

@@ -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}")