New *.TXT Files of MetalStorm [21st May, 2011]

Information and updates for all other projects by Black Omen Productions (besides Shadow Empires): Namely Codename: MetalStorm, Anti-Balance, Ultimate Fixer and all versions of XyRAX

Moderators: Nefarius, Joel, Doombreed-x, Vendanna

Post Reply

0
No votes
 
Total votes: 0

User avatar
Nefarius
Retired Admin
Cherub
Posts: 11607
Joined: Sat Jun 15, 2002 8:13 pm
Location: Where the blood forever rains
Contact:

Hand-picked

New *.TXT Files of MetalStorm [21st May, 2011]

Post by Nefarius » Fri Nov 23, 2007 8:01 am

I know this is really technical, but I guess some people might wonder how far the engine has been expanded in terms of new softcoded stuff ;)

This also should serve as a reference for the other devs because the previous one never gets updated and is rather obscure :twisted:

* BossMods.txt was merged with MonUMod.txt, SuperUniques2.txt was merged with SuperUniques.txt. Wilderness.txt was disposed of (theres OutPrest.txt for this now).

AffixGroups.txt - this file is used to set some rules for affix groups being picked for items (depends on the item type and quality)
AiFunc.txt - a linkage table and documentation for the ai subroutines used to construct ais from.
AiPar.txt - all parameters for each ai, also controls what scripts are loaded and/or what subroutines make up the ai.
Babble.txt - softcoded table housing all the regular (non quest) npc speech.
BonusItems.txt - this file allows creation of items with any stats, quality etc. for special purposes.
BossAura.txt - this controls which auras, and how frequently they, can appear on special monsters.
Casket.txt - controls what monsters can spawn from trapped caskets and graves.
CharStats2.txt - this softcodes many things regarding to the character classes, such as rules that control who can dual wield what.
Chests.txt - this is basically monplace but for objects (this was incorrectly referred to often as 'hardcoded objects')
Dungeon.txt - softcodes all preset maps that spawn in maze levels.
Elixirs.txt - controls all aspects of stat elixirs.
EnvColor.txt - this contains the day/night cycle light colors and durations for outdoor stages.
Epic.txt - allows epic feats to be assigned to characters, it also allows associating events with certain levels and has many other filters.
EthAffix.txt - different stats that can be assigned to ethereal items (right now just does the vanilla durability, defense and damage changes).
GemOdds.txt - controls of gem grade upgrades when a gem drops.
HitClassFx.txt - everything formerly hardcoded to hitclasses is in here.
ItemFilter.txt - this controls what items cannot co-exist in a players inventory/stash/cube (think quest items).
Legendary.txt - controls stats and all other aspects of legendary items.
Levels2.txt - softcodes a myriad of things formerly hardcoded to individual levels, as well as new functionality.
Mercs.txt - controls what items hirelings can equip and a few more things.
MonStats3.txt - this file controls countless things formerly hardcoded to individual monsters, and adds tons of new things as well.
NpcData.txt - numerous former hardcodes in regard of npcs, especially their menus which are softcoded here.
Objects2.txt - Like monstats3.txt, but for former object hardcodes and new features.
ObjSound.txt - softcoded sound data for objects, think monsound.txt.
Oils.txt - controls all aspects of item enchancer oils.
Options.txt - a linkage table for npc menu options that refer to the functions they invoke internally.
OutDoors.txt - controls how outdoor levels are constructed.
OutPlace.txt - more rules regarding outdoor level construction.
OutPrest.txt - controls preset maps that spawn in outdoor levels.
PlrSeq.txt - player skill sequences are defined in this file now.
PlrSound.txt - softcoded sound table for players, like monsound.txt basically.
Qualities.txt - softcodes most aspects of item qualities, and incorporates everything that originally was in ItemRatio.txt too.
QuestFx.txt - special death effects for quest bosses and such.
QuestParams.txt - parameters used by quests, this is used as a layer for monsters, items and such used by the quest.
QuestRewards.txt - controls all aspects of quest rewards.
Quests.txt - this is the core file controlling what quests exist and why they are available (and more).
QuestSpeech.txt - speech tables that are used by npcs and other units associated with the quest.
QuestStrings.txt - controls what the quest text shows up as in the 'talk' menu of npcs.
RackTypes.txt - a linkage table regarding item rack types.
RedPortal.txt - controls everything regarding red portals.
Rubbish.txt - this controls what items npcs can sell, this is also used to give monsters potions and scrolls.
Scrolls.txt - controls all aspects of spell scrolls.
Shops.txt - this controls aspects of the vendor npcs such as what item list they have available and more things.
Shrines2.txt - controls every last aspect of shrines, including what boosts they give and more.
SkillDescStrings.txt - all formerly hardcoded strings used for skill descriptions are in this table.
SoundBank.txt - assigns speech banks to any given npc in the game.
SubTitles.txt - controls subtitles that show up for in-game speech.
Towns.txt - consists of levels that will be regarded as towns.
Traps.txt - everything formerly hardcoded about traps is in here, new traps can be added and so on.
UiMonStats.txt - controls what stuff shows up in the description under a monsters name (stats, states and so on).
WClass.txt - softcodes the weapon class strings for each itemtype.

