Saturday, September 8, 2018

Newton MessagePad iPad Quest

This blog post documents my quest to get Newton OS 2.1 (717006 ROM) to run on a 2018 iPad Pro with Apple Pencil.

Newton MessagePad 2100
I began this quest a week ago. I own three Newton MessagePads and recently purchased an iPad Pro with the Apple Pencil. I had experimented with Einstein, the free Newton emulator, several years ago and had been able to get it to run on my Mac but without a stylus the experience was lacking. Since then the Einstein project had included iOS compatibility, so I was hoping I could get Einstein running on my iPad.

unna.dillernet.com website
First I downloaded the latest Einstein software (v. 2017.1.0) which includes an iOS version from github.com/pguyot/Einstein. After a few hours I was able to get it working on Mac OS X using the debugger images I had downloaded from the United Network of Newton Archives (UNNA) site at www.unna.org or unna.dillernet.com several years ago. While most of the UNNA direct URLs no longer work, the Archive icon on the unna.dillernet.com site still works and allows software to be browsed and downloaded.  There is also a torrent posted there that contains all of the software as of 2006.

Because Einstein cannot be made available from the Apple App store, you must build it onto your iOS device yourself. To do that you need the following:

  • Able to connect iOS device to Mac running Xcode using appropriate cable. For me I connected my iPad Pro with an Apple USB/Lightning cable which comes with the iPad Pro for charging.
  • Current version of the free Apple Xcode software for Mac OS X. This can be downloaded from the App store. I used 9.4.1.
  • An Apple ID set up as a developer account.  To build and install applications for your personal use you just need a free personal developer account. This prevents releasing your apps to the store, but is sufficient for installing an app onto your own iPhone or iPad.  Getting my Apple ID to be set up as a personal developer account required going to the Preferences Account pane in Xcode.

Though successful at getting Einstein to run on my Mac and getting a successful build on the iPad Pro, I was unable to get it to actually run on the iPad Pro. The screen would display and the chime would occur but then it would lock up. After trying a number of things with no success I resolved to dump an official ROM from my used Newton MessagePad 2100 and try to use that rather than the debugger files that I had found on the UNNA site.

First I had to locate my MP 2100 and make sure it still booted up. Instructions for dumping a ROM are available here: https://github.com/pguyot/Einstein/wiki/Dumping-The-Rom

Dumping the ROM requires installing software packages on the Newton. For Newton OS 2.x devices the software of choice is the Newton Connection Utilities 1.0 (released in 1997) which is included on the MP 2100 CD-ROM. The older Newton Connection Kit software is for Newton OS 1.x. Since the Newton Connection Utilities only runs on Mac OS versions prior to Mac OS X, it is necessary to use an older Macintosh capable of running Mac OS 9 or earlier. (Note that the NCU can be downloaded from the unna.dillernet.com Archive from folder /apple/connection_utils/ForMac/NewtonConnectionUtilities but it is compressed with Stuffit and will need to be decompressed to use. Alternatively you can download a WinZipped ISO image of the MP 2100 CD-ROM from folder /apple/software/2100CDROM, which also includes NCU 1.0.)

Having a Compaq WL110 Wireless LAN PC Card for my MP 2100 I thought I could install packages to the Newton from the Macintosh over my wireless network and not require any cables. Unfortunately when inserting the Compaq card in the MP 2100 I received the error "Newton cannot recognize this type of card". Maybe the previous owner had removed necessary software from the Newton before selling it to me.

Older Newtons than the MP 2000 used a serial cable to connect the Newton to the Mac and the Newton Connection Kit software for Mac includes a serial cable. Fortunately I had that so I thought connecting my MP 2100 would not be a significant problem. Unfortunately I ran into two roadblocks with using the cable.  First, with the MP 2000 and MP 2100 Apple eliminated the standard serial port and replaced it with a unique multi-purpose port called the InterConnect port. In order to use this port with a serial cable you need a special adapter. The original owner of my MP 2100 hadn't sent me one of those.  So I ordered one on eBay which cost me $55 and arrived a week later. The second roadblock is that the older Macintosh I planned to use is a PowerMac G3 Blue and White and it also does not have a standard serial port, so connecting with the cable to the G3 B&W wasn't possible anyway.  So I had to dig out another Mac, a venerable all-in-one Power Macintosh 5400/120. This PowerMac has a standard serial port and a CD drive with a built-in tray and a 3.5" floppy disk drive and is running Mac OS 9.1. What it lacks is USB ports, so I had to also locate an ADB keyboard and mouse.  At first the 5400/120 refused to boot, giving me the no boot disk icon with the flashing question mark.  Knowing that sometimes hard drives that haven't been used in a long while can require a few attempts to get them going I powered off the Mac and started it again, and again, and then again.  The fourth time the hard drive finally spun up and I found myself looking successfully at the Mac OS 9.1 desktop.

The next step was to install the Newton Connection Utilities software onto the PowerMac 5400/120 from the MP 2100 CD-ROM. Fortunately the CD-ROM drive in the PM 5400/120 is a tray and so I didn't have to locate a CD-ROM cartridge. The software installed correctly but then required a reboot. Fortunately the hard drive spun up successfully again. At this point I figured that I would be able to connect the MP 2100 to the PowerMac 5400/120 to install packages onto the Newton, so I turned my attention to acquiring what I would need to install on the PowerMac and Newton in order to dump the Newton ROM.

According to the directions on the Einstein site I would need either Newtsbug or Hammer, both of which are debuggers that are included as part of the Lantern DDK. I checked the UNNA site at unna.dillernet.com and clicked on the Archive icon which allows browsing the software that they have to download.  Inside folder /apple/development/DDKs I found the compressed file FullLanternDDK.sit (the sit suffix indicates compressed with the StuffIt compression utility). I was able to download it to my MacMini and decompress it while running Mac OS X.

Now the problem was how to get the application from my MacMini to my PowerMac 5400/120. I could burn the files needed to a CD-ROM using an external USB DVD-ROM drive but I only had blank DVD-ROM discs and the PowerMac 5400/120 only has a CD-ROM drive. Connecting a 3.5" floppy disk drive to the MacMini would also not work and even if it had the 1.44 MB storage would make copying the 50 MB files impossible.  Using a USB flash also won't work because the PowerMac 5400/120 has no USB ports.

I thought that uploading the files to Google drive might work, but the version of Netscape Communicator on the PowerMac 5400/1200 is too old to access any https sites. The PowerMac 5400/120 has an Ethernet port but attempts to access a network drive attached to my router also proved unsuccessful. Stymied at every turn it seemed.

The next technology I tried is an Iomega Zip drive. I have both USB and SCSI versions of the external Zip drives so my thinking was to connect a USB drive to my MacMini, copy the files onto a Zip disk, and then read them off of a SCSI attached Zip drive on the PowerMac 5400/120. Connecting a USB Zip drive to the MacMini worked but for some reason I could not write to a blank Mac OS Standard formatted Zip disk while in Mac OS X 10.13.

I decided to attempt using the G3 B&W which runs both Mac OS X 10.4 and Mac OS 9.2 as a go-between between the MacMini and the PowerMac to transfer the files. First I would copy the files to a USB flash drive, then power up my G3 B&W in Mac OS 9.2 and copy the files from the flash drive to it.  Then connect the USB Zip drive to the G3 B&W and try to write the files to the Zip disk. And finally try to read and copy the files using a SCSI Zip drive on the PowerMac 5400/120.

Copying the files to a flash drive was not a problem but the G3 B&W couldn't read the flash drive in OS 9.2 and it locked up the computer trying.  I rebooted into Mac OS X 10.4.11 and tried again.  This time the flash drive could be read and I was able to copy the files to the documents folder. I then ejected the flash drive and hooked up the USB Zip drive.  I was able to copy the files to the Zip disk, but I had to be selective because the Zip disk only holds 100 MB and I had 148 MB of files I had wanted to copy.  I decided to copy only the Lantern DDK which is about 50 MB. Unfortunately the SCSI Zip disk drive not only would not mount the disk on the desktop but also would not allow me to eject the disk. To manually force eject the disk I had to find a paperclip, straighten one end of it, and insert it into a tiny hole at the back of the drive.  I tried several disks and found that none of them mounted, including the Zip Tools disk.  Fortunately I have two SCSI Zip drives, so I disconnected the drive and connected the second Zip drive (same SCSI cable and power supply though).  This did not solve the mounting problem.  Finally I decided to try the other Zip power supply and moments later the Zip Tools disk appeared successfully on my PowerMac 5400/120 desktop.  I experimented a little more to make sure it wasn't a fluke and that the power supply was really to blame.  It turns out that both drives work fine, but one of the power supplies had somehow gone bad while sitting in its box in my closet.

12 hours after starting this process this morning, I finally had been able to get the Lantern DDK onto a PowerMac that I could use to connect to the MP 2100. The next step would be to see how to connect the MP 2100 using the serial cable and start up Newton Connection Utilities. I connected the serial cable to the InterConnect port adapter and the other end to the modem serial port on the PowerMac and then plugged the adapter into the Newton InterConnect port.  I downloaded and read the instructions for the Newton Connection Utilities and it indicated that you have to go into Preferences in the program and indicate which port you are going to use, so I selected the modem port in Preferences.  Then on the Newton I went to Extras > Dock and initiated a serial connection.  Success.  Next step to install the Debugger Connection package from the Lantern DDK Hammer folder.

I was able to install the package by selecting install package on the Newton. It took a bit for the file list to be sent over from the Mac but then I was able to navigate to the Hammer folder and select the Debugger Connection package. Then I exited Newton Connection Utilities.

I then started the Hammer application on the PowerMac 5400/120 and I was presented with a standard open file dialog. According to the Einstein directions you navigate to the appropriate debugging image based on the Newton you are using.  The directions say "choose the debugging image corresponding to your Newton (Senior CirrusNoDebug image, Senior DCirrusNoDebug image or Newt KNoDebug image for the MP2x00 US, MP2100 or eMate 300 respectively)."  I am using a MP 2100 but unfortunately there was no Senior DCirrusNoDebug image in the folders included with Hammer. I did find though that in the UNNA Archive folder developer/Debugger_Images there is a compressed Stuffit file MP2100_D.sit. This file when unstuffed has a file named "Senior DCirrusNoDebug image" so that is the file I first tried to use. Then once Hammer told me to connect to the Newton device I opened the Extras drawer on the Newton and tapped the Debugger Connection package and selected "connect". Unfortunately Hammer then reported that the ROM didn't match the image. I exited out of Hammer, rebooted the Newton and started Hammer again but this time selected the "Senior CirrusNoDebug image" and after waiting a minute and not getting any error from Hammer decided to soldier on. I went to the File menu and select the "Save Memory..." option and then save 0 to 00800000.  I saved that as "MP2100.rom". The Mac cursor changed to the wristwatch icon and I assumed it was working, so I left the Newton as is and waited and waited and waited some more. Unfortunately the instructions on Einstein only indicate that over a serial connection this takes a long time, but it doesn't give any indication just how long it could be.

After an hour of watching I decided to call it a night and check it in the morning.  While your own mileage may vary it took over 5 hours for the memory save to complete. When it completed the PowerMac cursor returned to the normal pointer.  I exited Hammer and moved my new ROM named MP2100.rom from the PowerMac to a Zip disk and then to a flash drive and then to my MacMini that runs Xcode. The end was in sight.

I copied my new rom file into the ~/Library/Application Support/Einstein Platform folder used by Einstein and changed Einstein's preferences to use the rom. I then started up Einstein and it booted fine, verifying that the new rom was functional.

