diff --git a/Tools/Fake NotCreatable Dumper/Dump b/Tools/Fake NotCreatable Dumper/Dump new file mode 100644 index 0000000..8213794 --- /dev/null +++ b/Tools/Fake NotCreatable Dumper/Dump @@ -0,0 +1,34 @@ +Varies per executor; Tested on Codex + +Breakpoint {Fake Creatable} + +InternalSyncItem {Fake Creatable} + +ReflectionMetadata {Fake Creatable} + +ReflectionMetadataCallbacks {Fake Creatable} + +ReflectionMetadataClass {Fake Creatable} + +ReflectionMetadataClasses {Fake Creatable} + +ReflectionMetadataEnum {Fake Creatable} + +ReflectionMetadataEnumItem {Fake Creatable} + +ReflectionMetadataEnums {Fake Creatable} + +ReflectionMetadataEvents {Fake Creatable} + +ReflectionMetadataFunctions {Fake Creatable} + +ReflectionMetadataMember {Fake Creatable} + +ReflectionMetadataProperties {Fake Creatable} + +ReflectionMetadataYieldFunctions {Fake Creatable} + +StudioAttachment {Fake Creatable} + +StudioCallout {Fake Creatable} + diff --git a/Tools/Fake NotCreatable Dumper/Fake NotCreatable Dumper.luau b/Tools/Fake NotCreatable Dumper/Fake NotCreatable Dumper.luau new file mode 100644 index 0000000..eb3aaba --- /dev/null +++ b/Tools/Fake NotCreatable Dumper/Fake NotCreatable Dumper.luau @@ -0,0 +1,101 @@ +-- Dumps all properties that get changed when NotScriptable property is changed. This means they're somehow related to it and/or are in sync with it +-- Doesnt get everything! +local service = setmetatable({}, { + __index = function(Self, Name) + local Service = game:GetService(Name) + Self[Name] = Service + return Service + end, +}) +local function ArrayToDictionary(Table, HybridMode) + local tmp = table.create(#Table) + + if HybridMode == "adjust" then + for Some1, Some2 in Table do + if type(Some1) == "number" then + tmp[Some2] = 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 + tmp[Key] = true + end + end + + return tmp +end +do + -- TODO: More @ https://github.com/Dekkonot/rbx-instance-serializer/blob/23f772f6f78af879a21faa9fea3e6c4f93d1cdee/src/API.lua#L19 + + local function FetchAPI() + local API_Dump_Url = + "https://raw.githubusercontent.com/MaximumADHD/Roblox-Client-Tracker/roblox/Mini-API-Dump.json" + local API_Dump = game:HttpGet(API_Dump_Url, true) + local API_Classes = service.HttpService:JSONDecode(API_Dump).Classes + + local classList = {} + for _index_0 = 1, #API_Classes do + local API_Class = API_Classes[_index_0] + + local Class = {} + + local ClassName = API_Class.Name + + local ClassTags = API_Class.Tags + + if ClassTags then + ClassTags = ArrayToDictionary(ClassTags) + end + + -- ClassInfo.Name = ClassName + Class.Tags = ClassTags -- or {} + local Superclass = API_Class.Superclass + Class.Superclass = Superclass + + classList[ClassName] = Class + end + + -- classList.Instance.Properties.Parent = nil -- ? Not sure if this is a better option than filtering throguh properties to remove this + + return classList + end + + local api = FetchAPI() + local keys = {} + for classname in api do + table.insert(keys, classname) + end + table.sort(keys) + local s = `Varies per executor; Tested on {identifyexecutor()}\n\n` + for _, ClassName in keys do + local prevsiz = #s + local ClassInfo = api[ClassName] + local Tags = ClassInfo.Tags + local NotCreatable = Tags and Tags.NotCreatable + + local o, r = pcall(Instance.new, ClassName) + + if NotCreatable and o then + s ..= ClassName .. " {Fake NotCreatable}\n" + elseif not (o or NotCreatable) then + s ..= ClassName .. " {Fake Creatable}\n" + print(ClassName, r) + elseif typeof(r) ~= "Instance" then + warn(ClassName, r) + end + + if prevsiz ~= #s then + s ..= "\n" + end + end + warn("Finished") + -- warn(s) + task.wait(0.5) + print(s) + setclipboard(s) + -- writefile("!missing.txt", game:GetService("HttpService"):JSONEncode(t)) +end diff --git a/Tools/Interesting Properties Behavior/Dump b/Tools/Interesting Properties Behavior/Dump index aad261a..30cced6 100644 --- a/Tools/Interesting Properties Behavior/Dump +++ b/Tools/Interesting Properties Behavior/Dump @@ -6,9 +6,14 @@ Instance.archivable {Deprecated} AdPortal.PortalVersion {CanSave Only} AnalyticsService.ApiKey {Deprecated} {CanSave} +AnalyticsService is NotCreatable but AnalyticsService.ApiKey has a default value: AnimationTrack.TimePosition {CanLoad Only} +AssetDeliveryProxy is NotCreatable but AssetDeliveryProxy.Interface has a default value: + +AssetPatchSettings is NotCreatable but AssetPatchSettings.ContentId has a default value: + Attachment.Axis {CanLoad Only} Attachment.SecondaryAxis {CanLoad Only} Attachment.WorldAxis {CanLoad Only} @@ -29,6 +34,12 @@ AudioPlayer.TimeLength {CanSave Only} AudioSearchParams.AudioSubtype {CanLoad Only} AudioSearchParams.AudioSubtype {Deprecated} +AvatarChatService is NotCreatable but AvatarChatService.ClientFeatures has a default value: 0 + +Avatar2DGenerationJob is NotCreatable but Avatar2DGenerationJob.Result has a default value: + +Avatar3DGenerationJob is NotCreatable but Avatar3DGenerationJob.Result has a default value: + BaseImportData.Id {CanSave Only} MaterialImportData.IsPbr {CanSave Only} @@ -48,6 +59,8 @@ RootImportData.PolygonCount {CanSave Only} CoreGui.Version {CanSave Only} +PlayerGui is NotCreatable but PlayerGui.CurrentScreenOrientation has a default value: LandscapeLeft + StarterGui.ResetPlayerGuiOnSpawn {Deprecated} {CanSave} BodyAngularVelocity.angularvelocity {CanLoad Only} @@ -95,11 +108,15 @@ BodyColors.TorsoColor {CanLoad Only} Clothing.Outfit1 {CanLoad Only} Clothing.Outfit2 {CanLoad Only} +Chat is NotCreatable but Chat.BubbleChatEnabled has a default value: false + DragDetector.Axis {CanLoad Only} 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__ + CommandInstance.Checked {CanLoad Only} CommandInstance.DisplayName {CanLoad Only} CommandInstance.Enabled {CanLoad Only} @@ -107,6 +124,7 @@ CommandInstance.Icon {CanLoad Only} CommandInstance.StatusTip {CanLoad Only} ConnectivityService.NetworkStatus {CanSave Only} +ConnectivityService is NotCreatable but ConnectivityService.NetworkStatus has a default value: Unknown HingeConstraint.CurrentAngle {CanSave Only} HingeConstraint.SoftlockServoUponReachingTarget {Deprecated} {CanSave} @@ -145,6 +163,7 @@ DataStoreObjectVersionInfo.IsDeleted {CanSave Only} DataStoreObjectVersionInfo.Version {CanSave Only} DataStoreService.LegacyNamingScheme {Deprecated} {CanSave} +DataStoreService is NotCreatable but DataStoreService.AutomaticRetry has a default value: true Debris.MaxItems {Deprecated} {CanSave} @@ -154,13 +173,25 @@ DebugSettings.JobCount {CanSave Only} DebugSettings.PlayerCount {CanSave Only} DebugSettings.RobloxVersion {CanSave Only} +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__ + +ExperienceStateCaptureService is NotCreatable but ExperienceStateCaptureService.IsInCaptureMode has a default value: false + +FaceAnimatorService is NotCreatable but FaceAnimatorService.AudioAnimationEnabled has a default value: true + Decal.Shiny {CanLoad Only} Decal.Shiny {Deprecated} Decal.Specular {CanLoad Only} Decal.Specular {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} Fire.Size {CanLoad Only} Fire.size {CanLoad Only} @@ -175,6 +206,8 @@ FunctionalTest.Timeout {CanLoad Only} GameSettings.VideoRecording {CanLoad Only} +GamepadService is NotCreatable but GamepadService.GamepadCursorEnabled has a default value: false + GuiBase2d.Localize {CanLoad Only} GuiBase2d.Localize {Deprecated} @@ -218,6 +251,7 @@ TextBox.TextWrap {Deprecated} ViewportFrame.CurrentCamera {CanLoad Only} DockWidgetPluginGui.HostWidgetWasRestored {CanSave Only} +DockWidgetPluginGui is NotCreatable but DockWidgetPluginGui.HostWidgetWasRestored has a default value: false ScreenGui.IgnoreGuiInset {CanLoad Only} @@ -235,6 +269,8 @@ Path2D.SelectedControlPointData {CanLoad Only} GuiService.MenuIsOpen {CanSave Only} +HttpService is NotCreatable but HttpService.HttpEnabled has a default value: false + Humanoid.CollisionType {Deprecated} {CanSave} Humanoid.Health {CanLoad Only} Humanoid.Jump {CanLoad Only} @@ -248,7 +284,12 @@ Humanoid.Torso {Deprecated} Humanoid.maxHealth {CanLoad Only} Humanoid.maxHealth {Deprecated} +IncrementalPatchBuilder is NotCreatable but IncrementalPatchBuilder.AddPathsToBundle has a default value: false + +InputObject is NotCreatable but InputObject.Delta has a default value: 0, 0, 0 + InsertService.AllowInsertFreeModels {Deprecated} {CanSave} +InsertService is NotCreatable but InsertService.AllowClientInsertModels has a default value: false InternalSyncItem.Target {CanLoad Only} @@ -258,19 +299,31 @@ Lighting.ClockTime {CanLoad Only} Lighting.Outlines {Deprecated} {CanSave} Lighting.ShadowColor {CanLoad Only} Lighting.ShadowColor {Deprecated} +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 + +LocalizationService is NotCreatable but LocalizationService.ForcePlayModeGameLocaleId has a default value: LocalizationTable.DevelopmentLanguage {CanLoad Only} LocalizationTable.DevelopmentLanguage {Deprecated} +LodDataEntity is NotCreatable but LodDataEntity.EntityData has a default value: __api_dump_no_string_value__ + BaseScript.LinkedSource {Deprecated} {CanSave} ModuleScript.LinkedSource {Deprecated} {CanSave} MarkerCurve.Length {CanSave Only} +MaterialService is NotCreatable but MaterialService.AsphaltName has a default value: Asphalt + MetaBreakpoint.Id {CanSave Only} MetaBreakpoint.IsLogpoint {CanSave Only} MetaBreakpoint.Valid {CanSave Only} +MetaBreakpoint is NotCreatable but MetaBreakpoint.Condition has a default value: + +MetaBreakpointContext is NotCreatable but MetaBreakpointContext.ContextDataInternal has a default value: 0 1 2 Mouse.Hit {CanSave Only} Mouse.Origin {CanSave Only} @@ -330,6 +383,7 @@ Part.shap {CanLoad Only} Terrain.ClusterGrid {CanLoad Only} Terrain.ClusterGridV2 {CanLoad Only} Terrain.ClusterGridV3 {CanLoad Only} +Terrain is NotCreatable but Terrain.AcquisitionMethod has a default value: None TriangleMeshPart.CollisionFidelity {CanLoad Only} TriangleMeshPart.FluidFidelity {CanLoad Only} @@ -349,6 +403,7 @@ Workspace.StreamingPauseMode {CanLoad Only} PackageLink.PackageId {CanSave Only} PackageLink.VersionNumber {CanLoad Only} +PackageLink is NotCreatable but PackageLink.AutoUpdate has a default value: false DataStoreKeyPages.Cursor {CanSave Only} @@ -357,14 +412,19 @@ DataStoreListingPages.Cursor {CanSave Only} ParticleEmitter.VelocitySpread {CanLoad Only} ParticleEmitter.VelocitySpread {Deprecated} +PatchMapping is NotCreatable but PatchMapping.FlattenTree has a default value: false + Path.Status {CanSave Only} PathfindingService.EmptyCutoff {CanLoad Only} PathfindingService.EmptyCutoff {Deprecated} +PathfindingService is NotCreatable but PathfindingService.EmptyCutoff has a default value: 0 Player.CharacterAppearance {Deprecated} {CanSave} Player.FollowUserId {CanSave Only} +PlayerEmulatorService is NotCreatable but PlayerEmulatorService.CustomPoliciesEnabled has a default value: false + PluginMenu.Icon {CanLoad Only} PluginMenu.Title {CanLoad Only} @@ -372,6 +432,8 @@ PluginToolbarButton.ClickableWhenViewportHidden {CanLoad Only} PluginToolbarButton.Enabled {CanLoad Only} PluginToolbarButton.Icon {CanLoad Only} +PolicyService is NotCreatable but PolicyService.IsLuobuServer has a default value: Unknown + Pose.MaskWeight {CanLoad Only} Pose.MaskWeight {Deprecated} @@ -379,16 +441,27 @@ RenderSettings.EnableFRM {CanLoad Only} RotationCurve.Length {CanSave Only} +SafetyService is NotCreatable but SafetyService.IsCaptureModeForReport has a default value: false + SyncScriptBuilder.RawBytecode {Deprecated} {CanSave} +SyncScriptBuilder is NotCreatable but SyncScriptBuilder.CompileTarget has a default value: CoreScript + +ScriptContext is NotCreatable but ScriptContext.ScriptsDisabled has a default value: false + +ScriptDebugger is NotCreatable but ScriptDebugger.CoreScriptIdentifier has a default value: Selection.SelectionBoxThickness {CanSave Only} Selection.SelectionLineThickness {CanSave Only} +ServerScriptService is NotCreatable but ServerScriptService.LoadStringEnabled has a default value: false + DataModel.PrivateServerId {CanSave Only} DataModel.PrivateServerOwnerId {CanSave Only} DataModel.VIPServerId {CanSave Only} DataModel.VIPServerOwnerId {CanSave Only} +ServiceVisibilityService is NotCreatable but ServiceVisibilityService.HiddenServices has a default value: + Smoke.Opacity {CanLoad Only} Smoke.RiseVelocity {CanLoad Only} Smoke.Size {CanLoad Only} @@ -402,11 +475,24 @@ Sound.xmlRead_MaxDistance_3 {Deprecated} {CanSave} Sound.xmlRead_MinDistance_3 {CanLoad Only} Sound.xmlRead_MinDistance_3 {Deprecated} +ChannelSelectorSoundEffect is NotCreatable but ChannelSelectorSoundEffect.Channel has a default value: 1 + +SoundService is NotCreatable but SoundService.AmbientReverb has a default value: NoReverb + Sparkles.Color {CanLoad Only} +StarterPlayer is NotCreatable but StarterPlayer.AllowCustomAnimations has a default value: true + Studio.UI Theme {CanSave Only} +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__ TaskScheduler.SchedulerDutyCycle {CanSave Only} TaskScheduler.SchedulerRate {CanSave Only} @@ -417,6 +503,8 @@ Team.AutoColorCharacters {Deprecated} Team.Score {CanLoad Only} Team.Score {Deprecated} +TeamCreateData is NotCreatable but TeamCreateData.InitialCameraCFrame has a default value: __api_dump_no_string_value__ + TeleportAsyncResult.PrivateServerId {CanSave Only} TeleportAsyncResult.ReservedServerAccessCode {CanSave Only} @@ -431,6 +519,18 @@ TestService.IsPhysicsEnvironmentalThrottled {CanLoad Only} TestService.TestCount {CanSave Only} TestService.WarnCount {CanSave Only} +BubbleChatConfiguration is NotCreatable but BubbleChatConfiguration.AdorneeName has a default value: HumanoidRootPart + +ChatInputBarConfiguration is NotCreatable but ChatInputBarConfiguration.AbsolutePosition has a default value: 0, 0 + +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__ + +TextChatService is NotCreatable but TextChatService.ChatTranslationEnabled has a default value: true + +TextSource is NotCreatable but TextSource.CanSend has a default value: true + Translator.LocaleId {CanSave Only} TweenBase.PlaybackState {CanSave Only} @@ -440,6 +540,8 @@ UIListLayout.VerticalPadding {CanLoad Only} UIPageLayout.CurrentPage {CanSave Only} +UnvalidatedAssetService is NotCreatable but UnvalidatedAssetService.CachedData has a default value: {"lastSaveTime":0,"lastKnownPublishRequest":0,"users":[]} + UserGameSettings.IsUsingCameraYInverted {CanSave Only} UserGameSettings.IsUsingGamepadCameraSensitivity {CanSave Only} UserGameSettings.MicroProfilerWebServerIP {CanSave Only} @@ -453,6 +555,9 @@ 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 DoubleConstrainedValue.ConstrainedValue {CanLoad Only} DoubleConstrainedValue.Value {CanLoad Only} @@ -460,8 +565,16 @@ DoubleConstrainedValue.Value {CanLoad Only} IntConstrainedValue.ConstrainedValue {CanLoad Only} IntConstrainedValue.Value {CanLoad Only} +VersionControlService is NotCreatable but VersionControlService.ScriptCollabEnabled has a default value: false + +VideoCaptureService is NotCreatable but VideoCaptureService.Active has a default value: false + VideoDeviceInput.IsReady {CanSave Only} +VoiceChatInternal is NotCreatable but VoiceChatInternal.VoiceChatState has a default value: Idle + +VoiceChatService is NotCreatable but VoiceChatService.EnableDefaultVoice has a default value: true + WeldConstraint.Active {CanSave Only} WeldConstraint.CFrame1 {CanLoad Only} WeldConstraint.Enabled {CanLoad Only} diff --git a/Tools/Interesting Properties Behavior/Interesting Properties Behavior.py b/Tools/Interesting Properties Behavior/Interesting Properties Behavior.py index b8308ff..dbc6e96 100644 --- a/Tools/Interesting Properties Behavior/Interesting Properties Behavior.py +++ b/Tools/Interesting Properties Behavior/Interesting Properties Behavior.py @@ -15,66 +15,76 @@ def array_to_dictionary(table, hybrid_mode=None): else: for value in table: if isinstance(value, str): - tmp[value] = True + tmp[value] = True return tmp + 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'] + api_classes = response.json()["Classes"] global s class_list = {} for api_class in api_classes: - class_name = api_class['Name'] - class_members = api_class['Members'] - class_tags = api_class.get('Tags') - + class_name = api_class["Name"] + class_members = api_class["Members"] + class_tags = api_class.get("Tags") + if class_tags: print(class_tags) class_tags = array_to_dictionary(class_tags) - + class_info = { - 'Tags': class_tags, - 'Superclass': api_class['Superclass'], - 'Properties': {} + "Tags": class_tags, + "Superclass": api_class["Superclass"], + "Properties": {}, } prev_len = len(s) - + for member in class_members: - if member['MemberType'] == "Property": - property_name = member['Name'] - ignored = False # Placeholder for actual ignored properties + if member["MemberType"] == "Property": + property_name = member["Name"] + ignored = False if not ignored: - member_tags = member.get('Tags') - + member_tags = member.get("Tags") if member_tags: member_tags = array_to_dictionary(member_tags) - - serialization = member['Serialization'] - if serialization['CanLoad']: - if not serialization['CanSave']: + serialization = member["Serialization"] + if serialization["CanLoad"]: + if not serialization["CanSave"]: s += f"{class_name}.{property_name} {{CanLoad Only}}\n" - if member_tags and member_tags.get('Deprecated'): + if member_tags and member_tags.get("Deprecated"): s += f"{class_name}.{property_name} {{Deprecated}} { ' {CanSave}' if serialization['CanSave'] else ''}\n" - elif serialization['CanSave']: + elif serialization["CanSave"]: s += f"{class_name}.{property_name} {{CanSave Only}}\n" - - - - + + class_info["Properties"][property_name] = { + "Serialization": serialization, + "Tags": member_tags, + "Default": member.get("Default"), + } + + 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__": + s += f"{class_name} is NotCreatable but {class_name}.{property_name} has a default value: {value}\n" + break + if len(s) != prev_len: s += "\n" class_list[class_name] = class_info - + return class_list diff --git a/Tools/NotScriptable-Related/NotScriptable Dumper/Dump b/Tools/NotScriptable-Related/NotScriptable Dumper/Dump index 65ec451..6d1b2de 100644 --- a/Tools/NotScriptable-Related/NotScriptable Dumper/Dump +++ b/Tools/NotScriptable-Related/NotScriptable Dumper/Dump @@ -179,6 +179,7 @@ Workspace.FluidForces Workspace.IKControlConstraintSupport Workspace.MeshPartHeadsAndAccessories Workspace.ModelStreamingBehavior +Workspace.MoverConstraintRootBehavior Workspace.PhysicsSteppingMethod Workspace.PlayerCharacterDestroyBehavior Workspace.PrimalPhysicsSolver