Netruk44/uesp-wiki-content huggingface dataset:
Tes5Mod:SkyProc

450px|right
SkyProc is a Java library that offers easy to use Java API for importing, manipulating, and exporting mods.

The SkyProc library offers Java programmers the power to create and edit objects that represent Skyrim mods and records.  It is able to import mods, or even an entire load order, and give easy access to the records inside.  Programmers can then make any changes they wish, and export a working Skyrim patch that is customized to every user's load order.

Its purpose is to facilitate third party creation of smart programs that create custom patches based on any given load order.  For many mods, this will help reduce, or completely eliminate conflicts.




SUM (SkyProc Unified Manager) is a manager program created to facilitate multiple SkyProc patcher maintenance.   Using the Starter Project will give you all the setup you need to make your patcher compatible with it.

What Can SkyProc be Used For?

It can be used to make extremely smart and versatile patchers capable of adapting to any load order.  It can be used for things such as:
;Customization Patchers
:Lots of mods have several hard-coded esp variants to offer users several different setups.  Instead, a patcher can be made to read in an INI file, and adjust a hard-coded mod file with custom settings defined by the user.   This gives the mod an unlimited amount of easy customization over things that would otherwise require slews of esp versions.  See Realistic Lighting for an example of this.

;Addition Patchers
:Seamlessly add things to the world, without causing incompatibility issues.  A patcher can be made to add spells, factions, and many other items to NPCs, or many other similar tasks.  These can be done by hard-coding a mod, but having the changes done with a patcher benefits from being compatible with any load order; If a user adds another mod with more records, the records from that new mod are automatically integrated into your mod.  See Automatic Spells for an example of this.

;Preparation Patchers
:Preparation patchers are meant for mods that require certain records to be set up in special ways.   These types of patches tend to be "final" patchers that are meant to process the load order after everything else is settled in.  See Automatic Variants or Dynamic Leveled Lists for an example of this

This is not an extensive list of the possibilities of applications that can be made with SkyProc.  The possibilities are really up to the programmer to flex their coding muscles and take advantage of the power SkyProc offers.

Help
SkyProc is meant to be easy to use.  If you are not familiar with Java, libraries, or even programming in general, here are some helpful sections to get you started.

WARNING:  The tutorials have become outdated and need to be updated to new standards.  The same general concepts apply, however.

: 
:* 
: 
: 
: 
: 
: 
: 
: 
: 

Development
: 
: 
: 
:* 
: 

Mods that Use SkyProc

 TES4: Oblivion
: 

 TES5: Skyrim
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 
: 

Other Links
: 

Screenshots
Tes5Mod:Creation Kit Bugs

This is not necessarily meant to be an exhaustive or complete list of the Creation Kit bugs but at least some of the more common and how to fix them if possible.

Can't Save: Close all Open Dialog Message
You get this message if you have any dialog window open while you try to save the plugin, presumably to prevent the illusion of saving things that aren't saved. However, you can also get this message when there are no dialogs open.

:* Click View-Open Windows to list all open windows and close any that may be causing the issue.
:* Ultramon is known to cause this message to appear erroneously.
:* You can add a line  bAllowUnSafeSaves:General = 1 in the SkyrimEditor.ini to disable this message from appearing.

