Roblox-Client-Tracker icon indicating copy to clipboard operation
Roblox-Client-Tracker copied to clipboard

Certain Property DataTypes Missing Default Values or Unexpected Format

Open phoriah opened this issue 10 months ago • 3 comments

This is only related to the Full-API-Dump.json and the Mini-API-Dump.json files.

Missing Values: BrickColor: Similar to CFrame, it's expected to be according to tostring method tostring(BrickColor.new()) or BrickColor.new().Name

CFrame:

  • All CFrame Properties Default Values are __api_dump_no_string_value__ (if not overridden by another __api_dump_ type exception)
  • Even though all of them can be represented as a string just fine (e.g. 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 is result of tostring(CFrame.new()))

DateTime: should be similar to tostring(DateTime.now())

OptionalCoordinateFrame: should be similar to CFrame

Region3int16: tostring(Region3int16.new()) for 0, 0, 0; 0, 0, 0 (e.g. workspace.Terrain.MaxExtents)

SharedString: __api_dump_no_string_value__ but could be in binary format instead (similar to BinaryStrings). Though not sure if this is possible, however the key is the MD5 hash of the string value (of Property Value itself)

Any ValueType with Category "Class" Default type of which is __api_dump_no_string_value__ should be nil if possible (similar to PhysicalProperties)

Unexpected Format: Font: Expected to be Font { Family = rbxasset://fonts/families/GothamMedium.json, Weight = Regular, Style = Normal }" not "GothamMedium, also sometimes appears as __api_dump_no_string_value__ even though it can be turned into a string.

PhysicalProperties:

  • In case of MaterialVariant.CustomPhysicalProperties: Default is expected to be nil but it appears as default
  • Non-Default: Not sure how such value would look like in the dump, e.g. in Studio it appears as 0.699999988, 0.300000012, 0.5, 1, 1

Notes:

  • There might be more missing types that can be represented as a string, despite the __api_dump_no_string_value__, through further formatting.
  • Enum is also worth mentioning being in format of Default instead of full string like Enum.ModelStreamingMode.Default but this isn't an issue and should stay that way tbh.

A general solution for majority of these is to use something similar to tostring as it works on most if not all DataTypes.

I understand that this might be harder to implement than it sounds but I would appreciate it very much if something can be done towards this.

phoriah avatar Apr 19 '24 15:04 phoriah

Also I've a few questions, if you don't mind.

  1. Is your app the one that sets the Default values or do they naturally appear in Roblox's files that you extract the Full Dumps from?
  2. There are certain Default values for Vector2 DataType Properties that appear as INF, INF. Let's say a similarly infinite (math.huge) Vector3 value was to appear in the Full Dump, do you know how it would be formatted? Will it be formatted as INF, INF, INF or will it be something else like inf, inf, inf similar to tostring(Vector3.new(math.huge,math.huge,math.huge))? Or would it depend on the DataType? Because for some reason it appears as Lowercase after tostring unlike Vector2 which is all Uppercase
  3. Similarly to Question 2, do you know how NaN (0/0) or -INF (-math.huge) values would be formatted in the Full Dump? Would it be all Uppercase like Vector2 or all Lowercase like Vector3? Or would it depend on the DataType too?

phoriah avatar Apr 19 '24 16:04 phoriah

The dumps are generated from Roblox Studio. I make no change to the data except removing whitespace in the mini api-dump. As such I have no control over what data they export.

MaximumADHD avatar Apr 20 '24 04:04 MaximumADHD

The dumps are generated from Roblox Studio. I make no change to the data except removing whitespace in the mini api-dump. As such I have no control over what data they export.

Would you be willing to format some of it though?

phoriah avatar Apr 24 '24 14:04 phoriah