And of course, many things the old files do is also revamped.
Last edited by Nefarius on Mon Jun 22, 2009 6:43 pm, edited 13 times in total.
''(...) The game can basically be considered unhackable. '' - Blizzard Entertainment (30th May 2000)
Black Omen Productions | MetalStorm: Progress Report | Screenshots

User avatar
Borgin
Forum Regular
Angel
Posts: 902
Joined: Fri Dec 05, 2003 5:25 am
Location: Wisconsin

Post by Borgin » Mon Nov 26, 2007 2:58 am

Wow. :twisted:

Will any of these wind up being integrated into NefEx at any point in time? I hate to say it, but I'm still waiting for it to be the "next" D2Mod.

But still... I'm totally stunned. Most of this stuff is just... 8-O

You're insane, Nef!

User avatar
Nefarius
Retired Admin
Cherub
Posts: 11607
Joined: Sat Jun 15, 2002 8:13 pm
Location: Where the blood forever rains
Contact:

Hand-picked

Post by Nefarius » Sat Dec 01, 2007 12:17 am

Borgin";p="367933" wrote:Wow. :twisted:

Will any of these wind up being integrated into NefEx at any point in time? I hate to say it, but I'm still waiting for it to be the "next" D2Mod.

But still... I'm totally stunned. Most of this stuff is just... 8-O

You're insane, Nef!
With time one or two of these smaller files may end up as plugins. But for the larger ones (some of them contain between 50-100 columns), this is just too much interdependancy between various project specific changes and those files as that converting them would prove to be a vain and crashful effort.
Last edited by Nefarius on Sat Dec 01, 2007 12:17 am, edited 1 time in total.
''(...) The game can basically be considered unhackable. '' - Blizzard Entertainment (30th May 2000)
Black Omen Productions | MetalStorm: Progress Report | Screenshots

User avatar
justin3009
Junior Member
Paladin
Posts: 180
Joined: Sat Jul 08, 2006 7:59 pm
United States of America

Re: New *.TXT Files of the MetalStorm Engine-Extension

Post by justin3009 » Sun Dec 02, 2007 2:31 am

Wow man, that's amazing. I can't wait for this. Wind strenght in act 5 Snow levels..pure genius. I've been wondering as well, are you planning on creating new mercenaries or adding new skills for them? Or are you going to leave them the way they were in d2 =p

User avatar
DemonicAngel
Forum Legend
Principality
Posts: 2425
Joined: Mon Nov 27, 2006 2:06 am

Post by DemonicAngel » Sun Dec 02, 2007 3:23 am

Or are you going to leave them the way they were in d2 =p
Somehow I can't see that happening. ;)

User avatar
Nefarius
Retired Admin
Cherub
Posts: 11607
Joined: Sat Jun 15, 2002 8:13 pm
Location: Where the blood forever rains
Contact:

Hand-picked

Re: New *.TXT Files of the MetalStorm Engine-Extension

Post by Nefarius » Sun Dec 02, 2007 5:04 am

Hirelings are going to be considerably different, especially AI wise, the way they recieve spells will probably also differ (and what spells they recieve is ofc completely different). Also new hirelings can be added on the fly and given to NPCs so don't expect the same hireling classes like vanilla either.

