# D2Mods Knowledge Base: Article 234
# Title: Magicprefix.txt File Guide
# URL: https://d2mods.info/forum/kb/viewarticle?a=234

Magicprefix.txt File Guide
		Written by: Phrozen Heart

		Written on: Tue Dec 02, 2003 7:14 pm

				Views: 7456

		Description: by Ric Faith

		Categories: File Guides (1.09x)

			A. Name - Name for reference only

B. version - 0 for cD2, 100 for LoD

C. spawnable - Boolean can this prefix spawn on items

D. rare - Boolean can this prefix spawn on rares

E. level - required lvl of monster for prefix to spawn (see Annex A)

F. maxlevel - maximum lvl that this prefix will spawn for, after which it will no longer spawn (see Annex A)

G. levelreq - required character lvl to use item, may be used to increase base requirement

H. classspecific - to be set if prefix only spawns for a certain class (ama,sor,nec,pal,bar,dru,ass)

I. class - class-specific levelreq (see J)

J. classlevelreq - for that specific class, what is the level req

K. frequency - probability for that prefix to spawn (see Annex A)

L. group - to combine similar multiple prefixes, also to calculate probability (see Annex A)

M-X. (refer to the Magical Master Code List from the Keep)

modXcode - code of mod

modXparam - parameter for code (if any)

modXmin - minimum value for code (if any)

modXmax - maximum value for code (if any)

Y. transform - Boolean does the prefix perform a color shift on the item

Z. transformcolor - code for the color that it will be shifted to

AA-AG. itypeX - itemtypes that the prefix will spawn for (see Annex B)

AH-AL. etypeX - itemtypes that the prefix will never spawn for (see Annex B) **

AM. divide - factor in the reduction of price when selling to NPCs

AN. multiply - factor in the increase of price, similar to that in skills.txt

AO. add - factor in increase of price, similar to skills.txt

Annex A - group, frequency and prefix determination

The group number is used to bring multiple prefixes

(usually of the same type, though not necessarily) together. When the

game is sourcing for an available prefix, it will only choose one from

each group. This prevents 'overlapping' of prefixes, such as 2 '+1

light radius' would be rather wasteful.

The calculation of which prefixes are available are done in this manner - provided by Ruvanal:

Terms

alvl = prefix level. For an item this is the level that is used to

compare to the level and max level as found in the prefix and suffix

tables. When referring to a prefix/suffix it is the value listed in the

level column.
ilvl = internal level (also referred to sometimes as the item

level; better yet item creation level). This value is set at the time

of an items creation. For monster drops the ilvl=mlvl. (BTW ilvl

matches up with the terminology of the 1.07/1.08

cubemain.txt---'itemlevel pct a')
mlvl = monster level.

clvl = character level.

qlvl = quality level. This value is found in the level column of

armor.txt, weapons.txt and misc.txt. This is the value that is used to

create the weapXX and armoXX treasure classes.
magic_lvl = magic level bonus on some items. Currently the only

ones that have this are wands (normal and exceptional, but not the

elite ones), staves, orbs (all with a value of 1) and circlets

(circlet=3, Coronet=8, Tiara=13, Diadem=1.

When an item is generated that has prefixes the alvl is calculated* from ilvl and qlvl as follows

If (ilvl>99) then {ilvl=99}

if (qlvl>ilvl) then {ilvl=qlvl} ;** see note below

if (magic_lvl>0) then {alvl=ilvl+magic_lvl}

else

{

if (ilvl<(99-qlvl/2))

then {alvl=ilvl-qlvl/2}

else {alvl=2*ilvl-99}

}

If (alvl>99) then {alvl=99}

*all calculations use integers so there are no fractions at any step.

** this new ilvl value is only used for the duration of this

calculation. The ilvl value that is stored in the items data file will

remain unchanged.

Now that the game has decided which prefixes are

available for allocation, they will have to select their prefix from

the multiple choices in the given group. These are done by the

frequency column.

Frequency determines the probability that an prefix is selected, a higher frequency = a greater probability.

Assuming: Mod1freq=5, Mod2freq=3, Mod3freq=2, Mod4freq=1

and you can get only Mod1 & Mod2, then your probabilities would be:

chance to get Mod1 = 5 / (5+3) = 5/8 = 62.5%

chance to get Mod2 = 3 / (5+3) = 3/8 = 37.5%

and if you could get all four,

chance to get Mod1 = 5 / (5+3+2+1) = 5/11 = 45.5%

chance to get Mod2 = 3 / (5+3+2+1) = 3/11 = 27.3%

chance to get Mod3 = 2 / (5+3+2+1) = 2/11 = 18.2%

chance to get Mod4 = 1 / (5+3+2+1) = 1/11 = 9.1%

you can also use maxlevel to filter out the 'lower

quality' prefixes at the higher level. By setting the maxlevel so that

there is an overlap, you will always have that type of prefix available

at all levels, while effectively keeping the prefix pool powerful.

Annex B - itype & etype

itype = Inclusion TYPE & etype = Exclusion TYPE

It determines that a given affix will spawn for all itemtypes in {itype} except those in {etype}

eg.

itype = {weap,armo}

etype = {axe,helm,belt}

what this means is that the affix will spawn for

ALL weapons and armor, EXCEPT for axes, helms and belts. By including

and excluding itemtypes from receiving affix, you can make certain

affixes only spawn for swords, or only spawn for anything but swords.

NOTE: this works the same way for any other .txt file with itype/etype, such as automagic, rareprefix/suffix

				Link to this article: Select all

				[url=https://d2mods.info/forum/kb/viewarticle?a=234]Knowledge Base - Magicprefix.txt File Guide[/url]