Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
File credits
This author has not credited anyone else in this file
Donation Points system
Please log in to find out whether this mod is receiving Donation Points
ReProccer will replace Dawnguard forge workbench with a regular forge workbench in crossbows recipes regardless of whether the option to keep original conditions is active.
"typeOverrides" section can now override speed and reach of a weapon type for specific weapons
Zephyr now attacks ~30% faster, as intended by its enchantment
Version 0.23.6
Fixed bug, when some crossbows' crafting recipes conditions were not completely removed (if conditions retaining is disallowed)
Vanilla Enhanced Crossbows crafting now requires the Increased Tension perk (if Enhanced Crossbows crafting is allowed)
Version 0.23.5
Fixed bug, when 'Lingering'-type effects receive incorrect duration bonus
'Ravage'-type effects will now have much bigger magnitude
Version 0.23.4
Fixed bug, when sabers were incorrectly detected as broadswords
Added new option to change shortspears sheath position
Version 0.23.3
Fixed bug, when some armors could get incorrect armor values (rules order issue)
Version 0.23.2
Fixed bug, when certain weapon types has their reach/speed patched incorrectly
Version 0.23.1
Fix for "Cannot read property 'desc_ashen' of undefined"
Version 0.23
Localization framework - now ReProccer Reborn can be easily translated!
More precise and flexible rules
Version 0.22.1
Fixed a (potential) bug when ReProccer used inclusion instead of the full match when determining weapon type
Version 0.22
Fixed bug when ReProccer could generate a recipe that requires several copies of weapons or armor that exist in single copies
Fixed bug when ReProccer could not find armor parent recipes for most leather armors due to an input-output mismatch
Fixed bug when giants' clubs were patched as playable club-type weapons, preventing giants from correctly using them
Fixed bug when swords with no "sword" in their names could not receive the "broadsword" keyword
Fixed bug when crafting conditions of original ammo were not copied to ammo variants' crafting recipes
Fixed 'no ammo weight exception' bug (hopefully)
Added an option to change the Dreamcloth gear type tag
Added an option to remove the type tag from a weapon's name
The "Leathercraft" perk can now be distributed to crafting recipes for any "leather-type" armor
All base ammo crafting recipes now require a relevant smithing perk (if there's none)
Barbed and heavyweight variants now require a smithing perk
Ammo with no crafting recipes will no longer have ammo variants generated for
Fixed various material mismatches in recipes
Minor number adjustments in the weapon type values table
Version 0.21
Fixed bug, when progress bar displayed progress incorrectly
Fixed bug, when explosive ammo variants' projectiles could be picked up
Fixed bug, when Dreamcloth gear inherited its original`s scripts
Fixed bug, when shortbows with templates received the weapon type keyword
Updated statics and requirements for SkyRe 2.0
Materials from absent mods can now be recognized
Added an extra check for ammo from mods icorrectly ported from LE (ammo weight value is undefined due to porting issues (?))
Added support for "Saints & Seducers" materials
Added option to exclude records by Editor ID
Added option to skip a meltdown recipe generation if another one already exists
Removed unused materials and types
Improved errors processing
Improved log readability
Version 0.20
New meltdown system for weapons and armor.
Added an option to change refined silver weapons and crossbows variations price.
Added an option to change dreamcloth gear price.
Added an option to retain all previous requirements in bolts' crafting recipes.
Added an option to change weight and value for ammo (by type, material or variation).
Added an option to change an amount of ammo and ingredients for reforging recipes.
Modifiers for all crossbows variations now available for changing on setting page.
Distributing 'Leathercraft' perk in crafting recipes for leather armors is optional now.
Crossbow variations now have differences in detection sound level.
Changes in recipes for dreamcloth gear, ammo and crossbows variations.
Silver and refined silver weapons now additionally require 'Principles of Smithing' perk to be able to work with.
Stahlrim weapons and armor now require both 'Glass Theorem' and 'Red Mountain's Calling' perks to be able to work with.
Some other armors require both 'Leathercraft' and 'Principles of Smithing' perks to be able to work with.'
'Ballistics' perk is now required to craft any bolts, including mod-added ones.
Removed legacy code that supports UPPERCASE materials used in old versions (UPPERCASE in rules no longer supported!)
Some crossbows and bolts are renamed to be more lore-friendly.
Fixed bug, when weapon could retain old keywords if new material, specified via override, had no associated perk.
Fixed bug, when ReProccer didn't remove previous script header correctly in VMAD subrecord.
Fixed bug, when enchanted refined silver weapons could be tempered without 'Arcane Artisan' perk.
Fixed bug, when modifiers for double-enhanced crossbows were stacking incorrectly.
Fixed bug, when ammo variants could be created even when PC had no proper smithing perks.
Fixed bug, when tempered (strongest) bolt had the same damage bonus as hardened (strong) bolt.
Fixed bug, when ReProccer used unacceptable symbols in editor IDs of generated records.
Fixed bug, when ReProccer used same editor IDs for generated records with same names.
Fixed bug, when keyword for exclusion from meltdown recipes worked incorrectly.
Added rules for CC 'Rare Curios' mod.
Major optimization of armor and projectile patchers, general code optimization, code cleanup.
Version 0.19
New options for crossbows patching.
SkyRe engineered enhanced crossbows' (with 2 enhancements) now require a SkyRe enhanced c. instead of a regular c. (lightweight for lightweight silenced c., recurve for recurve arbalest c., etc.)
To SkyRe enhanced crossbows' parameters (speed/weight/damage) applies multipliers instead of fixed values now.
ReProccer will no longer generate copies of existing projectiles, will patch it instead.
Implemented more reliable way to detect unplayable records.
Unplayable records patching has its own error reporting system now.
Removed 'Ballistics' perk as crafting condition for SkyRe enhanced crossbows.
Removed obsolete keyword-based modifiers system.
Fixed bug when specifying a non-existing material for overriding leads to patching process crash.
Fixed bug, when speed/reach values was patched to zeroes if weapon had no recognized weapon type keyword.
Fixed bug, when weight modification for SkyRe enhanced c. could have no result if multiplier was too low.
Fixed bug when recipes could sometimes not have patched if there are .esl files loaded.
Cleanup and readability improvements in rules files.
Added riekling spears processing.
Added rules for AE content, rules for 'Skyrim Immersive Creatures'.
Formatting improvements on settings page.
Optimized crossbows processing code.
Version 0.18.1
Fixed incorrect base damage for crossbows.
Version 0.18
Optimized material overriding for armor
Optimized tempering recipes modifying for armor
Optimized determining of material-based modifier for armor
Optimized meltdown recipes generation for armor
More precise method for identifying shield weight
Alternative modifier for armor value calculation formula
Rework of 'Masquerade' keywords distribution
Added option to exclude certain armor from patching
Added logger for armor patcher
Added missing materials
Added rules for 'Immersive Armors' and 'Immersive Weapons'
Updated rules for 'Interesting NPCs'
Excluded clothing from armor value patching process
Fixed bug, when user rules, listed in last.json, was ignored by ReProccer, if there are rules with the same keys in first.json
Fixed bug, when Thieves Guild related armors gain no crafting recipes modifications
Fixed bug, when light Dawnguard armor was ignored by ReProccer
Fixed bug, when Ancient Nord (Draugr) weapons got no meltdown recipes due to typo in resulting item name
General code optimization
Version 0.17
Major rework of 'Modifying tempering recipes' function for weapons.
Major rework of 'Material override' function for weapons.
Rebalanced crossbows.
Rebalanced bound weapon.
Excluded bows and crossbows from refined silver variants generation.
Skipping of keywords/armor modifying for shields with template specified.
Alternative modifier for weapons damage calculation.
Alternative method for identifying bound weapon.
Alternative method for identifying armor and clothing for 'Masquerade' perk.
Alternative method for identifying/modifying leather armor crafting recipes.
Fixed duplicated armor piercing effect bug.
Fixed conditions inconsistency in crossbows' recipes.
Fixed wrong source file of 'ArmorMaterialForsworn' keyword.
Fixed bug, when heavy nordic shield was determined as light shield.
Fixed bug, when patcher skipped crafting/tempering recipes when resulted item was originated from outside the official game plugins.
Improved support of third-party mods.
General code optimization.
Version 0.16
NEW: Shields are flagged with the correct impact sets and block material now
NEW: Excluded records with "Non-playable" flag from ammo variants, dreamcloth, meltdown and tempering recipes generation
NEW: Added bound weapon processing
NEW: Added rules for Vigilant and JaySuS Swords
NEW: More settings available on settings page
FIX: Patching armor with no material keyword will no longer result in 0 armor rating
FIX: Recurve and lightweight crossbows now also have armor penetration effect, as they should
FIX: Dawnguard Rune Hammer now correctly defines as warhammer
FIX: No more duplicated conditions in leather armors' tempering recipes
FIX: No more duplicated perk assignment script on yaris and shortspears
FIX: Dreamcloth armor bonus now correctly applies to wearer
FIX: Fixed various buggy crafting conditions
Version 0.15
When patching shields the armor patcher could sometimes result in strange names like 'Heavy Buckler Heavy Shield' Re-naming now only happens if the name of the shield does not have 'Heavy' or 'Light' in it.
The condition for a heavy shield has been changed to include shields with 'Heavy' in their name even if they do not have one of the heavy materials currently.
Data files were added for Interesting NPCs and Legacy of the Dragonborn
Version 0.14
* Drastically updated data files
- Removed everything from the data file not needed for patching base game + skyre + waccf to pave the way for upcoming patch work.
- Armor and Weapon material progression of Dwarven Elven and Orcish updated to lore based / waccf ordering
* Added support for the new SkyRe_ArmorStronger* and SkyRe_ArmorWeaker* keywords
* Added support for all relevant WACCF armor and weapon keywords
* Fixed several issues with not finding materials for recipe creation
* Weapon Patcher now sets crit damage equal to 50% of patched weapon damage
Version 0.13
Refined Silver weapons fixed... for reals this time.
Bonemold shields will now be properly classified as heavy
Re-running the patcher no longer has the potential to ruin in progress saves.
Version 0.12
Refined Silver weapons no longer require themselves to craft
Refined Silver weapons now use the correct perk for increased undead damage
Strongest ammunition type now has the correct damage
Lightweight and Arbalest crossbow modifiers now affect weight properly
Version 0.11.1
Re-upload due to potential packaging issue in 0.11 as people reported they were unable to see the patcher in zEdit
I confirmed I could patch with the contents of this zip with no issues6
Version 0.11
A new keyword, SkyRe_ExcludeFromMeltdownRecipes, allows mod authors/patch creators to easily exclude any given weapon or armor from having a meltdown recipe generated.
This should be done for items that are unique one-time only acquisitions or that would break quests if they were lost.
Version 0.10
Correct patching for "Falmer Honed" weapons
Correct patching for "Dragonbone" weapons
Version 0.9
Fixes issue where generated meltdown recipes were broken. Rerunning Reproccer Reborn is required for the fix.
Version 0.7
Various bug fixes for user identified issues.
Meltdown recipes will no longer show for items currently equipped. You must rebuild your patch for this to take effect.
ReProccer Reborn
created by jdsmith2816 description by matortheeternal maintained by Ingvion
Summary
This is a port of T3nd0's ReProccer - the automated SkyRe patch generator - to zEdit's Unified Patching Framework. This ported patcher does everything the original ReProccer does to make armor, weapons, ammunition, and ingredients compatible with T3nd0's Skyrim Redone.
The reason both the original ReProccer and this port exists is to alleviate the need for hand-made compatibility patches for armor, weapon, ammunition, and ingredients added by mods. The ReProccer also allows users to quickly adjust how weapons and armor are balanced by editing rules.
- What it does
Reproccer Reborn...
Applies or redefines type and material keywords to vanilla and mod-added weapons based on names or custom rules
Adjusts weapon stats based on material and weapon type
Modifies tempering recipes requirements according to weapons` materials
Generates meltdown recipes for playable weapons
Generates SkyRe crossbow variants for vanilla and mod-added crossbows, along with crafting, tempering, and meltdown recipes
Generates Refined Silver variants of vanilla and mod-added silver weapons, along with crafting, tempering, and meltdown recipes
Adjusts or redefines material keywords to vanilla and mod-added armors based on names or custom rules
Adjusts armor stats based on material and armor type
Classifies shields as light or heavy (based on material) by distributing relevant keywords
Sets a new cap for maximum armor protection and adjusts the armor protection algorithm
Makes mod-added armor compatible with SkyRe's "Masquerade" perk
Adds crafting requirements to leather armor recipes
Modifies tempering recipes requirements according to armors` materials
Generates meltdown recipes for playable armors
Adjusts speed, damage, and gravity of projectiles based on type and material
Adjusts weight and value of ammunition based on type and material
Generates SkyRe ammunition variants for vanilla and mod-added ammos, along with crafting recipes.
Makes ingredients effects work over time
Normalize extreme values for ingredients
Sets min and max value of any ingredient
- Technical
The original ReProccer was built with SkyProc, a Java framework for creating dynamic patchers developed by Leviathan1753 from February 2012 to October 2013. While there are some ways to use SkyProc with SSE, it's generally buggy, unstable, and will generate patches that can cause problems due to differences in the record definition format. While this may change as developers work on SkyProc, official support by the initial developer ended several years ago. This made using a different technical solution for automated patchers such as the ReProccer desireable.
Enter zEdit's Unified Patching Framework (UPF). UPF is a JavaScript framework built off of zEdit, an application which provides an improved frontend and API for the xEdit codebase. Reproccer Reborn was built off of UPF as a proof of concept that the framework can support the largest, most complicated SkyProc patchers.
Installation & Usage
- Requirements
zEdit - Download the latest portable release from GitHub and extract it somewhere. Note that if using MO2 zEdit should be launched from there.
T3nd0's Skyrim AE Redone - keep in mind, that you need to generate the patch only if using the Main Module.
- Soft Requirements
CC Saints & Seducers - you can use this mod's materials even without the mod itself; without the mod weapons will not receive S&S materials keywords, but damage/armor bonuses will be properly patched.
Make sure you have all requirements downloaded and installed.
Download ReProccer Reborn.
Extract the ReProccer Reborn archive into the "modules" folder in zEdit's installation folder. The resulting file structure should be: <zEdit folder>\modules\reproccerReborn\index.js <zEdit folder>\modules\reproccerReborn\module.json <zEdit folder>\modules\reproccerReborn\settings.html <zEdit folder>\modules\reproccerReborn\data\first.json <zEdit folder>\modules\reproccerReborn\data\last.json <zEdit folder>\modules\reproccerReborn\data\*other JSON files* (optional)
- Running the Patcher
Start zEdit via zEdit.exe. If using Mod Organizer, add zEdit to MO as an executable, and run it through MO.
Select Skyrim SE from the dropdown in zEdit, then click "Start Session".
Check mods that should be patched, or leave everything as is to correspond your current load order. Note: You must not have more than ~250 active plugin files in your load order, including ESLs. If you do you may need to merge plugins to stay below Skyrim SE's 253 plugin limit or zEdit's 255 module limit. See the FAQ for more info.No longer a problem, see FAQ.
Click "OK" to load checked files into zEdit.
Click on the puzzle piece icon to open the "Manage patchers" modal.
(Optional) Click on the "ReProccer Reborn" on the left to configure the patcher.
Click on the "Build Patches" item on the left, and then click the "Build" button by ReProccer.esp.
Configuration
- Configurating Patcher
Like the original ReProccer, ReProccer Reborn allows you to disable individual parts of the patcher.
Weapons: weapons stats adjustment, meltdown recipes generation, tempering recipe modification, Refined Silver weapons creation, crossbows variants generation, and association of mod-added weapons with SkyRe's perks.
Ingredients: makes alchemy ingredients work over time and optionally enforces upper and lower price limits for ingredients.
Projectiles: creates variants, and adjusts speed, gravity, reach, damage of projectiles, and weight and value of ammo.
Ignoring X plugins list allows you to exclude listed plugin files from patching even when they're loaded.
Uncheck the items you want to disable, hover mouse on info icons to see a tooltip. Changes will be saved automatically.
All setting stored in the <zEdit folder>\profiles\Skyrim SE\patcherSettings.json file.
- Adding/Changing Rules
Similar to original ReProccer, you can customize how ReProccer Reborn patches items by editing rules files in any text editor. However, there are some differences from the original Reproccer:
The ReProccer Reborn rules files can be found at: <zEdit folder>\modules\reproccerReborn\data
The ReProccer Reborn rules files are JSON files, not XML ones like in the original ReProccer. JSON is similar to XML, but is less verbose and more human-friendly. JSON is also easier to work with in JavaScript than XML.
The Reproccer Reborn allows for the creation of multiple rule files. The rules from each rule file are concatenated together in the order they are loaded. Rule files are loaded in the following order:
first.json is loaded first (has all of the base rules for Skyrim Redone + the base game ESMs)
*.json files are loaded based on your load order. E.g. if PluginB.esp is loaded after PluginA.esp, and you have both PluginA.json and PluginB.json files in the Reproccer Reborn data folder, PluginA.json will be loaded followed by PluginB.json.
last.json is loaded last (this is where you should put your personal tweaks/overrides)
Troubleshooting
If you run into a bug with the patcher/see something ingame that was patched wrong please create a bug report or post in the comment section.
Frequently Asked Questions
Q: Where should i place ReProccer.esp? A: This file should be the last one in your load order (ignore LOOT), unless there are mods that stating they should be lower than ReProccer.esp.
Q: What about Bashed Patch (and other patches that merge changes)? A: Remember: always build the ReProccer patch after building merged patches, since ReProccer uses formulas to calculate values; otherwise new numbers will likely be merged with unrelated edits.
Q: Was Jimmy harmed in the creation of this patcher? A: No, we managed to create this patcher without sacrificing Jimmy. :)
Q: How stable/reliable is Reproccer Reborn? A: The patcher should give you much less problems than the original ReProccer because it`s built off of a totally different framework which uses the xEdit codebase under the hood (which is very reliable). When used with Skyrim: Special Edition, Reproccer Reborn generates records in the proper form 44 format.
Q: I have more than 254 plugins. How can i patch this amount of mods? A: There`s a very simple in use script for zEdit in "Optional files", that unloads plugins that contain no patcheable records, right in the current zEdit session; no additional actions required. See the article in "Articles" for details.
Thanks & Credits
- T3nd0: For all of his contributions to the modding community and for generally being an awesome guy. - jdsmith2816: For making Reproccer Reborn. - Ingvion: For all of his ongoing maintenance and support work. Thanks mate! - Mator: For making and continuously improving zEdit and UPF, which serve as the backbone for Reproccer Reborn. He also wrote this description and created the T3nd0-inspired comic strip. - xEdit Developers: For maintaining the most reliable open source codebase for parsing and creating plugin files.
Feedback
We have a Discord server, where you can report an issue, get help, suggest a feature or discuss this mod.