I started up Xcode and plugged in my iPad via the Lightning cable, which then automatically started up iTunes (which would be needed anyway).  I deleted the existing version of Einstein from my iPad and then in Xcode opened the project, made sure that my iPad was the target and issued the Run command. The application was built successfully on the Newton but couldn't be run because my iPad wasn't set up to trust my developer account.  So on the iPad I went into System Preferences > General > Device Management, selected my developer Apple ID and clicked the "Trust" button.  I also went over to iTunes and with my iPad selected went into File Sharing and selected iOSEinstein.  I then copied my MP2100.rom file to the desktop and renamed that version 717006.rom (which the Einstein instructions say it must be named), and then dragged it to the iTunes iOSEinstein Documents list to add it there.

Then I returned to Xcode and issued the Run command again.  This time the application Einstein started up on the iPad and I heard the familiar Newton chime and then this screen...



Unfortunately that is as far as it went.  This is actually the exact same issue I had a week and $55 ago. I learned a few things along the way but the destination did not turn out to be what I had hoped. If any of you have been successful at getting Einstein to run on an iPad Pro please send me a note.  I'd love to know your story.

To sum up, here are the important lessons I learned along this quest:

  • The emergency force eject hole on Zip drives is in the back, not the front.
  • Unlike earlier Newtons the MP 2000 and 2100 have a custom Apple InterConnect port that requires a small adapter to allow it to be used with standard serial cables. (Thanks, you clever Apple engineers.)
  • An Iomega Zip drive power supply can go bad for no reason other than age. But the drive mechanisms and disks themselves are highly reliable, even after 20+ years.
  • CD-ROM drives cannot read DVD-ROM disks . (Yes, I already knew that, but I tried it anyway.)
  • I have a very hard time getting rid of computer stuff. (Even when I know things are broken.)



Sunday, March 5, 2017

Getting a Head

When starting to work with the NWN2 toolset for the Farlong and Away campaign I quickly found that one of my party members - Duncan Farlong - could not be used with his standard model. In the NWN2 Original Campaign he only appears in an apron and I quickly found that his body could not be used for my purposes, primarily because it was not designed to wear any clothing.  So what I needed to be able to do was to relocate his head onto a suitable half-elf body.  I had no idea what this would require and so I asked the community for help in a forum post on Neverwintervault.org. Fortunately a community member was able to provide instructions and another community member had previously released a free tool that I was able to use to alter the Duncan model successfully.

Duncan Farlong

In case this can be useful to others here are the instructions I followed.

My thanks to Neverwinter.org members Sabranic, cuiilv, and rjshae.

Required: rjshae's Java MDBConfig tool v1.9 available freely both on Neverwintervault.org and on Nexusmods.

Instructions from cuiilv: (I chose to use 114 instead of 101 suggested in the instructions below)

Copy the N_Duncan_Head01.mdb from your Program/Atari/Neverwinter Nights 2/Data/NWN2_Models/NWN2_Models folder to your override folder.

Open the copied file with MDBConfig and change packet names:
N_Duncan_Eye01 to P_EHM_Eye101
N_Duncan_Head01 to P_EHM_Head101
and do the same with the _L01/2 packets.

Save the file as P_EHM_Head101.

Copy N_Duncan_skel01.gr2 from Program/Atari/Neverwinter Nights 2/Data/lod-merged/lod-merged to your override and rename it to P_EHM_skel101.gr2

Open the toolset and Duncan's head should be available as number 101 for half-elf males.

cuiilv suggests that this could also be accomplished by altering the appearance.2da file but I prefer to avoid modifying standard 2da files if possible since community content often overrides them.

A test of Duncan and Daeghun and friend Flinn dressed for adventuring
With the two modified files in the campaign folder Duncan appears correctly in both the toolset and when placed in a game area.

Thursday, February 9, 2017

Map Maker, Map Maker, Make Me a Map

Having decided that the Farlong and Away campaign will take place in the Forgotten Realms it is important that the maps used are appropriate to the time and locale - 3rd edition Cormyr and the Sword Coast prior to the Time of Troubles.  There are a number of maps of Faerun available online and the one I have decided to use as the basis for my world map is this one:

Faerun 3rd edition around 1372 DR (Dale Reckoning)

When developing the King's Festival campaign I learned how to implement a world map and I think that knowledge will serve me well for Farlong and Away as well. While I could use an Overland Map as was done in SoZ, I generally prefer world maps.  Some features I intend to provide in the travel system:

- travel should take time depending on the distance
- area entry points should be determined in part by the direction the party is coming from
- once the party has been to a travel location they should be able to return in case they left something or someone behind or want to explore an area more completely
- there should be some risk of encountering wandering monsters while traveling
- a party member being dead should not prevent travel, that way the party member can be taken to a temple to be resurrected

I intended to implement all of these features in my incomplete Gems of Power campaign and since I had completed most of the travel scripting I think I will be able to adapt it fairly easily to this campaign.

What I really enjoy about using a map though is that it guides your research into areas that the party is likely to be near and in that way helps to anchor the adventure in the Forgotten Realms.  The Grand History of the Realms and Forgotten Realms sourcebooks provide many hooks that can be explored and exploited.  For the Farlong party there should be many opportunities for exploration and questing as they make their way from their home in the heart of the Chondalwood westward through Cormyr and the Western Heartlands to the Sword Coast.

Thursday, February 2, 2017

Literary Sources for Farlong and Away

Having decided that I will develop a NWN2 campaign in the Forgotten Realms to take place in 1345 DR, one of the first things to do to allow some authenticity is to select appropriate literary sources to draw upon.

The initial source of the idea for telling this tale is the NWN2 Official Campaign conversations. They provide some hints and potential backstory, some information (or could it be misinformation?), and establishing a conversational tone for the characters. Both Daeghun and Duncan have enough conversation in the OC to establish their general personality traits and it is reasonable to try to match that as much as possible. Mining the conversations using the NWN2 Toolset is easily done since the Windows version of the game includes both the toolset and all of the game areas can be opened and browsed.

Here are some lines from Daeghun's conversation 11_daeghun in module 1100_West_Harbor:

That shard is one of a pair. Both were found after the battle that destroyed West Harbor long ago.
My half-brother, Duncan, and I asked a mage in Neverwinter to examine the shards for enchantments, but he found nothing except a faint magical aura, a residue of the battle.
And so I kept one shard, and the other I gave to Duncan. Not long after I returned to West Harbor I sealed it away in the ruins. 
So to speak. It would be more appropriate to say that I have a half-brother... Duncan, like Bevil, has many faults that would make it wise not to rely on him or call him kin.
It was  long ago - and it was a battle that did not concern West Harbor, but the village was caught up in it, like many such villages in the Mere of Dead Men. 
We knew little about what had sparked the conflict. Demons were involved, led by a warlock of great power - we only knew him as the King of Shadows.

Perusing the conversations of other NPC's including Amie, Bevil, Tarmas, and of course Flinn and Duncan, provide a wealth of information and provide other mysteries to solve, such as the origin of Amie Fern's parents.

While the conversations are a primary source, I do not intend to take everything every character said at face value. In particular these lines of Daeghun about Esmerelle are going to be reinterpreted somewhat:

Your mother was spun of a different silk, and maintained her vitality in spite of loss. When I settled in West Harbor with my Shayla - she would visit us from time to time.
A heart can heal over time - I had become content. One day when Esmerelle returned she was thick with child - you. Those were... good times.
Before you ask - she never mentioned any details about your father. And in my homeland, we respect such silence.

Esmerelle returning to West Harbor "thick with child" means that Esmerelle's race and the race of the OC Knight Captain are biologically linked. If the Knight Captain is a full elf or dwarf or halfling or gnome then Esmerelle must be the same. If the Knight Captain is human or of mixed race - half-elf or half-orc - then Esmerelle must or could be human. Since I have a reasonable and interesting back-story for Esmerelle's origin based on other Forgotten Realms sources, and that origin requires her to be human, I am going to say that for reasons known only to himself Daeghun is hiding the truth and that Esmerelle came back carrying a child, rather than pregnant with one. Considering Daeghun's personality, that he lies to his foster child is not that hard to believe anyway.

Other sources I am using to construct this campaign are several of the Dungeons & Dragons sourcebooks.  The primary sourcebooks I am using are:

The Grand History of the Realms by Brian R. James and Ed Greenwood. This is a wonderful text for following key events and characters through the thousands of years of Faerun history from -35000 DR to 1385 DR when the Weave collapsed ushering in the 4th edition ruleset.

Elminster's Forgotten Realms by Ed Greenwood. This tome supposedly written by the famous Harper wizard Elminster Aumar details the lifestyles of the inhabitants of the realms as well as providing information about languages, religious worship, clothing, food and drink, and much more.

The Forgotten Realms Campaign Guide 4th edition, is a game supplement that provides some information about the areas, cities, and people who survived the world-changing events of 1385 DR.

A number of other official D&D sourcebooks will likely be used as references, including:

  • Lands of Intrigue
  • Cormyr
  • Volo's Guide to Cormyr
  • Volo's Guide to the Sword Coast
  • City of Splendors: Waterdeep
  • Volo's Guide to Waterdeep
  • Skullport
  • Lords of Darkness


The Forgotten Realm wiki at forgottenrealms.wikia.com is a useful online source of realm lore. The information in it is intended to be canon as it is taken from the published sourcebooks.

Another online source is Candlekeep.com which has several compendiums mostly about Faerun between the start of the Time of Troubles and the collapse of the Weave. These are not canon, but provide some useful information.

Sunday, January 29, 2017

Farlong and Away - A New Campaign for NWN2 Being Developed

I have begun the development of a new NWN2 campaign. This campaign will be set in the year 1345 DR and allow the player to be the fifth member of the original "Party of Five" which consisted of: Daeghun Farlong - the foster father of the NWN2 OC/MotB protagonist "Knight Captain", Duncan Farlong - Daeghun's half-brother, Flinn - a future ship captain, and Esmerelle - according to Daeghun and Duncan, the mother of the "Knight Captain". The NWN2 OC conversations provide only teases about the adventures they had along the Sword Coast, so this campaign seeks to flesh out their adventures in a fashion that is informative and entertaining, compatible (well, mostly) with the NWN2 content, and compatible with Faerun 3rd Edition history (as documented in the Grand History of the Realms).

There are a number of questions that this campaign will provide answers for:

What adventures did the Party of Five have?
Why do Daeghan and his wife Shayla live in West Harbor? Have little money? Have a halfling deity amulet?
Why didn't Daeghun go to Evermeet as part of The Retreat in 1344?
Who was Esmerelle and why was she on the run all the time?
What "mutual necessity" (so Daeghun says) was there for Daeghun and Esmerelle to adventure together?
How are Daeghun and Duncan half-brothers but so different in temperament?  How was Daeghun raised by wild elves but not Duncan?
What is Daeghun and Duncan's parentage and what meaning is there to the name “Farlong”?
How could Duncan afford to purchase the Sunken Flagon in Neverwinter?
How could Flinn afford to purchase a ship?
Why is Edwin Odesseiron, a Red Wizard of Thay, in the area of Nashkel in 1369 DR as depicted in the game Baldur's Gate?
Who were Amie Fern's parents and how did they come to live in the village of West Harbor?

Because the player is acting as the fifth member of an established company of adventurers whose classes are for the most part already determined, there will not be complete flexibility in choosing party companions, but the party editor will be supported and the player will not be restricted in their own selection of starting class or race. We know Daeghun is a ranger specializing in the longbow. Duncan is a fighter. Flinn, with slight alteration, can reasonably be a cleric of Valkur. And Esmerelle by default will be a bard, although I hope to provide a means of altering her starting class to be wizard, sorcerer, warlock, or rogue if the player desires.

