Important Note: please submit new bugs from the Github page, which automatically emails me, so I can respond more quickly.
XIVCrossbar
A Gamepad Macro Addon (github link)
I had never planned on releasing this--because I thought nobody would care--but when I showed off my crossbar UI in the "Share your custom FFXI UI" thread, I got such a reaction that I decided it would be worth it to clean it up and make it publicly available. Due to work complications, it took a few weeks for me to get it ready for release, but here we are, and now it's ready.
What is XIVCrossbar?
XIVCrossbar is a recreation of FFXIV's crossbar gamepad macros...
...in FFXI.
Under the hood, XIVCrossbar is a heavily modified version of the (excellent) XIVHotbar by SirEdeonX. It uses a different name and different bindings such that the two can be used simultaneously, if you're into that.
How does XIVCrossbar work?
If you're already used to XIV's crossbar, go ahead and skip to the "How do I set up XIVCrossbar?" section; you probably know everything I'm about to explain.
The long and short of it is that you hold down your left/right trigger, then press either a dpad button or a face button in order to activate the action that has been bound to that button combination. While the previous screenshot of XIVCrossbar shows how it corresponds to XIV's actual crossbar, a screenshot of it with compact mode turned off should make things more clear. As an example: with the below crossbar setup, if I were to press B while holding the left trigger, I would cast Magic Fruit. If I were holding the right trigger instead, I would use Expiacion.
Having only 16 actions per crossbar set would be pretty limiting, so I took a cue from XIV's actual crossbar and gave the option to add a 3rd crossbar by holding down both left and right triggers. When you do that, the main 2 crossbars disappear and a 3rd appears in the center to replace them. So if I were to press B while holding down both triggers, I would cast Sweeping Gouge.
If 24 actions per crossbar set still isn't enough, then you can change settings.global.Hotbar.Number from 3 to 4 in your settings.xml, which will up you to having 4 crossbars per set, for a total of 32 actions per crossbar set. In this case, holding both triggers still brings up a new crossbar, but whether it is #3 or #4 depends on the
order you press the triggers. R -> L shows crossbar #3, and L -> R shows crossbar #4. (This was also cribbed from FFXIV)
Update: I also added double-tap crossbars that you can enable by increasing settings.global.Hotbar.Number to 6 in settings.xml. You can jump to these crossbars by hitting one of the triggers twice in quick succession (like double-clicking a mouse), which means you can now have up to 48 bindings per crossbar set.
What's the advantage of using a crossbar over FFXI's native macros?
Well, if you're a keyboard-only user, then nothing. If you use a gamepad like me, though, then two words:
muscle memory. FFXI isn't a particularly fast-paced game, but when you're in a hard fight, dpadding left and right in your macros to select the right one does take time and concentration. But having L -> B bound to Magic Fruit on all my BLU crossbars means that when I see my HP is low, I don't need to find the right macro and then execute it, I just hold the left trigger and press B.
How do I set up XIVCrossbar?
Everything you need to know is in the README file, but a high-level view is something like this:
Download the zip file from github, and extract it to your addons folder, as usual
Install AutoHotKey (free)
(But if you're playing on Steam Deck, skip AutoHotKey and just set up FFXI_Input.sh from the Github repo to run when you run FFXI)
Open FFXI Controller Config and make your setup look like this:
(Check the XInput box if you normally do)
Log into FFXI
Load xivcrossbar
Follow the setup dialog shown
When I'm in battle, sometimes a horizontal red or green bar appears above my crossbar. What is that?
It's a skillchain window indicator. When the bar is red, the window is not yet open. When it's green, the window is open. The bar expands while it's red, and then shrinks while it's green. When the green bar has shrunk completely and disappears, the skillchain window has closed.
Sometimes my weaponskill icons change to a different icon, and a yellow marching-ant border appears. What's going on?
That's to notify you that if you use that weaponskill right now, you'll make a skillchain. The icon of the weaponskill changes to the icon of the skillchain you would make if you used it. Naturally, this only happens when the skillchain window indicator is green.
Any weird quirks I should know about?
Unfortunately, yes.
The first quirk is that due to the way we're capturing gamepad input, we can't actually stop button presses from reaching the game, even if they're only intended to interact with XIVCrossbar menus. The way we handle this is to make the game capture and discard the dpad presses for us, by keeping the regular macro system open. This is why the macro palettes need to be mapped to the triggers. So, when you're interacting with XIVCrossbar dialogs like the gamepad mapper or the action binder, you will need to have one or both triggers held down in order for it to read your input. Since this is already how the crossbars work--even in FFXIV itself--it's unnoticeable during gameplay, but you'll need to keep note of it for when you're tweaking your crossbar sets. However,
I highly, highly recommend setting aside a completely blank macro book in FFXI and using it when you're using XIVCrossbar so you can button mash as much as you want without accidentally firing off any vanilla FFXI macros.
The second quirk is that due to the way we're passing gamepad input to FFXI, we unbind any existing keybinds on Ctrl+F1 through Ctrl+F12. Under the hood, a gamepad button combo like L -> DpadLeft is sent as a button combination like Ctrl+F1+F12, which would fire both Ctrl+F1 and Ctrl+F12 bindings, if they existed. The plus side of this is that regular F1 through F12, Alt+F1 through Alt+F12 and Shift+F1 through Shift+F12 are unaffected.
I will look into a way of porting over existing keybindings such that this is transparent once it's been set up, but I currently don't have it implemented. I have added a way to rebind Ctrl+F1 through Ctrl+F8 (Ctrl+F9 through Ctrl+F12 are still reserved). Just move your bindings for those into the command strings found in addons/xivcrossbar/function_key_bindings.lua.
The current status of feature work is as follows:
Planned:
Priority #1 - Light Arts/Dark Arts auto-swapping (Done)
Priority #2 - Addition of <stpc> to actions that normally only use <me> (Done)
Priority #3 - Roll/Double-Up combo action (available on experimental git branch)
Priority #4 - JA + WS Bindings ("Sneak Attack + WS" in one action) (available for XML editing folks on experimental git branch)
Priority #5 - Attack/Switch Target combo action
"Messing around in the shop"/non-functional:
- Multiple JOB-Default crossbars/Weapon-specific crossbars
- GearSwap Mode Changers (currently, nothing you couldn't do with ex commands)
On the drawing board:
- Display charges for abilities alongside recast (e.g. Strategems, Flourishes, Quick Draw)
- Equip weapon action
- Equip set action
- "Timer" XML attribute (overrides the default timer/lack of timer for an action's icon)
- Integration actions (e.g. EasyNuke)
- Refactoring/code cleanup
- Rendering code optimization
- Slot swap UI
- Hide/Show commands
- Follow command
Known bugs:
- Abilities on cooldown retain the "Job Default Set" or "Default Set" overlay when binding dialog is opened then closed
- Using the "Move Crossbar" UI makes icons appear in the corner of their slot until the addon reloads
Note that this isn't a promise to deliver these features in this order; it's just how I'm currently thinking things will go.