Oblivion

File information

Last updated

Original upload

Created by

utumno aka Udun

Uploaded by

utumno

Virus scan

Some manually verified files

Tags for this mod

About this mod

Adds control tab functionality (actually ALT TAB, but using Ctrl-Tab shortcut) in the Oblivion construction set, via an Autohotkey script. Now updated with many shortcuts and an optional script that toggles only Script Edit wins. Be the first to test it err to grab it !

Permissions and credits
Name: TES4 CS Hotkeys (including Control Tab and Toggle Script)
Version: 0.95b (beta)
Date: 2011/3/17
Category: Modding Tools
Requirements: Oblivion Patch 1.2.0.416, CS 1.2.04 (tested with these on WIN7 PRO)
Author : utumno aka Udun
Homepage: http://udunslabs.blogspot.com/
Download: http://www.tesnexus.com/downloads/file.php?id=25031 || http://planetelderscrolls.gamespy.com/View.php?view=OblivionUtilities.Detail&id=52


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

This release includes two executables, CS_Hotkeys_v0.95b.exe && CS_Script_Toggle_v0.95b.exe.

CS_Hotkeys_v0.95b.exe (the main file) adds :

* control tab functionality (actually ALT TAB, but using Ctrl-Tab shortcut) in the Oblivion construction set, using the excellent Autohotkey language.
* Customizable (via ini file) shortcuts (hotkeys) for various actions (see below).
* An ini file created in the directory the script is run, CS_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.