The geographic areas that will be covered will extend from Westgate on the Sea of Fallen Stars to the Sword Coast cities of Waterdeep and Athkatla. I intend to include areas and cities that have been well covered in other games only as required. The travel choices will not be completely free as the party has specific goals that will need to be met. Since external area building is not my strength I intend to make use of 3rd party content and repurposed modified OC areas, which should also speed up progress.

I will be using this blog to document my progress.

I have decided initially to use the skeleton of my Gems of Power campaign as a starting point, as I believe there is much I can salvage from that as yet unfinished campaign.  This means that most of the technical solutions implemented in the OC Makeover, MotB Makeover, and King's Festival campaigns will be utilized as well, including the party editor, SoZ crafting, and my customizable rest/death systems.

I have no idea how long this will take but I am excited about the subject matter and I think it covers new ground.

The Neverwinter Vault forum announcement is here.

Friday, September 9, 2016

Problems with Crafting in NWN2 Storm of Zehir expansion

The Storm of Zehir expansion for NWN2 introduced many new capabilities to the game, including a new crafting system. While crafting guides were provided by Obsidian to assist in allowing modders to implement the crafting system in their own campaigns, these resources turned out to be lacking.  Unfortunately the crafting system itself was very poorly implemented with many bugs in the required 2da files, resources missing, and just overall poor scripting. Since some players enjoy crafting in 2009 I did the necessary analysis to determine how to implement SoZ crafting in other campaigns and eventually released the Crafting Plus System which corrects many of the bugs in the SoZ crafting implementation (it is not a fix for SoZ itself though). During this analysis I kept track of a number of issues in my own notes and posted them to various now-defunct forums.  In case these notes will prove useful to someone I am including them in this blog post.

SoZ Crafting information compiled by Kaldor Silverwand:

More content here: <http://worldofalthea.blogspot.com/2009/01/custom-crafting-with-nwnx2.html>

I decided to add SoZ crafting into my campaign. Obsidian's tutorial makes it appear to be fairly simple. I want it to be simple because I don't care for crafting myself, so I am only adding this into the campaign for others who may. I do not want the trade system though, so I am following the instructions for just crafting. Unfortunately the instructions are incorrect. My guess is that they may work if you want both the trading system and crafting, but for crafting alone it is incorrect.

This is what I have found so far.  Note that I am not done testing the results yet, but I am hopeful. If anyone else has done this already I would welcome feedback and advice.

The Tutorial says that in addition to the blueprints for items and recipes, you need only the following scripts from the SoZ campaign folder:

x2_mod_def_act.nss (and the compiled version x2_mod_def_act.ncs)
x2_mod_def_aqu.nss (and the compiled version x2_mod_def_aqu.ncs)
nx2_crafting.2da
nx2_enchanting.2da
kinc_crafting.nss

It also says you need kinc_trade_crafting.nss if you want the trade system.

First correction, there is no kinc_trade_crafting.nss. What they mean I believe is kinc_trade.nss.

If you only want the crafting and not the trade then x2_mod_def_act.nss and x2_mod_def_aqu.nss need to be modified slightly and recompiled. In both scripts you replace:
#include "kinc_trade" (they say incorrectly kinc_rade_crafting)
with
#include "kinc_crafting"

Unfortunately after doing and attempting to recompile you find the second error. You cannot recompile without an additional include file.

So the second correction is you have to also copy the file kinc_trade_constants.nss from the campaign file. This contains constants that both the trade system and crafting require. To use this you also have to modify the kinc_crafting.nss adding the line:

#include "kinc_trade_constants"

Then both x2_mod_def_act.nss and x2_mod_def_aqu.nss can be successfully compiled.

A couple of other things I have found so far.

One is that you can put blueprints into a subfolder inside your campaign folder. This is useful for putting the recipe blueprints into your campaign folder.

