Skyrim

File information

Last updated

Original upload

Created by

Utumno aka Udun

Uploaded by

utumno

Virus scan

Some manually verified files

About this mod

Adds control tab functionality (actually ALT TAB, but using Ctrl-Tab shortcut) in the Skyrim construction kit, via an Autohotkey script. Also adds many shortcuts and the ability to focus back to the previous active window when you close a window.

Permissions and credits
The analogous mod for the Oblivion CS : tes.nexusmods.com/downloads/file.php?id=25031
Forum thread : http://forums.bethsoft.com/topic/1359587-relzbeta-ck-hotkeys-including-control-tab-for-ck/

Name: TES5 CK Shortcuts (including Control Tab)
Version: 0.95b (beta)
Date: 2011/3/17
Category: Modding Tools
Requirements: tested with CK 1.4.23 on WIN7 PRO
Author : utumno aka Udun
Homepage: http://udunslabs.blogspot.com/
Download: http://skyrim.nexusmods.com/downloads/file.php?id=13113


Description
===========

This release includes one executable, CK_Hotkeys_v0.95b.exe which adds :
* control tab functionality (actually ALT TAB, but using Ctrl-Tab shortcut) in the Skyrim Construction Kit, using the always handy Autohotkey language.
* Customizable (via ini file) shortcuts (hotkeys) for various actions (see below).
* An ini file created in the directory the script is run, CK_Hotkeys.ini.
* A focus back to previous window feature. By default enabled for all windows. If you find you have problems with some windows loosing focus (namely the NPC window) set OnlyForReferences to 1 in the ini.


Install
=======

Download, unzip, save CK_Hotkeys_v0.95b.exe wherever in your drive. Run the exe, open up the CK, switch to it and let the script initialize (takes a couple secs). (If the CK is not running, as long as you leave the default ini settings, the script will wait for the CK).
One small green icon with an H on it will appear on system tray when you run the exe. By right clicking on it you can exit, pause the script or suspend the hotkeys. The exe will create an ini file in the directory it is run, where you can customize a couple of options.


Features
========

CK_Hotkeys_v0.95b.exe :
* press and hold Ctrl then press Tab to cycle in an Alt Tab way through the CK windows that are open (Render, Cell, Object, References, etc). Shift reverses order. It works like the Alt Tab shortcut in Windows Explorer. Clicking on a window adds it to the stack (even if the script failed to auto-add it).
* Adds shortcuts, see the ini file section bellow.
In particular pressing Alt+m toggles the maximize/restore state of the window while Alt+n minimizes it out of your way (to actually minimize it out of your way press Alt+Shift+n). Alt+m is meant to be used with the object, cell, render, script and script\open windows (and a couple of others maybe) which although not having maximize\restore\minimize button they can be maximized and minimized. With other windows, like "Reference", will give a funky result :)
Also, pressing Cntrl+Shift+r reloads the script. When cpu load is very high this may prove necessary.


CK_Hotkeys.ini
==============

^ stands for Control, + for Shift and ! for Alt.
~ is not part of the hotkeys but a symbol that tells Autohotkey that when the hotkey fires, its key's native function will not be blocked (so wherever you see, for instance, the ~Enter combo, pressing Enter (and NOT the tilde) will fire the hotkey and also send an Enter keystroke). Best to leave it there when I have it.
For more keys and rules see http://www.autohotkey.com/docs/Hotkeys.htm#Intro.
When the CK_Hotkeys_v0.95b.exe script is first run the (default) CK_Hotkeys.ini will be created - and then left alone. If you want to change a shortcut just open the ini and edit the shortcut you want. For instance, replace the line :

ReloadScript=^+r

with :

ReloadScript=^!j

if you want Control+Alt+j to reload the script instead of the default Control+Shift+r. If you want to disable a particular shortcut delete the part after the = sign. For instance :

ReloadScript=

disables the Reload Script shortcut.

For changes to take effect rerun the exe.
If you want to revert to the default hotkeys just delete CK_Hotkeys.ini and reload (run) the CK_Hotkeys_v0.95b.exe. A brand new (default) CK_Hotkeys.ini will be created.
The specific window classes' hotkeys take precedence over the global ones (see comments in [GlobalHotkeys] section).
The ini file I give below is "commented". Do not attempt to comment the actual ini as I don't believe it's possible.