The wind strength is used by the game in vanilla to control the snowfall path (which is more wild and chaotic in some snow levels then others).
Last edited by Nefarius on Sun Dec 02, 2007 5:06 am, edited 1 time in total.
''(...) The game can basically be considered unhackable. '' - Blizzard Entertainment (30th May 2000)
Black Omen Productions | MetalStorm: Progress Report | Screenshots

User avatar
Eisenfaust86
Posts: 95
Joined: Wed Mar 22, 2006 4:48 am

Re: New *.TXT Files of the MetalStorm Engine-Extension

Post by Eisenfaust86 » Thu May 08, 2008 4:07 am

Nefarius";p="369371" wrote:Hirelings are going to be considerably different, especially AI wise, the way they recieve spells will probably also differ (and what spells they recieve is ofc completely different). Also new hirelings can be added on the fly and given to NPCs so don't expect the same hireling classes like vanilla either.

The wind strength is used by the game in vanilla to control the snowfall path (which is more wild and chaotic in some snow levels then others).
Hey Nef, has anyone ever told you Blizzard should hire you? By not recognizing your work, they are really missing out! :roll:

User avatar
Nefarius
Retired Admin
Cherub
Posts: 11607
Joined: Sat Jun 15, 2002 8:13 pm
Location: Where the blood forever rains
Contact:

Hand-picked

Re: New *.TXT Files of the MetalStorm Engine-Extension

Post by Nefarius » Sat Nov 14, 2009 7:30 am

For fun and also as a more accessable documentation for the devs, I decided to write a summary of MonStats3.txt here. It also should give people an overview over stuff the file controls, and thus an indirect view of what to expect from monsters (besides the obvious ai overhaul).

EDIT: 14th Nov, 2009 - I've cleaned up the file today, heres the updated version