Also, some other posts have made reference to having to have a workbench that has an appropriate resref. From what I have seen so far the requirement of the workbenches is that they have the correct tag, not resref. There is a small guild area in either the G or F (don't recall which off-hand) SoZ module that has all 3 workbenches in it.

The tags for the 3 required work benches are:

nx2_alch_bench
nx2_mage_bench
nx2_smith_bench

The 5 recipe books included with SoZ are used to hold recipes for crafting and enchanting items. Recipes do not need to be in recipe books to work, but the books can be convenient. In SoZ the books are given to the first PC in k_mod_ud (kinc_spawn) and the k_mod_aqu script forces acquired recipes to go to the main PC. Recipes are automatically forced into the recipe books by their properties. The books have the cursed property so the first PC cannot drop them or give them away.

The blueprints for the recipe books are in the SoZ Campaign folder and are:
nx2_recipe_alch.UTI
nx2_recipe_armor.UTI
nx2_recipe_enchant.UTI
nx2_recipe_item.UTI
nx2_recipe_weapon.UTI

If you copy all of the nx2_ files from the campaign folder you will have copied them as well. However, turns out having the UTI files is not enough to make them work. You also need to copy these files from the SoZ Campaign\UI folder into your campaign's UI folder:

container_book.tga
frame_wood_B.tga
frame_wood_BL.tga
frame_wood_BR.tga
frame_wood_L.tga
frame_wood_R.tga
frame_wood_T.tga
frame_wood_TL.tga
frame_wood_TR.tga


There are many additional items defined in the nx2_crafting.2da file than there are recipes. In order to craft those items you would need to create the missing recipe. If the result item doesn't exist then you would need to create that as well, and also any required items. Sometimes the result blueprint is already a blueprint in the SoZ campaign folder or it is a global blueprint.

There are many basic armors and weapons and armors and weapons that use exotic materials (mithral, cold iron, darksteel, duskwood, shederran, alchemical silver) that are defined in the nx2_crafting.2da for which the recipe does not exist but the result blueprint is a global blueprint. Many of these items can be crafted if a recipe is created for them.

So if there is an item you would like to craft that has no recipe, check the nx2_crafting.2da and see if the resulting item does exist as a global or SoZ campaign blueprint. If it does then adding it to your campaign may really only require creating the recipe blueprint.

-------------------------
This is what is needed for crafting grenades. Grenades are the easiest case to implement in your campaign because:
- they have no item, goods, or rare resource components
- the resultant item blueprints are all standard global blueprints
- the recipe blueprints are all in the SoZ campaign folder
- there are no bugs in the nx2_crafting.2DA file for these items (v 1.22)

Grenades: (no ingredients required)

Skill rank requirements:
Basic: 8 ranks
Improved: 10 ranks
Greater: 12 ranks
Perfected: 14 ranks
Bombs: 16 ranks

NOTE: To craft an item listed below its recipe blueprint must be copied from the SoZ campaign folder into your campaign folder.

NOTE: There is no x1_wmgrenade003. I am not missing a grenade in the list below.

Acid Flask
- Recipe blueprint: nx2_r_acid_flask
- Result blueprint: x1_wmgrenade001
Improved
- Recipe blueprint: nx2_r_acid_flask_imp
- Result blueprint: n2_it_acid_2
Greater
- Recipe blueprint: nx2_r_acid_flask_gtr
- Result blueprint: n2_it_acid_3
Perfected
- Recipe blueprint: nx2_r_acid_flask_pft
- Result blueprint: n2_it_acid_4
Acid Bomb
- Recipe blueprint: nx2_r_acid_bomb (NOTE: There is no such blueprint in SoZ, so you would have to create your own)
- Result blueprint: x2_it_acidbomb

Alchemical Fire
- Recipe blueprint: nx2_r_alch_fire
- Result blueprint: x1_wmgrenade002
Improved
- Recipe blueprint: nx2_r_alch_fire_imp
- Result blueprint: n2_it_alch_2
Greater
- Recipe blueprint: nx2_r_alch_fire_gtr
- Result blueprint: n2_it_alch_3
Perfected
- Recipe blueprint: nx2_r_alch_fire_pft
- Result blueprint: n2_it_alch_4
Fire Bomb
- Recipe blueprint: nx2_r_fire_bomb (NOTE: There is no such blueprint in SoZ, so you would have to create your own)
- Result blueprint: x2_it_firebomb

Choking Powder
- Recipe blueprint: nx2_r_choke_pwdr
- Result blueprint: x1_wmgrenade004
Improved
- Recipe blueprint: nx2_r_choke_pwdr_imp
- Result blueprint: n2_it_chok_2
Greater
- Recipe blueprint: nx2_r_choke_pwdr_gtr
- Result blueprint: n2_it_chok_3
Perfected
- Recipe blueprint: nx2_r_choke_pwdr_pft
- Result blueprint: n2_it_chok_4

Holy Water
- Recipe blueprint: nx2_r_holy_wtr
- Result blueprint: x1_wmgrenade005
Improved
- Recipe blueprint: nx2_r_holy_wtr_imp
- Result blueprint: n2_it_holy_2
Greater
- Recipe blueprint: nx2_r_holy_wtr_gtr
- Result blueprint: n2_it_holy_3
Perfected
- Recipe blueprint: nx2_r_holy_wtr_pft
- Result blueprint: n2_it_holy_4

Tanglefoot Bag
- Recipe blueprint: nx2_r_tangle_bg
- Result blueprint: x1_wmgrenade006
Improved
- Recipe blueprint: nx2_r_tangle_bg_imp
- Result blueprint: n2_it_tang_2
Greater
- Recipe blueprint: nx2_r_tangle_bg_gtr
- Result blueprint: n2_it_tang_3
Perfected
- Recipe blueprint: nx2_r_tangle_bg_pft
- Result blueprint: n2_it_tang_4

Thunderstone
- Recipe blueprint: nx2_r_tstone
- Result blueprint: x1_wmgrenade007
Improved
- Recipe blueprint: nx2_r_tstone_imp
- Result blueprint: n2_it_thun_2
Greater
- Recipe blueprint: nx2_r_tstone_gtr
- Result blueprint: n2_it_thun_3
Perfected
- Recipe blueprint: nx2_r_tstone_pft
- Result blueprint: n2_it_thun_4

-----------------

This is what is needed for crafting traps. Traps are easy to implement in your campaign because:
- they have no item, goods, or rare resource components or the items they need have global blueprints
- the items they require can be crafted themselves rather than having to be placed in your campaign
- the resultant item blueprints are all standard global blueprints, so the only blueprints to copy from SoZ are the recipes themselves
- the recipe blueprints are all in the SoZ campaign folder
- there are no bugs in the nx2_crafting.2DA file for these items (v 1.22)
- Crafting traps does not require proximity to a workbench (although crafting the grenades required for crafting traps requires an alchemy workbench)

Traps: (no gp cost (except for spikes); do not need to be near bench)

Skill rank requirements:
Minor: 8 ranks
Average: 10 ranks
Strong: 12 ranks
Deadly: 14 ranks

NOTE: There are no recipes for crafting Acid Splash, Electrical, Frost, or Negative Energy traps

NOTE: To craft an item listed below its recipe blueprint must be copied from the SoZ campaign folder into your campaign folder.

Minor Spike Trap
- Recipe blueprint: nx2_r_spiketrap_min
- Result blueprint: nw_it_trap001
Average Spike Trap
- Recipe blueprint: nx2_r_spiketrap_ave
- Result blueprint: nw_it_trap002
Strong Spike Trap
- Recipe blueprint: nx2_r_spiketrap_str
- Result blueprint: nw_it_trap003
Deadly Spike Trap
- Recipe blueprint: nx2_r_spiketrap_dead
- Result blueprint: nw_it_trap004

Minor Blob of Acid Trap
- Recipe blueprint: nx2_r_acidtrap_min
- Result blueprint: nw_it_trap013
- Req: X1_WMGRENADE001 (tag of Acid Flask)
Average Blob of Acid Trap
- Recipe blueprint: nx2_r_acidtrap_ave
- Result blueprint: nw_it_trap014
- Req: n2_it_acid_2 (tag of Improved Acid Flask)
Strong Blob of Acid Trap
- Recipe blueprint: nx2_r_acidtrap_str
- Result blueprint: nw_it_trap015
- Req: n2_it_acid_3 (tag of Greater Acid Flask)
Deadly Blob of Acid Trap
- Recipe blueprint: nx2_r_acidtrap_dead
- Result blueprint: nw_it_trap016
- Req: n2_it_acid_4 (tag of Perfected Acid Flask)

Minor Fire Trap
- Recipe blueprint: nx2_r_firetrap_min
- Result blueprint: nw_it_trap017
- Req: X1_WMGRENADE002 (tag of Alchemical Fire)
Average Fire Trap
- Recipe blueprint: nx2_r_firetrap_ave
- Result blueprint: nw_it_trap018
- Req: n2_it_alch_2 (tag of Improved Alchemical Fire)
Strong Fire Trap
- Recipe blueprint: nx2_r_firetrap_str
- Result blueprint: nw_it_trap019
- Req: n2_it_alch_3 (tag of Greater Alchemical Fire)
Deadly Fire Trap
- Recipe blueprint: nx2_r_firetrap_dead
- Result blueprint: nw_it_trap020
- Req: n2_it_alch_4 (tag of Perfected Alchemical Fire)

Minor Holy Trap
- Recipe blueprint: nx2_r_holytrap_min
- Result blueprint: nw_it_trap005
- Req: X1_WMGRENADE005 (tag of Holy Water)
Average Holy Trap
- Recipe blueprint: nx2_r_holytrap_ave
- Result blueprint: nw_it_trap006
- Req: n2_it_holy_2 (tag of Improved Holy Water)
Strong Holy Trap
- Recipe blueprint: nx2_r_holytrap_str
- Result blueprint: nw_it_trap007
- Req: n2_it_holy_3 (tag of Greater Holy Water)
Deadly Holy Trap
- Recipe blueprint: nx2_r_holytrap_dead
- Result blueprint: nw_it_trap008
- Req: n2_it_holy_4 (tag of Perfected Holy Water)

Minor Gas Trap
- Recipe blueprint: nx2_r_gastrap_min
- Result blueprint: nw_it_trap025
- Req: X1_WMGRENADE004 (tag of Choking Powder)
Average Gas Trap
- Recipe blueprint: nx2_r_gastrap_ave
- Result blueprint: nw_it_trap026
- Req: n2_it_chok_2 (tag of Improved Choking Powder)
Strong Gas Trap
- Recipe blueprint: nx2_r_gastrap_str
- Result blueprint: nw_it_trap027
- Req: n2_it_chok_3 (tag of Greater Choking Powder)
Deadly Gas Trap
- Recipe blueprint: nx2_r_gastrap_dead
- Result blueprint: nw_it_trap028
- Req: n2_it_chok_4 (tag of Perfected Choking Powder)

Minor Sonic Trap
- Recipe blueprint: nx2_r_sonictrap_min
- Result blueprint: nw_it_trap037
- Req: X1_WMGRENADE007 (tag of Thunderstone)
Average Sonic Trap
- Recipe blueprint: nx2_r_sonictrap_ave
- Result blueprint: nw_it_trap038
- Req: n2_it_thun_2 (tag of Improved Thunderstone)
Strong Sonic Trap
- Recipe blueprint: nx2_r_sonictrap_str
- Result blueprint: nw_it_trap039
- Req: n2_it_thun_3 (tag of Greater Thunderstone)
Deadly Sonic Trap
- Recipe blueprint: nx2_r_sonictrap_dead
- Result blueprint: nw_it_trap040
- Req: n2_it_thun_4 (tag of Perfected Thunderstone)

Minor Tangle Trap
- Recipe blueprint: nx2_r_tangtrap_min
- Result blueprint: nw_it_trap009
- Req: X1_WMGRENADE006 (tag of Tanglefoot Bag)
Average Tangle Trap
- Recipe blueprint: nx2_r_tangtrap_ave
- Result blueprint: nw_it_trap010
- Req: n2_it_tang_2 (tag of Improved Tanglefoot Bag)
Strong Tangle Trap
- Recipe blueprint: nx2_r_tangtrap_str
- Result blueprint: nw_it_trap011
- Req: n2_it_tang_3 (tag of Greater Tanglefoot Bag)
Deadly Tangle Trap
- Recipe blueprint: nx2_r_tangtrap_dead
- Result blueprint: nw_it_trap012
- Req: n2_it_tang_4 (tag of Perfected Tanglefoot Bag)

-------------------------
Crafting the Amulets requires copying the specified recipe AND result blueprints from the SoZ campaign folder. The SoZ item blueprints nx2_cp_treant and nx2_cp_stagbeetle are also required.

Magic Amulets: (must be in close proximity of mage bench)
Amulet of Health +2
- Recipe blueprint: nx2_r_nck_health02
- Result blueprint: nx2_neck_health_02
- Req blueprint(s) (tags): NW_IT_MNECK020, NW_IT_GEM014
Amulet of Health +4
- Recipe blueprint: nx2_r_nck_health04
- Result blueprint: nx2_neck_health_04
- Req blueprint(s) (tags): NW_IT_MNECK021, NW_IT_GEM013
Amulet of Health +6
- Recipe blueprint: nx2_r_nck_health06
- Result blueprint: nx2_neck_health_06
- Req blueprint(s) (tags): NW_IT_MNECK022, NW_IT_GEM012

Amulet of Natural Armor +1
- Recipe blueprint: nx2_r_nck_narmor01
- Result blueprint: nx2_neck_nat_01
- Req blueprint(s) (tags): NW_IT_MNECK020, cft_gem_01, nx2_cp_treant
Amulet of Natural Armor +2
- Recipe blueprint: nx2_r_nck_narmor02
- Result blueprint: nx2_neck_nat_02
- Req blueprint(s) (tags): NW_IT_MNECK021, NW_IT_GEM011, nx2_cp_treant [2]
Amulet of Natural Armor +3
- Recipe blueprint: nx2_r_nck_narmor03
- Result blueprint: nx2_neck_nat_03
- Req blueprint(s) (tags): NW_IT_MNECK022, NW_IT_GEM006, nx2_cp_treant [3]

Amulet of Will +1
- Recipe blueprint: nx2_r_nck_will01
- Result blueprint: nx2_neck_will_01
- Req blueprint(s) (tags): NW_IT_MNECK020, NW_IT_GEM007
Amulet of Will +2
- Recipe blueprint: nx2_r_nck_will02
- Result blueprint: nx2_neck_will_02
- Req blueprint(s) (tags): NW_IT_MNECK021, NW_IT_GEM001
Amulet of Will +3
- Due to a BUG in nx2_crafting.2da this item cannot be crafted using kinc_crafting. The problem is that the required item nw_it_mneck022 in the 2da should be NW_IT_MNECK022 because it is the uppercased tag that is checked for in kinc_crafting, not the lowercased resref. I've corrected for this now in kinc_bb_crafting by checking for upper-case and lower-case versions of the item tag in the CheckItemReagents and DestroyItems functions.
- Recipe blueprint: nx2_r_nck_will03
- Result blueprint: nx2_neck_will_03
- Req blueprint(s) (tags): nw_it_mneck022, NW_IT_GEM005

Brooch of Shielding
- Recipe blueprint: nx2_r_nck_shield
- Result blueprint: nx2_neck_shield
- Req blueprint(s) (tags): NW_IT_MNECK021, NW_IT_GEM006, nx2_cp_stagbeetle

Periapt Wisdom +2
- Recipe blueprint: nx2_r_nck_wisdom02
- Result blueprint: nw2_neck_wis_02
- Req blueprint(s) (tags): NW_IT_MNECK020, NW_IT_GEM015, Cold Iron (if using kinc_crafting the cold iron requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingcldiron)
Periapt Wisdom +4
- Recipe blueprint: nx2_r_nck_wisdom04
- Result blueprint: nw2_neck_wis_04
- Req blueprint(s) (tags): NW_IT_MNECK021, NW_IT_GEM010, Cold Iron (see above)
Periapt Wisdom +6
- Recipe blueprint: nx2_r_nck_wisdom06
- Result blueprint: nw2_neck_wis_06
- Req blueprint(s) (tags): NW_IT_MNECK022, cft_gem_14, Cold Iron (see above)

-------------------------
Crafting Belts requires copying the specified recipe AND result blueprints from the SoZ campaign folder. The SoZ item blueprints nx2_cp_silk, nx2_cp_panther, and nx2_cp_bear are also required.

Belts: (must be in close proximity of mage bench)

Belt of Agility +2
- Recipe blueprint: nx2_r_blt_agility02
- Result blueprint: nx2_belt_agility02
- Req blueprint(s) (tags): nx2_cp_silk, nx2_cp_panther
Belt of Agility +4
- Recipe blueprint: nx2_r_blt_agility04
- Result blueprint: nx2_belt_agility04
- Req blueprint(s) (tags): nx2_cp_silk [2], nx2_cp_panther
Belt of Agility +6
- Recipe blueprint: nx2_r_blt_agility06
- Result blueprint: nx2_belt_agility06
- Req blueprint(s) (tags): nx2_cp_silk [3], nx2_cp_panther

Belt of Strength +4
- Recipe blueprint: nx2_r_blt_strength04
- Result blueprint: nx2_belt_str_04
- Req blueprint(s) (tags): nx2_cp_bear, Mithral (if using kinc_crafting the mithral requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingmithral)
Belt of Strength +6
- Recipe blueprint: nx2_r_blt_strength06
- Result blueprint: nx2_belt_str_06
- Req blueprint(s) (tags): nx2_cp_bear [2], Mithral (see above)

-------------------------
Crafting Boots requires copying the specified recipe AND any nx2_ result blueprints from the SoZ campaign folder. These SoZ item blueprints are also required:
nx2_boots_armored
nx2_boots_basic
nx2_boots_hide
nx2_cp_bat
nx2_cp_dbear
nx2_cp_deino
nx2_cp_spiderblade
nx2_cp_wolf
nx2_cp_worg.

Boots: (must be in close proximity of mage bench)

Boots of Hardiness +1
- Recipe blueprint: nx2_r_boot_hardy01
- Result blueprint: nw_it_mboots015
- Req blueprint(s) (tags): nx2_cp_spiderblade, nx2_boots_armored, Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)
Boots of Hardiness +2
- Recipe blueprint: nx2_r_boot_hardy02
- Result blueprint: nx2_boots_hardy_02
- Req blueprint(s) (tags): nx2_cp_spiderblade, nx2_boots_armored, Adamantine [2] (see above)
Boots of Hardiness +3
- Recipe blueprint: nx2_r_boot_hardy03
- Result blueprint: nx2_boots_hardy_03
- Req blueprint(s) (tags): nx2_cp_spiderblade, nx2_boots_armored, Adamantine [3] (see above)

Boots of Reflex +1
- Recipe blueprint: nx2_r_boot_reflex01
- Result blueprint: nx2_boots_flex_01
- Req blueprint(s) (tags): nx2_cp_wolf, nx2_cp_bat, nx2_boots_basic
Boots of Reflex +2
- Recipe blueprint: nx2_r_boot_reflex02
- Result blueprint: nx2_boots_flex_02
- Req blueprint(s) (tags): nx2_cp_wolf [2], nx2_cp_bat [2], nx2_boots_basic
Boots of Reflex +3
- Recipe blueprint: nx2_r_boot_reflex03
- Result blueprint: nx2_boots_flex_03
- Req blueprint(s) (tags): nx2_cp_wolf [3], nx2_cp_bat [3], nx2_boots_basic

Boots of Speed
- Recipe blueprint: nx2_r_boot_speed
- Result blueprint: nx2_boots_speed
- Req blueprint(s) (tags): nx2_cp_dbear [2], nx2_cp_worg [2], nx2_boots_basic

