acurtis166 / SPNKr

Python API for retrieving Halo Infinite multiplayer data
https://acurtis166.github.io/SPNKr/
MIT License
3 stars 1 forks source link

Trying To Setup Jupyter Notebook #22

Closed ChaseWoodhams closed 4 months ago

ChaseWoodhams commented 4 months ago

I am trying to setup authentication and data collection in a jupyter notebook but I keep getting the following error when trying to authenticate. Im not sure this has anything to do with the Jupyter enviorment but Im not well versed in programming.

When I try to Authenticate I get the following error after I click the Auth link

"We're unable to complete your request unauthorized_client: The client does not exist or is not enabled for consumers. If you are the application developer, configure a new application through the App Registrations in the Azure Portal at https://go.microsoft.com/fwlink/?linkid=2083908."

Im not sure if I have Azure auth setup properly, I guess. Any advice or guidance would be awesome. Ill share the Jupyter Notebook when I am done!

ChaseWoodhams commented 4 months ago

Screenshot 2024-04-30 085833

acurtis166 commented 4 months ago

Hey @ChaseWoodhams ,

It seems like you have the notebook set up properly.

Just to be clear, you received this error in the browser when following the link to retrieve the code?

I would confirm your client ID and client secret ID as a first step. I will post screenshots as the client ID naming can be confusing.

Client ID can be found on the "Overview" tab of your app as "Application (client) ID": image

Client secret can be found after adding the new secret on the "Certificates & Secrets" tab of your app as "Value": image

If those end up being correct we might need to check the app settings. Let me know if you have any luck.

ChaseWoodhams commented 4 months ago

I was able to get everything to work! Thank you. Seems like I had a few issues. Wrong secret and wrong permissions from azure.

I am going to be working with n8n, python and this repo to build an AI Halo Trainer. Im about halfway to my first workflow test in n8n using your library!

Thanks for all of the work here.

ChaseWoodhams commented 4 months ago

Also - I would like to share the notebooks with the project and maybe a few updates in your Readme.

I guess I need to figure out how to do that haha. This would be my first open source contribution.

acurtis166 commented 4 months ago

That's great - glad you are up and running!

Sounds good on your ideas. We could start an examples list in the README with a link to your project?

You'll probably want to create a fork to commit your changes and then create a pull request.

Closing this as completed, but you should still be able to comment if you have more questions.

ChaseWoodhams commented 4 months ago

@acurtis166 Me again - I am playing around with all of your example scripts and so far I've had a lot of success.

I just setup the video chunking script and it works very well.

Have you developed a way to convert this data or read it at least? Im hoping it has a lot of the really detailed game data that I'm trying to find but Im not really sure how to read or convert these bin files.

If you have any suggestions on this, let me know. Thanks!

ChaseWoodhams commented 4 months ago

Follow up for context: I am looking for a way to get as much game data as possible for analysis and an example would be Heat Maps: For showing player movements and event locations.

ChaseWoodhams commented 4 months ago

I was able to convert data to ASCII and the usable outputs are below. I'm not sure I can do anything with this data just yet but its promising?

The Match Highlights file is just gibberish, it seems and same for the other files so far. I'm guessing these are game engine files that are interpreted by whatever engine they are running.

