ControllerMate
I’ve been seeing a lot of posts requesting controller support in ESO.
ZOS has stated that this is not going to happen in the desktop version of the game, and they recommend using a 3rd party Controller <-> Keyboard/Mouse bridge. If you’re using Windows there are many options that work well (I happily used Xpadder in the earlier Windows-only beta sessions), but on Mac there are fewer options. The one I’m using is called
ControllerMate. It costs $25 and has quite a learning curve, depending on how deep you want to get into it, but the power and flexibility it brings to the controller set up - not just for ESO, but for any other games or applications - makes it 100% worth the cost in my opinion. If you take the time to learn it, I’m sure you’ll feel the same.
I’m going to present my controller layout, provide my profile file, and give some instructions on importing it to ControllerMate. This is going to be a pretty long post, so I’m going to package the sections up in spoiler tags to make it more digestible. Please enjoy - and I welcome all questions, comments, and constructive feedback!
The Control Layout
First things first, before you just download and implement some random stranger’s controller profile, you should probably study the layout and make sure it’s something you can play with. Here is the layout diagram for my profile:
Note that while a DualShock 4 is shown here, I’m not (yet) using the touchpad or PS button so you should be able to set this ControllerMate profile up similarly for an XBOX 360 controller, DualShock 3, or just about any modern controller with the "standard" set of sticks, triggers, and buttons.
Conceptually, I tried to maintain some Elder Scrolls basics while incorporating the fact that we now have 6 disparate attacks we can use at any given moment. I also tried to maintain a sort of "Feng Shui" with the controls - here are some key features about this profile that may not evident from the diagram:
- Much of the basic play should be somewhat familiar to Elder Scrolls controller users - block with Left Trigger, basic attack with Right Trigger, Triangle to jump, click Left Stick to sneak, etc.
- Interrupt enemies with Right and Left Trigger the same way to do with mouse buttons: hold Left Trigger while you tap Right Trigger.
- All skill slots are handled using the Square, X, and Circle Buttons - either with or without Right Bumper as a shift-like modifier, so you rarely have to stop moving/strafing during a fight.
- Want to move faster? It's all on the Left Bumper: tap to dodge in the direction you're moving*, hold to sprint, tap with the Right Bumper down to mount up.
- With [E] (tap DPad down), [R] (hold DPad down), and [X] (tap DPad right) keys mapped, you can perform a lot of the UI commands from the controller - buy/sell/store, join/leave group, accept/decline invite, take attachments/delete mail, various crafting commands, etc.
- Scrolling through the hundreds of mats in the Guild Bank donated by your generous guildies? Hold down the Right Bumper and use DPad up and down to scroll like a mouse wheel!
- Press Right Bumper + Triangle Button to toggle your voice chat microphone on so you can talk to guildies while simultaneously moving/fighting/gathering/crafting/etc, then press it again to toggle your mic off**!
- When talking to NPCs and given a list of dialog choices, you don’t have to drag the mouse cursor all the way over there with Right Stick and then use Right Trigger to click - you can use this quick key list!
- First choice ([1] key) = Square Button
- Second choice ([2] key) = X Button
- Third choice ([3] key) = Circle Button
- Fourth choice ([4] key) = Right Bumper + Square Button
- Fifth choice ([5] key) = Right Bumper + X Button
- Sixth choice ([6] key) = Right Bumper + Circle Button
- Seventh choice… ok, at this point you’ll have to use the keyboard.
* - These mappings require changes to ESO’s keybindings. See the "ESO’s In-game Control Settings" section below.
** - I’ve made this command available as the [=] key, but you’ll have to configure your voice chat client to make use of this feature.
I’ve been playing this layout primarily with my Dual Wield Nightblade, but also with a Sorcerer Archer, and a Dragonknight Firemage. I've tweaked it constantly over the course of every beta session since December when I started using Xpadder in Windows, and then ControllerMate once the ESO Mac client was released in mid-late February. The only thing I use my keyboard/mouse for is chatting with my guild, sending mail, and the occasional odd key command ([F] to interact with a player, for example). I stand by this controller layout - it’s fast, versatile, and comfortable.
Having said that, I’ll gladly help anyone change it to better fit their play style or controller hardware - just ask using my @ name so I get notified.
The Profile
ControllerMate profiles are much more complicated than many other controller <-> keyboard/mouse bridges (Xpadder, Pinnacle, etc); as such, they’re exported in binary format rather than text-based, so I can't just copy and paste it here... but
DropBox to the rescue!
The above link will take you to my "ESO DualShock 4 Mapping - v0.6.cmate" file. You should be able to drop it on your Desktop (or where ever) and then double click, or right click > Open in ControllerMate, or open ControllerMate first and use File > Import to get at it.
Remember, however,
you do not know me! If you have any type of virus scanner on your machine you should
use it - no matter how helpful anyone seems. #themoreyouknow
As an example of what you’ll see when you get this profile open in ControllerMate, here is the main window showing the DPad and Sticks page:
If you’re feeling a little intimidated by ControllerMate’s interface, I feel you. But don’t worry, they have
a pretty good set of documentation that goes over the ideas behind the various types of Building Blocks, programming pages, virtual devices, etc., as well as
an extensive set of examples covering every type of building block. Before continuing, I recommend reading at least these pages, just to get familiar with the look and functionality of the application:
If you run into a question that’s not in the docs, examples, or tutorial, ask me here on the forums and, again, be sure to use my @ name so I’m notified!
Transferring the Button Mappings
Alright, here's where we're going to get into the nitty gritty. If I could make a recommendation, the first thing you want to do before you edit your profile is
disable it until you're ready to test - just uncheck the "ESO DualShock 4 Mapping" group in the Programming Items list. That can save you a lot of pain at the hands of accidental button presses.
Because of the way ControllerMate recognizes controllers that are connected to your Mac, you are almost definitely going to have to replace each of my "Wireless Controller" buttons with mappings to your controller's corresponding buttons. To do that, follow these steps for each button (I’ll use clicking the left stick as an example):
1. Use my label ("Left Stick Click") as your guide to what's what rather than the button number (I don't know if the numbers will line up between my DS4 and your chosen controller.)
2. As an example, go the "DPad and Sticks" page in the profile I provided, and look at the Button Building Block labeled "Left Stick Click", which is button #11 for me.
3. Click your left stick and see which Button Building Block lights up in the Building Blocks palette. That’s the one we want to replace mine with.
4. Add the mapping for your Button Building Block by dragging it onto the page from the Building Blocks palette. (For now you should leave mine there as a reference.)
5. Then click your left stick again - the output at the bottom of the Button Building Block you just added should change from "OFF" to "ON" whenever you click that left stick.
6. Click back and forth between my Button Building Block and yours, viewing their properties in the Inspector palette, and change all of the settings in your block so they're the same as mine - particularly under the "Modifiers" and "Behavior" tabs as I have made quite a few adjustments there to many buttons.
7. Once you're convinced they're identical, pull the "^" Single Key Building Block (that's actually the [Ctrl] key) away from my button #11 Building Block so you can see the connection line (and pretend your name is Belgarion, since I first wrote these steps up for
@Belgarion a few months back.
):
8. Grab the "OFF" from the top of the "^" Single Key Building Block and pull it away far enough that it disconnects (when you let it go it will disappear - that's ok):
9. Now grab the "OFF" from the bottom of
your Button Building Block and connect it to the top of that same "^" Single Key Building Block:
10. Now, when you click your left stick, the connecter that says "OFF" at the bottom of your Button Building Block and the two "OFF"s on the "^" Single Key Building Block should all light up and change to say "ON" for as long as you hold that left stick click down.
11. If this worked then repeat this process to replace all of my "Wireless Button" Building Blocks with your own and get your configuration all sorted out. If it didn't work, then let me know more specifically what you're doing and what is (or isn't) happening as a result.
Once you're satisfied that everything has been transferred over, you can delete my Button Building Blocks.
The Virtual Mouse
This profile also includes a Virtual Mouse that I've set up specifically for the functionality of the right stick. Having the virtual mouse allows you to set up the sensitivity and acceleration of the right stick separately from your actual mouse (helpful for when you might want to switch back and forth). In fact, ControllerMate lets you customize the mouse acceleration curve to suit your tastes. something that none of the other Controller <-> Keyboard/Mouse bridges I’ve seen do.
After playing with the default acceleration curve for a while, I decided I wanted more sensitivity at lower levels (for more accurate movement in menus/storage/lockpicking), but also wanted more responsive turns at extreme levels of stick movement. So I created a custom acceleration curve for the ESO Virtual Mouse to handle both.
To see the current curve and make your own adjustments, select the "ESO Virtual Mouse Configuration", go to the "Mouse Axes" tab and adjust the curve to your liking. Here's a screenshot of the curve I'm using now:
As you can see it gives much more fine control at the beginning of the curve for finer mouse work and then ramps up evenly but quickly to a much higher acceleration used for "there's something behind me!" time.
ESO’s In-game Control Settings
There are some changes you have to make to ESO’s control settings in order for this profile to function properly:
- Change the Ultimate keybind from "R" to "6" to prevent confusing "Loot All" with "Waste my Ultimate".
- Change the Dodge keybind from "unbound" to "V" (this will also unbind "switch 1st/3rd perspective", but you can still handle perspective shifts by holding Right Bumper and pressing up and down on the DPad to scroll in and out.)
- In "Settings > Gameplay" turn off "Double Tap to Dodge" as controllers accidentally fire the double tap way too easily.
There are also some settings you might want to tweak to make your controller experience even more enjoyable in ESO:
- Increase the in-game look sensitivity (Controls > Camera) - I have mine set to 70
- Turn on "Look Smoothing" - I don’t know what this does exactly, but turning and looking around do seem less choppy with it on. /shrug
- Y-axis Inversion - this will invert your Y-axis while looking around, but keep it normal for use in menus - perfect for controller use*!
(* - If you invert the Y-axis in-game, using the
mouse to look around will become very weird… so keep that in mind!
)
Miscellaneous Bits of Information
- There are actually two different applications installed for ControllerMate - the ControllerMate UI and the ControllerMate Helper. The ControllerMate UI is what you use to set up and change your settings. The ControllerMate Helper application runs all the time so that whenever you plug your controller, your profile is ready to go!
- Be aware that when the ControllerMate UI is open, the Left and Right triggers (or anything mapped to a mouse button) will not work. This is a safety measure to make sure a misfire doesn’t accidentally delete everything on your hard drive. When you want to test anything that involves the virtual mouse buttons or you want to use the profile for real, you have to make changes, save, and then close so that only the ControllerMate Helper is running in the background.
Basic Troubleshooting
Here are some things to think about/check before you post a problem:
Are you using the latest version of ControllerMate? If you’re not sure if you have the latest, I recommend updating (ControllerMate menu > Check for Updates). If you just want to see what version you have check the ControllerMate > About ControllerMate menu and on the window that pops up you should see something like "Version 4.7.1" and "CMv4.7.1 Build 8D61" below it.
Are the group, the three pages, the virtual mouse, and the virtual mouse configuration I provided all enabled? If so, they will have checks next to them in the Programming Items list like this:
Do you have any existing mappings? If you do you might want to disable them! I don't know what having two pages with commands mapped to the same controller button will do...
Does your controller show up in the Controllers list on the Palette? My DS4 shows up as "Wireless Controller" even though I have it plugged in via USB:
When you push a button on your controller, does the associated Button Building Block light up in the Palette? For example, when I push the Square Button on my DS4, Button #1 Building Block lights up (albeit faintly...):
DisclaimerI'm not a ControllerMate expert! I just started using this software for the first time a few months ago and only with ESO! If this process doesn't work, or if you don't understand why something is set up the way it is, let me know what's going on in the forums here and we'll work together to figure it all out. Which reminds me - please contact me in this thread, as opposed to via PM, so that everyone else on the forums can see our solutions.
I'm sure I'll be tweaking this profile as time goes on. Given the greater complexity in the ControllerMate export/import process between different controllers (as opposed to Xpadder, etc.), updates will have to be handled differently. I'll provide the import file via DropBox for anyone that comes along later, but for anyone already using the profile I'll provide steps to update it themselves so they won't have to repeat the process of transferring my buttons to their own.
Good luck and have fun!
Credits:
Thanks to my guildies
@Rebelyn and
@justkdn for helping me work through some of the more philosophical problems I had with this layout.