Boots of Striding +2
- Recipe blueprint: nx2_r_boot_stride02
- Result blueprint: nx2_boots_stride_02
- Req blueprint(s) (tags): nx2_cp_deino [2], nx2_boots_hide
Boots of Striding +4
- Recipe blueprint: nx2_r_boot_stride04
- Result blueprint: nx2_boots_stride_04
- Req blueprint(s) (tags): nx2_cp_deino [4], nx2_boots_hide
Boots of Striding +6
- Recipe blueprint: nx2_r_boot_stride06
- Result blueprint: nx2_boots_stride_06
- Req blueprint(s) (tags): nx2_cp_deino [6], nx2_boots_hide

-------------------------
Crafting Bracers requires copying the specified recipe AND result blueprints from the SoZ campaign folder.

Bracers: (must be in close proximity of mage bench)

Note: Bracers of Armor +4 are listed in the 2da, and there is a nx2_brace_ac_04 file in the SoZ campaign folder, but there is no recipe nx2_r_brc_armor04. If you copy one of the other Bracer recipes and edit its properties accordingly then it should be craftable.

Bracers of Armor +1
- Recipe blueprint: nx2_r_brc_armor01
- Result blueprint: nx2_brace_ac_01
- Req blueprint(s) (tags): cft_gem_01 [2], Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)
Bracers of Armor +2
- Recipe blueprint: nx2_r_brc_armor02
- Result blueprint: nx2_brace_ac_02
- Req blueprint(s) (tags): cft_gem_01 [4], Adamantine (see above)
Bracers of Armor +3
- Recipe blueprint: nx2_r_brc_armor03
- Result blueprint: nx2_brace_ac_03
- Req blueprint(s) (tags): cft_gem_01 [6], Adamantine (see above)
Bracers of Armor +5
- Recipe blueprint: nx2_r_brc_armor05
- Result blueprint: nx2_brace_ac_05
- Req blueprint(s) (tags): cft_gem_01 [10], Adamantine (see above)

-----------------------
Crafting Cloaks requires copying the specified recipe AND result blueprints from the SoZ campaign folder.These SoZ item blueprints are also required:
nx2_cloak_basic
nx2_cp_dbadger
nx2_cp_dbear
nx2_cp_wisp
nx2_cp_worg

Cloaks: (must be in close proximity of mage bench)

Cloak of Charisma +2
- Recipe blueprint: nx2_r_bck_char02
- Result blueprint: nx2_cloak_cha_02
- Req blueprint(s) (tags): nx2_cloak_basic, nx2_cp_wisp [2]
Cloak of Charisma +4
- Recipe blueprint: nx2_r_bck_char04
- Result blueprint: nx2_cloak_cha_04
- Req blueprint(s) (tags): nx2_cloak_basic, nx2_cp_wisp [4]
Cloak of Charisma +6
- Recipe blueprint: nx2_r_bck_char06
- Result blueprint: nx2_cloak_cha_06
- Req blueprint(s) (tags): nx2_cloak_basic, nx2_cp_wisp [6]

Cloak of Fortification +1
- Recipe blueprint: nx2_r_bck_fort01
- Result blueprint: nx2_cloak_fort_01
- Req blueprint(s) (tags): nx2_cloak_basic, nx2_cp_dbear
Cloak of Fortification +2
- Recipe blueprint: nx2_r_bck_fort02
- Result blueprint: nx2_cloak_fort_02
- Req blueprint(s) (tags): nx2_cloak_basic, nx2_cp_dbear
Cloak of Fortification +3
- Recipe blueprint: nx2_r_bck_fort03
- Result blueprint: nx2_cloak_fort_03
- Req blueprint(s) (tags): nx2_cloak_basic, nx2_cp_dbear [2]

Cloak of Protection +1
- Recipe blueprint: nx2_r_bck_prot01
- Result blueprint: nx2_cloak_prot_01
- Req blueprint(s) (tags): nx2_cloak_basic, nx2_cp_dbadger [2]
Cloak of Protection +2
- Recipe blueprint: nx2_r_bck_prot02
- Result blueprint: nx2_cloak_prot_02
- Req blueprint(s) (tags): nx2_cloak_basic, nx2_cp_dbadger [4]
Cloak of Protection +3
- Recipe blueprint: nx2_r_bck_prot03
- Result blueprint: nx2_cloak_prot_03
- Req blueprint(s) (tags): nx2_cloak_basic, nx2_cp_dbadger [6]

Cloak of Resistance +1
- Recipe blueprint: nx2_r_bck_resist01
- Result blueprint: nx2_cloak_resist_01
- Req blueprint(s) (tags): nx2_cloak_basic
Cloak of Resistance +2
- Recipe blueprint: nx2_r_bck_resist02
- Result blueprint: nx2_cloak_resist_02
- Req blueprint(s) (tags): nx2_cloak_basic
Cloak of Resistance +3
- Recipe blueprint: nx2_r_bck_resist03
- Result blueprint: nx2_cloak_resist_03
- Req blueprint(s) (tags): nx2_cloak_basic, nx2_cp_worg
Cloak of Resistance +4
- Recipe blueprint: nx2_r_bck_resist04
- Result blueprint: nx2_cloak_resist_04
- Req blueprint(s) (tags): nx2_cloak_basic, nx2_cp_worg [2]
Cloak of Resistance +5
- Recipe blueprint: nx2_r_bck_resist05
- Result blueprint: nx2_cloak_resist_05
- Req blueprint(s) (tags): nx2_cloak_basic, nx2_cp_worg [3]

---------------------------
Crafting Gloves/Gauntlets requires copying the specified recipe AND result blueprints from the SoZ campaign folder.These SoZ item blueprints are also required:
nx2_glove_basic
nx2_glove_basic2
nx2_cp_deino
nx2_cp_panther
nx2_cp_silk
nx2_cp_worg

Gloves/Gauntlets: (must be in close proximity of mage bench)

Gauntlets of Dexterity +2
- This is a BUGGED item. The recipe file is incorrectly named "nx2_r_glv_dex020.UTI". It should be "nx2_r_glv_dex02.UTI". If you rename the file then the recipe should work properly.
- Recipe blueprint: nx2_r_glv_dex020 (must be renamed nx2_r_glv_dex02.UTI)
- Result blueprint: nx2_glove_dex_02
- Req blueprint(s) (tags): nx2_glove_basic, nx2_cp_silk, nx2_cp_panther
Gauntlets of Dexterity +4
- Recipe blueprint: nx2_r_glv_dex04
- Result blueprint: nx2_glove_dex_04
- Req blueprint(s) (tags): nx2_glove_basic, nx2_cp_silk [2], nx2_cp_panther
Gauntlets of Dexterity +6
- Recipe blueprint: nx2_r_glv_dex06
- Result blueprint: nx2_glove_dex_06
- Req blueprint(s) (tags): nx2_glove_basic, nx2_cp_silk [3], nx2_cp_panther

Gloves of the Hin Fist +1
- Recipe blueprint: nx2_r_glv_hinfist01
- Result blueprint: nx2_glove_hin_01
- Req blueprint(s) (tags): nx2_glove_basic, nx2_cp_deino, Mithral (if using kinc_crafting the mithral requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingmithral)
Gloves of the Hin Fist +2
- Recipe blueprint: nx2_r_glv_hinfist02
- Result blueprint: nx2_glove_hin_02
- Req blueprint(s) (tags): nx2_glove_basic, nx2_cp_deino [2], Mithral (see above)
Gloves of the Hin Fist +3
- Recipe blueprint: nx2_r_glv_hinfist03
- Result blueprint: nx2_glove_hin_03
- Req blueprint(s) (tags): nx2_glove_basic, nx2_cp_deino [3], Mithral (see above)

Gauntlets of Ogre Power
- Recipe blueprint: nx2_r_glv_str02
- Result blueprint: nx2_glove_str_02
- Req blueprint(s) (tags): nx2_glove_basic2, NW_IT_GEM012 [2], Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)

----------------------
Crafting Helms requires copying the specified recipe AND result blueprints from the SoZ campaign folder.These SoZ item blueprints are also required:
nx2_helm_basic

Helms: (must be in close proximity of mage bench)

Headband of Intellect +2
- Recipe blueprint: nx2_r_head_int02
- Result blueprint: nx2_helm_int_02
- Req blueprint(s) (tags): nx2_helm_basic, NW_IT_GEM014, cft_gem_14
Headband of Intellect +4
- Recipe blueprint: nx2_r_head_int04
- Result blueprint: nx2_helm_int_04
- Req blueprint(s) (tags): nx2_helm_basic, NW_IT_GEM014, cft_gem_14 [2]
Headband of Intellect +6
- Recipe blueprint: nx2_r_head_int06
- Result blueprint: nx2_helm_int_06
- Req blueprint(s) (tags): nx2_helm_basic, NW_IT_GEM014, cft_gem_14 [3]

------------------------
Crafting Rings requires copying the specified recipe AND result blueprints from the SoZ campaign folder.These SoZ item blueprints are also required:
nx2_cp_phasespider (only needed for Ring of Invisibility)

Rings: (must be in close proximity of mage bench)

Ring of Fortitude +1
- Recipe blueprint: nx2_r_ring_fort01
- Result blueprint: nx2_ring_fort_01
- Req blueprint(s) (tags): NW_IT_MRING021, NW_IT_GEM003, Cold Iron (if using kinc_crafting the cold iron requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingcldiron)
Ring of Fortitude +2
- Recipe blueprint: nx2_r_ring_fort02
- Result blueprint: nx2_ring_fort_02
- Req blueprint(s) (tags): NW_IT_MRING022, NW_IT_GEM004, Cold Iron (see above)
Ring of Fortitude +3
- Recipe blueprint: nx2_r_ring_fort03
- Result blueprint: nx2_ring_fort_03
- Req blueprint(s) (tags): NW_IT_MRING023, cft_gem_11, Cold Iron (see above)

Ring of Freedom
- Recipe blueprint: nx2_r_ring_free
- Result blueprint: nx2_ring_freedom
- Req blueprint(s) (tags): NW_IT_MRING023, cft_gem_14

Ring of Invisibility
- Recipe blueprint: nx2_r_ring_invis
- Result blueprint: nx2_ring_invis
- Req blueprint(s) (tags): NW_IT_MRING022, cft_gem_13, nx2_cp_phasespider

Ring of Protection +1
- Recipe blueprint: nx2_r_ring_prot01
- Result blueprint: nx2_ring_prot_01
- Req blueprint(s) (tags): NW_IT_MRING021, NW_IT_GEM002
Ring of Protection +2
- Recipe blueprint: nx2_r_ring_prot02
- Result blueprint: nx2_ring_prot_02
- Req blueprint(s) (tags): NW_IT_MRING022, NW_IT_GEM010
Ring of Protection +3
- Recipe blueprint: nx2_r_ring_prot03
- Result blueprint: nx2_ring_prot_03
- Req blueprint(s) (tags): NW_IT_MRING023, NW_IT_GEM006

Ring of Minor Acid Resistance
- Recipe blueprint: nx2_r_ring_minacid
- Result blueprint: nx2_ring_ares_minor
- Req blueprint(s) (tags): NW_IT_MRING021, NW_IT_GEM012 [2]
Ring of Major Acid Resistance
- Recipe blueprint: nx2_r_ring_majacid
- Result blueprint: nx2_ring_ares_major
- Req blueprint(s) (tags): NW_IT_MRING022, NW_IT_GEM012 [4]
Ring of Greater Acid Resistance
- Recipe blueprint: nx2_r_ring_grtacid
- Result blueprint: nx2_ring_ares_greater
- Req blueprint(s) (tags): NW_IT_MRING023, NW_IT_GEM012 [6]

