Tes4Mod:Split Infinity

Split Infinity
Split Infinity Mod

A major work-in-progress mod for TES4:Oblivion, Split Infinity aims to add several hundred thousand unique and fully randomized items to the Oblivion leveled loot lists.  The best description of the results can be given as loot similar to Diablo II items.  Ex: "Champion's Katana", or "Glass Cuirass of Four Winds".  Items will be found in chests and other loot containers, from random NPCs, and as loot discovered on slain monsters.

The backend for this project is a new version of Dave Humphrey's RandItem program, which was originally developed for TES3:Morrowind, and can be found at the  . The new version of RandItem is being converted/written by Dave Humphrey for Oblivion use, and the SI mod in general is being managed by Jaga Telesin.

:* 
:*  Broken link as of 17 March, 2008
:*  Link broken, unfortunately.

Mod Goals
The goal of Split Infinity is to add a new dimension to in-game loot.  No longer will you find standard gear on every single creature, or in every chest.  Now you have a chance of finding altered gear with unique names, and possibly unique enchantments.

Most Split Infinity gear will be lower in value than normal Oblivion items - we are trying to make this gear you will use in adventuring, not as a basis for building up your character's wealth.  The difference in value won't be so much as to make the loot valueless, so it can still be considered a worthy find.

The frequency of Split Infinity items will be adjusted according to mob and character levels, and the custom mods it is eventually integrated with.  The end result will be a good chance of finding lower-level SI items in many containers and on many mobs, and lower chances of finding better higher-level SI items as the character and mobs gain levels.  It will result in a balanced mix of unique and interesting items that shouldn't overpower the character, but will enhance their gameplay significantly.

Lastly, we are engineering Split Infinity to add a new dimension of interest in keeping the player hunting for new gear.  SI items and effects/enchantments are scaled all the way up to level 52 (the theoretical maximum level of an Oblivion character).  Most of the high-end effects and enchantments can be found at or over level 40-45.  A good example of the scaling being implemented here would be new effects/enchants at levels: 1,2,4,6,8,10,13,16,19,22,25,28,31,34,37,40,45.  This will continually give new items the chance of being found as the character (or NPC/Mob) grows in level.



Mod Features
At this time, there are over 100 Prefixes and 350 Suffixes that can be combined with nearly 250 base Oblivion items.  The result is nearly 6.5 million possible items (6,500,000+).  Suffixes and Prefixes can be either positive or negative in nature, and cover everything from altering the item's base weight, value, speed, reach, damage, armor rating, and a ton of magical effects ranging from simple cast on strikes, to multiple constant effects.

:Planned item types include:
:*Attribute-adjusted gear. (weapons, armor, staves, clothing, jewelry)
:*Magically enhanced gear. (all types)
:*Combinations of attribute and magic enhanced gear of all types.
:*Possibility for negative alterations to items. (ex: a slow claymore or low AR shield)
:*Lore Items that add special spells to user's spellbook when equipped and remove when unequipped.
:*Lore Scrolls, that add special spells permanently to the reader's spellbook.
:*Inclusion of community-created models & textures (weapons/armor/etc) for some of the end-result items.

:Current List of possible Effects on Items
:*Mundane: Weapon Damage, weapon speed, weapon reach, item value, item weight, armor level.
:*Magical: Virtually every conceivable type of magic enhancement available in Oblivion, appropriate to gear type. (eg, armor would not have 'cast on strikes' effects, and weapons would not have 'constant effect' effects)
:*Lore: Special "Lore" type effects will be implemented, adding new spells to the user's spellbook when their item is equipped, and removing said spells when unequipped.  Some very special Lore scrolls will add their spell permanently to the user's list.  All Lore spells are either variations on standard Oblivion spells, or completely new spells.

