Skyrim

File information

Last updated

Original upload

Created by

aggies11

Uploaded by

aggies11

Virus scan

Safe to use

Documentation

Readme

View as plain text

=====================================================================================
= DisableSkillLeveling - V1.01 - Script Dragon Plugin
=====================================================================================
= Requires ScriptDragon by Alexander Blade
=====================================================================================
= Readme Format followed: from Kvalyr, see his excellent mod zAutoExec here
= http://www.skyrimnexus.com/downloads/file.php?id=5217

=========
Download:
=========

Plugin:
http://skyrim.nexusmods.com/downloads/file.php?id=14365

Script Dragon (Required):
http://alexander.sannybuilder.com/?category=other&altname=skyrim_script_dragon

BethSoft Thread:
http://forums.bethsoft.com/topic/

========
Features:
========

* Implements the feature to disable Non Combat Skills (Smithing, Enchanting, Alchemy
Speechcraft, Lockpicking etc) from counting towards player character level-up.

* Further allows user to take control via keypress, to turn on/off leveling for all
skills, and assume manual control if so desired.


======
Usage:
======

- plugin has 3 modes, that user can switch between via keypress.
- by default it is in AUTO leveling mode, where the plugin will automatically disable
leveling for Non-combat skills.
- pressing key (default k) switches to leveling OFF mode, where NO skill gains will contribute
to leveling.
- pressing button again switches to leveling ON mode, where ALL skill gains will contribute
(just like Vanilla skyrim)
- pressing button again switches back to AUTO leveling mode.
- Notifications are given in the Notification section (top left) to acknowledge mode
switches, and when leveling is automatically enabled/disabled.
- the game actually disables leveling via the console, and so you can see this
if you open up the console to examine the commands.
- the plugin operates on a 1second timer, so keypressed may take up to 1second
to be recognized (still seems fairly responsive). If you press it multiple
times fast, only the first press registers. So if you want to press it in a row
do it at 1 second intervals


============
Details
============