Ring of Minor Cold Resistance
- Recipe blueprint: nx2_r_ring_mincold
- Result blueprint: nx2_ring_cres_minor
- Req blueprint(s) (tags): NW_IT_MRING021, NW_IT_GEM008 [2]
Ring of Major Cold Resistance
- Recipe blueprint: nx2_r_ring_majcold
- Result blueprint: nx2_ring_cres_major
- Req blueprint(s) (tags): NW_IT_MRING022, NW_IT_GEM008 [4]
Ring of Greater Cold Resistance
- Recipe blueprint: nx2_r_ring_grtcold
- Result blueprint: nx2_ring_cres_greater
- Req blueprint(s) (tags): NW_IT_MRING023, NW_IT_GEM008 [6]

Ring of Minor Electrical Resistance
- Recipe blueprint: nx2_r_ring_minelec
- Result blueprint: nx2_ring_eres_minor
- Req blueprint(s) (tags): NW_IT_MRING021, NW_IT_GEM010 [2]
Ring of Major Electrical Resistance
- Recipe blueprint: nx2_r_ring_majelec
- Result blueprint: nx2_ring_eres_major
- Req blueprint(s) (tags): NW_IT_MRING022, NW_IT_GEM010 [4]
Ring of Greater Electrical Resistance
- Recipe blueprint: nx2_r_ring_grtelec
- Result blueprint: nx2_ring_eres_greater
- Req blueprint(s) (tags): NW_IT_MRING023, NW_IT_GEM010 [6]

Ring of Minor Fire Resistance
- Recipe blueprint: nx2_r_ring_minfire
- Result blueprint: nx2_ring_fres_minor
- Req blueprint(s) (tags): NW_IT_MRING021, NW_IT_GEM006 [2]
Ring of Major Fire Resistance
- Recipe blueprint: nx2_r_ring_majfire
- Result blueprint: nx2_ring_fres_major
- Req blueprint(s) (tags): NW_IT_MRING022, NW_IT_GEM006 [4]
Ring of Greater Fire Resistance
- Recipe blueprint: nx2_r_ring_grtfire
- Result blueprint: nx2_ring_fres_greater
- Req blueprint(s) (tags): NW_IT_MRING023, NW_IT_GEM006 [6]

Ring of Minor Sonic Resistance
- Recipe blueprint: nx2_r_ring_minsonic
- Result blueprint: nx2_ring_sres_minor
- Req blueprint(s) (tags): NW_IT_MRING021, NW_IT_GEM005 [2]
Ring of Major Sonic Resistance
- Recipe blueprint: nx2_r_ring_majsonic
- Result blueprint: nx2_ring_sres_major
- Req blueprint(s) (tags): NW_IT_MRING022, NW_IT_GEM005 [4]
Ring of Greater Sonic Resistance
- Recipe blueprint: nx2_r_ring_grtsonic
- Result blueprint: nx2_ring_sres_greater
- Req blueprint(s) (tags): NW_IT_MRING023, NW_IT_GEM005 [6]

---------------------

Crafting these miscellaneous items requires copying the specified recipe AND any nx2_ result blueprints from the SoZ campaign folder. These SoZ item blueprints are also required:
nx2_cp_hag (only needed for Gem of Seeing)

Miscellaneous Items: (must be in close proximity to mage bench)

Fife of Blasting
- Recipe blueprint: nx2_r_fife_blast
- Result blueprint: nx2_fife_blast
- Req blueprint(s) (tags): n2_it_flute, NW_IT_GEM003

Gem of Seeing
- Recipe blueprint: nx2_r_gem_seeing
- Result blueprint: nx2_gem_seeing
- Req blueprint(s) (tags): nx2_cp_hag, NW_IT_GEM005

Lute of Charming
- Recipe blueprint: nx2_r_lute_charm
- Result blueprint: nx2_t_lutecharm
- Req blueprint(s) (tags): n2_it_lute, cft_gem_11

Scabbard of Blessing
- Recipe blueprint: nx2_r_scab_bless
- Result blueprint: nw_it_mmidmisc04
- Req blueprint(s) (tags): X1_WMGRENADE005 [5], Mithral (if using kinc_crafting the mithral requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingmithral)


------------------------
Crafting armor requires copying the specified recipe blueprints from the SoZ campaign folder.

Armor: (must be in close proximity to smith bench)

Adamantine Banded Mail
- Recipe blueprint: nx2_r_a_bmail_adam
- Result blueprint: mwa_hvbm_ada_3
- Req blueprint(s) (tags): Adamantine [2] (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant [2])
Mithral Banded Mail
- Recipe blueprint: nx2_r_a_bmail_mith
- Result blueprint: mwa_hvbm_mth_3
- Req blueprint(s) (tags): Mithral [2] (if using kinc_crafting the mithral requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingmithral [2])

Adamantine Breast Plate
- This armor is listed in the 2da, but there is no recipe nx2_r_a_bplate_adam in the SoZ campaign folder. If you copy one of the other Armor recipes and edit its properties accordingly then it should be craftable.
- Recipe blueprint: nx2_r_a_bplate_adam (this blueprint is missing)
- Result blueprint: mwa_mdbp_ada_4
- Req blueprint(s) (tags): Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)
Mithral Breast Plate
- Recipe blueprint: nx2_r_a_bplate_mith
- Result blueprint: mwa_mdbp_mth_4
- Req blueprint(s) (tags): Mithral (if using kinc_crafting the mithral requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingmithral)

Adamantine Chainmail
- Recipe blueprint: nx2_r_a_cmail_adam
- Result blueprint: mwa_mdcm_ada_4
- Req blueprint(s) (tags): Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)
Mithral Chainmail
- Recipe blueprint: nx2_r_a_cmail_mith
- Result blueprint: mwa_mdcm_mth_4
- Req blueprint(s) (tags): Mithral (if using kinc_crafting the mithral requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingmithral)

Adamantine Chain Shirt
- Recipe blueprint: nx2_r_a_cshirt_adam
- Result blueprint: mwa_ltcs_ada_4
- Req blueprint(s) (tags): Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)
Mithral Chain Shirt
- Recipe blueprint: nx2_r_a_cshirt_mith
- Result blueprint: mwa_ltcs_mth_4
- Req blueprint(s) (tags): Mithral (if using kinc_crafting the mithral requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingmithral)

Full Plate
- Recipe blueprint: nx2_r_a_fplate
- Result blueprint: nw_aarcl007
- Req blueprint(s) (tags): GOOD_ORE [2] (if using kinc_crafting the GOOD_ORE requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_GOODS is set to 1 then it would require n2_crft_ingiron [2])
Adamantine Full Plate
- Recipe blueprint: nx2_r_a_fplate_adam
- Result blueprint: mwa_hvfp_ada_4 (the SoZ campaign blueprint is Masterwork armor)
- Req blueprint(s) (tags): Adamantine [2] (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant [2])
Mithral Full Plate
- Recipe blueprint: nx2_r_a_fplate_mith
- Result blueprint: mwa_hvfp_mth_4
- Req blueprint(s) (tags): Mithral [2] (if using kinc_crafting the mithral requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingmithral [2])

Adamantine Half Plate
- Recipe blueprint: nx2_r_a_hplate_adam
- Result blueprint: mwa_hvhp_ada_4
- Req blueprint(s) (tags): Adamantine [2] (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant [2])
Mithral Half Plate
- Recipe blueprint: nx2_r_a_hplate_mith
- Result blueprint: mwa_hvhp_mth_4
- Req blueprint(s) (tags): Mithral [2] (if using kinc_crafting the mithral requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingmithral [2])

Adamantine Scale Mail
- Recipe blueprint: nx2_r_a_smail_adam
- Result blueprint: mwa_mdsm_ada_4
- Req blueprint(s) (tags): Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)

-------------------
Crafting shields requires copying the specified recipe AND any nx2_ result blueprints from the SoZ campaign folder.

Shields: (must be in close proximity to smith bench)

Note: There is no basic heavy shield recipe in SoZ except nx2_r_a_lshield which mistakenly says it creates a "large shield". There is no recipe that crafts a basic light shield.

Light Steel Shield/Heavy Steel Shield ???
- This is a doubly BUGGED item. The recipe description says it is for a "Large Steel Shield", but the result specified in the 2da is a Heavy Shield and "Large" is not a valid shield type. Either the recipe should say Light Shield and the 2da should specify the result as nx2_lshield_00, which is a light shield with a blueprint in the SoZ campaign folder, or the recipe should be renamed to nx2_r_a_hshield, its description changed to indicate it creates a Heavy Shield, and the recipe tag changed in the 2da.
- Recipe blueprint: nx2_r_a_lshield
- Result blueprint: nx2_hshield_00
- Req blueprint(s) (tags): GOOD_ORE (if using kinc_crafting the GOOD_ORE requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_GOODS is set to 1 then it would require n2_crft_ingiron)

Adamantine Light Shield
- Recipe blueprint: nx2_r_a_lshield_adam
- Result blueprint: nx2_lshield_adam
- Req blueprint(s) (tags): Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)

Adamantine Heavy Shield
- Recipe blueprint: nx2_r_a_hshield_adam
- Result blueprint: nx2_hshield_adam
- Req blueprint(s) (tags): Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)

Tower Shield
- Recipe blueprint: nx2_r_a_tshield
- Result blueprint: nw_ashto001
- Req blueprint(s) (tags): GOOD_ORE [2] (if using kinc_crafting the GOOD_ORE requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_GOODS is set to 1 then it would require n2_crft_ingiron [2])

Adamantine Tower Shield
- Recipe blueprint: nx2_r_a_tshield_adam
- Result blueprint: mwa_shtw_ada_4
- Req blueprint(s) (tags): Adamantine [2] (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant [2])

--------------------
Crafting ammunition requires copying the specified recipe blueprints and nx2_ result blueprints from the SoZ campaign folder. The Adamantine, Cold Iron, and Silver nx2_ result blueprints are also global blueprints, but the global blueprints are bugged and the SoZ campaign blueprints should be used instead. However the adamantine arrows and adamantine bolts blueprints in SoZ are also bugged and do not apply the 2 points of magical damage they should. These SoZ item blueprints are also required:
nx2_cp_wyvernsting (needed for Mild Poison bolts and arrows)
nx2_cp_wyverntail (needed for Poison bolts and arrows)

All ammunition crafting, except plain arrows, requires proximity to a smith bench. This is probably a bug in the 2da.

