BetterTouchTool (starting with version 3.540) allows you to use Caps Lock as a Hyper Key. A Hyper Key is a magical key which automatically presses all the standard modifiers (ctrl+shift+cmd+opt).
Why would you need that? Because on macOS many of the easy to reach shortcut combinations are already used by the system or by some app. By using the Hyper Key can can define shortcuts in BTT that are pretty much guaranteed to not be used anywhere else (who would want to press e.g. ctrl+shift+cmd+opt+ P). This makes room for tons of easy to remember and easy to use shortcuts.
1 Configuring the Hyper Key
Go to the Keyboard Shortcuts section in BTT and add a new shortcut. Record the Caps Lock Key. If it doesn't record for some reason make sure you have set Caps Lock to Caps Lock in System Preferences => Keyboard => Modifiers for the keyboard you are using.
After doing that assign a new action to the Caps Lock key - select Act as Hyper Key from the list.
Now the basic setup is done and you can start to use your Hyper Key.
2 Advanced Hyper Key Configuration
In some situations it might be helfpul to not only use the Hyper Key as a fance modifier key but also trigger some other functionality when it is not being used as part of a shortcut.
For example you might want to retain the ability to trigger the real Caps Lock functionality or your might want to use it as an ESC key.
This can be achieved by using a Named Trigger. The Hyper Key can execute such a Named Trigger when it recognized that it has been pressed and released but was not part of any shortcut.
To configure this behavior select the "Act as Hyper Key" action you added in Step 1. Then on the bottom of the configuration list either choose an existing Named Trigger or click "Create New Named Trigger".
Create a new Named Trigger will take you to the "Named & Other Triggers" section in BTT where you can create them and assign actions.
In this example I have configured two Named Triggers, one that would execute ESC when assigned to the Hyper Key, one that would toggle Caps Lock when assigned to the Hyper Key (you can only use one.)
In a final step switch back to the Keyboard Shortcuts section and assign the appropriate Named Trigger you just created