CS_Script_Toggle_v0.95b.exe adds a similar (to Alt Tab) functionality but only for script windows using Control+(Shift)+CapsLock combo. An ini file, CS_Script_Toggle.ini, is created in the directory the CS_Script_Toggle_v0.95b.exe is run, containing a single setting (whether the script will exit on CS's exit).


Install
=======

Download, unzip, save CS_Hotkeys_v0.95b.exe && CS_Script_Toggle_v0.95b.exe wherever in your drive.Run the exe, open up the CS, switch to it and let the script initialize (takes a couple secs). (If the CS is not running, as long as you leave the default ini settings, the script will wait for the CS). You may run both exes or any one of them, depending on the functionality you need. One (or two) small green icon(s) with an H on it (them) will appear on system tray. By right clicking on it (them) you can exit, pause the script(s) or suspend the hotkeys. Each exe will create an ini file in the directory it is run, where you can customize a couple of options


Features
========

CS_Script_Toggle_v0.95b.exe :
Press Ctrl-CapsLock to happily jump among Script Edit windows. If only one Script Edit is open it will be given focus. Shift reverses order. Avoid pressing Tab while using this hotkey and the CS_Hotkeys_v0.95b.exe is running - the exe may loose a couple of script windows.

CS_Hotkeys_v0.95b.exe :
* press and hold Ctrl then press Tab to cycle in an Alt Tab way through the CS 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.


CS_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 CS_Hotkeys_v0.95b.exe script is first run the (default) CS_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 CS_Hotkeys.ini and reload (run) the CS_Hotkeys_v0.95b.exe. A brand new (default) CS_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.

<cs_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 CS 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 (CS_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>Quests=^+q<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span> ; brings up the Quests window<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>Script=^+s<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span> ; brings up the Script Edit window<br><span class="wbbtab"></span>Factions=^+f<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span>; brings up the Factions window<br><span class="wbbtab"></span>Packages=^+k<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span>; brings up the Packages 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>Crash=^+Delete<span class="wbbtab"></span><span class="wbbtab"></span> ; brings up the Crash window :) use at own risk - at least save your plugin (even then, when deleting smth it may not get properly deleted on a CS crash)<br><br><span class="wbbtab"></span>[ScriptHotkeys]<br><span class="wbbtab"></span>; these hotkeys run when a Script Edit window is active. ^s and ^o take precedence over the GlobalHotkeys<br><span class="wbbtab"></span>New=^n<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span> ; opens a blank Script<br><span class="wbbtab"></span>Save=^s<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span>; saves current Script<br><span class="wbbtab"></span>Open=^o<span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span><span class="wbbtab"></span>; brings up the Open Script window<br><span class="wbbtab"></span>NextScript=!Right<span class="wbbtab"></span> ; next script<br><span class="wbbtab"></span>PrevScript=!Left<span class="wbbtab"></span><span class="wbbtab"></span>; previous script<br><span class="wbbtab"></span>SelectAll=~^a<span class="wbbtab"></span> ; selects all - even when focus is not on the script (editor) itself (as when opening a script from "Select form" win) - and sets focus on the editor<br><span class="wbbtab"></span>FocusOnEditor=~Tab<span class="wbbtab"></span> ; gives focus on the script editor<br><span class="wbbtab"></span>Close=~Esc<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 current script (as one should, doh)<br><br><span class="wbbtab"></span>[OpenScriptWindowHotkeys]<br><span class="wbbtab"></span>; this hotkey runs when a Select Form (Open Script) window is active<br><span class="wbbtab"></span>DoubleClickSCRopenWin=~Enter ; press Enter to open the currently highlighted script<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 CS may loose focus - it is a CS bug<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 (for instance AbandonedMine), in the list of cells (left list in Cell window), loads X (AbandonedMine)<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/CS]<br><span class="wbbtab"></span>; when focus on CS itself or on the Render window<br><span class="wbbtab"></span>ShowPathGrid=p<span class="wbbtab"></span>; toggle edit path grid mode<br><span class="wbbtab"></span>SnapToGrid=g<span class="wbbtab"></span> ; toggle snap to grid<br><span class="wbbtab"></span>SnapToAngle=n<span class="wbbtab"></span> ; toggle snap to angle<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><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 CS from people who are into WinAPI programming would be great. The CS is full of surprises :)<br><br><br>Changelog<br>=========<br><br><span class="wbbtab"></span> * 0.95b, 2011/3/17 - CS_Hotkeys_v0.94b.exe : fixed a regression - now the script will correctly detect reopening of the CS. Added a tooltip during initialization. No control tab till the tooltip disappears. Internal refactoring for the release of CK_Hotkeys for Skyrim. CS_Script_Toggle_v0.95b.exe : same as CS_Script_Toggle_v0.94b.exe.<br><span class="wbbtab"></span> * 0.94b, 2010/5/09 - CS_Hotkeys_v0.94b.exe : added focus back and some shortcuts (for warnings, for next/previous script,some tab functinality, select all and focus (on script editor) and for Find Text). Added html Readme ! Fixed a bug where space would not function in scripts containing Data in their name (reported by Qquix). CS_Script_Toggle_v0.94b.exe : same as CS_Script_Toggle_v0.93b.exe.<br><span class="wbbtab"></span> * 0.93b, 2009/12/26 - CS_Hotkeys_v0.93b.exe : fixed object window shortcut (silly bug), fixed ~Esc shortcut (so it doesn't close render and object wins!), added toggle Havoc shortcut. CS_Script_Toggle_v0.93b.exe : no change at all from CS_Script_Toggle_v0.92b.exe.<br><span class="wbbtab"></span> * 0.92b, 2009/11/16 - CS_Hotkeys_v0.92b.exe : added path grid &amp; snap to grid/angle hotkeys; made object window "double click" hotkey optional; fixed preferences confirm hotkey, should work now ; added ini section ([PrevHotkeys]) for closing Preview window with Esc (default), hotkey was there but undocumented ; CS_Script_Toggle_v0.92b.exe : fix - when hitting Ctrl-CapsLock on a non script window focus will be given to the last script window that had focus.<br><span class="wbbtab"></span> * 0.91.1b, 2009/9/28 - CS_Hotkeys_v0.91.1b.exe :disabled the "double click" shortcut for the Object window as it didn't work sometimes (and the CS hanged) - CS_Script_Toggle_v0.91b.exe the same<br><span class="wbbtab"></span> * 0.91b, 2009/9/28 - CS_Hotkeys_v0.91b.exe (many hotkeys and Ini file added) &amp; CS_Script_Toggle_v0.91b.exe (to Cntrl tab between Script Edit wins)<br><span class="wbbtab"></span> * 0.9b , 2009/6/10 - Initial release (CtrlTab_CS_v0.9b.exe)<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 Oblivion and the CS 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 CS btw.<br></cs_hotkeys>