Arrows
- Recipe blueprint: nx2_r_w_arrow
- Result blueprint: nx2_arrow_00
- Req blueprint(s) (tags): GOOD_TIMBER (if using kinc_crafting the timber requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_GOODS is set to 1 then it would require n2_crft_plkwood)
Adamantine Arrows
- Recipe blueprint: nx2_r_w_arrow_adam
- Result blueprint: nx2_arrow_adam (both global and SoZ blueprints are bugged, to correct create your own blueprint)
- Req blueprint(s) (tags): GOOD_TIMBER (see above), Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)
Alchemical Silver Arrows (should require Alchemical Silver, but doesn't)
- Recipe blueprint: nx2_r_w_arrow_silver
- Result blueprint: nx2_arrow_silver
- Req blueprint(s) (tags): GOOD_TIMBER (see above)
Cold Iron Arrows
- Recipe blueprint: nx2_r_w_arrow_ciron
- Result blueprint: nx2_arrow_ciron
- Req blueprint(s) (tags): GOOD_TIMBER (see above), Cold Iron (if using kinc_crafting the cold iron requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingcldiron)
Mild Poison Arrows
- Recipe blueprint: nx2_r_w_arrow_mpois
- Result blueprint: nx2_arrow_mild_poison
- Req blueprint(s) (tags): nx2_cp_wyvernsting, GOOD_TIMBER (see above)
Poison Arrows
- Recipe blueprint: nx2_r_w_arrow_poison
- Result blueprint: nx2_arrow_poison
- Req blueprint(s) (tags): nx2_cp_wyverntail, GOOD_TIMBER (see above)

Bolts
- Recipe blueprint: nx2_r_w_bolts
- Result blueprint: nw_wambo001
- Req blueprint(s) (tags): GOOD_TIMBER (if using kinc_crafting the timber requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_GOODS is set to 1 then it would require n2_crft_plkwood)
Adamantine Bolts
- Recipe blueprint: nx2_r_w_bolt_adam
- Result blueprint: nx2_bolt_adam  (both global and SoZ blueprints are bugged, to correct create your own blueprint)
- Req blueprint(s) (tags): GOOD_TIMBER (see above), Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)
Alchemical Silver Bolts (should require Alchemical Silver, but doesn't)
- Recipe blueprint: nx2_r_w_bolt_silver
- Result blueprint: nx2_bolt_silver
- Req blueprint(s) (tags): GOOD_TIMBER (see above)
Cold Iron Bolts
- Recipe blueprint: nx2_r_w_bolt_ciron
- Result blueprint: nx2_bolt_ciron
- Req blueprint(s) (tags): GOOD_TIMBER (see above), Cold Iron (if using kinc_crafting the cold iron requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingcldiron)
Mild Poison Bolts
- Recipe blueprint: nx2_r_w_bolt_mpois
- Result blueprint: nw_wammbo006
- Req blueprint(s) (tags): nx2_cp_wyvernsting, GOOD_TIMBER (see above)
Poison Bolts
- This is a BUGGED item. There is no recipe nx2_r_w_bolts_poison. There is an SoZ campaign recipe nx2_r_w_bolt_poison.
- Recipe blueprint: nx2_r_w_bolts_poison (This should be nx2_r_w_bolt_poison)
- Result blueprint: nw_wammbo007
- Req blueprint(s) (tags): nx2_cp_wyverntail, GOOD_TIMBER (see above)

Bullets
- Recipe blueprint: nx2_r_w_bullet
- Result blueprint: nw_wambu001
Adamantine Bullets
- Recipe blueprint: nx2_r_w_bullet_adam
- Result blueprint: nx2_bullet_adam
- Req blueprint(s) (tags): Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)
Alchemical Silver Bullets (should require Alchemical Silver, rather than GOOD_ORE)
- Recipe blueprint: nx2_r_w_bullet_silver
- Result blueprint: nx2_bullet_silver
- Req blueprint(s) (tags): GOOD_ORE (if using kinc_crafting the GOOD_ORE requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_GOODS is set to 1 then it would require n2_crft_ingsilver)
Cold Iron Bullets
- Recipe blueprint: nx2_r_w_bullet_ciron
- Result blueprint: nx2_bullet_ciron
- Req blueprint(s) (tags): Cold Iron (if using kinc_crafting the cold iron requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingcldiron)

--------------------
Crafting ranged weapons requires copying the specified recipe blueprints and nx2_ result blueprints from the SoZ campaign folder.

Crafting any of the ranged weapons requires close proximity to a smith bench.

Ranged Weapons:

+1 Composite Shortbow
- Recipe blueprint: nx2_r_w_csb_01
- Result blueprint: nx2_csbow_01
- Req blueprint(s) (tags): GOOD_TIMBER (if using kinc_crafting the timber requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_GOODS is set to 1 then it would require n2_crft_plkwood)
+2 Composite Shortbow
- Recipe blueprint: nx2_r_w_csb_02
- Result blueprint: nx2_csbow_02
- Req blueprint(s) (tags): GOOD_TIMBER (see above)
+3 Composite Shortbow
- Recipe blueprint: nx2_r_w_csb_03
- Result blueprint: nx2_csbow_03
- Req blueprint(s) (tags): GOOD_TIMBER (see above)
+4 Composite Shortbow
- Recipe blueprint: nx2_r_w_csb_04
- Result blueprint: nx2_csbow_04
- Req blueprint(s) (tags): GOOD_TIMBER (see above)
+5 Composite Shortbow
- Recipe blueprint: nx2_r_w_csb_05
- Result blueprint: nx2_csbow_05
- Req blueprint(s) (tags): GOOD_TIMBER (see above)

+1 Composite Longbow
- Recipe blueprint: nx2_r_w_clb_01
- Result blueprint: nx2_clbow_01
- Req blueprint(s) (tags): GOOD_TIMBER (if using kinc_crafting the timber requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_GOODS is set to 1 then it would require n2_crft_plkwood)
+2 Composite Longbow
- Recipe blueprint: nx2_r_w_clb_02
- Result blueprint: nx2_clbow_02
- Req blueprint(s) (tags): GOOD_TIMBER (see above)
+3 Composite Longbow
- Recipe blueprint: nx2_r_w_clb_03
- Result blueprint: nx2_clbow_03
- Req blueprint(s) (tags): GOOD_TIMBER (see above)
+4 Composite Longbow
- Recipe blueprint: nx2_r_w_clb_04
- Result blueprint: nx2_clbow_04
- Req blueprint(s) (tags): GOOD_TIMBER (see above)
+5 Composite Longbow
- Recipe blueprint: nx2_r_w_clb_05
- Result blueprint: nx2_clbow_05
- Req blueprint(s) (tags): GOOD_TIMBER (see above)

Zalantar Light Crossbow
- Recipe blueprint: nx2_r_w_lxbow_zal
- Result blueprint: mwr_bwxl_zal_3
- Req blueprint(s) (tags): Zalantar (if using kinc_crafting the Zalantar requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_plkzalantar)
Zalantar Heavy Crossbow
- Recipe blueprint: nx2_r_w_hxbow_zal
- Result blueprint: mwr_bwxh_zal_3
- Req blueprint(s) (tags): Zalantar (see above)
Zalantar Longbow
- Recipe blueprint: nx2_r_w_lbow_zal
- Result blueprint: mwr_bwln_zal_3
- Req blueprint(s) (tags): Zalantar (see above)
Zalantar Shortbow
- Recipe blueprint: nx2_r_w_sbow_zal
- Result blueprint: mwr_bwsh_zal_3
- Req blueprint(s) (tags): Zalantar (see above)

---------------------
Crafting throwing weapons requires copying the specified recipe blueprints and specified nx2_ result blueprints from the SoZ campaign folder.

Darksteel versions of these weapons are defined in the nx2_crafting.2da, but neither the recipes nor the result blueprints exist in the SoZ campaign folder or as globals.

Some of the result blueprints are globals, but the versions in the SoZ campaign folder should be used where specified because the globals are bugged.

Throwing: (requires close proximity to a smith bench)

Darts
- Recipe blueprint: nx2_r_w_dart
- Result blueprint: nx2_dart_00 (copy from SoZ campaign folder)
- Req blueprint(s) (tags): GOOD_ORE (if using kinc_crafting the GOOD_ORE requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_GOODS is set to 1 then it would require n2_crft_ingiron)
Adamantine Darts
- Recipe blueprint: nx2_r_w_dart_adam
- Result blueprint: nx2_dart_adam (copy from SoZ campaign folder)
- Req blueprint(s) (tags): Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)
Alchemical Silver Darts (should require Alchemical Silver, rather than GOOD_ORE)
- Recipe blueprint: nx2_r_w_dart_silver
- Result blueprint: nx2_dart_silver
- Req blueprint(s) (tags): GOOD_ORE (if using kinc_crafting the GOOD_ORE requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_GOODS is set to 1 then it would require n2_crft_ingsilver)
Cold Iron Darts
- Recipe blueprint: nx2_r_w_dart_ciron
- Result blueprint: nx2_dart_ciron
- Req blueprint(s) (tags): Cold Iron (if using kinc_crafting the cold iron requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingcldiron)

Shuriken
- Recipe blueprint: nx2_r_w_shur
- Result blueprint: nx2_shuri_00 (copy from SoZ campaign folder)
- Req blueprint(s) (tags): GOOD_ORE (if using kinc_crafting the GOOD_ORE requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_GOODS is set to 1 then it would require n2_crft_ingiron)
Adamantine Shuriken
- Recipe blueprint: nx2_r_w_shur_adam
- Result blueprint: nx2_shuri_adam (copy from SoZ campaign folder)
- Req blueprint(s) (tags): Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)
Alchemical Silver Shuriken (should require Alchemical Silver, rather than GOOD_ORE)
- Recipe blueprint: nx2_r_w_shur_silver
- Result blueprint: nx2_shuri_silver
- Req blueprint(s) (tags): GOOD_ORE (if using kinc_crafting the GOOD_ORE requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_GOODS is set to 1 then it would require n2_crft_ingsilver)
Cold Iron Shuriken
- Recipe blueprint: nx2_r_w_shur_ciron
- Result blueprint: nx2_shuri_ciron
- Req blueprint(s) (tags): Cold Iron (if using kinc_crafting the cold iron requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingcldiron)

Throwing Axe
- Recipe blueprint: nx2_r_w_taxe
- Result blueprint: nx2_taxe_00 (copy from SoZ campaign folder)
- Req blueprint(s) (tags): GOOD_ORE (if using kinc_crafting the GOOD_ORE requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_GOODS is set to 1 then it would require n2_crft_ingiron)
Adamantine Throwing Axe
- Recipe blueprint: nx2_r_w_taxe_adam
- Result blueprint: nx2_taxe_adam (copy from SoZ campaign folder)
- Req blueprint(s) (tags): Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)
Alchemical Silver Throwing Axe (should require Alchemical Silver, rather than GOOD_ORE)
- Recipe blueprint: nx2_r_w_taxe_silver
- Result blueprint: nx2_taxe_silver
- Req blueprint(s) (tags): GOOD_ORE (if using kinc_crafting the GOOD_ORE requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_GOODS is set to 1 then it would require n2_crft_ingsilver)
Cold Iron Throwing Axe
- Recipe blueprint: nx2_r_w_taxe_ciron
- Result blueprint: nx2_taxe_ciron
- Req blueprint(s) (tags): Cold Iron (if using kinc_crafting the cold iron requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingcldiron)

---------------------
Crafting polearms requires copying the specified recipe blueprints from the SoZ campaign folder.

Polearms: (requires close proximity to a smith bench)

Adamantine Halberd
- Recipe blueprint: nx2_r_w_halb_adam
- Result blueprint: mst_plhb_ada_3
- Req blueprint(s) (tags): Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)

Cold Iron Halberd
- This item is listed in the 2da, but there is no recipe nx2_r_w_halb_ciron in the SoZ campaign folder. If you copy one of the other halberd recipes and edit its properties accordingly then it should be craftable.
- Recipe blueprint: nx2_r_w_halb_ciron (this blueprint is missing)
- Result blueprint: mst_plhb_cld_3
- Req blueprint(s) (tags): Cold Iron (if using kinc_crafting the cold iron requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingcldiron)

Darksteel Halberd
- This item is listed in the 2da, but there is no recipe nx2_r_w_halb_dsteel in the SoZ campaign folder. If you copy one of the other halberd recipes and edit its properties accordingly then it should be craftable.
- Recipe blueprint: nx2_r_w_halb_dsteel (this blueprint is missing)
- Result blueprint: mst_plhb_drk_3
- Req blueprint(s) (tags): Darksteel (if using kinc_crafting the Darksteel requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingdrksteel)

Zalantar Quarterstaff
- Recipe blueprint: nx2_r_w_qstaff_zal
- Result blueprint: mst_dbqs_zal_3
- Req blueprint(s) (tags): Zalantar (if using kinc_crafting the Zalantar requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_plkzalantar)