:Planned Mod Compatibility
:*The original release of the Mod for TES4:Oblivion will be compatible with the stock 'out of the box' game.
:*We are also planning on compatibility addon mods (mini esp's) to maintain compatibility with the most popular game-balancing and loot modification mods.  These will be released as added and as time permits.

:Unique Mod Items
:*We are going to be implementing custom item models and textures as they become available and approved for use by the modding public.  Some have already been requested from the great modders on the official Oblivion modding forums.
:*If you have made custom meshes/models/textures for Oblivion items, please consider contacting the team here so your work can be considered for inclusion in Split Infinity.



Project Status
The project is currently in a pre-Alpha status, as the ESP format is still being built, and the effects spreadsheet is being given a major face lift.  The project is expected to take between two and six months to develop, and team members will be recruited shortly to help Beta test the initial results and balance items/effects/enchantments.

:*17 April 2005 (Daveh): All (or most) of the relevant mod format needed to develop the random item program is complete and in code form ().  Current work is to create and perform tests of the low level ESP/ESM file input/output code to ensure it functions correctly (currently 1/3 done). Once this is complete work can begin on converting the old MWRandItem to ObRandItem.

Mod Screenshots
:*Screen from Morrowind version of RandItem program:
: SI for Morrowind - Randomizer View


:*Split Infinity Effects Control Sheet for Oblivion (sample):
: 

Development & Testing Teams
:Development Team
:*Jaga Telesin - Mod Manager.  Responsible for front-end mod development: effects, combinations, leveled lists, and final package.
:*Dave Humphrey - Creator of RandItem.  Responsible for SI's backend engine (OBRandItem),and integration with base data.


:Alpha Test Team
:*Matrix, Finkus, 5hakes, AStern, Xaziv, X23, Dyze, Killgrog


Currently Recruiting for Beta 1, contact Jaga Telesin for more information.

Development Notes


General Lists
The following are general lists which are used in various places in the data files.


Item Types
Item types are used to specify an item type as well as to which items an effect can apply to.



Item types can only take one value. Effect and option masks, however, can take multiple item types separated by the "|" character.

Biped Flags
Biped flags are used in clothing and armor to specify what body parts the item and its assigned model applies to. 


These flags are additive: you specify one or more parts that apply to the item separated by the "|" character (most items will only use one body part). For example:

:Bracer: Hand
:Cuirass: Upper Body
:Robe: Upper Body | Lower Body
:Hood: Hair

Skills
The following is a list of valid Oblivion skills:



Attributes


Actor Values
Actor values are used in effects that apply to a specific attribute, such as Drain Attribute or Restore Attribute. Valid actor values include:

:*Any attribute (Attributes)
:*Any skill (Skills)

or one of the following values:



Magic Effects
The following is a list of the predefined magic effect IDs.



Spell Schools
The following is a list of the six spell schools:



BaseItem.dat
The BASEITEMS.DAT file contains base item definitions which will be used to generate the random items. The basic format of the file is:
   # Comment, anything after the '#' character on a line is ignored
   item
       Field = Value     # Item data (see below)
       ....
   end
   ....  # more item definitions...


General Fields
The general item data fields are listed in the below table. If a value is not specified its default value will generally be 0 (or a suitably reasonable value).



Armor Item Fields


Clothing Item Fields



Light Item Fields


Misc Item Fields
There are no fields for misc items.


Scroll Item Fields



Sigil Stone Item Fields


Weapon Item Fields


Example Item Entry

 Item
 	ItemType = Armor
 	Name = "Test Cuirass"
 	Material = "Chitin"
 	MIcon = "a\TX_Chitin_curaiss.tga"
 	FIcon = "a\TX_Chitin_curaiss2.tga"
 	BasePrice = 25
  	BasePrice1 = 25
 	ItemLevel = 1
 	Weight = 6
 	EnchantPts = 100
 	Armor = 10
 	BipedParts = Upper Body | Lower Body
 	Health = 300
 	MBModel = "a\A_M_Chitin_Cuirass_GND.nif"
 	MWModel = "a_m_chitin_chest2"
 	FBModel = "a_m_chitin_chest3"
 	FWModel = "a_m_chitin_chest4"
 	EffectMask = Enchant | None | Armor
 	HideAmulet = false
 	HideRings = true
 	ArmorType = Light
 End

Effects.dat
The effects.dat file defines all the suffix and prefix effects can be applied to the base items. The overall format is:

   # Comment
   
   suffix
       EffectType = Scroll    # effect data (see below)
       ....
   end
    
   prefix
         # Same fields as a suffix
   end 
   ....  # more prefix and suffix definitions...


General Fields
The following fields are valid in any suffix/prefix.



Enchantment Data
For any prefix or suffix with an 'EffectType' of 'Enchant' there will need to be an enchantment section in that record:
     prefix
         EffectType = Enchant
         ....
         Enchant
            ...  # Enchant data (see below)
         end
     end





Enchantment Effect Data
For every 'Enchant' section there can be 1 to 10 (?) different enchantment effects defined within it:

     Enchant
          ...
          effect
                # Effect data (see below)
          end
          .... # More effects
     End



Example Effect Entry
 Suffix
 	Name = Warmth
 	EffectType = Enchant
 	Cursed = false
 	ItemLevel = 5
 	ItemMask = W
 	MinQuality = 50
 	MaxQuality = 100
 	Multiplier = 1
  
 	Enchant
 		EnchantType = "Scroll"
 		Charge1 = 100
 		Charge2 = 200
 		EnchantCost1 = 1
 		EnchantCost2 = 3
 		AutoCalc = false
  
 		Effect	
 			EffectID = FIDG
 			RangeType = Target
 			Area1 = 0
 			Area2 = 0
 			Duration1 = 1
 			Duration2 = 1
 			Magnitude1 = 1
 			Magnitude2 = 1
   		End
 	End
 End


Uniques.dat
The uniques.dat file contains special 'artifact' type items that can be generated and inserted rarely into the set of generated items. 

     unique
         Name = "Unique Item"
         ...     # See below
     end
     ... # More unique records

Valid fields in a unique data file are:



Example Uniques Entry
 Unique
 	Name = "Instrument of Decay"
 	NameType = Exact
 	ItemLevel = 25
 	ItemMask = W
 	Effect = Fire
 	Effect = Vicious
 End

LevelLists.dat
This file defines all the level lists which will be filled by the randomly generated items. The level list structure allows a list hierarchy to be defined, with lists at the bottom level containing items and those lists belong to various parent lists. Each generated item can be added to multiple leveled lists. This allows a large variety of lists to be easily created.




Example
The following example shows a very simple structure with 3 lists. There are two main lists, one for all weapons and one for all armors, which will contain the items. The weapon and armor lists, in turn, will all be added to one top level list.

   LevelList
 	Name = TopLevelList
 	Parent = NULL
 	Empty = true
 	MaxRecords = 100
 	ChanceNone = 1
 	CalculateAll = false
 	CalculateEach = false
   End
   LevelList
 	Name = TopTest
  	Empty = true
 	MaxRecords = 100
   End
   LevelList
 	Name = Weapons
 	Parent = TopLevelList
 	MaxRecords = 90
 	ChanceNone = 2
 	CalculateAll = true
 	CalculateEach = false
 	ItemType = Weapon
   End
   LevelList
 	Name = Armor
 	Parent = TopLevelList
 	Parent = TopTest
 	MaxRecords = 80
 	ChanceNone = 3
 	CalculateAll = false
 	CalculateEach = true
 	ItemType = Armor
   End
   Insertion
 	EditorID = siFireBall1
 	Parent = TopLevelList
 	Level = 11
 	Count = 2
   End

ProjectFile.obri
These type of files are loaded and saved from ObRandItem and contain all the options and session variables used to generate random item sets. While you don't (or shouldn't) need to edit these by hand the valid fields for the file are listed below:




