Skip to content

name MirageStoreSetItem columns 2 through 10#51

Merged
WorkingRobot merged 3 commits intoxivdev:mainfrom
ArcaneDisgea:main
Mar 24, 2025
Merged

name MirageStoreSetItem columns 2 through 10#51
WorkingRobot merged 3 commits intoxivdev:mainfrom
ArcaneDisgea:main

Conversation

@ArcaneDisgea
Copy link
Contributor

Using Boilmaster response as an example, MirageStoreSetItem key 45156, the emperor's new attire.

{
  "schema": "exdschema@48db4b87e3afd753676f96a804d06a97347cc11d-2024.11.06.0000.0000",
  "row_id": 45156,
  "fields": {
    "Unknown0": 0,
    "Unknown1": 0,
    "Unknown2": 10032,
    "Unknown3": 10033,
    "Unknown4": 10034,
    "Unknown5": 10035,
    "Unknown6": 10036,
    "Unknown7": 9293,
    "Unknown8": 9292,
    "Unknown9": 9294,
    "Unknown10": 9295
  }
}

Querying for each item shows their associated ItemUICategory. Column name holds true through the entire sheet.

{
  "schema": "exdschema@48db4b87e3afd753676f96a804d06a97347cc11d-2024.11.06.0000.0000",
  "rows": [
    {
      "row_id": 10032,
      "fields": {
        "ItemUICategory": {
          "value": 34,
          "sheet": "ItemUICategory",
          "row_id": 34,
          "fields": {
            "Name": "Head"
          }
        },
        "Name": "The Emperor's New Hat"
      }
    },
    {
      "row_id": 10033,
      "fields": {
        "ItemUICategory": {
          "value": 35,
          "sheet": "ItemUICategory",
          "row_id": 35,
          "fields": {
            "Name": "Body"
          }
        },
        "Name": "The Emperor's New Robe"
      }
    },
    {
      "row_id": 10034,
      "fields": {
        "ItemUICategory": {
          "value": 37,
          "sheet": "ItemUICategory",
          "row_id": 37,
          "fields": {
            "Name": "Hands"
          }
        },
        "Name": "The Emperor's New Gloves"
      }
    },
    {
      "row_id": 10035,
      "fields": {
        "ItemUICategory": {
          "value": 36,
          "sheet": "ItemUICategory",
          "row_id": 36,
          "fields": {
            "Name": "Legs"
          }
        },
        "Name": "The Emperor's New Breeches"
      }
    },
    {
      "row_id": 10036,
      "fields": {
        "ItemUICategory": {
          "value": 38,
          "sheet": "ItemUICategory",
          "row_id": 38,
          "fields": {
            "Name": "Feet"
          }
        },
        "Name": "The Emperor's New Boots"
      }
    },
    {
      "row_id": 9293,
      "fields": {
        "ItemUICategory": {
          "value": 41,
          "sheet": "ItemUICategory",
          "row_id": 41,
          "fields": {
            "Name": "Earrings"
          }
        },
        "Name": "The Emperor's New Earrings"
      }
    },
    {
      "row_id": 9292,
      "fields": {
        "ItemUICategory": {
          "value": 40,
          "sheet": "ItemUICategory",
          "row_id": 40,
          "fields": {
            "Name": "Necklace"
          }
        },
        "Name": "The Emperor's New Necklace"
      }
    },
    {
      "row_id": 9294,
      "fields": {
        "ItemUICategory": {
          "value": 42,
          "sheet": "ItemUICategory",
          "row_id": 42,
          "fields": {
            "Name": "Bracelets"
          }
        },
        "Name": "The Emperor's New Bracelet"
      }
    }
  ]
}

Of note Unknown0 and Unknown1 are just 0 straight through the entire sheet. I would assume it's mainhand/offhand and they are giving themselves that space rather than adding new columns later but until they actually add something to confirm that I wouldn't be comfortable naming those.

Copy link
Collaborator

@WorkingRobot WorkingRobot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Try changing all of them to linked fields like so:

  - name: Head
    type: link
    targets: [Item]

Also, would it be more beneficial to do this via an array? I'm not sure if explicitly defining each column is a good idea.

change to linked fields
@ArcaneDisgea
Copy link
Contributor Author

Try changing all of them to linked fields like so:

  - name: Head
    type: link
    targets: [Item]

Also, would it be more beneficial to do this via an array? I'm not sure if explicitly defining each column is a good idea.

Updated to linked fields.

With regards to an array, I think named fields are much better for consumers and an array in this context would be ambiguous and require each consumer to either refer to docs on what each entry applies to or redo the legwork to find each entry. I think that work should be centralized by the schema rather than every consumer getting surprised in the event of a column shift and all having to do the same work over again.

Additionally the rows can be quite sparse in some cases ( swimsuit outfits only having two or three of the nine possible pieces ) meaning there would be a plethora of 0 or empty values in many rows.

@mattantonelli
Copy link

These column names are correct, but I'm not sure what the benefit is. Can you provide a use case?

For my use case, I'm going to be storing a list of items associated with an outfit. The equipment slot is not consequential in the context of the glamour dresser. But if I wanted it, I could always refer to the data on the Item itself.

Co-authored-by: Haselnussbomber <mail@haselnussbomber.de>
@WorkingRobot WorkingRobot merged commit b53329e into xivdev:main Mar 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants