Skyrim Special Edition
0 of 0

File information

Last updated

Original upload

Created by


Uploaded by


Virus scan

Safe to use

About this mod

Custom quickslots mod for SkyrimVR

Permissions and credits

VRCustomQuickslots is an SKSE plugin that gives you quickslots to equip and use stuff you assign to them just by putting your hand in the slot area and pressing the activate button(Trigger by default).
See GitHub for source code



Install with your favorite Mod Manager or manually.
Files installed:
  • Data\SKSE\Plugins\VRCustomQuickslots.dll
  • Data\SKSE\Plugins\vrcustomquickslots.xml

  • It also creates new xml files in that location when you save the game.


The layout and actions of the quickslots are all set in the config file vrcustomquickslots.xml 
There you can create as many quickslots as you like, set their position and actions (See Configuration section for more details).
When your VR controller is overlapping with a quickslot, you can pull the trigger to equip the configured items or spells for that slot.  
The actions of each quickslot are defined by SpellIDs and ItemIDs set in the XML file. 
To customize the quickslots to your liking in game, you can long press trigger on quickslots to remove its action, and long press again to add new action OR edit the XML file. Check the Configuration section for more details.


Q: How do I install this mod?
A: You should use a mod manager, but if you must do it manually, make sure the .dll and .xml file appear under the folder  <SkyrimVRRoot>\Data\SKSE\Plugins

Q: Why doesn't the mod work?
A: Probably due to an error in the XML or you aren't finding the quickslot.  Check the log file at C:\Users\<MYUSERNAME>\Documents\My Games\Skyrim VR\SKSE\VRCustomQuickslots.log for possible XML errors

Q: How do I put whatever item or spells I want in the quickslot, or move the quickslot? Add new quickslots?
A: As of v3 you can long press trigger on quickslots to remove its action, and long press again to add new action.  Otherwise, you have to edit the XML file (still necessary for equipping each hand with a different action)

Q: Why do I get an item from the left side when my hand is on the right of my back?
A: Probably because your head is not looking straight ahead, the slots are relative to the headsets rotation.

Q: How can I equip a spell or 1h weapon in only the left or right hand?
A: Use the option slot="1" for right hand and slot="2" for left hand in the <equipspell> or <equipitem> tag.

Q: Still can't get anything working, what should I do?
A: Try setting debugloglevel="1" in the XML options, this shows more information in the log that might help

Q: After upgrading to v0.5+ I am constantly switching weapons unexpectedly when trying to use bow
A: You need to delete and regenerate your XML config or edit back slots by hand. See the Article on how to do this.


  • Apparently this is compatible with Dragonborn Speaks Naturally, but I would not recommend using voice commands and quickslots at the same time
  • May have compatibility issues with MageVR, IVQRS and other VR overlay mods.
  • If you already have Shizof's VR haptics mod you should stop using PapyrusVR.dll and replace it with SkyrimVRTools.dll - it is compatible with his mod too, never use both at once!


This mod has a configuration file in "SKSE\Plugins\vrcustomquickslots.xml".
Check the article: Locating Your VRCustomQuickslots XML Config File for more information.
XML layout is like this:

As you can see, there are a lot of possibilities.
Let's go over them:
Options Tag Attributes:
defaultradius: The activate radius of the quickslot. If you don't define specific radius values for each of your slots, this value is used.
debugloglevel: The debug level for the log file. 0: Log only errors, 1: Log errors and warnings, 2: Log errors, warnings, and information messages. Log file is in "My Documents\my games\Skyrim VR\SKSE\VRCustomQuickslots.log".

hapticfeedback: Setting this to 1 enables the Haptic feedback effect in the mod. When you hover your hand on the slot, you'll receive a feedback. Setting it to 0 disables haptic feedback.
hoverquickslothaptictime: This is the duration of the haptic feedback effect you get when you hover your hand over the quickslot. This is in seconds. So 0.05 seconds means 50 milliseconds.
alloweditslots: Setting this to 1 allows editing the slots in game. It also creates an XML file per character when you save the game.
longpresstime: How long press time is required for long press action which allows removing and adding actions for quickslots (In seconds)
disablerawapi: Setting this to 1 disables using openvr api and uses legacy papyrusvr api for controller events (Changing this is not recommended).
controllerradius: Defines the default sphere radius for controller overlap. This is used together with the quickslot radius to determine if the two are overlapping.
activatebutton: The button to use for activation. Default is Trigger "33". You can change this to "2" to use Grip instead. Here is the list for all button IDs: 

QuickSlot Tag Attributes:

name: Quickslot name. Make sure to give every quickslot a unique name.
posx, posy, posz: Position values for the quickslot. All positions are in SteamVR coordinates relative to headset, -y is below headset, +x right of headset, -x left of headset and +z is behind headset
radius: The quickslot specific radius, if you don't enter any, the mod uses the defaultradius from options tag attributes.
The order type which the mod uses to execute the actions. Default is "0".
Check the meanings of order types:

QuickSlot Tag Elements:
equipitem: Used to equip weapons, armor, ammo etc.
equipother: Used to equip potions, food, drinks, misc items etc.
equipspell: Used to equip spells.
equipshout: Used to equip shouts.
dropobject: Used to drop items.
consolecmd: Used to execute console commands. Usage: <consolecmd>your_command_here</consolecmd>

Multiple Elements under a quickslot tag are accepted. The order to execute them can be changed by the quickslot attribute order (See above).

Attributes of QuickSlot Tag Elements:
pluginname: Esp-Esm name of the mod the item is from. For Skyrim.esm, you don't need to write the name. You can also omit this if you prefer using the full formid and the mod will automatically get it for you.
formid: FormId of the item/spell/shout. Use with or without the pluginname. If you use it together with pluginname, you should use the last 6 characters. This attribute accepts multiple formids separated by a comma ","
slot: Used by equipitem and equipspell actions. Slot to equip the item/spell to. If you omit this, it uses slot="0" which is both hands. 0: Both hands, 1: Right Hand, 2: Left Hand
count: Only used by "dropobject" element. Default is "1". Determines the count of objects to drop.
Following attributes are used to select multiple formids automatically for ingestibles and ammo:
Like this: <equipother itemtype="1" potion="0" food="1" poison="0" keyword="VendorItemFood" keywordnot="VendorItemFoodRaw"/>
You can combine these with pluginname too. Like this:
<equipother pluginname="MilkSSE.esp" itemtype="1" potion="0" food="1" poison="0" keyword="VendorItemFood"/>
itemtype: Set to 1 for ingestibles and 2 for ammo.
potion: Set to 1 to include potions and 0 to exclude them.
food: Set to 1 to include food and 0 to exclude them.
poison: Set to 1 to include poisons and 0 to exclude them.
keyword: Items that have these keywords are included. This attribute accepts multiple keywords separated by a comma ","
keywordnot: Items that have these keywords are excluded. This attribute accepts multiple keywords separated by a comma ","

Alternate XML Configs:
MageVR+NALO Compatible
Spellsiphon Left-handed archer early game
More Info:
quickslots.h config variables


v0.6 BETA
- Added the ability to change activate button. Change activatebutton option in xml (Check the Configuration section for detailed info).
- Quickslot tag can have multiple elements now. Added order attribute to define which one(s) to execute(random, first, all, toggle). Check the configuration section for different order types.
- You can define formids with full 8 digit hex OR by pluginname and formid if you want now.
- Added the ability to equip potion,food,misc stuff using new equipother action.
- You can define ingestible and ammo items by just their pluginname, keyword, keywordnot settings if you want. Ingestibles have configurable potion, food and poison checks.
- Added dropobject action to drop any amount of items. (Can be used to drop bedroll in Basic Camp Gear mod)
- Spells and Shouts that are not known by the player are ignored now.
- Fix random crash when equipping weapon after casting spells
v0.5.3 BETA
- Multiple crash fixes
- Add new hoverquickslothaptictime XML option which sets the haptic response time when hovering over a slot ONLY but not other haptics, set to 0 to disable. Useful for NALO users.
- Read left hand mode option directly from Skyrim INI, this XML option is no longer used.
v0.5 BETA
- Use new Raw OpenVR API from SkyrimVRTools that allows for input blocking when interacting with a quickslot (Requires new SkyrimVRTools)
- Improved all haptic feedback (for example: when equipping or removing actions from quickslot, when trying to use an empty quickslot)
- Automatically equip / unequip quickslot after long press time is finished
- Fix issue with default positions of upper back quickslots (Recommend regenerating xml file)
IMPORTANT: I highly recommend getting the latest Skyrim VR Tools from nexus (delete the existing one in SKSE/Plugins) and deleting your vrcustomquickslots_XXXXXXXX.xml in MO2 overwrite to regenerate quickslots with fixed position.  You will have to remap quick slots but the back left/right slot positions are improved.  
v0.4 BETA
- Added an option for left handed mode (set lefthandedmode="1" in the <options> tag in the XML file)
- Write an XML file for each character save, using the unique ID from the save file.  Check under MO2 overwrite files for this new file if you use MO2.   The filename should have the format: vrcustomquickslots_XXXXXXXX.xml where the X's are a unique hexadecimal ID for each character.
v0.3 BETA
- You can now remove and set quickslot actions in game by holding and releasing the trigger for at least 3 seconds (configurable) on the quickslot, empty slots will be set to your current item/spell in hand.  There will be a long haptic vibration when a quickslot is edited, and the XML will be saved when you save your game.
- Improved haptics
- Fixed blocking during dialog/menus
- Fixed crash on startup
- Improved logging
v0.2 BETA 
- Added haptic feedback when you overlap a quickslot and disable quickslots when in menu (Doesn't work with dialog yet), a few other misc improvements
- New XML option "hapticfeedback" defaults to 1 (on), set to 0 to disable haptic feedback on overlap


Special thanks to Shizof for contributing tons of new features for v0.6!
Thanks to artumino for the work on PapyrusVR and SkyrimVRTools, the SKSE devs for Skyrim Script Extender, and DougHamil for Dragonborn Speaks Naturally which showed me how to run console commands.