Zalantar Spear
- Recipe blueprint: nx2_r_w_spear_zal
- Result blueprint: mst_plss_zal_3
- Req blueprint(s) (tags): Zalantar (if using kinc_crafting the Zalantar requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_plkzalantar)

---------------------
Crafting blunt weapons requires copying the specified recipe blueprints from the SoZ campaign folder.

Blunt Weapons: (requires close proximity to a smith bench)

All of the Adamantine weapons require Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)
Adamantine Flail
- Recipe: nx2_r_w_fla_adam
- Result: mst_blfl_ada_3
Adamantine Light Hammer
- Recipe: nx2_r_w_lham_adam
- Result: mst_blhl_ada_3
Adamantine Mace
- Recipe: nx2_r_w_mace_adam
- Result: mst_blml_ada_3
Adamantine Morningstar
- Recipe: nx2_r_w_mstar_adam
- Result: mst_blms_ada_3
Adamantine Warhammer
- Recipe: nx2_r_w_wham_adam
- Result: mst_blhw_ada_3
Adamantine Warmace
- Recipe: nx2_r_w_wmace_adam
- Result: mst_bldm_ada_3

All of the Cold Iron weapons require Cold Iron (if using kinc_crafting the cold iron requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingcldiron)
Cold Iron Light Hammer
- Recipe: nx2_r_w_lham_ciron
- Result: mst_blhl_cld_3
Cold Iron Mace
- Recipe: nx2_r_w_mace_ciron
- Result: mst_blml_cld_3
Cold Iron Morningstar
- Recipe: nx2_r_w_mstar_ciron
- Result: mst_blms_cld_3
Cold Iron Warhammer
- Recipe: nx2_r_w_wham_ciron
- Result: mst_blhw_cld_3
Cold Iron Warmace
- Recipe: nx2_r_w_wmace_ciron
- Result: mst_bldm_cld_3

All of the Darksteel weapons require Darksteel (if using kinc_crafting the Darksteel requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingdrksteel)
Darksteel Light Hammer
- Recipe: nx2_r_w_lham_dsteel
- Result: mst_blhl_drk_3
Darksteel Mace
- Recipe: nx2_r_w_mace_dsteel
- Result: mst_blml_drk_3
Darksteel Warhammer
- Recipe: nx2_r_w_wham_dsteel
- Result: mst_blhw_drk_3
Darksteel Warmace
- Recipe: nx2_r_w_wmace_dsteel
- Result: mst_bldm_drk_3

All of the Zalantar weapons require Zalantar (if using kinc_crafting the Zalantar requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_plkzalantar)
Zalantar Club
- Recipe blueprint: nx2_r_w_club_zal
- Result blueprint: mst_blcl_zal_3

---------------------

Crafting bladed weapons requires copying the specified recipe blueprints from the SoZ campaign folder.

Bladed Weapons: (requires close proximity to a smith bench)

All of the Adamantine weapons require Adamantine (if using kinc_crafting the adamantine requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingadamant)
Adamantine Battleaxe
- Recipe: nx2_r_w_baxe_adam
- Result: mst_axbt_ada_3
Adamantine Bastard Sword
- Recipe: nx2_r_w_bsword_adam
- Result: mst_swbs_ada_3
Adamantine Dagger
- Recipe: nx2_r_w_dag_adam
- Result: mst_swdg_ada_3
Adamantine Dwarven Axe
- Recipe: nx2_r_w_dwaxe_adam
- Result: mst_axdv_ada_3
Adamantine Falchion
- Recipe: nx2_r_w_falch_adam
- Result: mst_swfl_ada_3
Adamantine Greataxe
- Recipe: nx2_r_w_gaxe_adam
- Result: mst_axgr_ada_3
Adamantine Great Sword
- Recipe: nx2_r_w_gsword_adam
- Result: mst_swgs_ada_3
Adamantine Handaxe
- Recipe: nx2_r_w_haxe_adam
- Result: mst_axhn_ada_3
Adamantine Kama
- Recipe: nx2_r_w_kam_adam
- Result: mst_spka_ada_3
Adamantine Katana
- Recipe: nx2_r_w_kat_adam
- Result: mst_swka_ada_3
Adamantine Kukri
- Recipe: nx2_r_w_kuk_adam
- Result: mst_spku_ada_3
Adamantine Long Sword
- Recipe: nx2_r_w_lsword_adam
- Result: mst_swls_ada_3
Adamantine Rapier
- Recipe: nx2_r_w_rapier_adam
- Result: mst_swrp_ada_3
Adamantine Scimitar
- Recipe: nx2_r_w_scim_adam
- Result: mst_swsc_ada_3
Adamantine Sickle
- Recipe: nx2_r_w_sick_adam
- Result: mst_spsc_ada_3
Adamantine Short Sword
- Recipe: nx2_r_w_ssword_adam
- Result: mst_swss_ada_3

All of the Cold Iron weapons require Cold Iron (if using kinc_crafting the cold iron requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingcldiron)
Cold Iron Battleaxe
- Recipe: nx2_r_w_baxe_ciron
- Result: mst_axbt_cld_3
Cold Iron Dagger
- Recipe: nx2_r_w_dagger_ciron
- Result: mst_swdg_cld_3
Cold Iron Dwarven Waraxe
- Recipe: nx2_r_w_dwaxe_ciron
- Result: mst_axdv_cld_3
Cold Iron Greataxe
- Recipe: nx2_r_w_gaxe_ciron
- Result: mst_axgr_cld_3
Cold Iron Handaxe
- Recipe: nx2_r_w_haxe_ciron
- Result: mst_axhn_cld_3
Cold Iron Long Sword
- Recipe: nx2_r_w_lsword_ciron
- Result: mst_swls_cld_3
Cold Iron Rapier
- Recipe: nx2_r_w_rapier_ciron
- Result: mst_swrp_cld_3
Cold Iron Scimitar
- Recipe: nx2_r_w_scim_ciron
- Result: mst_swsc_cld_3
Cold Iron Short Sword
- Recipe: nx2_r_w_ssword_ciron
- Result: mst_swss_cld_3

All of the Darksteel weapons require Darksteel (if using kinc_crafting the Darksteel requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_RARERES set to 1 then it would require n2_crft_ingdrksteel)
Darksteel Battleaxe
- Recipe: nx2_r_w_baxe_dsteel
- Result: mst_axbt_drk_3
Darksteel Bastard Sword
- Recipe: nx2_r_w_bsword_dsteel
- Result: mst_swbs_drk_3
Darksteel Dagger
- Recipe: nx2_r_w_dag_dsteel
- Result: mst_swdg_drk_3
Darksteel Dwarven Waraxe
- Recipe: nx2_r_w_dwaxe_dsteel
- Result: mst_axdv_drk_3
Darksteel Falchion
- Recipe: nx2_r_w_falch_dsteel
- Result: mst_swfl_drk_3
Darksteel Greataxe
- Recipe: nx2_r_w_gaxe_dsteel
- Result: mst_axgr_drk_3
Darksteel Great Sword
- Recipe: nx2_r_w_gsword_dsteel
- Result: mst_swgs_drk_3
Darksteel Kama
- Recipe: nx2_r_w_kama_dsteel
- Result: mst_spka_drk_3
Darksteel Katana
- Recipe: nx2_r_w_kat_dsteel
- Result: mst_swka_drk_3
Darksteel Kukri
- Recipe: nx2_r_w_kuk_dsteel
- Result: mst_spku_drk_3
Darksteel Long Sword
- Recipe: nx2_r_w_lsword_dsteel
- Result: mst_swls_drk_3
Darksteel Rapier
- Recipe: nx2_r_w_rapier_dsteel
- Result: mst_swrp_drk_3
Darksteel Scimitar
- Recipe: nx2_r_w_scim_dsteel
- Result: mst_swsc_drk_3
Darksteel Short Sword
- Recipe: nx2_r_w_ssword_dsteel
- Result: mst_swss_drk_3

All of the Alchemical Silver weapons require GOOD_ORE, but should require Alchemical Silver (if using kinc_crafting the GOOD_ORE requirement would be ignored; if using kinc_bb_crafting and BB_CONVERT_GOODS is set to 1 then it would require n2_crft_ingsilver)
Alchemical Silver Battleaxe
- Recipe: nx2_r_w_baxe_silver
- Result: mst_axbt_slv_3
Alchemical Silver Dagger
- Recipe: nx2_r_w_dag_silver
- Result: mst_swdg_slv_3
Alchemical Silver Dwarven Waraxe
- Recipe: nx2_r_w_dwaxe_silver
- Result: mst_axdv_slv_3
Alchemical Silver Greataxe
- Recipe: nx2_r_w_gaxe_silver
- Result: mst_axgr_slv_3
Alchemical Silver Handaxe
- This item is BUGGED in the 2da. Several of the columns are shifted one to to the left, which causes the toolset error when viewing the 2da. It cannot be crafted unless the 2da is edited.
- Recipe: nx2_r_w_haxe_silver
- Result: mst_axhn_slv_3

---------------------

Armor Enchantment Recipes:

Armor enchantment requires being near a mage bench. Enchantments have no blueprints other than the enchantment recipe itself and require no components.

To make use of them the enchantment recipes should be copied from the SoZ campaign folder to your campaign folder.

+1 Enhancement Bonus: nx2_a_ench_01
+2 Enhancement Bonus: nx2_a_ench_02
+3 Enhancement Bonus: nx2_a_ench_03
+4 Enhancement Bonus: nx2_a_ench_04
Resist Acid 10/: nx2_a_ench_acid
Resist Cold 10/: nx2_a_ench_cold
Resist Elec 10/: nx2_a_ench_elec
Resist Fire 10/: nx2_a_ench_fire
Resist Positive Energy 10/: nx2_a_ench_holy
Resist Negative Energy 10/: nx2_a_ench_neg
Resist Sonic 10/: nx2_a_ench_soni
Spell Resistance: nx2_a_ench_sr

-----------------------
Weapon Enchantment Recipes:

Weapon enchantment requires being near a mage bench. Enchantments have no blueprints other than the enchantment recipe itself and require no components.

To make use of them the enchantment recipes should be copied from the SoZ campaign folder to your campaign folder.

Note: The enchantments nx2_w_ench_holy and nx2_w_ench_neg exist in the SoZ campaign folder, but are not defined in the nx2_enchanting.2da. They appear to have been deliberately removed from the 2da.

+1 Enhancement Bonus: nx2_w_ench_01
+2 Enhancement Bonus: nx2_w_ench_02
+3 Enhancement Bonus: nx2_w_ench_03
Corrosive (+1d6 acid): nx2_w_ench_acid
Frost (+1d6 cold): nx2_w_ench_cold
Shocking (+1d6 elec): nx2_w_ench_elec
Flaming (+1d6 fire): nx2_w_ench_fire
Keen: nx2_w_ench_keen
Massive criticals: nx2_w_ench_mass_crit
Vampiric Regeneration: nx2_w_ench_regen
Thundering (+1d6 sonic): nx2_w_ench_soni
Beast Bane: nx2_w_ench_vs_beast
Axiomatic (+2d6 vs chaos): nx2_w_ench_vs_chaos
Constuctbane: nx2_w_ench_vs_const
Elementalbane: nx2_w_ench_vs_elem
Holy (+2d6 vs evil): nx2_w_ench_vs_evil
Giantbane: nx2_w_ench_vs_giant
Anarchistic (+2d6 vs law): nx2_w_ench_vs_law
Magical Beastbane: nx2_w_ench_vs_mbeast
Outsiderbane: nx2_w_ench_vs_out
Undeadbane: nx2_w_ench_vs_undead

------------------------

B Bellina
4/2009
Updated 10/2009