Processing 0_film_header.bin... Extracted strings from 0_film_header.bin: game-engine-team-mapping-component game-engine-shared-team-lives-component game-engine-current-state-component game-engine-game-finished-component game-engine-current-round-component game-engine-round-timer-component game-engine-sudden-death-time-left-component game-engine-grace-period-time-left-component game-engine-round-condition-flags-component game-engine-screen-sequence-component game-engine-alliance-component game-engine-soft-ceilings-component game-engine-campaign-timer-component game-engine-disabled-kill-volume-flags-component GameEngineComposerLetterboxComponent managed-engine-timers-component scenario-intro-component matchflow-isplaying-flags-component forge-engine-player-roles-component forge-engine-total-budget-component forge-engine-map-properties-component forge-engine-forge-mode-component forge-engine-monitor-noclip-component forge-engine-ugc-status-component forge-engine-baking-data-component forge-engine-baking-data-component forge-engine-baking-data-component game-engine-team-mapping-component game-engine-shared-team-lives-component game-engine-current-state-component game-engine-game-finished-component game-engine-current-round-component game-engine-round-timer-component game-engine-sudden-death-time-left-component game-engine-grace-period-time-left-component game-engine-round-condition-flags-component game-engine-screen-sequence-component game-engine-alliance-component game-engine-soft-ceilings-component game-engine-campaign-timer-component game-engine-disabled-kill-volume-flags-component GameEngineComposerLetterboxComponent game-engine-team-mapping-component game-engine-shared-team-lives-component game-engine-current-state-component game-engine-game-finished-component game-engine-current-round-component game-engine-round-timer-component game-engine-sudden-death-time-left-component game-engine-grace-period-time-left-component game-engine-round-condition-flags-component game-engine-screen-sequence-component game-engine-alliance-component game-engine-soft-ceilings-component game-engine-campaign-timer-component game-engine-disabled-kill-volume-flags-component GameEngineComposerLetterboxComponent managed-engine-timers-component scenario-intro-component matchflow-isplaying-flags-component low-frequency high-frequency high-frequency player-waypoint-component player-respawn-timer-component player-soft-kill-timer-component player-target-tracking-detection-component player-unsafe-respawn-timer-component player-respawn-safety-component player-desired-respawn-player-component player-desired-respawn-seat-component player-early-respawn-requested-component player-engine-loadout-index-component player-primary-respawn-object-component player-engine-loadout-component player-desired-respawn-location-component player-fade-properties-component player-lives-remaining-component player-last-betrayer-component player-vehicle-entrance-ban-component player-control-aiming-component player-active-in-game-component player-pending-join-in-progress-spawn-component player-malleable-properties-simulation-component player-representation-component player-aim-assist-component player-power-frame-points-component player-desired-frame-configuration-component player-supply-lines-currency-simulation-component player-allowed-to-quit-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-current-round-value-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-finalized-rounds-values-stat-component statborg-round-outcomes-component statborg-entry-index-and-type-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component forge-sim-generic-component managed-player-team-designator-component managed-player-color-override-component managed-player-flags-component managed-player-back-button-scoreboard-flair-component managed-player-forge-weather-effect-overrides-component managed-player-active-mission-name-component managed-player-show-active-mission-name-in-hud-component managed-player-campaign-progress-component managed-player-current-season-component managed-object-boundary-visibility-component managed-object-boundary-color-component managed-object-navpoint-component managed-object-navpoint-component managed-object-navpoint-component managed-object-navpoint-component managed-object-navpoint-component managed-object-navpoint-component managed-object-navpoint-component managed-object-navpoint-component managed-object-navpoint-component managed-object-navpoint-component managed-object-navpoint-component managed-object-navpoint-component managed-object-navpoint-component managed-object-navpoint-component managed-object-navpoint-component managed-object-navpoint-component managed-object-networked-property-component managed-object-networked-property-component managed-object-networked-property-component managed-object-networked-property-component managed-object-interaction-filter-component managed-object-flags-component managed-object-looping-sound-component managed-object-looping-sound-component managed-object-rtpc-component managed-object-rtpc-component managed-object-rtpc-component managed-object-rtpc-component managed-objective-timers-component managed-objective-color-component managed-objective-formatted-text-component managed-objective-object-reference-component managed-objective-interaction-filter-component managed-objective-type-component managed-objective-enabled-component managed-objective-priority-component managed-objective-message-type-component managed-objective-secondary-formatted-text-component managed-objective-is-new-and-unseen-component managed-objective-is-only-one-item-unlocked-component managed-objective-progress-component managed-objective-required-progress-component managed-objective-state-component managed-objective-parent-objective-component managed-objective-sub-objective-entities-component managed-objective-sub-objective-entities-component managed-objective-sub-objective-entities-component managed-objective-sub-objective-entities-component managed-objective-sub-objective-entities-component managed-objective-sub-objective-entities-component managed-objective-sub-objective-entities-component managed-objective-sub-objective-entities-component managed-objective-sub-objective-entities-component managed-objective-sub-objective-entities-component managed-objective-sub-objective-entities-component managed-objective-sub-objective-entities-component managed-objective-sub-objective-entities-component managed-objective-sub-objective-entities-component managed-objective-sub-objective-entities-component managed-objective-sub-objective-entities-component managed-objective-outro-phase-duration-component managed-objective-forced-update-component managed-navpoint-sub-type-component managed-navpoint-flags-component managed-navpoint-visibility-distance-filters-component managed-navpoint-visible-offscreen-filters-component managed-navpoint-can-be-occluded-filters-component managed-navpoint-visibility-filter-component managed-navpoint-docking-filter-component managed-navpoint-docking-order-component managed-navpoint-docking-group-name-component managed-navpoint-formatted-text-component managed-navpoint-timers-component managed-navpoint-manual-timer-initial-duration-component managed-navpoint-manual-timer-current-duration-component managed-navpoint-top-progress managed-navpoint-radial-progress managed-navpoint-bottom-progress managed-navpoint-override-flags managed-navpoint-object-marker managed-navpoint-position-offset managed-navpoint-visual-states-component managed-navpoint-visual-state-groups-component-0 managed-navpoint-visual-state-groups-component-1 managed-navpoint-visual-state-groups-component-2 managed-navpoint-visual-state-groups-component-3 managed-navpoint-visual-state-groups-component-4 managed-navpoint-visual-state-groups-component-5 managed-navpoint-visual-state-groups-component-6 managed-navpoint-visual-state-groups-component-7 managed-object-property-name-component managed-object-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component managed-object-player-masked-property-component crew-order-component crew-marked-objects-component crew-orders-off-flags-component nav-cutscene-flag-component nav-cutscene-flag-component nav-cutscene-flag-component nav-cutscene-flag-component change-scene-component branch-script-results-component branch-script-results-component branch-script-results-component branch-script-results-component track-frame-component music-variables-component music-state-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component effect-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component sound-placement-state-data-component spawn-filter-type-component spawn-filter-weight-component spawn-filter-filters-component flock-emitting-component flock-destroying-component flock-destination-component flock-destination-component flock-destination-component flock-destination-component flock-destination-component flock-destination-component flock-destination-component flock-destination-component flock-destination-component flock-destination-component flock-forced-respawn-component flock-relevancy-component flock-fleeing-component flock-remembered-danger-component flock-position-component flock-current-destination-component physics-state-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component selectable-zone-data-component participant-spawn-availability-mask-data-component state-checksum-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component persistence-state-bucket-component powerframe-player-selection-data-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-blocked-status-component supply-lines-busy-state-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component supply-lines-item-unlocked-component narrative-moment-beat-activation-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component managed-object-participant-respawn-block-component tacmap-poiicon tacmap-poiiconoffset tacmap-poiisgoldenpath tacmap-category tacmap-mission tacmap-visiblity tacmap-rawlocation tacmap-missionstate tacmap-description tacmap-difficulty tacmap-valor tacmap-objectives tacmap-collectibles tacmap-missioninfo tacmap-areaofinterest tacmap-displayasset tacmap-mapscale tacmap-settingstag tacmap-iconlodthresholds tacmap-cameraheading tacmap-dungeonstate tacmap-lockedlights tacmap-fasttravelstate tacmap-waypointstate tacmap-missionmarkerstate tacmap-queuedreplaymission tacmap-mapdismissallock tacmap-cooptetherarea tacmap-backmenulocked-state tacmap-backmenu-openoverride tacmap-playercontrol tacmap-tooltip-state tacmap-missioncount object-position-dynamic-precision-component object-translational-velocity-dynamic-precision-component object-forward-and-up-component object-angular-velocity-component object-body-vitality-component object-shield-vitality-component object-region-state-component object-damage-sections-component object-constraint-component object-multiplayer-properties-component object-parent-state-component object-dead-state-component object-scale-component object-maximum-vitalities-component object-dissolver-component object-low-frequency-component object-physics-flags-component object-frame-configuration-component unit-control-component unit-actor-control-component unit-actor-state-component unit-desired-aiming-vector-component unit-grenade-counts-component unit-malleable-property-component unit-low-frequency-component unit-command-tick-component unit-equipment-component unit-stun-component unit-active-camo-state-component unit-crouch-component weapon-state-ammo weapon-state-rounds-inventory weapon-state-overheated weapon-state-ammo weapon-state-rounds-inventory weapon-state-overheated weapon-state-ammo weapon-state-rounds-inventory weapon-state-overheated weapon-state-ammo weapon-state-rounds-inventory weapon-state-overheated biped-desired-weapon-set weapon-state-type-info weapon-state-type-info weapon-state-type-info weapon-state-type-info biped-desired-grenade-set-component biped-desired-ability-set-component biped-control-context-component biped-map-editor-flag-component biped-emp-timer-component biped-low-frequency-data-component biped-malleable-property-component biped-mobility-action-component biped-posture-physics-component biped-spartan-ability-energy-component biped-spartan-ability-component biped-spartan-ability-malleable-property-component biped-spartan-ability-non-predicted-state simulation-state-component simulation-state-playback-component biped-slide-component biped-action-component object-position-component object-translational-velocity-component object-forward-and-up-component object-angular-velocity-component object-body-vitality-component object-shield-vitality-component object-region-state-component object-damage-sections-component object-constraint-component object-multiplayer-properties-component object-parent-state-component object-dead-state-component object-scale-component object-maximum-vitalities-component object-dissolver-component object-low-frequency-component object-physics-flags-component object-frame-configuration-component item-at-rest-component item-ignore-player-component object-position-component object-translational-velocity-component object-forward-and-up-component object-angular-velocity-component object-body-vitality-component object-shield-vitality-component object-region-state-component object-damage-sections-component object-constraint-component object-multiplayer-properties-component object-parent-state-component object-dead-state-component object-scale-component object-maximum-vitalities-component object-dissolver-component object-low-frequency-component object-physics-flags-component object-frame-configuration-component item-at-rest-component item-ignore-player-component equipment-deployed-component equipment-activated-component equipment-control-signal-component equipment-creator-component equipment-energy-component equipment-being-hacked-component equipment-energy-delay-ticks-left-component equipment-charges-remaining-component equipment-tracked-object-handles-stack-component equipment-command-tick-component equipment-has-infinite-uses-component object-position-component object-translational-velocity-component object-forward-and-up-component object-angular-velocity-component object-body-vitality-component object-shield-vitality-component object-region-state-component object-damage-sections-component object-constraint-component object-multiplayer-properties-component object-parent-state-component object-dead-state-component object-scale-component object-maximum-vitalities-component object-dissolver-component object-low-frequency-component object-physics-flags-component object-frame-configuration-component generic-rigid-body-transforms-component animated-mesh-dynamic-state-component object-position-component object-translational-velocity-component object-forward-and-up-component object-angular-velocity-component object-body-vitality-component object-shield-vitality-component object-region-state-component object-damage-sections-component object-constraint-component object-multiplayer-properties-component object-parent-state-component object-dead-state-component object-scale-component object-maximum-vitalities-component object-dissolver-component object-low-frequency-component object-physics-flags-component object-frame-configuration-component generic-rigid-body-transforms-component animated-mesh-dynamic-state-component object-position-dynamic-precision-component object-translational-velocity-dynamic-precision-component object-forward-and-up-dynamic-precision-component object-angular-velocity-dynamic-precision-component object-body-vitality-component object-shield-vitality-component object-region-state-component object-damage-sections-component object-constraint-component object-multiplayer-properties-component object-parent-state-component object-dead-state-component object-scale-component object-maximum-vitalities-component object-dissolver-component object-low-frequency-component object-physics-flags-component object-frame-configuration-component unit-control-component unit-actor-control-component unit-actor-state-component unit-desired-aiming-vector-component unit-grenade-counts-component unit-malleable-property-component unit-low-frequency-component unit-command-tick-component unit-equipment-component unit-stun-component unit-active-camo-state-component unit-crouch-component vehicle-auto-turret-triggers-component vehicle-auto-turret-aiming-vector-component vehicle-transformed-or-desired-open-state-changed-component vehicle-type-state-component vehicle-type-physics-component vehicle-auto-turret-target-component vehicle-sentry-state-component vehicle-emp-timer-component vehicle-weapon-set-component vehicle-auto-turret-component vehicle-equipment-turret-parent-component vehicle-seats-override-pitch-component vehicle-seats-override-yaw-component simulation-state-component simulation-state-playback-component air-drop-flight-component warp-component vehicle-low-frequency-component object-position-component object-translational-velocity-component object-forward-and-up-component object-angular-velocity-component object-body-vitality-component object-shield-vitality-component object-region-state-component object-damage-sections-component object-constraint-component object-multiplayer-properties-component object-parent-state-component object-dead-state-component object-scale-component object-maximum-vitalities-component object-dissolver-component object-low-frequency-component object-physics-flags-component object-frame-configuration-component projectile-at-rest-state projectile-tether-state projectile-command_tick projectile-deceleration-disabled-state object-position-component object-translational-velocity-component object-forward-and-up-component object-angular-velocity-component object-body-vitality-component object-shield-vitality-component object-region-state-component object-damage-sections-component object-constraint-component object-multiplayer-properties-component object-parent-state-component object-dead-state-component object-scale-component object-maximum-vitalities-component object-dissolver-component object-low-frequency-component object-physics-flags-component object-frame-configuration-component item-at-rest-component item-ignore-player-component weapon-ammo-component object-position-component object-translational-velocity-component object-forward-and-up-component object-angular-velocity-component object-body-vitality-component object-shield-vitality-component object-region-state-component object-damage-sections-component object-constraint-component object-multiplayer-properties-component object-parent-state-component object-dead-state-component object-scale-component object-maximum-vitalities-component object-dissolver-component object-low-frequency-component object-physics-flags-component object-frame-configuration-component device-position-component device-position-animation-name-component device-position-animation-control-component device-position-group-component device-power-component device-power-group-component device-interaction-in-progress-component device-interaction-hold-time-component device-control-action-string-override-component device-health-station-charges-component device-health-station-in-use-component device-exclusive-user-component device-in-primary-mode-component device-dispenser-monitors-changed-component device-dispenser-state-flags-component device-dispenser-require-los-component device-animation-layer-settings-component device-animation-layer-state-component device-dispenser-state-component device-object-dispenser-timer-component device-position-transition-velocity-component device-machine-flags-component asset-transform-component matchflow-sequence-data-component matchflow-focus-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component state-broker-state-changed-data-component managed-object-networked-splash-message-static-component managed-object-networked-splash-message-dynamic-component personal-ai-data-component forge-player-data-edited-objects-ids-component forge-player-data-editing-graphs-component