Options Section
The following are valid option fields found in between an "Options" and "End" lines in a OBRI file.



DisplayFilters.dat
This file is used to create the display groups in the tree control of the item view tab. You can modify it to select the exact types of display filters you wish to use. Modifications to the file will not take effect until the program has been restarted. It has a similar format to the other .DAT files used in ObRandItem with the following data fields:



Item Value Calculation
Here is how item values are calculated. The value is affected by 3 parameters:

:*Base Item Price
:*Multipler of item and all effects on the item
:*MinQuality and MaxQuality of item and all effects on the item

When creating an item its quality is chosen randomly from a value of 0.0 (lowest) to 1.0 (highest). Quality and multiplier values for the item and all effects are then computed. The overall calculation is:
 
   Quality = Random(0.0, 1.0)  
 
   QualitySum   = (MaxItemQuality - MinItemQuality) * Quality + MinItemQuality
   MultiplerSum = ItemMultipler
 
   For (All Effects in Item)
        QualitySum   += (MaxEffectQuality - MinEffectQuality) * Quality + MinEffectQuality
        MultiplerSum += EffectMultipler
   Next
 
   if (MultiplierSum  	
The explanation of the fields are as follows:

:*Item and End: These begin and end an item definition record.
:*ItemType: This specifies the type of item and should be the first line in an item definition. Valid item types include Armor, Clothing, Light, Misc, Scroll, Sigil, Staff, and Weapon. Note that staffs are separated from weapons due to their differences in enchanting.
:*Name: The base item name used to generate the final name for the randomized item. 
:*Material: The item material for the item, if any. This is separate from the item name so that very long names can be more easily shortened by removing the material.
:*Base Price: The base price of the item in gold pieces (or septims). The final value of the random item will increase and decrease as effects are added to it.
:*Item Level: The rough level of the item. Assign lower levels to things like iron and steel and higher levels to better materials like ebony and daedric. This is used to create leveled lists and when trying to achieve a specific level distribution.
:*Weight, Health, and EnchantPts: More basic item properties.
:*Armor: To match the value used in the construction set, divide this value by 100 to get the in-game armor rating. For example, the value of '10' here would be a rating of 0.1 in-game.
:*BipedParts: Specifies the body parts the piece of armor covers. This field is special as it can take multiple values separated by the '|' character.
:*MBModel and MWModel: The male biped and world model files. Look at the existing armor pieces in the construction set to reuse game models or specify custom models.
:*FBModel and FWModel: Similarly, female biped and world world files.
:*MIcon and FIcon: The male and female inventory icons files.
:*EffectMask: This optional field can be used to specify exactly what type of effects you want applied to the item. In this case the item can accept an enchantment, can exist without any effects, and can accept an effect raising or lowering its armor rating. No other effects will be applied to this item. If this field is omitted items will accept any valid effect by default.

See the Complete Base Item Format for more details on the fields and the values they can take.