Editor IDs with '%' Characters
It is advised never to create records using a percent (%) character in it as it can crash the editor in some cases. For example, to replicate:
:* Create a new item (doesn't matter what type).
:* For the editor ID use a single '%' character.
:* Save/close the new record.
:* Hover the mouse cursor over the new record in the object list to get the tooltip to appear.
:* The editor crashes when the tooltip should appear.
It is assumed this is due to an incorrect usage of a printf() type function in the tooltip code and possibly elsewhere.

Leveled Lists Out of Order
When adding items to a leveled list, they will re-sort in reverse order of level, breaking the list for lower levels.
:* Add all relevant items and change minimum levels.
:* Right-click and select "Copy Stack".
:* Delete all items.
:* Right-click and select "Paste Stack".

Main Window Behind Others
At times, especially when opening the Creation Kit maximized, the main window fails to maximize and can become hidden behind all the child windows.
:* Click on the CK icon in your task bar.
:* Hit Alt-Space.
:* Scroll down to (or click on) Maximize to re-maximize the main window.
To prevent this from ever happening again, go into the folder where CreationKit.exe is located, and look for the file SkyrimEditorPrefs.ini. Edit the file and scroll down until you see the following lines.
   
Set X and Y both to 0, and set W and H to the width and height of your screen resolution, respectively. So, for example, if your screen resolution were 1440 by 900 (with a taskbar height of 30 pixels), you would change the lines above to the following.
   
This will force the Creation Kit main window to always be large enough, even when un-maximized, that no part of it will ever be hidden behind the other windows.
Tes5Mod:SkyProc/Credits

Contributors
Leviathan1753 - SkyProc design and framework code, and record specific code.

Plutoman101 - Record specific code (SPEL, IMGS) and bugtesting.

UESP - Record layout references.

Libraries
No external libraries have been used, aside from the Java SDK.

The included library Lev references JFreeChart, but it is not included or required unless those functions/objects are used.

Programs Used
Netbeans - Fantastic IDE used to write code.

HxD - Hex editor/viewer

SpeedCrunch - Nice calculator

Photoshop - Graphics
Skyrim:Farmer

Farmer may refer to one of three things:

Farmer (class), a class for NPCs
Farmer (NPC), an NPC
Farmer (Werewolf), an NPC added by the Dawnguard add-on
Tes5Mod:SkyProc/General Features

General features are NOT specific record accessing functions.  Please list any requests for those in the Record Access area.

Supported General Features
:* Importing of user's active mods.
:* Importing of all mods in user's Data folder
:* Importing of specific mods using ModListing
:* Exporting of all GRUPs supported.
:* Automatic STRINGS file import
:* Automatic STRINGS file export if flag is on in the patch (off by default).  Note:  It is highly recommended you leave the flag off and embed your strings, as there is NO reason to have STRINGS files for SkyProc patches.
:* Automatic language STRINGS support using SPGlobal.language.
:* Default GUI setup
:* Debug log support



Requested General Features
:* Progress Bar functionality in Default GUI, and non-default GUIs.
:* Multi-core support for importing
Tes5Mod:SkyProc/FAQ

FAQ

Q: Does SkyProc replace Bashed Patches?

A: No, not at all! It is simply a library; Not a program in itself.
  
However, someone could theoretically USE SkyProc to create a program that did the same job; But SkyProc as a library was not made to replace Wrye in any way.
Tes5Mod:SkyProc/NetBeans

NetBeans Tricks
Auto Importing
Ctrl-Shift-I

When using new types of Objects in your code, something you'll get the "cannot find symbol" error.  This means that you have not imported the external code about that object.  Normally you would have to research what package that Object was from, and type "import ..." at the top of your file.

NetBeans will do all of this automatically.  Whenever you see that error, just do Ctrl-Shift-I, and it will fix all imports for you. (Unless you referenced an Object that doesn't exist, or spelled it wrong)

Refactoring
Ctrl-R

Refactoring is kind of like find/replace, without the risk of accidentally replacing something unintentially or missing a replacement.  If you named a global variable "Banana" and used it 1000 times, only to realize you wanted it named "Orange", you can refactor it and Netbeans will automatically look through all your code and rename it where appropriate: Even if there are other variables named "Banana" in your code!  

Don't ever do a replace, always refactor.

Code Minimizing
Tools->Options->Editor->Code Folding

When you have a large amount of code, functions, and comments, this becomes useful by automatically minimizing everything so you can quickly scroll down to the function you care about.

Smart Hints / Error Correction
Right click error/hint icons

NetBeans, like many other IDEs, will let you know when things are wrong.  It will also give smart hints, recommending better ways to do things.

The best part, though, is that it also will make the corrections/suggestions FOR you if you right click the error/hint icon and click on the suggestion.

Jumping to the Source
Ctrl-Click

If you are wondering where a variable was declared, or where a function's code is, just Ctrl-click and Netbeans will take you straight there.

Commenting In/Out
Ctrl-/

Comments out (or in) the current lines selected.

Formatting Indentation
Ctrl-F

Will automatically clean up your code.

Automatically Write Code
Right Click -> Insert Code

NetBeans can actually do a lot of automatic code generation.  It can automatically generate constructors, overwrite functions, equals functions taking in your custom fields, etc.
Tes5Mod:SkyProc/How to List

How To

A list of How To tutorials, addressing specific tasks and how to accomplish them.  Feel free to add empty topics as tutorial requests.

Basic Tasks

:* Import mods and load orders
:* Flatten a load order into one set of unique records
:* Export a patch
:* '''Add SkyProc's default GUI
:* Add custom settings to SUM GUI
:* Bundle everything into one JAR for distribution
:* Create Debug logs
:* Duplicate Major Records
:* Create new Major Records
:* Test your program in Netbeans

Specific Tasks
:* Add a script to NPCs'''
Tes5Mod:SkyProc/How to List/DefaultGUI

How To
Add SkyProc's Default GUI
NOTE: This tutorial is for the old Default GUI with no settings:  Just message text and a progress bar.  The SkyProc Starter project comes with a newer SUM GUI built in.   This tutorial is only for programmers starting a project from scratch that want to use the simple old Default GUI. 


Adding SkyProc's GUI is meant to be simple and painless.  All you need to add is two lines:

 

Initialize at Start
Creates a SPDefault GUI Object.

The first parameter in SPDefaultGUI is the title to put at the top of the GUI.  
The second parameter in SPDefaultGUI is the description text to put in the middle. 

Make sure to declare the GUI object early on; You don't want the GUI being created after you've imported/exported your patch.


Wrap up at End
gui.finished() tells the GUI to display the "finished" message to the user.

Put this line at the end of your code, when everything is finished.



Extra Tweaks
Changing Header Color
You can change the color of the title by adding:
 

Adding Custom Components
You can also add your own custom Java GUI objects to the SkyProc default GUI by using it's add() function, as expected with any GUI container.
Tes5Mod:SkyProc/How to List/ImportMods

450px|right
How To
Import all active mods in a user's load order

In general, the SkyProc Starter project will handle importing for you.  Just specify the import requests.  
This should suffice for 95% of SkyProc coders.


If you for some reason want to manually import yourself (perhaps you're using a from-scratch project):

 

This calls importer's importActiveMods() function to load all active mods and all of their GRUPs, and then adds them into the database.

Then create a merger to flatten the records from the database.
 


Import a single mod

 

This line calls importMod() to load only the mod that matches the ModListing and all of its GRUPs, and then adds it into the database.

The mod can then be accessed inside the SPGlobal database, as well as the records contained in it.

Note:  You have to specify the path to the Data/ folder, which should usually always be the same as SPGlobal.pathToData which you should have set earlier.
This function also throws the BadMod exception, in case anything goes wrong finding/importing the function, so be prepared to handle the exception.


Import a set of specific mods

 
ArrayList  modsToImport = new ArrayList 

This line calls importMods(), which in turn calls importMod() on each ModListing on the list, and then adds them into the database.

The mods can then be accessed inside the SPGlobal database, as well as the records contained in them.


Related Articles
:* Importing only specific GRUP types
:* Flattening a load order into one set of unique records
:* Exporting a patch
Tes5Mod:SkyProc/How to List/BundlingJAR

How to... Bundle everything into one JAR for distribution

The correct way to do this is using custom compiler code, not NetBeans' built in functionality.

This custom code bundles all the .jar files necessary together into one file. This single jar is then self-sufficient, and doesn't need an accompanying /lib folder.  It also doesn't screw up other SkyProc programs.

To use this custom compiling code included in the starter project, follow these initializing steps:
:*Go to the Files tab in Netbeans.
:*Open up build.xml
:*Paste the following code BEFORE  : 
 
    

         
        -->
	 


         

	 
	 

	 

	 
	 

	 
	     
	     

	     
		 
	 

	 
	     

	 
  is after the code pasted.
:*Save build.xml



After you've done the initializing steps, anytime you want to make a new .jar file to upload (your first time, or just an update), do the following:
:*Go to the Files tab in Netbeans
:*Right click build.xml
:*Click "Run Target" -> "Other Targets" -> "SkyProc-dist"

The .jar file will be created in the store/ folder in your project folder.

Related Articles
:* Exporting a patch
Lore:Helgen

, referred to as the "Gateway to the North" due to the many travelers who visited whilst coming from   to the south,  was a fortified hamlet located east-northeast of the city of  , south of  , and north of  .   

The rather small "backwater hovel" was guarded by a wooden wall and the slopes of the mountains it was nestled in,  and surrounded a large fort known as Helgen Keep. The Keep held a barracks for Imperial troops, a torture room, and led into a series of caves that traveled north into the wilderness.  
 
History
The Mede Empire maintained a strong military presence throughout Falkreath Hold, particularly in Helgen, as far back as  .  

On the 15th of Last Seed,  , during the  ,  , several of  , a horse thief, and the   were captured outside   by   and the  , and were carted off to Helgen to be executed.  Two days later, on the 17th of Last Seed, the Imperial convoy arrived at Helgen and began the executions, only to be interrupted by the surprise return of, and attack on the village by,  . Ulfric, Tullius, and   all managed to escape alive, but every citizen of Helgen died during the attack, leaving only a young boy named   as the sole survivor of the village.  Helgen was left in a state of ruin, which bandits later took residence of.  Though Vilod perished in the attack, his mead made using the native juniper berry and red mountain flowers lived on in Helgen and beyond, truly embodying the spirit of Skyrim.  
 

Gallery
 
Notes
A location known as   appeared in Arena west of the location of Helgen (on a different road), sharing a similar name to the town's aliases of the "Gateway to the North" and "Helgen Keep". The town of Oakwood in Arena was also found closer to Helgen's location, on the same road between   and  . It is unclear that either of them are intended to be the same town as Helgen.

See Also
For game-specific information, see the Skyrim article.

References
Skyrim:Faction Books

Many factions in Skyrim have faction books which give more information about the factions. The books listed here may be about the faction overall as a topic, or may only list a fact about the faction as a part of the whole book. 


|

|}

See also
The complete list of books in Skyrim
The complete list of faction books in Elder Scrolls
Skyrim:Temples

Many temples to the Nine Divines are spread throughout Skyrim.

: 
: 
: 
: 
: 
: 

Other temples, added by Dragonborn, are found on Solstheim.

: 
: 
:
Skyrim:Cemeteries

Many cemeteries can be found throughout Skyrim.

: 
: 
: 
: 
: 
: 
: 
:
Skyrim:Guild Halls

Throughout Skyrim, many of the factions have guild halls.

Bards College
: 

Blades
: 

College of Winterhold
: 

Companions
: 
: 

Dark Brotherhood
: 
: 

Dawnguard
: 

Thieves Guild
: 
: 
: 

Volkihar Vampire Clan
:
Skyrim:Winterhold (disambiguation)

Winterhold may refer to two things:
Winterhold, a town overlooking the Sea of Ghosts in northeastern Skyrim
Winterhold (region), a hold in northeastern Skyrim
Lore:Falkreath Hold

is a southern   in Skyrim along the border with   and  .  It's the second southernmost hold in Skyrim, after  .  The capital is Falkreath; the abandoned settlements of Helgen and Neugrad Watch are also located here. Before its destruction, Helgen was the Hold's second largest town and “the Gateway to Skyrim,” a well-traveled town at an important crossroads in the foothills of the Jerall Mountains.   The town of Granite Hill is also found here, into the small stretch of the Hold that encroaches upon the  . Home of Skyrim's famous Pine Forest,  Falkreath Hold is covered in a fine mist that makes the land seem without season. The mountains rising above Falkreath are well above the snow line, striking a stark comparison to the rest of the hold. The most distinguishing geographic feature is  , which covers a large portion of the central region and acts as the source for the  ,  and is the largest body of water in the province. The people of Falkreath are reasonably prosperous farmers and loggers, thanks to the abundant supply of fresh water from Lake Ilinalta.  

Falkreath is among the most-traveled Holds in terms of major roads and minor pathways. The lake is an excellent anchoring point, allowing one easy access to surrounding areas via swimming from almost any angle. North of the lake are the sharp and protruding  —snowy peaks dominated by   that overlook the origin of the White River—and the town of Riverwood just across the border in Whiterun Hold. To the east are the blizzards of the Jerall Mountains, bandit attacks in the high mountain passes, and the windswept caverns of  . To the south, the Jerall Mountains dominate, their icy crags making many locations difficult to reach and almost impossible to escape from without blade or spell. Still, resolute hunters can still be found in this vast wilderness, determined to live life on their own terms. To the west, the pine forests give way to more rocky scree and sharper crags, where the howls of anger of the   from   can be heard, and are home to old or forgotten cuts into the earth, including the fabled  .   
 

History
Sometime in the early  , the  ish chieftain,   traveled with his people to western Falkreath Hold after the destruction of   in  , to claim land that was theirs by an ancient rite. He established a chieftain that became the height of Orcish dominion in Skyrim at the time, and it soon plagued the Kingdom of  , in conjunction with the independent   of the  . It was especially a threat to the Nords of Falkreath for the next thirty years. Their conflict led to the death of the Jarl of Falkreath and the ascension of his son,  , who inherited a meager hold overshadowed by the Orcs. In the end, Hakkvild challenged Yashnag and a host of his champions to a duel and emerged victoriously. The Orcish chiefdom was dismantled,  but its legacy became the inspirations of  , who built the second iteration of   city. 

Gallery
 
See Also
For game-specific information, see the Skyrim and ESO articles.
 

References
Lore:Mammoth

Mammoths are large woolly beasts that are generally non-hostile unless provoked, they are most commonly found near giants in herds. Their distribution varies, with them being a common sight across the tundras of Skyrim, the Wrothgarian Mountains, northern Cyrodiil, and the western regions of Valenwood.  

While it's commonly believed that giants herd mammoths , scholars have observed that their relationship is based more on mutual respect. They are seemingly able to communicate with mammoths, and protect them fiercely. In return, giants receive companionship and milk, which they process into cheese.  Mammoths belonging to giants have markings on their tusks. The two have a protective relationship, with giants protecting them from anything that would do harm to the mammoths, and conversely, tamed mammoths will attack anything that threatens the giant. 

They are commonly hunted for their meat and ivory tusks, with the tusks being very valuable. The meat of one mammoth can feed many for a whole month.  Powdered mammoth tusk can be used in alchemy, but only the giants know how to grind the incredibly hard tusks down into powder, making the ingredient rare. 
 
Gallery
 

Also
For game-specific information, see the Skyrim, ESO, and Legends articles.

References
Lore:Whiterun Hold

is a   in Skyrim, located roughly in the middle of the province.  Roads are numerous and well maintained, and visibility across the plains is excellent. The hold is relatively flat, surrounded the by mountains of the Reach to the west of the Tundra Plateau, the Skyborn Range of Hjaalmarch and the   of the Pale to the north, and the   of Falkreath to the south.   However, Whiterun's southeastern comer is dominated by the gigantic and soaring Throat of the World—the highest mountain in all of Tamriel.   

Whiterun is certainly one of the most well-tracked holds, with main roads and excellent access west to the Reach, with a border road north through the town of Rorikstead and up toward Dragon Bridge. The plains have a number of odd barrows and giant camps to investigate, and the center is dominated by Fort Greymoor and the surrounding  . The road here allows travel to the north, up through the Skyborn mountains to reach the dreaded Labyrinthian in Hjaalmarch. Further east is Whiterun and the roaring White River and town of Riverwood on the southern border with Falkreath. Another road stretches north from here, into the wilds of the Pale. There's yet another road that skirts the northern foothills of the Throat of the World, following   into Eastmarch. Although the first of the 7,000 steps that pilgrims climb to reach the summit of Throat of the World begins in Ivarstead (in the Rift), the actual mountain lies within Whiterun's domain.  

It borders six of the other eight holds in Skyrim, the exceptions being   and  .   s are often seen traversing the landscape while herding  s to grazing areas or back to their camps.  Surrounding the eponymous capital,  , are fertile plains dotted with farms that supply the food for much of Skyrim.  The other notable settlements in the hold are   and  . 
 
 
See Also
For game-specific information, see the Skyrim article.

References