<ck_hotkeys><br><br><span class="wbbtab"></span>[Settings]<br><span class="wbbtab"></span>Exit_on_CS_exit=0<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span>; if set to 1 the script will exit on CS's exit and not start at all if the CS is not running<br><span class="wbbtab"></span>Enable_Shortcuts=1<span class="wbbtab"></span><span class="wbbtab"></span> ; set to 0 to disable all shortcuts (except Control-Tab)<br><span class="wbbtab"></span>Show_initialize_tooltip=1 ; set to 0 to disable the tooltip shown on initialization<br><span class="wbbtab"></span>EnableRefocus=1<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span> ; set to 0 to disable focusing back on the previous window when closing a window<br><span class="wbbtab"></span>OnlyForReferences=0<span class="wbbtab"></span><span class="wbbtab"></span> ; set to 1 to disable ReFocus on all windows except "References" windows<br><span class="wbbtab"></span>EvenMoreWins=1<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span>; set to 0 to disable ReFocus on some windows like find and replace, Quests etc ; if OnlyForReferences==1 this has no effect<br><br><span class="wbbtab"></span>[GlobalHotkeys]<br><span class="wbbtab"></span>; these will run if any CK window is active (has focus). If a shortcut here conflicts with one in another section however, the other one will take precedence.<br><span class="wbbtab"></span>; for instance ^s won't save the active plugin when a Script Edit window is active - it will save the current script instead (see [ScriptHotkeys] section below)<br><span class="wbbtab"></span>ReloadScript=^+r<span class="wbbtab"></span> ; reloads the script (CK_Hotkeys)<br><span class="wbbtab"></span>Maximize/Restore=!m ; meant to be used with the object, cell, render, script and script\open windows (and a couple others maybe)<br><span class="wbbtab"></span>Minimize=!n<br><span class="wbbtab"></span>ForceMin=!+n<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span>; minimizes active window and puts it to the bottom of the stack of windows - so when hitting CntrlTab once it won't pop up<br><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span>; you need to press ^+Tab to see it - found this very useful<br><span class="wbbtab"></span>Dialogue=^+d<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span>; brings up the Dialogue window<br><span class="wbbtab"></span>OpenWindows=^+o<span class="wbbtab"></span><span class="wbbtab"></span>; brings up the Open Windows window<br><span class="wbbtab"></span>Preview=^+p<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span> ; brings up the Preview window<br><span class="wbbtab"></span>FindRepl=^h<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span> ; brings up the Find and Replace window<br><span class="wbbtab"></span>Save=^s<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span> ; brings up the Save window<br><span class="wbbtab"></span>Data=^o<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span> ; brings up the Data window<br><span class="wbbtab"></span>Preferences=^p<span class="wbbtab"></span><span class="wbbtab"></span> ; brings up the Preferences window<br><span class="wbbtab"></span>FindText=^t<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span> ; brings up the Find Text window<br><span class="wbbtab"></span>Quests=^+q<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span> ; focuses on the Object window in the Quests list<br><span class="wbbtab"></span>Factions=^+f<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span>; focuses on the Object window in the Factions list<br><span class="wbbtab"></span>Packages=^+k<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span>; focuses on the Object window in the Packages list<br><span class="wbbtab"></span>PapyrusManager=^+s<span class="wbbtab"></span>; brings up the Papyrus Manager window<br><br><span class="wbbtab"></span>[PapyrusHotkeys]<br><span class="wbbtab"></span>; these hotkeys run when the Papyrus Manager window is active<br><span class="wbbtab"></span>DoubleClickPapysusOpenSCR=~Enter ; press Enter to open the currently highlighted script in the list<br><span class="wbbtab"></span>ClosePapyrus=~Esc<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span> ; DO NOT PRESS THE ~ !!! Just press Esc to exit the Papyrus Manager<br><span class="wbbtab"></span>TabPapyrus=Tab<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span> ; press Tab to jump from control to control in the cell win<br><br><span class="wbbtab"></span>[Warnings]<br><span class="wbbtab"></span>; these are for "Warnings" windows<br><span class="wbbtab"></span>MassOK=delete<span class="wbbtab"></span> ; press delete and the script will keep pressing Yes to chunks of warnings. Works even for thousands of them. The CK may loose focus - it is a CK bug<br><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span>; Give it time to finish, do not alt tab to another window till it does<br><span class="wbbtab"></span>wait=10<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span> ; time in ms to wait before pressing Yes again. Minimum -1 (fastest). Do not set it very high (-1 to 100 is fine)<br><br><span class="wbbtab"></span>[PrefHotkeys]<br><span class="wbbtab"></span>; this hotkey runs when the Preferences window is active. Takes precedence over the GlobalHotkeys<br><span class="wbbtab"></span>PrefConfirm=~Enter<span class="wbbtab"></span> ; press Enter to confirm changes and close pref window (doh)<br><br><span class="wbbtab"></span>[DataHotkeys]<br><span class="wbbtab"></span>; these hotkeys run when the Data window is active.<br><span class="wbbtab"></span>DATact=^Space<span class="wbbtab"></span> ; set (unset if set) as active plugin (the list of plugins must have focus)<br><span class="wbbtab"></span>DATcheck=Space<span class="wbbtab"></span> ; check (uncheck) plugin (the list of plugins must have focus) ; thanks to HotKeyIt<br><br><span class="wbbtab"></span>[Cell]<br><span class="wbbtab"></span>; pressing Enter when keyboard focus is on cell X, in the list of cells (left list in Cell window), loads X<br><span class="wbbtab"></span>; while pressing Enter when focus is on an object in the *X_cell* Objects list (right list in Cell window) focuses on the object in Render win. ; thanks to HotKeyIt<br><span class="wbbtab"></span>DoubleClickC=~Enter<br><span class="wbbtab"></span>TabC=Tab<span class="wbbtab"></span>; press Tab to jump from control to control in the cell win<br><br><span class="wbbtab"></span>[Object]<br><span class="wbbtab"></span>; pressing Enter when keyboard focus (the blue background) is on object X displays the properties of object X<br><span class="wbbtab"></span>DoubleClickO=~Enter<br><span class="wbbtab"></span>TabO=Tab<span class="wbbtab"></span>; press Tab to jump from control to control in the object win<br><br><span class="wbbtab"></span>[Render/CK]<br><span class="wbbtab"></span>; when focus on CK itself or on the Render window<br><span class="wbbtab"></span>Havoc=o<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span> ; toggle havoc<br><br><span class="wbbtab"></span>[PrevHotkeys]<br><span class="wbbtab"></span>ClosePrev=~Esc<span class="wbbtab"></span>; press Esc to close the Preview win<br><br><span class="wbbtab"></span>[NPCHotkeys]<br><span class="wbbtab"></span>NPCok=~Enter<span class="wbbtab"></span> ; press Enter on the active Actor win hits the OK button<br><span class="wbbtab"></span>NPCcancel=~Esc<span class="wbbtab"></span>; press Esc to close the active Actor win<br><br><br><br><br>Limitations<br>===========<br><br>When clicking too fast on an object in the object window the window that pops up fails to get detected by my script. By too fast I mean so fast that actually the object window is given focus again instantly, so the object's properties loose focus (and that's not the reason for having been clicked in the first place :). Either double click on the object again (not so fast) or left click on the object's window properties if visible. It will be detected. Now this is what makes it a beta. I need help with windows event programming to save these scripts from betaness !<br>NB : THOSE SCRIPTS ARE NOT MEANT TO BE USED WITH MULTIPLE CSs ACTIVE.<br><br><br>Known Bugs<br>==========<br><br>The ^o shortcut for opening the data window sometimes does not work (window does not appear). Workaround : hit the shortcut (^o) again. A blank data window should appear. Hit Esc and the normal data window should appear.<br>Focus back works too much sometimes - restrict it via ini if causing problems.<br>Sometimes (on some keyboards ?) some shortcuts do not fire (I had this issue with ^n in script wins). Workaround : reload the script (^+r by default).<br>A rare bug is that, sometimes, when hitting a hotkey, the perspective in the Render window changes. I have not figured out when exactly this happens - please give me feedback on this one.<br><br><br>To Do<br>=====<br><br>Correct limitation and bugs above. Add tab shortcut functionality for more wins. Make the scripts event based.<br><br><br>Feedback needed<br>===============<br><br>The script relies on sleep times tested on my machine which is rather clean, cpu not under big load etc. Should work fine anyway but I need some feedback on that. And feedback on the workings of the CK from people who are into WinAPI programming would be great. The CK is full of surprises :)<br><br><br>Changelog<br>=========<br><br>0.95b, 2010/5/9 - CK_Hotkeys_v0.95b.exe : Initial release.<br><br><br>Contact<br>=======<br><br>My blog : http://udunslabs.blogspot.com/. Visit for some more info on the project and to post comments. Remember I need feedback ! Also active in the beth forums (utumno).<br><br><br>Credits<br>=======<br><br>Thanks to Bethesda for creating Skyrim and the CK we love to patch.<br>Thanks to TESNexus.com/PlanetElderScrolls for the a one-stop-shop resource for authors and players.<br>Thanks to LHammonds for the Readme Generator this file was based on.<br>Thanks to the great Autohotkey community that provided me with tons of useful functions/answers/remarks. In particular I would like to thank HotKeyIt who made half of the functions I use :D Thumbs up guys :)<br>Thanks to all that provided me with feedback in the beth forums !<br><br><br>Licensing/Legal<br>===============<br><br>Donationware (I have still to add a button - but you can still click on the ads at my blog). Ah, yes, I tested thoroughly and anyway it's a harmless script but still backup and blah blah - enable autosave in the CK btw.<br></ck_hotkeys>