Various
Name - just for reference ( name of the corresponding line in monstats.txt )
Index - just for reference ( index of the corresponding line in monstats.txt )
UnitAi - which record in AiPar.txt does this entry use, this controls what script is loaded among others
Female - whenever this unit is female ( used for boss titles and some spells )
Ethereal - whenever this is a ghostly enemy ( used for certain combat aspects )
Sessile - whenever this unit is fixed in place ( this stops AoE phasing etc )
Object - when hovering over this unit, it shows up like an object ( and unlike objsel this isn't bugged :P )
SandLeaper - whenever to treat this like a sand leaper ( path specific things, enables movement in DT and DD )
BatDemon - allows the unit to roost in a mode, forever rewinding it ( only needed for vanilla batdemon ai, mine doesn't need it :P )
SuicideMinion - redundant now, but vanilla had the suicide ai check vs. a hardcoded id
Vulture - former hardcodes for vultures, this lets the unit fly around freely
Horazon - some former hardcodes for the summoner, doesn't really do anything
Catapult - whenever to treat this like a catapult ( needed for the catapult missile hovering etc )
Suicide - the unit can be morphed by suicide whip
Parasites - the unit can be infected with parasites
RandomResist - grants the unit a synced random resistance that stays the same when it respawns
CantDropTC - for bonewalls etc, stops any and all TC drops
Consistence - alters the chance of durability being lost when hitting / getting hit by, this unit
CasketRaiseMode - what mode to play when raised from a casket
MountType - controls what other units can mount on this unit (and vice versa, can be enabled for anything, just need a add the special COF layer)
MonUMod1, MonUMod2, MonUMod3, MonUMod4, MonUMod5 - formerly hardcoded unique modifiers
PreventStun - unit isn't effected by stun
PreventFreeze - unit isn't effected by freeze
PreventStone - unit isn't effected by stone curse
KeepAlignment - related to how hydras select their alignment

Npc stuff
NPCSkipMenu - shows a message, that's it, doesn't ask the client to invoke a menu
NPCGeneric - a generic 'fake' npc that has no menu, all it does it send messages
NPCNeverRotate - never rotate to face the player when clicked
NPCMessage1, NPCMessage2, NPCMessage3, NPCMessage4, NPCMessage5, NPCMessage6, NPCMessage7, NPCMessage8, NPCMessage9, NPCMessage10 - messages for generic 'fake' npcs

Collision
SpawnCollideX, SpawnCollideY - offset for checking collision
SpawnCollideType - controls which collision bits are checked
SpawnCollideSkip - if the game uses failsafe spawning, the check is ignored if this is set
SpawnCollideWater - allows the unit to spawn in water tiles ( for that matter, any unwalkable tile, used for DS1 placed tentacles )
SpawnCollideMinions - special settings related to tentacle minion placement

Path stuff
PathGhostMask - collision mask allowing the unit to move through grates and other units
PathShiftLayer - shifts the unit to layer 5, to avoid collisions

Pet Settings
PetAssassinTrap - special aspects hardcoded formerly to traps
PetCanDualWield - can dual wield equipment
PetFakeAssassin - treated like an assassin by code
PetFakeBarbarian - treated like a barbarian by code
PetUseOwnerName - show the name of the owner when hovering
PetSendItems - send equipment data to the clients

Special stuff
bSplEndModeS, bSplEndModeC, wSplEndModeBitS, wSplEndModeBitC - former hardcoded settings related to SplEndGeneric and SplClientEnd
DelayAiEvents - when the unit is layer shifted events are delayed

Graphics
CltGfxImageCount - fake mirror image count ( if you know the mists from BG2 you know what this does )
CltGfxImageSpace - fake mirror image spacing
CltGfxNoShadowModes - bitmask that controls which modes do not draw shadows
CltGfxHandleComposit - the composit graphics are handled entirely client-side, server doesn't care
CltGfxUseDC6 - this sprite is a DC6 file ( or at least it's death animation is, if the value is 2 )
CltGfxUsePL2 - uses the specified PL2 palette
CltGfxCyclePL2 - cycle over a specific amount of PL2, for a scintillating effect

Knockback settings
KnockBackFrame - frame override used for sand leapers in vanilla
KnockBackRange - how far is the unit knocked back ( if blank uses level default )
KnockBackAnimRate - animation speed for knock back
AlwaysKnockBack - each time the unit is hit it gets knocked back ( like sandleapers in vanilla )

Missile settings
ExtraMissiles, ExtraMissiles (N), ExtraMissiles (H) - if the unit fires a missile, add this many copies ( a la quillrats )
ExtraMissileSpread - how far are the extra missiles dispersed from each another

Attack settings
CltOverlayATT, CltOverlayModeATT - overlay and overlay mode to set when attacking
CltRotate1ATT, CltRotate2ATT, CltRotateMode1Att, CltRotateMode2Att - rotate this many directions if ClientMode matches the specified mode

Corpse settings
CltMissileDD - a missile to create when the unit enters DD
CltKeepOverlayDD - don't delete overlays if the unit enters DD
CltNeverDrawDD - hide the unit once it enters DD

Skill modes
CltRotateSK - rotate this many directions each time using a skill ( used for turrets )

Resurrect settings
ReviveType - some units will keep resurrecting unless killed in a specific way, this controls which ( 1 = vampires, 2 = trolls etc )
ReviveChance - chance to resurrect
ReviveSkill - which skill slot from monstats holds the self-resurrect spell
ReviveDelay - how many frames to wait before reviving
ReviveLimit - maximum number of times one can revive ( -1 means infinite )
ReviveWait - frames to wait before trying again ( if something interrupted it, like standing on the corpse )

Death settings
CltEventDT - special client side event triggered on death ( invisibility etc, extensive hardcode in vanilla -_- )
CltEventParam1DT, CltEventParam2DT, CltEventParam3DT, CltEventParam4DT - parameters depending on the type of event
CltMissileDT - missile created on death
CltOverlay1DT, CltOverlay2DT, CltOverlayModeDT - overlays (and one mode for both) set on death
CltAsyncObjectDT - create this async object when entering DT ( used for smoke in case of evil huts in vanilla )

Skill settings
LeapAnimRollBack - roll back this many frames when using leap
NecroPetAiSubType - the ai type used by this necro pet ( ranged or melee )
NecroPetOtherClass - alternate class the skill may create ( archer or melee etc )
SkillMissile - certain new monster missile skills will fetch a missile from here, so we don't need to make 1000 skills
ChargeEndMode - mode to drive damage from when charge hits
ChargeEndLoop - when charge ends, this controls if the unit stops or continues charging ( bugged in vanilla )

Init settings
CltInitGetParentAngle - retrieve the angle from the nearest unit of this class and set on self ( used for vilechilds )
CltInitUnitFX - used for setting special unit effects, used for Izualghost and Tyrael3 in vanilla, index in function table now
CltInitAngle - a predefined rotation value to set on init ( hydras etc )
CltInitLockAngle - sets the angle to a random value and prevents future changes ( bonewalls etc )
CltInitX, CltInitY, CltInitZ - graphical x, y and z offset to set on init
CltInitOverlayA, CltInitOverlayB, CltInitOverlayMode - trigger these overlays on init ( overlay B is for the looping part, depending on the type )
CltInitDisableCollision - disables collision detection for this unit ( used for client only units )
CltInitTargetPlayer - makes the unit always face the current player ( used by the guards )
CltInitMissile - missile to create on init
CltInitLinkMissile - links the init missile to the unit ( used by blade summons )

Map settings
DS1SpawnType - there are several formerly hardcoded methods the game altered what the DS1 was spawning, this is a softcode of that stuff ( refer to SVN for specifics )
DS1ExtraUnit - an additional unit to replace/add to what is being spawned
DS1Param1, DS1Param2, DS1Param3, DS1Param4 - function depends on the DS1SpawnType column

Morphing
UnitMorphClass - what unit does this unit morph to ( when whipped etc )
UnitMorphMode - what mode is used for the morphing animation
UnitMorphOverlay - an overlay to play during morphing ( used only by Anya atm )

Sounds
SfxMoveMode - if walking doesn't trigger the movement sound, which mode does instead ( S4 for vultures etc )
SfxIdleMode - if neutral doesn't trigger the idle sounds, which mode does instead
SfxIdleChance - chance to trigger neutral sounds
SfxIdleRadius - how far from the current player can the sounds be triggered

Death damage
DeathDMGMode - how is the death damage applied ( percentage of life, regular splash, etc )
DeathDMGType - what damage type does the death damage deal
DeathDMGArea - determines the radius of the death damage AoE
DeathDMGMin - minimum physical damage percent
DeathDMGMax - maximum physical damage percent
DeathDMGResultBits - result flags for death damage, for things like knockback
DeathDMGPercentE - percent of the death damage being elemental
DeathDMGLengthPerLvl - how long does chill or poison (etc) last ( multiplied with mlvl )

Vanilla Quests
D2QuestEvent1, D2QuestEvent2, D2QuestEvent3, D2QuestEvent4, D2QuestEvent5 - former hardcoded quest links
D2QuestEventType - which type of callback to enable for the unit

New Quests
MSQuestThinkCallback - send a quest event to core when this unit thinks ( ai does a tick )
MSQuestDeathCallback - send a quest event to core when this unit dies

Organs
Heart, Organ - item code
HeartOdds, OrganOdds - chance to drop hearts and organs ( organ chance controls the drop as a whole, heart chance how high the chance is to drop a heart )

Map
AutoMapName - show the name on the automap
AutoMapNameColor - color for the name
AutoMapNameFont - font for the name
AutoMapUnit - show unit locator on the automap
AutoMapUnitColor - color for the unit locator

Life bar
LifeBarNameColor - color for the name ( no more hardcoded golden and blue stuff... )

Extra stats
State1, State2, State3, State4 - synced states to set on unit creation
Stat1, Stat2, Stat3, Stat4, Stat5, - synced stats to set on unit creation
Min1, Min2, Min3, Min4, Min5, Max1, Max2, Max3, Max4, Max5 - values for the stats
Param1, Param2, Param3, Param4, Param5 - layers for the stats
Last edited by Nefarius on Thu Jul 10, 2008 2:52 pm, edited 2 times in total.
''(...) The game can basically be considered unhackable. '' - Blizzard Entertainment (30th May 2000)
Black Omen Productions | MetalStorm: Progress Report | Screenshots

Post Reply

Return to “Mods by Nefarius”