diff --git a/Tools/Doesn't Inherit from Class Dumper/Dump b/Tools/Doesn't Inherit from Class Dumper/Dump index 67b23e2..7e70db7 100644 --- a/Tools/Doesn't Inherit from Class Dumper/Dump +++ b/Tools/Doesn't Inherit from Class Dumper/Dump @@ -1,4 +1,6 @@ Object does not inherit from Instance +Capture does not inherit from Instance +ScreenshotCapture does not inherit from Instance EditableImage does not inherit from Instance EditableMesh does not inherit from Instance diff --git a/Tools/ExpectedClassDumper for NotCreatable/Dump b/Tools/ExpectedClassDumper for NotCreatable/Dump index ef7212d..39e6f55 100644 --- a/Tools/ExpectedClassDumper for NotCreatable/Dump +++ b/Tools/ExpectedClassDumper for NotCreatable/Dump @@ -7,6 +7,8 @@ CoreGui.SelectionImageObject {GuiObject} PlayerGui.SelectionImageObject {GuiObject} +StarterGui.StudioInsertWidgetLayerCollectorAutoLinkStyleSheet {StyleSheet} + Beam.Attachment0 {Attachment} Beam.Attachment1 {Attachment} @@ -43,6 +45,8 @@ GuiService.SelectedObject {GuiObject} HapticEffect.Waveform {FloatCurve} +InputBinding.UIButton {GuiButton} + JointInstance.Part0 {BasePart} JointInstance.Part1 {BasePart} diff --git a/Tools/Fake NotCreatable Dumper/Dump b/Tools/Fake NotCreatable Dumper/Dump index 0354726..40ede39 100644 --- a/Tools/Fake NotCreatable Dumper/Dump +++ b/Tools/Fake NotCreatable Dumper/Dump @@ -2,9 +2,19 @@ Varies per executor; Tested on Codex Annotation {Fake Creatable} +AuroraScript {Fake Creatable} + Breakpoint {Fake Creatable} -ExplorerFilterInstance {Fake Creatable} +CustomLog {Fake Creatable} + +ExplorerFilter {Fake Creatable} + +InputAction {Fake Creatable} + +InputBinding {Fake Creatable} + +InputContext {Fake Creatable} InternalSyncItem {Fake Creatable} @@ -36,5 +46,7 @@ StudioAttachment {Fake Creatable} StudioCallout {Fake Creatable} +VideoDisplay {Fake Creatable} + WorkspaceAnnotation {Fake Creatable} diff --git a/Tools/Interesting Properties Behavior/Dump b/Tools/Interesting Properties Behavior/Dump index 12311d1..3cb09a0 100644 --- a/Tools/Interesting Properties Behavior/Dump +++ b/Tools/Interesting Properties Behavior/Dump @@ -40,7 +40,7 @@ AudioFilter.Editor {CanLoad Only} AudioLimiter.Editor {CanLoad Only} -AudioPlayer.Asset {CanLoad Only} +AudioPlayer.AssetId {CanLoad Only} {Deprecated} AudioPlayer.IsReady {CanSave Only} AudioPlayer.TimeLength {CanSave Only} @@ -413,6 +413,24 @@ PathfindingService is NotCreatable but PathfindingService.EmptyCutoff has a defa Player.CharacterAppearance {Deprecated} {CanSave} Player.FollowUserId {CanSave Only} +PlayerDataRecord.CreatedTime {CanSave Only} +PlayerDataRecord.DefaultRecordName {CanSave Only} +PlayerDataRecord.Dirty {CanSave Only} +PlayerDataRecord.Error {CanSave Only} +PlayerDataRecord.FlushedTime {CanSave Only} +PlayerDataRecord.LoadedTime {CanSave Only} +PlayerDataRecord.ModifiedTime {CanSave Only} +PlayerDataRecord.NewRecord {CanSave Only} +PlayerDataRecord.Readable {CanSave Only} +PlayerDataRecord.RecordName {CanSave Only} +PlayerDataRecord.Writable {CanSave Only} +PlayerDataRecord is NotCreatable but PlayerDataRecord.CreatedTime has a default value: 0 + +PlayerDataRecordConfig.RecordName {CanSave Only} +PlayerDataRecordConfig is NotCreatable but PlayerDataRecordConfig.RecordName has a default value: + +PlayerDataService is NotCreatable but PlayerDataService.LoadFailureBehavior has a default value: Failure + PlayerEmulatorService is NotCreatable but PlayerEmulatorService.CustomPoliciesEnabled has a default value: false PluginAction.Text {CanLoad Only} @@ -459,6 +477,7 @@ FluidForceSensor.Torque {CanSave Only} ServerScriptService is NotCreatable but ServerScriptService.LoadStringEnabled has a default value: false +DataModel.MatchmakingType {CanSave Only} DataModel.PrivateServerId {CanSave Only} DataModel.PrivateServerOwnerId {CanSave Only} DataModel.VIPServerId {CanSave Only} {Deprecated} {CanSave} @@ -512,6 +531,7 @@ TeleportService.CustomizedTeleportUI {CanLoad Only} {Deprecated} TerrainRegion.GridV3 {CanLoad Only} TestService.ErrorCount {CanSave Only} +TestService.Is30FpsThrottleEnabled {CanLoad Only} {Deprecated} TestService.TestCount {CanSave Only} TestService.WarnCount {CanSave Only} diff --git a/Tools/NilInstance Error Dumper/NilInstance Error Dumper.luau b/Tools/NilInstance Error Dumper/NilInstance Error Dumper.luau index 05494dc..b17ecb5 100644 --- a/Tools/NilInstance Error Dumper/NilInstance Error Dumper.luau +++ b/Tools/NilInstance Error Dumper/NilInstance Error Dumper.luau @@ -123,20 +123,25 @@ do end local F = Instance.new("Folder") local s = "\n" -for Class, ClassInfo in ClassList do - local o, r = pcall(Instance.new, Class) +local blacklist = ArrayToDictionary({ "RelativeGui" }) +for ClassName, ClassInfo in ClassList do + if blacklist[ClassName] then + continue + end + writefile("crasher.txt", ClassName) + local o, r = pcall(Instance.new, ClassName) local x = r if not o then r = nil if not r then - r = game:FindFirstChildWhichIsA(Class, true) + r = game:FindFirstChildWhichIsA(ClassName, true) if not r then - r = game:FindFirstChild(Class, true) + r = game:FindFirstChild(ClassName, true) if not r then if ClassInfo.Tags and ClassInfo.Tags.Service then pcall(function() - r = service[Class] + r = service[ClassName] end) end end @@ -151,14 +156,14 @@ for Class, ClassInfo in ClassList do if Find(r, "locked") or Find(r, "Cannot change") or Find(r, "Invalid parent for Service") then continue end - s ..= Class .. ": " .. r .. "\n" + s ..= ClassName .. ": " .. r .. "\n" end elseif not ( Find(x, "Unable to create an Instance") --[[or Find(x, "The current thread cannot create")]] ) then - s ..= "! " .. Class .. ": " .. x .. "\n" + s ..= "! " .. ClassName .. ": " .. x .. "\n" end end warn("Finished") diff --git a/Tools/NotCreatable Dumper/Dump b/Tools/NotCreatable Dumper/Dump index c307839..053de24 100644 --- a/Tools/NotCreatable Dumper/Dump +++ b/Tools/NotCreatable Dumper/Dump @@ -1,6 +1,10 @@ Object +Capture + +ScreenshotCapture + EditableImage EditableMesh @@ -189,6 +193,12 @@ PausedStateBreakpoint PausedStateException +PlayerData + +PlayerDataRecord + +PlayerDataRecordConfig + PlayerScripts PostEffect diff --git a/Tools/NotScriptable-Related/NotScriptable Dumper/Dump b/Tools/NotScriptable-Related/NotScriptable Dumper/Dump index c987a94..ca9b134 100644 --- a/Tools/NotScriptable-Related/NotScriptable Dumper/Dump +++ b/Tools/NotScriptable-Related/NotScriptable Dumper/Dump @@ -1,13 +1,13 @@ EditableImage.ImageData {BinaryString} -EditableMesh.MeshData +EditableMesh.MeshData {SharedString} Instance.AttributesSerialize {BinaryString} -Instance.DefinesCapabilities -Instance.HistoryId +Instance.DefinesCapabilities {bool} +Instance.HistoryId {UniqueId} Instance.Tags {BinaryString} -Instance.UniqueId +Instance.UniqueId {UniqueId} AnimationClip.GuidBinaryString {BinaryString} @@ -18,281 +18,310 @@ AnimationRigData.postTransform {BinaryString} AnimationRigData.preTransform {BinaryString} AnimationRigData.transform {BinaryString} -StarterGui.RtlTextSupport -StarterGui.VirtualCursorMode +StarterGui.RtlTextSupport {RtlTextSupport} +StarterGui.VirtualCursorMode {VirtualCursorMode} -BaseWrap.HSRAssetId -BaseWrap.HSRData -BaseWrap.HSRMeshIdData -BaseWrap.TemporaryCageMeshId +BaseWrap.HSRAssetId {ContentId} +BaseWrap.HSRData {SharedString} +BaseWrap.HSRMeshIdData {SharedString} +BaseWrap.TemporaryCageMeshId {ContentId} -WrapLayer.TemporaryReferenceId +WrapLayer.TemporaryReferenceId {ContentId} -BallSocketConstraint.MaxFrictionTorqueXml +BallSocketConstraint.MaxFrictionTorqueXml {float} -CustomEvent.PersistedCurrentValue +CustomEvent.PersistedCurrentValue {float} -BevelMesh.Bevel -BevelMesh.Bevel Roundness -BevelMesh.Bulge +BevelMesh.Bevel {float} +BevelMesh.Bevel Roundness {float} +BevelMesh.Bulge {float} -DebuggerBreakpoint.line +DebuggerBreakpoint.line {int} -Fire.heat_xml -Fire.size_xml +Fire.heat_xml {float} +Fire.size_xml {float} FloatCurve.ValuesAndTimes {BinaryString} -FunctionalTest.HasMigratedSettingsToTestService +FunctionalTest.HasMigratedSettingsToTestService {bool} -GoogleAnalyticsConfiguration.gaID +GoogleAnalyticsConfiguration.gaID {string} -ViewportFrame.CameraCFrame -ViewportFrame.CameraFieldOfView +ViewportFrame.CameraCFrame {CFrame} +ViewportFrame.CameraFieldOfView {float} Path2D.PropertiesSerialize {BinaryString} HiddenSurfaceRemovalAsset.HSRData {BinaryString} HiddenSurfaceRemovalAsset.HSRMeshIdData {BinaryString} -Humanoid.Health_XML -Humanoid.InternalBodyScale -Humanoid.InternalHeadScale +Humanoid.Health_XML {float} +Humanoid.InternalBodyScale {Vector3} +Humanoid.InternalHeadScale {float} -HumanoidDescription.EmotesDataInternal -HumanoidDescription.EquippedEmotesDataInternal +HumanoidDescription.EmotesDataInternal {string} +HumanoidDescription.EquippedEmotesDataInternal {string} -InsertService.AllowClientInsertModels +InsertService.AllowClientInsertModels {bool} -Lighting.LightingStyle -Lighting.PrioritizeLightingQuality +Lighting.LightingStyle {LightingStyle} +Lighting.PrioritizeLightingQuality {bool} -LocalizationTable.Contents +LocalizationTable.Contents {string} -LuaSourceContainer.ScriptGuid +LuaSourceContainer.ScriptGuid {string} 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 +MaterialService.AsphaltName {string} +MaterialService.BasaltName {string} +MaterialService.BrickName {string} +MaterialService.CardboardName {string} +MaterialService.CarpetName {string} +MaterialService.CeramicTilesName {string} +MaterialService.ClayRoofTilesName {string} +MaterialService.CobblestoneName {string} +MaterialService.ConcreteName {string} +MaterialService.CorrodedMetalName {string} +MaterialService.CrackedLavaName {string} +MaterialService.DiamondPlateName {string} +MaterialService.FabricName {string} +MaterialService.FoilName {string} +MaterialService.GlacierName {string} +MaterialService.GraniteName {string} +MaterialService.GrassName {string} +MaterialService.GroundName {string} +MaterialService.IceName {string} +MaterialService.LeafyGrassName {string} +MaterialService.LeatherName {string} +MaterialService.LimestoneName {string} +MaterialService.MarbleName {string} +MaterialService.MetalName {string} +MaterialService.MudName {string} +MaterialService.PavementName {string} +MaterialService.PebbleName {string} +MaterialService.PlasterName {string} +MaterialService.PlasticName {string} +MaterialService.RockName {string} +MaterialService.RoofShinglesName {string} +MaterialService.RubberName {string} +MaterialService.SaltName {string} +MaterialService.SandName {string} +MaterialService.SandstoneName {string} +MaterialService.SlateName {string} +MaterialService.SmoothPlasticName {string} +MaterialService.SnowName {string} +MaterialService.Use2022MaterialsXml {bool} +MaterialService.WoodName {string} +MaterialService.WoodPlanksName {string} -MaterialVariant.TexturePack +MaterialVariant.TexturePack {ContentId} -MetaBreakpointContext.ContextDataInternal +MetaBreakpointContext.ContextDataInternal {string} -BasePart.Color3uint8 -BasePart.MaterialVariantSerialized -BasePart.size +BasePart.Color3uint8 {Color3uint8} +BasePart.MaterialVariantSerialized {string} +BasePart.size {Vector3} -FormFactorPart.formFactorRaw +FormFactorPart.formFactorRaw {FormFactor} formFactorRaw -> FormFactor formFactorRaw -> formFactor -Part.shape +Part.shape {PartType} shape -> Shape shape -> shap -Terrain.AcquisitionMethod -Terrain.Decoration -Terrain.GrassLength +Terrain.AcquisitionMethod {TerrainAcquisitionMethod} +Terrain.Decoration {bool} +Terrain.GrassLength {float} Terrain.MaterialColors {BinaryString} Terrain.PhysicsGrid {BinaryString} Terrain.SmoothGrid {BinaryString} AcquisitionMethod -> LastUsedModificationMethod -TriangleMeshPart.AeroMeshData -TriangleMeshPart.FluidFidelityInternal -TriangleMeshPart.PhysicalConfigData +TriangleMeshPart.AeroMeshData {SharedString} +TriangleMeshPart.FluidFidelityInternal {FluidFidelity} +TriangleMeshPart.PhysicalConfigData {SharedString} FluidFidelityInternal -> FluidFidelity -MeshPart.InitialSize +MeshPart.InitialSize {Vector3} MeshPart.PhysicsData {BinaryString} -MeshPart.VertexCount +MeshPart.VertexCount {int} -PartOperation.AssetId +PartOperation.AssetId {ContentId} PartOperation.ChildData {BinaryString} -PartOperation.ChildData2 -PartOperation.FormFactor -PartOperation.InitialSize +PartOperation.ChildData2 {SharedString} +PartOperation.FormFactor {FormFactor} +PartOperation.InitialSize {Vector3} PartOperation.MeshData {BinaryString} -PartOperation.MeshData2 +PartOperation.MeshData2 {SharedString} PartOperation.PhysicsData {BinaryString} -TrussPart.style +TrussPart.style {Style} style -> Style -Model.ModelMeshCFrame -Model.ModelMeshData -Model.ModelMeshSize -Model.NeedsPivotMigration -Model.ScaleFactor -Model.WorldPivotData +Model.ModelMeshCFrame {CFrame} +Model.ModelMeshData {SharedString} +Model.ModelMeshSize {Vector3} +Model.NeedsPivotMigration {bool} +Model.ScaleFactor {float} +Model.WorldPivotData {OptionalCoordinateFrame} -Workspace.AvatarUnificationMode +Workspace.AvatarUnificationMode {AvatarUnificationMode} Workspace.CollisionGroupData {BinaryString} -Workspace.ExplicitAutoJoints -Workspace.FluidForces -Workspace.IKControlConstraintSupport -Workspace.MeshPartHeadsAndAccessories -Workspace.ModelStreamingBehavior -Workspace.MoverConstraintRootBehavior -Workspace.PathfindingUseImprovedSearch -Workspace.PhysicsSteppingMethod -Workspace.PlayerCharacterDestroyBehavior -Workspace.PrimalPhysicsSolver -Workspace.RejectCharacterDeletions -Workspace.RenderingCacheOptimizations -Workspace.ReplicateInstanceDestroySetting -Workspace.SandboxedInstanceMode -Workspace.SignalBehavior2 -Workspace.StreamOutBehavior -Workspace.StreamingIntegrityMode -Workspace.StreamingMinRadius -Workspace.StreamingTargetRadius -Workspace.TerrainWeldsFixed -Workspace.TouchEventsUseCollisionGroups -Workspace.TouchesUseCollisionGroups +Workspace.ExplicitAutoJoints {bool} +Workspace.FluidForces {FluidForces} +Workspace.IKControlConstraintSupport {IKControlConstraintSupport} +Workspace.MeshPartHeadsAndAccessories {MeshPartHeadsAndAccessories} +Workspace.ModelStreamingBehavior {ModelStreamingBehavior} +Workspace.MoverConstraintRootBehavior {MoverConstraintRootBehaviorMode} +Workspace.PathfindingUseImprovedSearch {PathfindingUseImprovedSearch} +Workspace.PhysicsImprovedSleep {RolloutState} +Workspace.PhysicsSteppingMethod {PhysicsSteppingMethod} +Workspace.PlayerCharacterDestroyBehavior {PlayerCharacterDestroyBehavior} +Workspace.PrimalPhysicsSolver {PrimalPhysicsSolver} +Workspace.RejectCharacterDeletions {RejectCharacterDeletions} +Workspace.RenderingCacheOptimizations {RenderingCacheOptimizationMode} +Workspace.ReplicateInstanceDestroySetting {ReplicateInstanceDestroySetting} +Workspace.SandboxedInstanceMode {SandboxedInstanceMode} +Workspace.SignalBehavior2 {SignalBehavior} +Workspace.StreamOutBehavior {StreamOutBehavior} +Workspace.StreamingIntegrityMode {StreamingIntegrityMode} +Workspace.StreamingMinRadius {int} +Workspace.StreamingTargetRadius {int} +Workspace.TerrainWeldsFixed {bool} +Workspace.TouchEventsUseCollisionGroups {RolloutState} +Workspace.TouchesUseCollisionGroups {bool} +TouchEventsUseCollisionGroups -> PhysicsImprovedSleep SignalBehavior2 -> SignalBehavior -PackageLink.PackageIdSerialize -PackageLink.VersionIdSerialize +PackageLink.PackageIdSerialize {ContentId} +PackageLink.VersionIdSerialize {int64} PartOperationAsset.ChildData {BinaryString} PartOperationAsset.MeshData {BinaryString} Player.RawJoinData {BinaryString} -Players.BanningEnabled -Players.UseStrafingAnimations +Players.BanningEnabled {bool} +Players.UseStrafingAnimations {bool} RotationCurve.ValuesAndTimes {BinaryString} -ScriptDebugger.CoreScriptIdentifier -ScriptDebugger.ScriptGuid +ScriptDebugger.CoreScriptIdentifier {string} +ScriptDebugger.ScriptGuid {string} -ServerScriptService.LoadStringEnabled +ServerScriptService.LoadStringEnabled {bool} -Smoke.opacity_xml -Smoke.riseVelocity_xml -Smoke.size_xml +Smoke.opacity_xml {float} +Smoke.riseVelocity_xml {float} +Smoke.size_xml {float} -SoundService.VolumetricAudio +SoundService.VolumetricAudio {VolumetricAudio} -StarterPlayer.AvatarJointUpgrade_SerializedRollout -StarterPlayer.EnableDynamicHeads -StarterPlayer.LoadCharacterLayeredClothing +StarterPlayer.AvatarJointUpgrade_SerializedRollout {RolloutState} +StarterPlayer.EnableDynamicHeads {LoadDynamicHeads} +StarterPlayer.LoadCharacterLayeredClothing {LoadCharacterLayeredClothing} AvatarJointUpgrade_SerializedRollout -> AvatarJointUpgrade LoadCharacterLayeredClothing -> LoadCharacterLayeredClothing StyleRule.PropertiesSerialize {BinaryString} -StyleDerive.Index +StyleDerive.Index {int} -TerrainDetail.TexturePack +TerrainDetail.TexturePack {ContentId} -TerrainRegion.ExtentsMax -TerrainRegion.ExtentsMin +TerrainRegion.ExtentsMax {Vector3int16} +TerrainRegion.ExtentsMin {Vector3int16} TerrainRegion.SmoothGrid {BinaryString} -UnvalidatedAssetService.CachedData +UnvalidatedAssetService.CachedData {string} -UserGameSettings.CompletedTutorials -UserGameSettings.ComputerCameraMovementChanged -UserGameSettings.ComputerMovementChanged -UserGameSettings.StartMaximized -UserGameSettings.StartScreenPosition -UserGameSettings.StartScreenSize -UserGameSettings.TouchCameraMovementChanged -UserGameSettings.TouchMovementChanged -UserGameSettings.gaID +UserGameSettings.CompletedTutorials {string} +UserGameSettings.ComputerCameraMovementChanged {bool} +UserGameSettings.ComputerMovementChanged {bool} +UserGameSettings.StartMaximized {bool} +UserGameSettings.StartScreenPosition {Vector2} +UserGameSettings.StartScreenSize {Vector2} +UserGameSettings.TouchCameraMovementChanged {bool} +UserGameSettings.TouchMovementChanged {bool} +UserGameSettings.gaID {string} BinaryStringValue.Value {BinaryString} -DoubleConstrainedValue.value +DoubleConstrainedValue.value {double} -IntConstrainedValue.value +IntConstrainedValue.value {int64} -WeldConstraint.CFrame0 -WeldConstraint.Part0Internal -WeldConstraint.Part1Internal -WeldConstraint.State +WeldConstraint.CFrame0 {CFrame} +WeldConstraint.Part0Internal {BasePart} +WeldConstraint.Part1Internal {BasePart} +WeldConstraint.State {int} Potential Proxy Properties: +EditableImage.IsReplicatedCopy {Serialize: False} +EditableMesh.IsReplicatedCopy {Serialize: False} +Instance.AttributesReplicate {Serialize: False} Instance.AttributesSerialize +Animator.FacsReplicationData {Serialize: False} BallSocketConstraint.MaxFrictionTorqueXml Fire.heat_xml Fire.size_xml +Folder.ReplicatedGuiInsertionOrder {Serialize: False} +GuiBase2d.ReplicatedInsertionOrder {Serialize: False} +VideoFrame.PlayingReplicating {Serialize: False} +VideoFrame.TimePositionReplicating {Serialize: False} Path2D.PropertiesSerialize Humanoid.Health_XML Humanoid.InternalBodyScale Humanoid.InternalDisplayName {Scriptable} {Serialize: False} Humanoid.InternalHeadScale Humanoid.InternalOriginalHipHeight {Serialize: False} +Humanoid.JumpReplicate {Serialize: False} Humanoid.MoveDirectionInternal {Serialize: False} HumanoidDescription.EmotesDataInternal HumanoidDescription.EquippedEmotesDataInternal IncrementalPatchBuilder.SerializePatch {Scriptable} +Motor.ReplicateCurrentAngle {Serialize: False} +Motor6D.ReplicateCurrentAngle6D {Serialize: False} +Motor6D.ReplicateCurrentOffset6D {Serialize: False} MaterialService.Use2022MaterialsXml MetaBreakpointContext.ContextDataInternal +NetworkSettings.IncomingReplicationLag {Scriptable} +BasePart.CollisionGroupReplicate {Serialize: False} BasePart.MaterialVariantSerialized +BasePart.ReplicationPV {Serialize: False} TriangleMeshPart.FluidFidelityInternal +MeshPart.RenderFidelityReplicate {Serialize: False} PartOperation.SerializedCSGTree {Serialize: False} PartOperation.SerializedOperationGraph {Serialize: False} +Workspace.ReplicateInstanceDestroySetting PackageLink.PackageIdSerialize PackageLink.SerializedDefaultAttributes {Scriptable} PackageLink.VersionIdSerialize +PhysicsSettings.AreTerrainReplicationRegionsShown {Scriptable} +Player.AccountAgeReplicate {Serialize: False} +Player.CountryRegionCodeReplicate {Serialize: False} +Player.FollowUserIdReplicated {Serialize: False} Player.InternalCharacterAppearanceLoaded {Serialize: False} +Player.MembershipTypeReplicate {Serialize: False} +Player.ReplicationFocus {Scriptable} +Player.SuperSafeChatReplicate {Serialize: False} PlayerEmulatorService.SerializedEmulatedPolicyInfo {Scriptable} Players.MaxPlayersInternal {Scriptable} Players.PreferredPlayersInternal {Scriptable} Smoke.opacity_xml Smoke.riseVelocity_xml Smoke.size_xml +Sound.PlayingReplicator {Serialize: False} +Sound.TimePositionReplicator {Serialize: False} Sound.xmlRead_MaxDistance_3 {Serialize: False} Sound.xmlRead_MinDistance_3 {Serialize: False} StarterPlayer.AvatarJointUpgrade_SerializedRollout Studio.Enable Internal Beta Features {Scriptable} Studio.Enable Internal Features {Scriptable} StyleRule.PropertiesSerialize +TextSource.UserIdReplicated {Serialize: False} WeldConstraint.Part0Internal WeldConstraint.Part1Internal diff --git a/Tools/NotScriptable-Related/NotScriptable Dumper/NotScriptable Dumper.py b/Tools/NotScriptable-Related/NotScriptable Dumper/NotScriptable Dumper.py index 614e583..5212e41 100644 --- a/Tools/NotScriptable-Related/NotScriptable Dumper/NotScriptable Dumper.py +++ b/Tools/NotScriptable-Related/NotScriptable Dumper/NotScriptable Dumper.py @@ -78,14 +78,16 @@ def fetch_api(): 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 ''}" + s += f"{class_name}.{member_name} {{{value_type}}}" for item in original_tags: if isinstance(item, dict): s += f"{'{PreferredDescriptorName: '+item.get('PreferredDescriptorName')+'}'}" s += "\n" - if re.search(r"xml|internal|serial", member_name, re.IGNORECASE): + if re.search( + r"xml|internal|serial|replica", member_name, re.IGNORECASE + ): str = f"{class_name}.{member_name}" if not special: diff --git a/Tools/NotScriptable-Related/NotScriptable Proxy Dumper/Dump b/Tools/NotScriptable-Related/NotScriptable Proxy Dumper/Dump index ea1ea47..6d79052 100644 --- a/Tools/NotScriptable-Related/NotScriptable Proxy Dumper/Dump +++ b/Tools/NotScriptable-Related/NotScriptable Proxy Dumper/Dump @@ -2,41 +2,77 @@ Doesnt get everything; Also varies per executor; Tested on Codex BallSocketConstraint.MaxFrictionTorqueXml - MaxFrictionTorque -BasePart.MaterialVariantSerialized - MaterialVariant -BasePart.MaterialVariantSerialized - CurrentPhysicalProperties -BasePart.MaterialVariantSerialized - PropertyStatusStudio +BasePart.size - Size +BasePart.size - AssemblyMass +BasePart.size - Mass +BasePart.CollisionGroup - CollisionGroupReplicate +BasePart.MaterialVariant - MaterialVariantSerialized +BasePart.MaterialVariant - PropertyStatusStudio +BasePart.CollisionGroupReplicate - CollisionGroupId +BasePart.CollisionGroupReplicate - CollisionGroup +BasePart.CollisionGroupId - CollisionGroupReplicate -DoubleConstrainedValue.value - Value +DoubleConstrainedValue.ConstrainedValue - value +DoubleConstrainedValue.Value - value +Fire.Heat - heat_xml Fire.size_xml - Size -Fire.heat_xml - Heat +Fire.size - size_xml -FormFactorPart.formFactorRaw - FormFactor +HopperBin.TextureName - TextureId -Humanoid.Health_XML - Health +Humanoid.Jump - JumpReplicate +Humanoid.Health - Health_XML +Humanoid.InternalOriginalHipHeight - InternalBodyScale +Humanoid.JumpReplicate - Jump +Humanoid.MoveDirectionInternal - MoveDirection -IntConstrainedValue.value - Value +Instance.Sandboxed - DefinesCapabilities -LuaSourceContainer.ScriptGuid - OriginalScriptGuid +IntConstrainedValue.ConstrainedValue - value MaterialService.Use2022MaterialsXml - Use2022Materials +MaterialService.Use2022Materials - Use2022MaterialsXml MeshPart.InitialSize - MeshSize +Model.Scale - ScaleFactor + +PVInstance.Origin - WorldPivotData +PVInstance.Origin - WorldPivot + Part.shape - Shape Part.shape - AssemblyMass Part.shape - AssemblyCenterOfMass +Player.AccountAgeReplicate - AccountAge + +Smoke.Opacity - opacity_xml +Smoke.RiseVelocity - riseVelocity_xml Smoke.opacity_xml - Opacity Smoke.size_xml - Size -Smoke.riseVelocity_xml - RiseVelocity Sound.xmlRead_MaxDistance_3 - MaxDistance Sound.xmlRead_MaxDistance_3 - RollOffMaxDistance +Sound.PlayingReplicator - Playing +Sound.TimePositionReplicator - TimePosition +StyleRule.Index - Priority + +TextSource.UserIdReplicated - UserId + +VideoFrame.TimePositionReplicating - TimePosition +VideoFrame.TimePosition - TimePositionReplicating +VideoFrame.PlayingReplicating - Playing +VideoFrame.Playing - PlayingReplicating + +WeldConstraint.Enabled - State +WeldConstraint.Part1 - Part1Internal WeldConstraint.CFrame0 - State -WeldConstraint.Part0Internal - Part0 -WeldConstraint.Part1Internal - Part1 +WeldConstraint.State - Enabled +WeldConstraint.Part0 - Part0Internal +Workspace.CollisionGroups - CollisionGroupData +Workspace.TouchesUseCollisionGroups - TouchEventsUseCollisionGroups Workspace.SignalBehavior2 - SignalBehavior diff --git a/Tools/NotScriptable-Related/NotScriptable Proxy Dumper/NotScriptable Proxy Dumper.luau b/Tools/NotScriptable-Related/NotScriptable Proxy Dumper/NotScriptable Proxy Dumper.luau index 2389fd2..5cec3df 100644 --- a/Tools/NotScriptable-Related/NotScriptable Proxy Dumper/NotScriptable Proxy Dumper.luau +++ b/Tools/NotScriptable-Related/NotScriptable Proxy Dumper/NotScriptable Proxy Dumper.luau @@ -47,9 +47,7 @@ do local Class = {} local ClassName = API_Class.Name - -- if ClassName == "GuiService" then - -- continue - -- end + local ClassTags = API_Class.Tags if ClassTags then @@ -90,7 +88,11 @@ do local Serialization = Member.Serialization local ValueType = Member.ValueType - + if ClassName == "GuiService" then + if PropertyName == "CoreGuiFolder" then + continue + end + end local Property = { Name = PropertyName, Category = ValueType.Category, @@ -219,7 +221,7 @@ do if descriptor == PropertyName or alreadynoted[descriptor] then return end - if not_Special and isscriptable(instance, descriptor) then + if not_Special and isscriptable(instance, descriptor) then return end alreadynoted[descriptor] = true diff --git a/Tools/NotScriptable-Related/Potentially Missing Properties Dumper/Dump b/Tools/NotScriptable-Related/Potentially Missing Properties Dumper/Dump index 9fe3d0e..054a6d4 100644 --- a/Tools/NotScriptable-Related/Potentially Missing Properties Dumper/Dump +++ b/Tools/NotScriptable-Related/Potentially Missing Properties Dumper/Dump @@ -2,8 +2,12 @@ Varies per executor; Tested on Codex DebuggerBreakpoint.line {NotCreatable Class} +EditableMesh.MeshData {NotCreatable Class} + BasePart.Color3uint8 Unable to get property Color3uint8, type Color3uint8 +EditableImage.ImageData {NotCreatable Class} + Instance.UniqueId Unable to get property UniqueId, type UniqueId Instance.HistoryId Unable to get property HistoryId, type UniqueId diff --git a/saveinstance.luau b/saveinstance.luau index f978148..cae5133 100644 --- a/saveinstance.luau +++ b/saveinstance.luau @@ -84,8 +84,9 @@ local service = setmetatable({}, { -- if cloneref then -- Service = cloneref(Service) -- end - + if Service then self[serviceName] = Service + end return Service end, }) @@ -224,7 +225,7 @@ do -- * Load Region of Déjà Vu end end -local custom_decompiler +-- local custom_decompiler -- if getscriptbytecode then -- end @@ -1425,6 +1426,7 @@ do local ClassWhitelist, ClassBlacklist = ClassesWhitelist[ClassName], ClassesBlacklist[ClassName] for _, Member in API_Class.Members do + -- ? print(game:GetService("ReflectionService"):GetPropertyNames("TextBox")) if Member.MemberType == "Property" then local Serialization = Member.Serialization @@ -1559,7 +1561,7 @@ local GLOBAL_ENV = getgenv and getgenv() or _G or shared --- @field mode string -- Valid modes: full, optimized, scripts. Change this to invalid mode like "invalid" if you only want ExtraInstances. "optimized" mode is **NOT** supported with *@Object* option. ___Default:___ `"optimized"` --- @field noscripts boolean -- ___Aliases:___ `Decompile`. ___Default:___ false --- @field scriptcache boolean -- ___Default:___ true ---- @field decomptype string -- * "custom" - for built-in custom decompiler. ___Default:___ Your executor's decompiler, if available. Otherwise uses "custom" if not. +--- @field decomptype string -- * Deprecated. ___Default:___ Uses your executor's decompiler, if available. --- @field timeout number -- If the decompilation run time exceeds this value it gets cancelled. Set to -1 to disable timeout (unreliable). ***Aliases***: `DecompileTimeout`. ___Default:___ 10 --- @field DecompileJobless boolean -- Includes already decompiled code in the output. No new scripts are decompiled. ___Default:___ false --- @field SaveBytecode boolean -- Includes bytecode in the output. Useful if you wish to be able to decompile it yourself later. ___Default:___ false @@ -1646,7 +1648,7 @@ local function synsaveinstance(CustomOptions, CustomOptions2) mode = "optimized", noscripts = false, scriptcache = true, - decomptype = "", + -- decomptype = "", timeout = 10, -- * New: __DEBUG_MODE = false, @@ -1852,6 +1854,7 @@ local function synsaveinstance(CustomOptions, CustomOptions2) if OPTIONS.IgnoreDefaultPlayerScripts then -- TODO This is a bad workaround, find a better automatic way + -- TODO Look into https://robloxapi.github.io/ref/class/LuaSourceContainer.html#member-isPlayerScript local DecompileIgnore = OPTIONS.DecompileIgnore local Path = service.StarterPlayer:FindFirstChild("StarterPlayerScripts") @@ -2207,7 +2210,7 @@ local function synsaveinstance(CustomOptions, CustomOptions2) end do - local Decompiler = OPTIONS.decomptype == "custom" and custom_decompiler or decompile or custom_decompiler + local Decompiler = decompile--OPTIONS.decomptype == "custom" and custom_decompiler or decompile or custom_decompiler -- if Decompiler == custom_decompiler then -- Cope -- local key = "DecompileTimeout" @@ -2582,6 +2585,7 @@ local function synsaveinstance(CustomOptions, CustomOptions2) if not default_instance then local ClassTags = ClassList[ClassName].Tags if not (ClassTags and ClassTags.NotCreatable) then -- __api_dump_class_not_creatable__ also indicates this + -- ! TODO Player Class is an exception, due to thread identity lvl new_def_inst = Instance.new(ClassName) -- ! Assuming anything that doesn't have NotCreatable is possible to create (therefore no pcall) default_instance = {} @@ -2614,9 +2618,21 @@ local function synsaveinstance(CustomOptions, CustomOptions2) continue end - local Category, Optional, Special = Property.Category, Property.Optional, Property.Special + local Special = Property.Special - local raw = ReadProperty(instance, Property, PropertyName, Special, Category, Optional) + -- if -- ! Not enabled yet (580), uncomment asap once enabled + + -- not Special -- TODO: .Special is checked more than once (because it might be updated during ReadProperty) + -- and not (PropertyName == "Source" and isLuaSourceContainer(instance)) + -- then -- ? Could be not just "Source" in the future + -- if not instance:IsPropertyModified(PropertyName) then + -- continue + -- end + -- end + local Category, Optional = Property.Category, Property.Optional + + local raw = UNREADABLE_BINARY_STRINGS and ValueType == "BinaryString" and __BREAK -- TODO Improve this somehow, not ideal to check it every time + or ReadProperty(instance, Property, PropertyName, Special, Category, Optional) if raw == __BREAK then -- ! Assuming __BREAK is always returned when there's a failure to read a property local ok, result = pcall(gethiddenproperty_fallback, instance, PropertyName) -- * This helps in reading: Vector3int16, OptionalCoordinateFrame DataTypes. It also acts as an almost entire fallback for gethiddenproperty in case it is missing @@ -2665,7 +2681,6 @@ local function synsaveinstance(CustomOptions, CustomOptions2) if default_instance[PropertyName] == raw then continue end - -- local ok, IsModified = pcall(IsPropertyModified, instance, PropertyName) -- ? Not yet enabled lol (580) end -- Serialization start