A Bridge Extension for SAMMI. Take interactions in game and turn them into stream gimmicks!
This extension allows you to receive data from ggxrd-mod in the form of a button that fills with data at 60Hz, and Extension Triggers for individual, one-off events. It's currently separated into these two mechanisms for performance reasons. The data stream to the button may become an Extension Trigger of it's own at a later date.
Step 1: Download SAMMI.
Step 2: Follow the various SAMMI Onboarding Tutorials.
Step 3: Install Guilty Gear Xrd x SAMMI as a SAMMI Bridge Extension.
Step 4: Boot up Guilty Gear Xrd while SAMMI and SAMMI Bridge are open to automatically connect.
Step 5: Access the Xrd_Data button for gamestate info, and make use of the various Extension Triggers generated by Xrd to drive stream gimmicks!
Step 6 (Optional): Copy the XrdDemoDeck.txt in the repo to your clipboard, and you can import it to Sammi via the Paste Deck command. You'll have to add two Trigger Button
commands included in the Gamestate Triggers (Required)
button to your Xrd_Triggers
button in the Extension Deck, or On Blitz and Wakeup Frame Detection will not function.
After installing, you can access the live datastream by referencing it directly in your commands. A reference to datastream Variables will look like:
Example | Description |
---|---|
Xrd_data.data.data.player_1.character |
Retrieves the current character in P1 slot. |
Xrd_data.data.data.current_frame |
Retrieves the current frame. |
Xrd_Data.data.data.player_2.steam_id |
Retrieves the Steam ID for the P2 slot. Netplay Only. Outside of netplay it always returns 0 . |
Some buttons want to run logic on every frame of gameplay. Because we currently use a workaround to support the full 60FPS data stream, there is no Extension Trigger that can perform this.
Inside the button of ID Xrd_Triggers
, insert the Trigger Button
command in the appropriate field, with the variable set to whatever button you would like to trigger in time with the incoming data stream.
The following Extension Triggers are available for use. Add them to buttons via a button's Trigger menu. They all contain extremely relevant data within that can be accessed via the Trigger Pull Button
command.
Extension Trigger | Description |
---|---|
ggxrd_hitEvent |
Occurs on Hit or Block. Contains relevant data. |
ggxrd_objectCreatedEvent |
Triggers on Object Generation. These can be logic objects, projectiles or special effects. |
ggxrd_roundStartEvent |
Triggers on Round Start. |
ggxrd_roundEndEvent |
Triggers on Round End. |
ggxrd_comboEndEvent |
Combo Summary! Corrals all the data from the last combo. |
ggxrd_gamestateDeinitializedEvent |
Triggers when you leave a match or the application closes mid-match. |
This is in the Commands screen of a button set up with the ggxrd_hitEvent
Extension Trigger. The ggxrd_hitEvent trigger sends along it's own data object, separate from the one in the Xrd_Data
button.
This is in the Commands screen of a button with no Extension Trigger. If you look closely, the commands reference the current character state in the data stream via Xrd_Data.data.data.player_1.state
Adding the variable is_blitzing
to the Init Variables:
Adding the button logic to detect a valid Blitz state on P1 side:
In order for this button to run on every frame, we need to add it to the Xrd_Triggers
button provided in the Extension deck.
The Xrd_Triggers
Button:
Inside the Xrd_Triggers
Button:
Check out the documentation for Pangaea's Mod for more information.