Skyrim does not actually allow you to change how an individual skill contributes
to player level. There is an game seting for all skills though, fXPPerSkillRank,
that when set to 0.0 (setgs fXPPerSkillRank 0.0), that will make it so NO skills
will contribute. So what this plugin does is detect when to change this setting
(to turn off leveling for all skills) so that only the non-combat skills don't
contribute. Basically it detects when you are in a menu, in crafting, or in a
NPC dialogue. This should handle almost all (eg. eating ingredients/potions
via hotkey won't be covered, but from in menu will) situations. However user control
is provided for those times when you want to explicitly enable/disable lvl contribution
for all skills (eg. practicing combat/training, etc), or when you don't agree with
the games default detection.

Some fine points:
- trainers work via dialogue, so in AUTO any skills trained won't contribute.
Use the toggle key to override this temporarily.
- skill books are a menu, so don't contribute. However due to performance,
the script operations on a 1 second timer, so generally the skill is added
before the script can AUTO detect. So they WILL count. If you wish to change this
use the toggle key.

The plugin is always checking to see if you pressed a key, or are in a menu, dialogue, crafting, etc,
and does so on a 1 second timer. I wanted the longest value possible, while still seeming
responsive enough to detect changes in game, and also keypresses. This seems like a good balance,
and thankfully even if there is a problem with the plugin, it operates so infrequently (in
computer terms) that it shouldn't pose a problem.

============
Background:
============

First there was XSO SD Plugin (http://skyrim.nexusmods.com/downloads/file.php?id=1992)
which was a handy way to customize some game settings, but also had some interesting extra
featues. Ones of most interest to me were the ability to change the level progression rate,
perk distribution at level up, and allow some Non-combat skills to not count towards
leveling. As such things go in the modding community, the original author dissapeared and
the mod was abandoned/unsupported, due to the nature of Script Dragon, it quickly caused
issues of compatibility with new patches to the game etc.

Enter in the GSC SD Plugin (http://skyrim.nexusmods.com/downloads/file.php?id=6469#content)
where a user of XSO took it upon themselves to take up the torch so to speak, and make their
own version with almost all the features, and definitely all the features mentioned above.
In a beautiful twist of irony, the same user dissapeared/abandoned the new mod, which caused
the same issues of compatibility.

After a bit of digging, it was discovered that many of the "Game settings" the mod(s) changed
could be changed by users themselves, manually entering them into the console (` key). Even
those pertaining to leveling rates. If one put them into a Skyrim batch scripted, this could
be made less painful via the use of the "bat" console command. However this was further
improved with the use of Kvalyr's ZAutoexec SD plugin (http://skyrim.nexusmods.com/downloads/file.php?id=5217)
, that allows you to automatically execute batch scripts at startup. Which can provide the same
functionality as those aspects of XSO/GSC, but without the compatibility issues.

Further, the perk distribution functionality can be duplicated by using the Community Uncapper
mod (http://skyrim.nexusmods.com/downloads/file.php?id=1175) to specificy how many perks are
gained at each level. This mod uses SKSE which doesn't have the compatibility issues that
can plague ambitious Script Dragon plugins.

The only functionality that was left was for non combat skills not contributing to level up.
Enter this mod, where I unfortunately had to take it upon myself. However this mod was made
with specific care to not have compatibility issues, and should not need updating due to
Skyrim or Script Dragon version changes. So using this mod, in conjunction with the other two
should provide the most useful features of XSO/GSC.

For those that don't like Script Dragon mods due to issue with lag time in version updates,
I encourage you to look at this utility, Skyrim Unplugged (http://skyrim.nexusmods.com/downloads/file.php?id=12744)
that takes care of the issue by stopping Skyrim from auto-patching, so you can keep playing
your old version until all your plugins/mods are updated.

================
On Script Dragon
================

The folks at SKSE don't like script dragon, because it has the potential to be unsafe.
This is true, and I largely agree. Script dragon is not for making mods, it is for
making full windows PROGRAMS, and simply giving them access to some of Skyrim's
scripting commands, without actually having to mod the game proper. This is a very
dirty/brute foce way of doing it. But it also works. There are essentially very little
guidelines/structure for making a SD plugin, and they really can't be enforced.

The short answer is, Script Dragon plugins are programs, and such can do anything
(all the bad things) that downloading a real program to your computer. Such as
spreading viruses, installing spyware, spying programs, logging, searching files
etc. So it is wise to be careful about where/what plugins you get. Obviously
this is a SD plugin, so I'm not saying don't use this, I am just acknowledging
the concerns. I didn't know much about Script Dragon before writing this, and now
I do.

About this SD Plugin in particular:
SD Plugins are windows programs, I am not a windows programmer. I'm not a fan
of C++, nor a frequent user. I did not want to write this, and so tried to do it
in the simplest/easiest (least learning) way possible for myself.

As it turns out, SD itself is too limited to get this plugin to do what it
needed. But since it's just a windows program, there are no real/actual limits.
In order to get this to work I had to abandone the SD framework (what little there
is) and go off on my own. This plugin actually spawns it's own thread, with no control
from SD. As someone who is admittedly not a windows programmer, and wanted to
learn as little as possible, I didn't like this, as it could be rather unstable/dangerous,
and at the very least a very dirty solution. But I wanted to get the damn thing done,
and so here it is. But really, this is in the spirit of SD, as it really is just
a tool in the style of "trainers" and othe such modifications of game executables.
It's a dirty hack, and so this plugin continues that tradition. Note: dirty hacks
can be very useful. They just also can be problematic.

I took some precautions with this, but probably not enough. Shouldn't cause any problems
but you never know. I was certainly running "fast and loose". I want this functionality
for myself, and so I'm sharing it in case any others want. But it's certainly not
"100% tested safe". The standard disclaimers apply.

=============
Requirements:
=============

- Skyrim any version
- ScriptDragon any version

*Note: I haven't tested other versions other then the last few, but I can't see
why not.


=============
Installation:
=============

0. Install like a regular Script Dragon plugin. If you don't know how
/what that is, then you probably shouldn't be using this. That being
said...

1. Extract DisableSkillLeveling.asi and DisableSkillLeveling.ini
from the zip file to your Script Dragon Plugins folder
(I use Skyrim\data\asi)


2. Edit the DisableSkillLeveling.ini file in any text editor to change
the key used to toggle the mode in-game commands to be executed, and
to turn on/off notifications from the mod.

3. Source code, and project files can be found in the archive in the "source"
folder, for any that might be curious.

================
Planned Features:
================

- Fix any bugs if it doesn't work, otherwise NONE
- I didn't want to write this mod, as it's not my strength, so it was made
so that it had to be done once and then left alone.
- the game does send it's command via the console, this can be seen.
This might be a bit spammy, for those people that use the console, although
I like it as it adds transparency (you can see exactly what this plugin
is doing). There is the potential to do this another way where it's hidden.


============
Performance:
============


Care was taken so that the plugin doesn't run very often
(default interval of 1second) which should have negligable impact
on the game.

================
Credits:
=======

- Alexander Blade for ScriptDragon
- Bethesda for Skyrim
- Kvalyr for this readme format :)

================
Redistribution, Licence & Disclaimer:
================s

Modifications of this script are allowed only where this notice is included, the author's
copyright is acknowledged and credit is given to the original author of the script (aggies11).

THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


===========
Change Log:
===========

v1.0 - Initial Release (April 5th-sh 2012)
v1.01 - Added config file option to disable notifcations (April 9th 2012)

=====================================================================================