1
Fork 0
mirror of https://github.com/xivdev/EXDSchema.git synced 2025-06-02 14:27:46 +00:00

Complete migration to new repository layout (#63)

* Wipe schemas

* Update metadata items

* Add gitmodules

* Add submodules

* Rename remotes

* Update submodules

* Update submodules

* Update CI/CD
This commit is contained in:
Asriel 2025-03-24 13:03:02 -07:00 committed by GitHub
parent 0648f0d0e0
commit 0356250422
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15309 changed files with 668 additions and 218740 deletions

87
.github/workflows/update-cron.yml vendored Normal file
View file

@ -0,0 +1,87 @@
name: Update Versions
on:
schedule:
- cron: '40 */2 * * *' # Every 2 hours at :40
workflow_dispatch:
jobs:
update:
name: Update Versions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: latest
fetch-depth: 0
persist-credentials: false
- name: Download EXDTools
uses: robinraju/release-downloader@v1
with:
repository: xivdev/EXDTools
fileName: 'EXDTooler'
latest: true
- name: Chmod Executable
run: chmod +x EXDTooler
- name: Retrieve cache
id: exd-cache
uses: actions/cache@v4
with:
path: data
key: exd-latest
- name: Download Latest Game Data
id: downloader
uses: WorkingRobot/ffxiv-downloader@v3
with:
output-path: data
regex: '^sqpack\/ffxiv\/0a0000\..+$'
- name: Hash Columns Old
id: hash-columns-old
run: |
echo "hash=${{hashFiles('.github/columns.yml')}}" >> "$GITHUB_OUTPUT"
- name: Run Column Exporter
run: ./EXDTooler export-columns -g data/sqpack -o .github/columns.yml
- name: Hash Columns New
id: hash-columns-new
run: |
echo "hash=${{hashFiles('.github/columns.yml')}}" >> "$GITHUB_OUTPUT"
- name: Create Branch
if: steps.hash-columns-old.outputs.hash != steps.hash-columns-new.outputs.hash
run: git branch ver/${{steps.downloader.outputs.version}}
- name: Commit Files
if: steps.hash-columns-old.outputs.hash != steps.hash-columns-new.outputs.hash
id: commit
run: |
git config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
git add .github/columns.yml
git commit -m "Add column data for ${{steps.downloader.outputs.version}}" --author="${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>"
- name: Push Changes
if: steps.hash-columns-old.outputs.hash != steps.hash-columns-new.outputs.hash
run: |
git checkout ver/${{steps.downloader.outputs.version}}
git reset --hard latest
git push origin --all
- name: Add submodule to main
if: steps.hash-columns-old.outputs.hash != steps.hash-columns-new.outputs.hash
run: |
git checkout main
git submodule add -b ver/${{steps.downloader.outputs.version}} -- https://github.com/${{github.repository}}.git schemas/${{steps.downloader.outputs.version}}
git add -A
git commit -m "Add version ${{steps.downloader.outputs.version}}" --author="${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>"
- name: Push new submodule
if: steps.hash-columns-old.outputs.hash != steps.hash-columns-new.outputs.hash
run: git push origin main

51
.github/workflows/update-submodules.yml vendored Normal file
View file

@ -0,0 +1,51 @@
name: Update Submodules
on:
repository_dispatch:
types: [version-push]
concurrency:
group: ${{github.workflow}}
cancel-in-progress: true
jobs:
update-submodule:
name: Update Submodules
runs-on: ubuntu-latest
permissions:
actions: write
contents: write
steps:
- name: Print Dispatch Info
run: |
echo "Actor: ${{github.event.client_payload.actor}}"
echo "Head Ref: ${{github.event.client_payload.head_ref}}"
echo "Head Sha: ${{github.event.client_payload.head_sha}}"
echo "Base Ref: ${{github.event.client_payload.base_ref}}"
- name: Checkout Main
uses: actions/checkout@v4
with:
ref: main
fetch-depth: 0
submodules: recursive
- name: Update Submodules
run: |
git submodule update --init --recursive
git submodule update --recursive --remote
- name: Commit Changes
id: commit
run: |
git config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
git add --all
git commit -m "Update submodules" --author="${{github.event.client_payload.actor}} <${{github.event.client_payload.actor}}@users.noreply.github.com>" || :
- name: Push Changes
run: |
git push

View file

@ -1,155 +1,112 @@
name: Validate Schemas
on: [push, pull_request]
name: Validate
run-name: "${{github.event.client_payload.pr_number && format('PR #{0} ({1})', github.event.client_payload.pr_number, github.event.client_payload.head_ref) || format('Push (@{0})', github.event.client_payload.actor)}}"
on:
repository_dispatch:
types: [version-pr, version-push]
concurrency:
group: ${{github.workflow}}-${{github.event.client_payload.head_ref}}
cancel-in-progress: true
jobs:
generate-matrix:
name: Generate Job Matrix
runs-on: ubuntu-latest
outputs:
changed_schema: ${{ steps.check-schemas.outputs.changed_schema }}
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: tj-actions/changed-files@v40
id: changed-files
# Don't run if there are no changes in the Schemas folder
- name: Check for changes in Schemas folder
id: check-schemas
run: |
changed_schema=false
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
if [[ $file == *"Schemas"* ]]; then
changed_schema=true
fi
done
echo "changed_schema=$changed_schema"
echo "changed_schema=$changed_schema" >> $GITHUB_OUTPUT
# Create a list of all game versions with a changed schema.
# We manually create a JSON string here because that's the only way
# to get this info into the matrix for the next job
- name: Set Matrix
if: steps.check-schemas.outputs.changed_schema == 'true'
id: set-matrix
run: |
JSON="{\"gamever\":["
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
folder="$(basename "$(dirname "$file")")"
# do something with $folder
echo "$folder"
JSONline="\"$folder\","
# de-dupe and ignore non-game versions
if [[ "$JSON" != *"$JSONline"* ]]; then
# grep regex for \d{4}\.\d{2}\.\d{2}\.\d{4}\.\d{4}
if [[ $folder =~ ^[0-9]{4}\.[0-9]{2}\.[0-9]{2}\.[0-9]{4}\.[0-9]{4}$ ]]; then
JSON="$JSON$JSONline"
fi
fi
done
# Remove last "," and add the closing bracket
if [[ $JSON == *, ]]; then
JSON="${JSON%?}"
fi
JSON="$JSON]}"
echo $JSON
echo "matrix=$( echo "$JSON" )" >> $GITHUB_OUTPUT
validate:
name: Validate
# Crucially must run on a self-hosted runner with the expected setup in /opt/
# it is recommended that the self-hosted runner uses DirectoryManager on a schedule
# for automatic updates to the output and storage directories
# Expected "directory" (from EXDTools/DirectoryManager) directory: `/opt/exd/output/`
# Expected storage directory (same): `/opt/exd/storage/`
# Everything else is handled by the action.
runs-on: self-hosted
needs: generate-matrix
if: needs.generate-matrix.outputs.changed_schema == 'true'
strategy:
matrix: ${{fromJson(needs.generate-matrix.outputs.matrix)}}
steps:
- run: echo "Validating ${{ matrix.gamever }}"
- uses: actions/checkout@v4
# Fetch SchemaValidator from xivdev/EXDTools latest releases
- name: Download SchemaValidator
uses: robinraju/release-downloader@v1.8
with:
repository: "xivdev/EXDTools"
latest: true
fileName: "SchemaValidator-linux-x64"
# Fetch Schema.json from xivdev/EXDTools latest releases
- name: Download Schema.json
uses: robinraju/release-downloader@v1.8
with:
repository: "xivdev/EXDTools"
latest: true
fileName: "Schema.json"
- name: Run SchemaValidator
run: |
chmod +x SchemaValidator-linux-x64
./SchemaValidator-linux-x64 /opt/exd/output/${{ matrix.gamever }}.json /opt/exd/storage/ Schema.json Schemas/${{ matrix.gamever }}/ CI
- name: Process results
run: |
cat message
failureCount=$(cat failure)
if [[ $failureCount -gt 0 ]]; then
exit 1
fi
errorCount=$(cat error)
if [[ $errorCount -gt 0 ]]; then
exit 1
fi
# Publish a release if the validation was successful on main
publish:
name: Publish
runs-on: ubuntu-latest
needs: validate
if: github.ref == 'refs/heads/main'
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Register Check
uses: myrotvorets/set-commit-status-action@v2.0.1
with:
context: Validate Schemas
sha: ${{github.event.client_payload.head_sha}}
status: pending
- name: Define version
id: define-version
run: echo "version=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Create Artifacts
- name: Print Dispatch Info
run: |
rm -rf release-out/
mkdir release-out/
cd Schemas
for d in * ; do
echo "Zipping $d"
zip -rq9 ../release-out/$d.zip $d
done
echo "Actor: ${{github.event.client_payload.actor}}"
echo "PR Number: ${{github.event.client_payload.pr_number}}"
echo "Head Ref: ${{github.event.client_payload.head_ref}}"
echo "Head Sha: ${{github.event.client_payload.head_sha}}"
echo "Base Ref: ${{github.event.client_payload.base_ref}}"
- name: Create Release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout Head (${{github.event.client_payload.head_ref}})
uses: actions/checkout@v4
with:
files: release-out/**
name: Release for ${{ steps.define-version.outputs.version }}
tag_name: ${{ steps.define-version.outputs.version }}
ref: ${{github.event.client_payload.head_sha}}
persist-credentials: false
path: pr
- name: Checkout Base (${{github.event.client_payload.base_ref}})
uses: actions/checkout@v4
with:
ref: ${{github.event.client_payload.base_ref}}
persist-credentials: false
path: base
- name: Download EXDTools
uses: robinraju/release-downloader@v1
with:
repository: xivdev/EXDTools
fileName: 'EXDTooler'
latest: true
- name: Chmod Executable
run: chmod +x EXDTooler
- name: Run Validation
id: validation
run: |
./EXDTooler --gha --debug --verbose validate -c base/.github/columns.yml -s pr -b base
- name: Write out summary
if: always()
run: |
echo "${{steps.validation.outputs.summary}}" > summary.txt
cat summary.txt >> $GITHUB_STEP_SUMMARY
- uses: dev-drprasad/delete-older-releases@v0.3.2
- uses: myrotvorets/set-commit-status-action@v2.0.1
if: always()
with:
keep_latest: 1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
sha: ${{github.event.client_payload.head_sha}}
context: Validate Schemas
status: ${{job.status}}
- name: Wipe previous comments (PR)
if: always() && github.event.action == 'version-pr'
uses: actions/github-script@v7
with:
script: |
const comments = (await github.rest.issues.listComments({
issue_number: context.payload.client_payload.pr_number,
owner: context.repo.owner,
repo: context.repo.repo
})).data
const comment = comments.filter(comment => comment.user.login === 'github-actions[bot]');
if (comment.length > 0) {
for (const c of comment) {
await github.graphql(`
mutation MinimizeComment($classifier: ReportedContentClassifiers!, $id: ID!) {
minimizeComment(input:{classifier: $classifier, subjectId: $id}) {
minimizedComment {
isMinimized
viewerCanMinimize
}
}
}
`, { classifier: 'OUTDATED', id: c.node_id });
}
}
- name: Post Validation Results (PR)
if: always() && github.event.action == 'version-pr'
uses: actions/github-script@v7
with:
script: |
const summary = require('fs').readFileSync('summary.txt', 'utf-8');
github.rest.issues.createComment({
issue_number: context.payload.client_payload.pr_number,
owner: context.repo.owner,
repo: context.repo.repo,
body: summary
});

52
.gitmodules vendored Normal file
View file

@ -0,0 +1,52 @@
[submodule "schemas/2023.07.26.0000.0000"]
path = schemas/2023.07.26.0000.0000
url = https://github.com/xivdev/EXDSchema.git
branch = ver/2023.07.26.0000.0000
[submodule "schemas/2023.09.28.0000.0000"]
path = schemas/2023.09.28.0000.0000
url = https://github.com/xivdev/EXDSchema.git
branch = ver/2023.09.28.0000.0000
[submodule "schemas/2023.11.09.0000.0000"]
path = schemas/2023.11.09.0000.0000
url = https://github.com/xivdev/EXDSchema.git
branch = ver/2023.11.09.0000.0000
[submodule "schemas/2024.02.05.0000.0000"]
path = schemas/2024.02.05.0000.0000
url = https://github.com/xivdev/EXDSchema.git
branch = ver/2024.02.05.0000.0000
[submodule "schemas/2024.03.27.0000.0000"]
path = schemas/2024.03.27.0000.0000
url = https://github.com/xivdev/EXDSchema.git
branch = ver/2024.03.27.0000.0000
[submodule "schemas/2024.04.23.0000.0000"]
path = schemas/2024.04.23.0000.0000
url = https://github.com/xivdev/EXDSchema.git
branch = ver/2024.04.23.0000.0000
[submodule "schemas/2024.06.18.0000.0000"]
path = schemas/2024.06.18.0000.0000
url = https://github.com/xivdev/EXDSchema.git
branch = ver/2024.06.18.0000.0000
[submodule "schemas/2024.07.06.0000.0000"]
path = schemas/2024.07.06.0000.0000
url = https://github.com/xivdev/EXDSchema.git
branch = ver/2024.07.06.0000.0000
[submodule "schemas/2024.07.10.0001.0000"]
path = schemas/2024.07.10.0001.0000
url = https://github.com/xivdev/EXDSchema.git
branch = ver/2024.07.10.0001.0000
[submodule "schemas/2024.07.24.0000.0000"]
path = schemas/2024.07.24.0000.0000
url = https://github.com/xivdev/EXDSchema.git
branch = ver/2024.07.24.0000.0000
[submodule "schemas/2024.08.02.0000.0000"]
path = schemas/2024.08.02.0000.0000
url = https://github.com/xivdev/EXDSchema.git
branch = ver/2024.08.02.0000.0000
[submodule "schemas/2024.11.06.0000.0000"]
path = schemas/2024.11.06.0000.0000
url = https://github.com/xivdev/EXDSchema.git
branch = ver/2024.11.06.0000.0000
[submodule "schemas/latest"]
path = schemas/latest
url = https://github.com/xivdev/EXDSchema.git
branch = latest

View file

@ -2,16 +2,29 @@
## Introduction
This is the schema repository for SqPack [Excel data](https://xiv.dev/game-data/file-formats/excel).
> [!WARNING]
> The following versions are considered deprecated and will be removed on the day of 7.3's release:
> - 2023.11.09.0000.0000
> - 2024.02.05.0000.0000
> - 2024.03.27.0000.0000
> - 2024.04.23.0000.0000
> - 2024.07.06.0000.0000
> - 2024.07.10.0001.0000
> - 2024.07.24.0000.0000
> - 2024.08.02.0000.0000
>
> These versions have identical column definitions to a previous version, and will always be aliased to a previous version.
## Sheets
Inside SqPack, category 0A consists of Excel sheets serialized into a proprietary binary format read by the game.
Inside SqPack, category 0A (`0a0000.win32...` files) consists of Excel sheets serialized into a proprietary binary format read by the game.
The development cycle generates header files for each sheet, which are then compiled into the game, thus, all structure information
is lost on the client side when the game is compiled. This repository is an attempt to consolidate efforts into a
language agnostic schema, easily parsed into any language that wishes to consume it, that accurately describes the structure
of the EXH files as they are provided to the client.
## Schema
Schemas are written in YML to define the fields of the structure in an EXH file and the links between different fields.
The schema provides a number of features, all of which is enforced by the provided JSON schema for the schema. When applied
Schemas are written in [YAML](https://yaml.org/) to define the fields of the structure in an EXH file and the links between different fields.
The schema provides a number of features, all of which is enforced by the [provided JSON schema](/schema.json) for the schema. When applied
against an EXD schema file, it will provide IDE completion and error-checking to improve the manual editing experience.
## Features
@ -31,18 +44,16 @@ The schema includes the following:
- Comment support on any schema object
- Maps out-of-the-box to a very simple object mapping
- JSON schema for the schema itself, providing IDE completion and error-checking
- Relations to group similarly sized arrays together
- Relations to [group identically sized arrays together](https://en.wikipedia.org/wiki/AoS_and_SoA)
- Version consistency via `pendingName` and `pendingFields`
This repository hosts the schema files for each game version. Each change produces a new release of every known game version's schema and removes the old release.
Due to the structure of this repository, any change to a given game version is meant to supercede all others.
## Code
EXD tooling is planned but not in progress at this time. PRs are welcome. The associated repository [EXDTools](https://github.com/xivdev/EXDTools) contains most, if not all EXD tooling related to EXDSchema.
The associated repository [EXDTools](https://github.com/xivdev/EXDTools) contains all EXD tooling required to maintain EXDSchema. EXDSchema maintains its versioning through Github Actions, and the PR and release process is (planned to be) automated.
Still planned are:
- A tool for editing schemas and viewing the results of parsing on-the-fly [not started]
- A tool that automatically determines updates to be made to a previous set of schemas
to bring them into a valid state for a new game version [\[EXDTools/updater\], unfinished](https://github.com/xivdev/EXDTools/tree/updater)
A tool for editing schemas and viewing the results of parsing on-the-fly is planned, but not yet started.
## Usage
See Usage.md.
See [Usage.md](/Usage.md).

View file

@ -1,6 +0,0 @@
name: AOZArrangement
fields:
- name: AOZContentBriefingBNpc
type: link
targets: [AOZContentBriefingBNpc]
- name: Position

View file

@ -1,7 +0,0 @@
name: AOZBoss
displayField: Boss
fields:
- name: Boss
type: link
targets: [AOZContentBriefingBNpc]
- name: Position

View file

@ -1,41 +0,0 @@
name: AOZContent
fields:
- name: GilReward
- name: AlliedSealsReward
- name: TomestonesReward
- name: ContentEntry
type: link
targets: [ContentEntry]
- name: StandardFinishTime
- name: IdealFinishTime
- name: Act1
type: link
condition:
switch: Act1FightType
cases:
1: [AOZArrangement]
2: [AOZBoss]
- name: Act2
type: link
condition:
switch: Act2FightType
cases:
1: [AOZArrangement]
2: [AOZBoss]
- name: Act3
type: link
condition:
switch: Act3FightType
cases:
1: [AOZArrangement]
2: [AOZBoss]
- name: Unknown0
- name: Unknown1
- name: Unknown2
- name: Act1FightType
- name: Act2FightType
- name: Act3FightType
- name: ArenaType1
- name: ArenaType2
- name: ArenaType3
- name: Order

View file

@ -1,32 +0,0 @@
name: AOZContentBriefingBNpc
displayField: BNpcName
fields:
- name: BNpcName
type: link
targets: [BNpcName]
- name: TargetSmall
type: icon
- name: TargetLarge
type: icon
- name: Endurance
- name: Fire
- name: Ice
- name: Wind
- name: Earth
- name: Thunder
- name: Water
- name: Slashing
- name: Piercing
- name: Blunt
- name: Magic
- name: HideStats
- name: SlowVuln
- name: PetrificationVuln
- name: ParalysisVuln
- name: InterruptionVuln
- name: BlindVuln
- name: StunVuln
- name: SleepVuln
- name: BindVuln
- name: HeavyVuln
- name: FlatOrDeathVuln

View file

@ -1,5 +0,0 @@
name: AOZContentBriefingObject
fields:
- name: Icon
type: icon
- name: Unknown0

View file

@ -1,7 +0,0 @@
name: AOZReport
fields:
- name: Unknown0
- name: Reward
type: link
targets: [AOZReportReward]
- name: Order

View file

@ -1,8 +0,0 @@
name: AOZReportReward
fields:
- name: Unknown0
- name: Unknown1
- name: Unknown2
- name: Unknown3
- name: Unknown4
- name: Unknown5

View file

@ -1,7 +0,0 @@
name: AOZScore
displayField: Name
fields:
- name: Name
- name: Description
- name: Score
- name: IsHidden

View file

@ -1,5 +0,0 @@
name: AOZWeeklyReward
fields:
- name: Unknown0
- name: Unknown1
- name: Unknown2

View file

@ -1,62 +0,0 @@
name: Achievement
displayField: Name
fields:
- name: Name
- name: Description
- name: Item
type: link
targets: [Item]
- name: Key
type: link
condition:
switch: Type
cases:
2: [Achievement]
3: [ClassJob]
6: [Quest]
7: [ClassJob]
8: [Map]
9: [Quest]
11: [GrandCompany]
14: [InstanceContent]
15: [BeastTribe]
18: [GrandCompany]
20: [AetherCurrentCompFlgSet]
24: [Quest]
- name: Data
type: array
count: 8
fields:
- type: link
condition:
switch: Type
cases:
2: [Achievement]
6: [Quest]
9: [Quest]
15: [BeastReputationRank]
20: [AetherCurrentCompFlgSet]
24: [ClassJob, Quest]
- name: Title
type: link
targets: [Title]
- name: Icon
type: icon
- name: Order
- name: AchievementCategory
type: link
targets: [AchievementCategory]
- name: AchievementTarget
type: link
targets: [AchievementTarget]
- name: Unknown0
- name: Points
- name: Unknown1
- name: Unknown2
- name: Unknown3
- name: Unknown4
- name: Type
- name: Unknown5
- name: AchievementHideCondition
type: link
targets: [AchievementHideCondition]

View file

@ -1,10 +0,0 @@
name: AchievementCategory
displayField: Name
fields:
- name: Name
- name: AchievementKind
type: link
targets: [AchievementKind]
- name: Order
- name: ShowComplete
- name: HideCategory

View file

@ -1,5 +0,0 @@
name: AchievementHideCondition
fields:
- name: HideAchievement
- name: HideName
- name: HideConditions

View file

@ -1,5 +0,0 @@
name: AchievementKind
displayField: Name
fields:
- name: Name
- name: Order

View file

@ -1,5 +0,0 @@
name: AchievementTarget
displayField: Value
fields:
- name: Value
- name: Type

View file

@ -1,105 +0,0 @@
name: Action
displayField: Name
fields:
- name: Name
- name: UnlockLink
type: link
targets: [ChocoboTaxiStand, CraftLeve, CustomTalk, DefaultTalk, FccShop, GCShop, GilShop, GuildleveAssignment, GuildOrderGuide, GuildOrderOfficer, Quest, SpecialShop, Story, SwitchTalk, TopicSelect, TripleTriad, Warp]
- name: Icon
type: icon
- name: VFX
type: link
targets: [ActionCastVFX]
- name: ActionTimelineHit
type: link
targets: [ActionTimeline]
- name: PrimaryCostValue
- name: SecondaryCostValue
type: link
condition:
switch: SecondaryCostType
cases:
32: [Status]
35: [Status]
46: [Status]
- name: ActionCombo
type: link
targets: [Action]
- name: Cast100ms
- name: Recast100ms
- name: StatusGainSelf
type: link
targets: [Status]
- name: Omen
type: link
targets: [Omen]
- name: Unknown0
- name: AnimationEnd
type: link
targets: [ActionTimeline]
- name: ActionCategory
type: link
targets: [ActionCategory]
- name: Unknown1
- name: AnimationStart
type: link
targets: [ActionCastTimeline]
- name: Unknown2
- name: BehaviourType
- name: ClassJobLevel
- name: CastType
- name: EffectRange
- name: XAxisModifier
- name: PrimaryCostType
- name: SecondaryCostType
- name: Unknown3
- name: CooldownGroup
- name: AdditionalCooldownGroup
- name: MaxCharges
- name: Aspect
- name: ActionProcStatus
type: link
targets: [ActionProcStatus]
- name: Unknown4
- name: ClassJobCategory
type: link
targets: [ClassJobCategory]
- name: Unknown5
- name: Unknown6
- name: ClassJob
type: link
targets: [ClassJob]
- name: Range
- name: Unknown7
- name: AttackType
type: link
targets: [AttackType]
- name: Unknown8
- name: IsRoleAction
- name: CanTargetSelf
- name: CanTargetParty
- name: CanTargetFriendly
- name: CanTargetHostile
- name: Unknown9
- name: Unknown10
- name: TargetArea
- name: Unknown11
- name: Unknown12
- name: CanTargetDead
- name: Unknown13
- name: Unknown14
- name: PreservesCombo
- name: Unknown15
- name: AffectsPosition
- name: IsPvP
- name: Unknown16
- name: Unknown17
- name: Unknown18
- name: Unknown19
- name: Unknown20
- name: Unknown21
- name: Unknown22
- name: Unknown23
- name: Unknown24
- name: Unknown25
- name: IsPlayerAction

View file

@ -1,9 +0,0 @@
name: ActionCastTimeline
displayField: Name
fields:
- name: Name
type: link
targets: [ActionTimeline]
- name: VFX
type: link
targets: [VFX]

View file

@ -1,6 +0,0 @@
name: ActionCastVFX
displayField: VFX
fields:
- name: VFX
type: link
targets: [VFX]

View file

@ -1,4 +0,0 @@
name: ActionCategory
displayField: Name
fields:
- name: Name

View file

@ -1,15 +0,0 @@
name: ActionComboRoute
displayField: Name
fields:
- name: Name
- name: Action
type: array
count: 4
fields:
- type: link
targets: [Action]
- name: Unknown0
- name: Unknown1
- name: Unknown2
- name: Unknown3
- name: Unknown4

View file

@ -1,3 +0,0 @@
name: ActionComboRouteTransient
fields:
- name: Unknown0

View file

@ -1,3 +0,0 @@
name: ActionCostType
fields:
- name: Unknown0

View file

@ -1,12 +0,0 @@
name: ActionIndirection
displayField: Name
fields:
- name: Name
type: link
targets: [Action]
- name: PreviousComboAction
type: link
targets: [Action]
- name: ClassJob
type: link
targets: [ClassJob]

View file

@ -1,3 +0,0 @@
name: ActionInit
fields:
- name: Unknown0

View file

@ -1,5 +0,0 @@
name: ActionParam
displayField: Name
fields:
- name: Name
- name: Unknown0

View file

@ -1,6 +0,0 @@
name: ActionProcStatus
displayField: Status
fields:
- name: Status
type: link
targets: [Status]

View file

@ -1,27 +0,0 @@
name: ActionTimeline
displayField: Key
fields:
- name: Key
- name: KillUpper
- name: Type
- name: Priority
- name: Stance
- name: Slot
- name: LookAtMode
- name: ActionTimelineIDMode
- name: WeaponTimeline
type: link
targets: [WeaponTimeline]
- name: LoadType
- name: StartAttach
- name: ResidentPap
- name: IsLoop
- name: Unknown0
- name: Unknown1
- name: Pause
- name: Resident
- name: IsMotionCanceledByMoving
- name: Unknown2
- name: Unknown3
- name: Unknown4
- name: Unknown5

View file

@ -1,8 +0,0 @@
name: ActionTimelineMove
fields:
- name: Unknown0
- name: Unknown1
- name: Unknown2
- name: Unknown3
- name: Unknown4
- name: Unknown5

View file

@ -1,8 +0,0 @@
name: ActionTimelineReplace
fields:
- name: Old
type: link
targets: [ActionTimeline]
- name: New
type: link
targets: [ActionTimeline]

View file

@ -1,4 +0,0 @@
name: ActionTransient
displayField: Description
fields:
- name: Description

View file

@ -1,7 +0,0 @@
name: ActivityFeedButtons
fields:
- name: BannerURL
- name: Description
- name: Language
- name: PictureURL
- name: Unknown0

View file

@ -1,6 +0,0 @@
name: ActivityFeedCaptions
fields:
- name: JA
- name: EN
- name: DE
- name: FR

View file

@ -1,6 +0,0 @@
name: ActivityFeedGroupCaptions
fields:
- name: JA
- name: EN
- name: DE
- name: FR

View file

@ -1,7 +0,0 @@
name: ActivityFeedImages
fields:
- name: ExpansionImage
- name: ActivityFeedJA
- name: ActivityFeedEN
- name: ActivityFeedDE
- name: ActivityFeedFR

View file

@ -1,4 +0,0 @@
name: Addon
displayField: Text
fields:
- name: Text

View file

@ -1,6 +0,0 @@
name: AddonHudSize
fields:
- name: Unknown0
- name: Unknown1
- name: Unknown2
- name: Unknown3

View file

@ -1,6 +0,0 @@
name: AddonLayout
fields:
- name: Unknown0
- name: Unknown1
- name: Unknown2
- name: Unknown3

View file

@ -1,4 +0,0 @@
name: AddonParam
fields:
- name: Unknown0
- name: Unknown1

View file

@ -1,8 +0,0 @@
name: AddonTalkParam
fields:
- name: Unknown0
- name: Unknown1
- name: Unknown2
- name: Unknown3
- name: Unknown4
- name: Unknown5

View file

@ -1,3 +0,0 @@
name: AddonTransient
fields:
- name: Unknown0

View file

@ -1,8 +0,0 @@
name: AdvancedVibration
fields:
- name: Unknown0
- name: Unknown1
- name: Unknown2
- name: Unknown3
- name: Unknown4
- name: Unknown5

View file

@ -1,26 +0,0 @@
name: Adventure
displayField: Name
fields:
- name: Name
- name: Impression
- name: Description
- name: Level
type: link
targets: [Level]
- name: MinLevel
- name: PlaceName
type: link
targets: [PlaceName]
- name: IconList
type: icon
- name: IconDiscovered
type: icon
- name: IconUndiscovered
type: icon
- name: Emote
type: link
targets: [Emote]
- name: MinTime
- name: MaxTime
- name: MaxLevel
- name: IsInitial

View file

@ -1,15 +0,0 @@
name: AdventureExPhase
fields:
- name: Quest
type: link
targets: [Quest]
- name: AdventureBegin
type: link
targets: [Adventure]
- name: AdventureEnd
type: link
targets: [Adventure]
- name: Unknown0
- name: Expansion
type: link
targets: [ExVersion]

View file

@ -1,6 +0,0 @@
name: AetherCurrent
displayField: Quest
fields:
- name: Quest
type: link
targets: [Quest]

View file

@ -1,11 +0,0 @@
name: AetherCurrentCompFlgSet
fields:
- name: Territory
type: link
targets: [TerritoryType]
- name: AetherCurrents
type: array
count: 15
fields:
- type: link
targets: [AetherCurrent]

View file

@ -1,10 +0,0 @@
name: AetherialWheel
fields:
- name: ItemUnprimed
type: link
targets: [Item]
- name: ItemPrimed
type: link
targets: [Item]
- name: Grade
- name: HoursRequired

View file

@ -1,39 +0,0 @@
name: Aetheryte
displayField: PlaceName
fields:
- name: Singular
- name: Plural
- name: Adjective
- name: PossessivePronoun
- name: StartsWithVowel
- name: Unknown0
- name: Pronoun
- name: Article
- name: Unknown1
- name: Level
type: array
count: 4
fields:
- type: link
targets: [Level]
- name: RequiredQuest
type: link
targets: [Quest]
- name: PlaceName
type: link
targets: [PlaceName]
- name: AethernetName
type: link
targets: [PlaceName]
- name: Territory
type: link
targets: [TerritoryType]
- name: Map
type: link
targets: [Map]
- name: AetherstreamX
- name: AetherstreamY
- name: AethernetGroup
- name: Order
- name: IsAetheryte
- name: Invisible

View file

@ -1,5 +0,0 @@
name: AetheryteSystemDefine
displayField: Text
fields:
- name: Text
- name: DefineValue

View file

@ -1,3 +0,0 @@
name: AetheryteTransient
fields:
- name: Unknown0

View file

@ -1,4 +0,0 @@
name: AirshipExplorationLevel
fields:
- name: ExpToNext
- name: Capacity

View file

@ -1,4 +0,0 @@
name: AirshipExplorationLog
displayField: Text
fields:
- name: Text

View file

@ -1,4 +0,0 @@
name: AirshipExplorationParamType
displayField: Name
fields:
- name: Name

View file

@ -1,12 +0,0 @@
name: AirshipExplorationPart
fields:
- name: Class
- name: Surveillance
- name: Retrieval
- name: Speed
- name: Range
- name: Favor
- name: Slot
- name: Rank
- name: Components
- name: RepairMaterials

View file

@ -1,17 +0,0 @@
name: AirshipExplorationPoint
displayField: Name
fields:
- name: Name
- name: NameShort
- name: ExpReward
- name: CeruleumTankReq
- name: SurveyDurationmin
- name: SurveyDistance
- name: X
- name: Y
- name: RankReq
- name: Unknown0
- name: Unknown1
- name: SurveillanceReq
- name: Unknown2
- name: Passengers

View file

@ -1,8 +0,0 @@
name: AirshipSkyIsland
fields:
- name: Unknown0
- name: Unknown1
- name: Unknown2
- name: Unknown3
- name: Unknown4
- name: Unknown5

View file

@ -1,11 +0,0 @@
name: AkatsukiNote
fields:
- name: Unknown0
- name: Unknown1
- name: Unknown2
- name: Unknown3
- name: Unknown4
- name: Unknown5
- name: Unknown6
- name: Unknown7
- name: Unknown8

View file

@ -1,3 +0,0 @@
name: AkatsukiNoteString
fields:
- name: Unknown0

View file

@ -1,13 +0,0 @@
name: AnimaWeapon5
fields:
- name: Item
type: link
targets: [Item]
- name: Unknown0
- name: SecondaryStatTotal
- name: Parameter
type: array
count: 5
fields:
- type: link
targets: [AnimaWeapon5Param]

View file

@ -1,7 +0,0 @@
name: AnimaWeapon5Param
displayField: BaseParam
fields:
- name: Name
- name: BaseParam
type: link
targets: [BaseParam]

View file

@ -1,4 +0,0 @@
name: AnimaWeapon5PatternGroup
displayField: Name
fields:
- name: Name

View file

@ -1,6 +0,0 @@
name: AnimaWeapon5SpiritTalk
displayField: Dialogue
fields:
- name: Dialogue
type: link
targets: [AnimaWeapon5SpiritTalkParam]

View file

@ -1,5 +0,0 @@
name: AnimaWeapon5SpiritTalkParam
displayField: Prologue
fields:
- name: Prologue
- name: Epilogue

View file

@ -1,3 +0,0 @@
name: AnimaWeapon5SpiritTalkType
fields:
- name: Unknown0

View file

@ -1,22 +0,0 @@
name: AnimaWeapon5TradeItem
fields:
- name: CrystalSand
type: link
targets: [Item]
- name: Item
type: array
count: 8
fields:
- type: link
targets: [Item]
- name: Order
- name: ReceiveQuantity
- name: Quantity
type: array
count: 8
- name: Category
type: link
targets: [AnimaWeapon5PatternGroup]
- name: IsHQ
type: array
count: 8

View file

@ -1,6 +0,0 @@
name: AnimaWeaponFUITalk
displayField: Dialogue
fields:
- name: Dialogue
type: link
targets: [AnimaWeaponFUITalkParam]

View file

@ -1,5 +0,0 @@
name: AnimaWeaponFUITalkParam
displayField: Prologue
fields:
- name: Prologue
- name: Epilogue

View file

@ -1,12 +0,0 @@
name: AnimaWeaponIcon
fields:
- name: Hyperconductive
type: icon
- name: Reborn
type: icon
- name: Sharpened
type: icon
- name: Zodiac
type: icon
- name: ZodiacLux
type: icon

View file

@ -1,8 +0,0 @@
name: AnimaWeaponItem
fields:
- name: Item
type: array
count: 14
fields:
- type: link
targets: [Item]

View file

@ -1,8 +0,0 @@
name: AnimationLOD
fields:
- name: CameraDistance
- name: SampleInterval
- name: BoneLOD
- name: AnimationEnable
count: 8
type: array

View file

@ -1,7 +0,0 @@
name: AozAction
displayField: Action
fields:
- name: Action
type: link
targets: [Action]
- name: Rank

View file

@ -1,34 +0,0 @@
name: AozActionTransient
displayField: Action
fields:
- name: Stats
- name: Description
- name: Icon
type: icon
- name: RequiredForQuest
type: link
targets: [Quest]
- name: PreviousQuest
type: link
targets: [Quest]
- name: Location
type: link
condition:
switch: LocationKey
cases:
1: [PlaceName]
4: [ContentFinderCondition]
- name: Number
- name: LocationKey
- name: TargetsEnemy
- name: TargetsSelfOrAlly
- name: CauseSlow
- name: CausePetrify
- name: CauseParalysis
- name: CauseInterrupt
- name: CauseBlind
- name: CauseStun
- name: CauseSleep
- name: CauseBind
- name: CauseHeavy
- name: CauseDeath

View file

@ -1,11 +0,0 @@
name: AquariumFish
displayField: Item
fields:
- name: Item
type: link
targets: [Item]
- name: Unknown0
- name: AquariumWater
type: link
targets: [AquariumWater]
- name: Size

View file

@ -1,5 +0,0 @@
name: AquariumWater
displayField: Name
fields:
- name: Name
- name: Unknown0

View file

@ -1,5 +0,0 @@
name: ArchiveItem
fields:
- name: Unknown0
- name: Unknown1
- name: Unknown2

View file

@ -1,8 +0,0 @@
name: ArrayEventHandler
fields:
- name: Data
type: array
count: 16
fields:
- type: link
targets: [InstanceContentGuide, Story, Opening, CustomTalk, DefaultTalk, GilShop, Warp, Quest]

View file

@ -1,4 +0,0 @@
name: AttackType
displayField: Name
fields:
- name: Name

View file

@ -1,7 +0,0 @@
name: Attract
fields:
- name: MaxDistance
- name: Speed
- name: MinRemainingDistance
- name: Direction
- name: UseDistanceBetweenHitboxes

View file

@ -1,43 +0,0 @@
name: Attributive
fields:
- name: Unknown0
- name: Unknown1
- name: Unknown2
- name: Unknown3
- name: Unknown4
- name: Unknown5
- name: Unknown6
- name: Unknown7
- name: Unknown8
- name: Unknown9
- name: Unknown10
- name: Unknown11
- name: Unknown12
- name: Unknown13
- name: Unknown14
- name: Unknown15
- name: Unknown16
- name: Unknown17
- name: Unknown18
- name: Unknown19
- name: Unknown20
- name: Unknown21
- name: Unknown22
- name: Unknown23
- name: Unknown24
- name: Unknown25
- name: Unknown26
- name: Unknown27
- name: Unknown28
- name: Unknown29
- name: Unknown30
- name: Unknown31
- name: Unknown32
- name: Unknown33
- name: Unknown34
- name: Unknown35
- name: Unknown36
- name: Unknown37
- name: Unknown38
- name: Unknown39
- name: Unknown40

View file

@ -1,10 +0,0 @@
name: BGM
displayField: File
fields:
- name: File
- name: DisableRestartResetTime
- name: Priority
- name: SpecialMode
- name: DisableRestartTimeOut
- name: DisableRestart
- name: PassEnd

View file

@ -1,7 +0,0 @@
name: BGMFade
fields:
- name: SceneOut
- name: SceneIn
- name: BGMFadeType
type: link
targets: [BGMFadeType]

View file

@ -1,6 +0,0 @@
name: BGMFadeType
fields:
- name: FadeOutTime
- name: FadeInTime
- name: FadeInStartTime
- name: ResumeFadeInTime

View file

@ -1,7 +0,0 @@
name: BGMScene
fields:
- name: EnableDisableRestart
- name: Resume
- name: EnablePassEnd
- name: ForceAutoReset
- name: IgnoreBattle

View file

@ -1,17 +0,0 @@
name: BGMSituation
fields:
- name: DaytimeID
type: link
targets: [BGM]
- name: NightID
type: link
targets: [BGM]
- name: BattleID
type: link
targets: [BGM]
- name: DaybreakID
type: link
targets: [BGM]
- name: TwilightID
type: link
targets: [BGM]

View file

@ -1,12 +0,0 @@
name: BGMSwitch
fields:
- name: Quest
type: link
targets: [Quest]
- name: BGM
type: link
targets: [BGM, BGMSituation]
- name: BGMSystemDefine
type: link
targets: [BGMSystemDefine]
- name: Unknown0

View file

@ -1,4 +0,0 @@
name: BGMSystemDefine
displayField: Define
fields:
- name: Define

View file

@ -1,5 +0,0 @@
name: BNpcAnnounceIcon
displayField: Icon
fields:
- name: Icon
type: icon

View file

@ -1,40 +0,0 @@
name: BNpcBase
fields:
- name: Scale
- name: ArrayEventHandler
type: link
targets: [ArrayEventHandler]
- name: Behavior
type: link
targets: [Behavior]
- name: ModelChara
type: link
targets: [ModelChara]
- name: BNpcCustomize
type: link
targets: [BNpcCustomize]
- name: NpcEquip
type: link
targets: [NpcEquip]
- name: Special
- name: Battalion
type: link
targets: [Battalion]
- name: LinkRace
type: link
targets: [LinkRace]
- name: Rank
- name: SEPack
- name: Unknown0
- name: BNpcParts
type: link
targets: [BNpcParts]
- name: Unknown1
- name: Unknown2
- name: Unknown3
- name: Unknown4
- name: Unknown5
- name: Unknown6
- name: IsTargetLine
- name: IsDisplayLevel
- name: Unknown7

View file

@ -1,3 +0,0 @@
name: BNpcBasePopVfx
fields:
- name: Unknown0

View file

@ -1,32 +0,0 @@
name: BNpcCustomize
fields:
- name: Race
type: link
targets: [Race]
- name: Gender
- name: BodyType
- name: Height
- name: Tribe
type: link
targets: [Tribe]
- name: Face
- name: HairStyle
- name: HairHighlight
- name: SkinColor
- name: EyeHeterochromia
- name: HairColor
- name: HairHighlightColor
- name: FacialFeature
- name: FacialFeatureColor
- name: Eyebrows
- name: EyeColor
- name: EyeShape
- name: Nose
- name: Jaw
- name: Mouth
- name: LipColor
- name: BustOrTone1
- name: ExtraFeature1
- name: ExtraFeature2OrBust
- name: FacePaint
- name: FacePaintColor

View file

@ -1,11 +0,0 @@
name: BNpcName
displayField: Singular
fields:
- name: Singular
- name: Plural
- name: Adjective
- name: PossessivePronoun
- name: StartsWithVowel
- name: Unknown0
- name: Pronoun
- name: Article

View file

@ -1,78 +0,0 @@
name: BNpcParts
fields:
- name: X1
- name: X2
- name: X3
- name: X4
- name: X5
- name: Unknown0
- name: Y1
- name: Y2
- name: Y3
- name: Y4
- name: Y5
- name: Unknown1
- name: Z1
- name: Z2
- name: Z3
- name: Z4
- name: Z5
- name: Unknown2
- name: Scale1
- name: Scale2
- name: Unknown3
- name: Scale4
- name: Scale5
- name: Unknown4
- name: BNpcBase1
type: link
targets: [BNpcBase]
- name: BNpcBase2
type: link
targets: [BNpcBase]
- name: BNpcBase3
type: link
targets: [BNpcBase]
- name: BNpcBase4
type: link
targets: [BNpcBase]
- name: BNpcBase5
type: link
targets: [BNpcBase]
- name: Unknown5
- name: Unknown6
- name: Unknown7
- name: Scale3
- name: Unknown8
- name: Unknown9
- name: Unknown10
- name: PartSlot1
- name: PartSlot2
- name: PartSlot3
- name: PartSlot4
- name: PartSlot5
- name: Unknown11
- name: Unknown12
- name: Unknown13
- name: Unknown14
- name: Unknown15
- name: Unknown16
- name: Unknown17
- name: Unknown18
- name: Unknown19
- name: Unknown20
- name: Unknown21
- name: Unknown22
- name: Unknown23
- name: Unknown24
- name: Unknown25
- name: Unknown26
- name: Unknown27
- name: Unknown28
- name: Unknown29
- name: Unknown30
- name: Unknown31
- name: Unknown32
- name: Unknown33
- name: Unknown34
- name: Unknown35

View file

@ -1,17 +0,0 @@
name: BNpcState
fields:
- name: Scale
- name: LoopTimeline
- name: Idle
- name: Slot
- name: Unknown0
- name: Attribute0
- name: Attribute1
- name: Attribute2
- name: Unknown1
- name: OverRay
- name: Unknown2
- name: AttributeFlag0
- name: AttributeFlag1
- name: AttributeFlag2
- name: Unknown3

View file

@ -1,5 +0,0 @@
name: BacklightColor
displayField: Color
fields:
- name: Color
type: color

View file

@ -1,23 +0,0 @@
name: Ballista
fields:
- name: BNPC
type: link
targets: [BNpcBase]
- name: Angle
- name: Action0
type: link
targets: [Action]
- name: Action1
type: link
targets: [Action]
- name: Action2
type: link
targets: [Action]
- name: Action3
type: link
targets: [Action]
- name: Bullet
- name: Unknown0
- name: Unknown1
- name: Near
- name: Far

View file

@ -1,5 +0,0 @@
name: Balloon
displayField: Dialogue
fields:
- name: Dialogue
- name: Slowly

View file

@ -1,12 +0,0 @@
name: BannerBg
displayField: Name
fields:
- name: Name
- name: Image
type: icon
- name: Icon
type: icon
- name: UnlockCondition
type: link
targets: [BannerCondition]
- name: SortKey

Some files were not shown because too many files have changed in this diff Show more