Updated Dumps

This commit is contained in:
phoriah
2025-01-24 17:21:55 +02:00
parent a88aa7b7c7
commit 44bcdf37b1
3 changed files with 39 additions and 55 deletions

View File

@@ -1,9 +1,7 @@
EditableImage.Size {CanSave Only}
EditableImage is NotCreatable but EditableImage.ImageData has a default value: __api_dump_failed_to_create_class__
EditableMesh.FixedSize {CanSave Only}
EditableMesh is NotCreatable but EditableMesh.FixedSize has a default value: __api_dump_failed_to_create_class__
Instance.Parent {CanLoad Only}
Instance.archivable {CanLoad Only} {Deprecated}
@@ -112,7 +110,7 @@ DragDetector.SecondaryAxis {CanLoad Only}
DragDetector.WorldAxis {CanLoad Only}
DragDetector.WorldSecondaryAxis {CanLoad Only}
Collaborator is NotCreatable but Collaborator.CFrame has a default value: __api_dump_no_string_value__
Collaborator is NotCreatable but Collaborator.CollaboratorColor has a default value: 0
CommandInstance.Checked {CanLoad Only}
CommandInstance.DisplayName {CanLoad Only}
@@ -169,14 +167,9 @@ DebugSettings.InstanceCount {CanSave Only}
DebugSettings.JobCount {CanSave Only}
DebugSettings.PlayerCount {CanSave Only}
DebugSettings.RobloxVersion {CanSave Only}
DebugSettings is NotCreatable but DebugSettings.DataModel has a default value: __api_dump_skipped_class__
DebuggerBreakpoint is NotCreatable but DebuggerBreakpoint.Condition has a default value: __api_dump_skipped_class__
DebuggerManager.DebuggingEnabled {CanSave Only}
DraggerService is NotCreatable but DraggerService.AlignDraggedObjects has a default value: __api_dump_skipped_class__
EditableService is NotCreatable but EditableService.EditableStatus has a default value: Unknown
ExperienceStateCaptureService is NotCreatable but ExperienceStateCaptureService.HiddenSelectionEnabled has a default value: false
@@ -189,8 +182,6 @@ FaceAnimatorService is NotCreatable but FaceAnimatorService.AudioAnimationEnable
Decal.Shiny {CanLoad Only} {Deprecated}
Decal.Specular {CanLoad Only} {Deprecated}
FacialAnimationRecordingService is NotCreatable but FacialAnimationRecordingService.BiometricDataConsent has a default value: __api_dump_skipped_class__
FacialAnimationStreamingServiceV2 is NotCreatable but FacialAnimationStreamingServiceV2.ServiceState has a default value: 0
Fire.Heat {CanLoad Only}
@@ -205,7 +196,6 @@ FunctionalTest.PhysicsEnvironmentalThrottle {CanLoad Only}
FunctionalTest.Timeout {CanLoad Only}
GameSettings.VideoRecording {CanLoad Only}
GameSettings is NotCreatable but GameSettings.VideoCaptureEnabled has a default value: __api_dump_skipped_class__
GamepadService is NotCreatable but GamepadService.GamepadCursorEnabled has a default value: false
@@ -309,11 +299,14 @@ Lighting is NotCreatable but Lighting.Ambient has a default value: 0.5, 0.5, 0.5
LiveScriptingService is NotCreatable but LiveScriptingService.ServerLiveEditingMode has a default value: Uninitialized
LiveSyncService.HasSyncedInstances {CanSave Only}
LiveSyncService is NotCreatable but LiveSyncService.HasSyncedInstances has a default value: false
LocalizationService is NotCreatable but LocalizationService.ForcePlayModeGameLocaleId has a default value:
LocalizationTable.DevelopmentLanguage {CanLoad Only} {Deprecated}
LodDataEntity is NotCreatable but LodDataEntity.EntityData has a default value: __api_dump_no_string_value__
LodDataEntity is NotCreatable but LodDataEntity.EntityLodEnabled has a default value: true
BaseScript.LinkedSource {Deprecated} {CanSave}
@@ -340,8 +333,6 @@ Mouse.ViewSizeY {CanSave Only}
Mouse.X {CanSave Only}
Mouse.Y {CanSave Only}
NetworkSettings is NotCreatable but NetworkSettings.EmulatedTotalMemoryInMB has a default value: __api_dump_skipped_class__
NotificationService.SelectedTheme {CanLoad Only}
BasePart.AssemblyAngularVelocity {CanLoad Only}
@@ -419,8 +410,6 @@ Path.Status {CanSave Only}
PathfindingService.EmptyCutoff {CanLoad Only} {Deprecated}
PathfindingService is NotCreatable but PathfindingService.EmptyCutoff has a default value: 0
PhysicsSettings is NotCreatable but PhysicsSettings.AllowSleep has a default value: __api_dump_skipped_class__
Player.CharacterAppearance {Deprecated} {CanSave}
Player.FollowUserId {CanSave Only}
@@ -440,7 +429,6 @@ PolicyService is NotCreatable but PolicyService.IsLuobuServer has a default valu
Pose.MaskWeight {CanLoad Only} {Deprecated}
RenderSettings.EnableFRM {CanLoad Only}
RenderSettings is NotCreatable but RenderSettings.AutoFRMLevel has a default value: __api_dump_skipped_class__
RobloxSerializableInstance is NotCreatable but RobloxSerializableInstance.Data has a default value:
@@ -497,16 +485,12 @@ Sparkles.Color {CanLoad Only}
StarterPlayer is NotCreatable but StarterPlayer.AllowCustomAnimations has a default value: true
Studio.UI Theme {CanSave Only} {Deprecated} {CanSave}
Studio is NotCreatable but Studio."TODO" Color has a default value: __api_dump_skipped_class__
StudioData is NotCreatable but StudioData.EnableScriptCollabByDefaultOnLoad has a default value: false
StudioDeviceEmulatorService is NotCreatable but StudioDeviceEmulatorService.HasMultiTouchStarted has a default value: __api_dump_skipped_class__
StudioPublishService is NotCreatable but StudioPublishService.PublishLocked has a default value: false
StudioService.UseLocalSpace {CanLoad Only}
StudioService is NotCreatable but StudioService.ActiveScript has a default value: __api_dump_skipped_class__
StudioUserService.IsLoggedIn {CanSave Only}
StudioUserService is NotCreatable but StudioUserService.IsLoggedIn has a default value: false
@@ -516,13 +500,10 @@ StyleRule.Index {CanLoad Only}
TaskScheduler.SchedulerDutyCycle {CanSave Only}
TaskScheduler.SchedulerRate {CanSave Only}
TaskScheduler.ThreadPoolSize {CanSave Only}
TaskScheduler is NotCreatable but TaskScheduler.SchedulerDutyCycle has a default value: __api_dump_skipped_class__
Team.AutoColorCharacters {CanLoad Only} {Deprecated}
Team.Score {CanLoad Only} {Deprecated}
TeamCreateData is NotCreatable but TeamCreateData.InitialCameraCFrame has a default value: __api_dump_no_string_value__
TeleportAsyncResult.PrivateServerId {CanSave Only}
TeleportAsyncResult.ReservedServerAccessCode {CanSave Only}
@@ -544,9 +525,9 @@ ChatInputBarConfiguration is NotCreatable but ChatInputBarConfiguration.Absolute
ChatWindowConfiguration is NotCreatable but ChatWindowConfiguration.AbsolutePosition has a default value: 0, 0
TextChatMessage is NotCreatable but TextChatMessage.BubbleChatMessageProperties has a default value: __api_dump_no_string_value__
TextChatMessage is NotCreatable but TextChatMessage.MessageId has a default value:
ChatWindowMessageProperties is NotCreatable but ChatWindowMessageProperties.FontFace has a default value: __api_dump_no_string_value__
ChatWindowMessageProperties is NotCreatable but ChatWindowMessageProperties.TextColor3 has a default value: 1, 1, 1
TextChatService is NotCreatable but TextChatService.ChatTranslationEnabled has a default value: true
@@ -577,7 +558,6 @@ UserInputService.MouseDeltaSensitivity {CanLoad Only}
UserInputService.MouseEnabled {CanSave Only}
UserInputService.TouchEnabled {CanSave Only}
UserInputService.VREnabled {CanSave Only}
UserInputService is NotCreatable but UserInputService.AccelerometerEnabled has a default value: __api_dump_skipped_class__
VRService is NotCreatable but VRService.AutomaticScaling has a default value: World

View File

@@ -119,7 +119,10 @@ def fetch_api():
if class_tags and class_tags.get("NotCreatable"):
for property_name, property_info in class_info["Properties"].items():
value = property_info.get("Default")
if value != "__api_dump_class_not_creatable__":
if (
value != "__api_dump_class_not_creatable__"
and "__api_dump_" not in value
):
s += f"{class_name} is NotCreatable but {class_name}.{property_name} has a default value: {value}\n"
break

View File

@@ -7,7 +7,7 @@ local function string_find(s, pattern)
return string.find(s, pattern, nil, true)
end
local function ArrayToDictionary(t, hydridMode, valueOverride, typeStrict)
local function ArrayToDict(t, hydridMode, valueOverride, typeStrict)
local tmp = {}
if hydridMode then
@@ -15,7 +15,7 @@ local function ArrayToDictionary(t, hydridMode, valueOverride, typeStrict)
if type(some1) == "number" then
tmp[some2] = valueOverride or true
elseif type(some2) == "table" then
tmp[some1] = ArrayToDictionary(some2, hydridMode) -- Some1 is Class, Some2 is Name
tmp[some1] = ArrayToDict(some2, hydridMode) -- Some1 is Class, Some2 is Name
else
tmp[some1] = some2
end
@@ -261,7 +261,7 @@ end
local CLIENT_VERSION = tonumber(string.split(version(), ".")[2])
local Type_IDs = {
local attr_Type_IDs = {
string = 0x02,
boolean = 0x03,
-- int32 = 0x04,
@@ -765,12 +765,12 @@ XML_Descriptors = {
end,
Color3uint8 = function(raw)
-- https://github.com/rojo-rbx/rbx-dom/blob/master/docs/xml.md#color3uint8
-- ? It is recommended that Color3uint8 is encoded with text instead of elements.
return 0xFF000000
+ (math.floor(raw.R * 255) * 0x10000)
+ (math.floor(raw.G * 255) * 0x100)
+ math.floor(raw.B * 255) -- ? It is recommended that Color3uint8 is encoded with text instead of elements.
+ math.floor(raw.B * 255)
-- return bit32.bor(
-- bit32.bor(bit32.bor(bit32.lshift(0xFF, 24), bit32.lshift(0xFF * raw.R, 16)), bit32.lshift(0xFF * raw.G, 8)),
-- 0xFF * raw.B
@@ -840,7 +840,7 @@ XML_Descriptors = {
-- The value is the text content, formatted as a space-separated list of floating point numbers.
local __EXTREME_RANGE = XML_Descriptors.__EXTREME_RANGE
return __EXTREME_RANGE(raw.Min) .. " " .. __EXTREME_RANGE(raw.Max) --[[.. " "]] -- ! This might be required to bypass detections as thats how its formatted usually; __EXTREME_RANGE is not needed here but it fixes the issue where "nan 10" value would reset to "0 0"
return __EXTREME_RANGE(raw.Min) .. " " .. __EXTREME_RANGE(raw.Max) --[[.. " "]] -- ! This might be required for compatibility; __EXTREME_RANGE is not needed here but it fixes the issue where "nan 10" value would reset to "0 0"
end,
NumberSequence = nil,
-- NumberSequence = Descriptors.__SEQUENCE,
@@ -1061,10 +1061,10 @@ local ClassList
do
local ClassPropertyExceptions = {
Whitelist = { TriangleMeshPart = ArrayToDictionary({ "CollisionFidelity" }) },
Whitelist = { TriangleMeshPart = ArrayToDict({ "CollisionFidelity" }) },
Blacklist = {
LuaSourceContainer = ArrayToDictionary({ "ScriptGuid" }),
Instance = ArrayToDictionary({ "UniqueId", "HistoryId" }),
LuaSourceContainer = ArrayToDict({ "ScriptGuid" }),
Instance = ArrayToDict({ "UniqueId", "HistoryId" }),
},
}
@@ -1123,7 +1123,7 @@ do
buffer.copy(b, offset, b_Name)
offset += Name_size
buffer.writeu8(b, offset, Type_IDs[typeof(attrs[attr])])
buffer.writeu8(b, offset, attr_Type_IDs[typeof(attrs[attr])])
offset += 1
local bb = attrs_formatted[attr]
@@ -1250,7 +1250,6 @@ do
return instance:GetScale()
end,
WorldPivotData = "WorldPivot", -- TODO This doesn't accurately represent whether optional type property is present or not (it's never nil), gethiddenproperty or gethiddenproperty_fallback is preferred
-- ModelMeshCFrame = "Pivot Offset", -- * Both are NotScriptable
},
PackageLink = { PackageIdSerialize = "PackageId", VersionIdSerialize = "VersionNumber" },
Players = { MaxPlayersInternal = "MaxPlayers", PreferredPlayersInternal = "PreferredPlayers" }, -- ? Only needed for execs that lack LocalUserSecurity (Level 2, 5, 9), even so, it's a pretty useless information as it can be viewed elsewhere
@@ -1416,7 +1415,7 @@ do
local ClassName = API_Class.Name
if ClassTags then
Class.Tags = ArrayToDictionary(ClassTags, nil, nil, "string") -- or {}
Class.Tags = ArrayToDict(ClassTags, nil, nil, "string") -- or {}
end
local NotScriptableFixClass = NotScriptableFixes[ClassName]
@@ -1547,7 +1546,7 @@ local GLOBAL_ENV = getgenv and getgenv() or _G or shared
--- @interface CustomOptions table
--- * Structure of the main CustomOptions table.
--- * Note: Aliases take priority over parent option name.
--- * Note: Options are case-insensitive, meaning you could type `NilInstances` option as `nilInStaNces` and it would still be valid.
--- @within SynSaveInstance
--- @field __DEBUG_MODE boolean -- Recommended to enable if you wish to help us improve our products and find bugs / issues with it! ___Default:___ false
--- @field ReadMe boolean --___Default:___ true
@@ -1687,7 +1686,7 @@ local function synsaveinstance(CustomOptions, CustomOptions2)
IgnoreDefaultProperties = true,
IgnoreNotArchivable = true,
IgnorePropertiesOfNotScriptsOnScriptsMode = false,
IgnoreSpecialProperties = ArrayToDictionary({ "Fluxus", "Delta", "Solara" })[EXECUTOR_NAME] or false, -- ! Please submit more Executors that crash on gethiddenproperty (with this disabled basically)
IgnoreSpecialProperties = ArrayToDict({ "Fluxus", "Delta", "Solara" })[EXECUTOR_NAME] or false, -- ! Please submit more Executors that crash on gethiddenproperty (with this disabled basically)
IsolateLocalPlayer = false, -- #service.StarterGui:GetChildren() == 0
IsolateLocalPlayerCharacter = false,
@@ -1719,7 +1718,7 @@ local function synsaveinstance(CustomOptions, CustomOptions2)
IgnoreSharedStrings = EXECUTOR_NAME ~= "Wave" and true,
SharedStringOverwrite = false,
TreatUnionsAsParts = EXECUTOR_NAME == "Solara", -- TODO Temporary true (once removed, remove Note from docs too)
AlternativeWritefile = not ArrayToDictionary({ "WRD", "Xeno", "Zorara" })[EXECUTOR_NAME],
AlternativeWritefile = not ArrayToDict({ "WRD", "Xeno", "Zorara" })[EXECUTOR_NAME],
OptionsAliases = { -- You can't really modify these as a user
DecompileTimeout = "timeout",
@@ -1870,10 +1869,10 @@ local function synsaveinstance(CustomOptions, CustomOptions2)
local InstancesOverrides = {}
local DecompileIgnore, IgnoreList, IgnoreProperties, NotCreatableFixes =
ArrayToDictionary(OPTIONS.DecompileIgnore, true),
ArrayToDictionary(OPTIONS.IgnoreList, true),
ArrayToDictionary(OPTIONS.IgnoreProperties),
ArrayToDictionary(OPTIONS.NotCreatableFixes, true, "Folder")
ArrayToDict(OPTIONS.DecompileIgnore, true),
ArrayToDict(OPTIONS.IgnoreList, true),
ArrayToDict(OPTIONS.IgnoreProperties),
ArrayToDict(OPTIONS.NotCreatableFixes, true, "Folder")
local __DEBUG_MODE = OPTIONS.__DEBUG_MODE
@@ -1997,7 +1996,7 @@ local function synsaveinstance(CustomOptions, CustomOptions2)
if not ToSaveInstance then
local Children = TempRoot:GetChildren()
if 0 < #Children then
local tmp_dict = ArrayToDictionary(tmp)
local tmp_dict = ArrayToDict(tmp)
for _, child in Children do
if not tmp_dict[child] then
table.insert(tmp, child)
@@ -2009,7 +2008,7 @@ local function synsaveinstance(CustomOptions, CustomOptions2)
-- if IsolatePlayers then
-- table.insert(_list_0, "Players")
-- end
local tmp_dict = ArrayToDictionary(tmp)
local tmp_dict = ArrayToDict(tmp)
for _, serviceName in
{
@@ -2028,13 +2027,13 @@ local function synsaveinstance(CustomOptions, CustomOptions2)
"StarterPlayer",
"Teams",
"SoundService",
"TextChatService",
"Chat",
"TextChatService",
"LocalizationService", -- For LocalizationTables
-- "InsertService",
"JointsService",
"LocalizationService", -- For LocalizationTables
-- "TestService",
-- "VoiceChatService",
}
@@ -2159,7 +2158,7 @@ local function synsaveinstance(CustomOptions, CustomOptions2)
local function construct_TimeoutHandler(timeout, f, timeout_ret)
return timeout < 0 and function(script)
return pcall(f, script)
return pcall(f, script)
end or function(script) -- TODO Ideally use ... (vararg) instead of `script` in case this is reused for something other than `decompile` & `getscriptbytecode`
local thread = coroutine.running()
local timeoutThread, isCancelled
@@ -2865,8 +2864,8 @@ local function synsaveinstance(CustomOptions, CustomOptions2)
local header =
'<!-- Saved by UniversalSynSaveInstance (Join to Copy Games) https://discord.gg/wx4ThpAsmw --><roblox version="4">'
if IsModel then
--[[
if IsModel then
--[[
-- ? Roblox encodes the following additional attributes. These are not required. Moreover, any defined schemas are ignored, and not required for a file to be valid: xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd"
Also http can be converted to https but not sure if Roblox cares
-- ? <External>null</External><External>nil</External> - <External> is a legacy concept that is no longer used.
@@ -2992,7 +2991,7 @@ local function synsaveinstance(CustomOptions, CustomOptions2)
Or Destroy the Camera.
This file was generated with the following settings:
]]
]]
.. service.HttpService:JSONEncode(OPTIONS)
.. "\n\n\t\tElapsed time: "
.. os.clock() - elapse_t
@@ -3000,6 +2999,8 @@ local function synsaveinstance(CustomOptions, CustomOptions2)
.. game.PlaceId
.. " PlaceVersion: "
.. game.PlaceVersion
.. " Client Version: "
.. version()
.. " Executor: "
.. (identify_executor and table.concat({ identify_executor() }, " ") or "Unknown")
.. "\n]]"