acurtis166 commented 4 months ago

@ChaseWoodhams Unfortunately I haven't made much progress on unpacking those files. We do have a thread here that you might be interested in.

ChaseWoodhams commented 4 months ago

Awesome! Thanks for that link. I will stay up to date on that. I have also sent the bin files to a modder community that uses that tag tool to see if they can help translate it into usable data. If we find anything, Ill share!

Also - do you know of a way to download the match recording in any type of media file format? Id like to see if there is a way to pull down an mp4 or any media file type after the completion of a game.

ChaseWoodhams commented 4 months ago

Ill add one more similar questions so I dont keep peppering you with more questions one by one.

Can you think of a way for me to parse through all player data for any player that has been active in the last 30 days and pull down their GTs? I want to be able to do community analysis if possible.

Example: From active players in the last 30 days how many are at Platinum rank total. Programmatically I get how the code might work but are there limitations to expect? I know this will be a ton of data, is there a safe way to approach this?

aapokaapo commented 4 months ago

Ill add one more similar questions so I dont keep peppering you with more questions one by one.

Can you think of a way for me to parse through all player data for any player that has been active in the last 30 days and pull down their GTs? I want to be able to do community analysis if possible.

Example: From active players in the last 30 days how many are at Platinum rank total. Programmatically I get how the code might work but are there limitations to expect? I know this will be a ton of data, is there a safe way to approach this?

You could get programmatically all of your matches in 25 match chunks and then get all the matches for all the players in your lobbies and that way expand your playerlist exponentially and in theory potentially get a list of all the players (slow and resource heavy). Alternatively you could use already established databases as starting point, like halodatahive and halotracker to build your list of players.

AFAIK there is no endpoint to get all the active players. Halowaypoint has a leaderboard that has every player with 1500+ CSR so guess they have an endpoint for that.

It is not feasible for Microsoft to store game recordings in mp4-format since that would take a crap ton of storage space, so there is no endpoint for mp4-files.

ChaseWoodhams commented 4 months ago

Awesome that was Plan B! Ill now, make it Plan A!

Thanks!

acurtis166 commented 4 months ago

@ChaseWoodhams if you were satisfied with getting a simple distribution of CSR (rather than a complete count) I think you could achieve an adequate sample fairly quickly. The ranks should follow a bell curve/normal distribution.