web space | website hosting | Web Hosting | Free Website Submission | shopping cart | php hosting

Article 3:

Editing MiscData.txt for Warcraft III

Note: Before you start working backup all files you want to modify (in this case War3Patch.mpq) Don't use a modified War3Patch.mpq on Battle.net. I don't know whether it influences gamplay (on Battle.net) or not. But I recommend you to not do that to ensure fun on Battle.net for all players. This turtorial is not purposed to be used on Battle.net.

Anyway, I've not supposed that it would be that easy to modify so important aspects of the game. Because you can put an edited Miscdata.txt in a map too. That works.

Browse your War3Patch.mpq for the file Units\MiscData.txt (with an MPQ viewer; go here to find out more about MPQ viewers). Extract it and open it with the editor. This file is very similar to an INI and as you see, you can modify some things that you can't with the World Editor.

This is the structure of it (the red comments are from me, the white from Blizzard, what means, that they are included into MiscData.txt). Anyway the comments of Blizzard are quite good (if that's the case, I've not written anything), but I think for some options not good enough:

[Misc]

// Range around selected ground area to search for a target
CloseEnoughRange=100 don't know

// Max revival cost of a hero
HeroMaxReviveCostGold=700
HeroMaxReviveCostLumber=0
HeroMaxReviveTime=150


// Radius of building blight dispel
BuildingUnblightRadius=350 don't know

// Radius of creep notification when a new building gets placed
BuildingPlacementNotifyRadius=600 don't know

// Radius of creep notification when a neutral building is in use
NeutralUseNotifyRadius=900 don't know

// the angle in degrees structures face
BuildingAngle=270 don't know
RootAngle=250
don't know

// half angle in radians that a unit must meet to be facing his target
AttackHalfAngle=0.5 don't know
FoggedAttackRevealRadius=200.0 
size of area that will be revealed around a unit when being attacked from that unit
DyingRevealRadius=500.0
size of area that will remain revealed after a unit already died

// death and decay impact gameplay, so duration is specified
BoneDecayTime=88 don't know
StructureDecayTime=30
don't know
DecayTime=2
don't know
DissipateTime=3
don't know
CancelTime=6
don't know
BulletDeathTime=5
don't know
EffectDeathTime=5
don't know
FogFlashTime=3
don't know

// follow ranges
FollowRange=300 don't know
StructureFollowRange=100
don't know
FollowItemRange=1000
don't know

// distance target can move between starting cast and spell effect
SpellCastRangeBuffer=300

// largest possible collision radius for any widget
MaxCollisionRadius=200

// rally point vertical offset when set on non-units
RallyZOffset=200 don't know

// duration of art animations that get scaled
ScaledAnimTime=60 don't know

// max random reaction delay (seconds)
ReactionDelay=0.25

// missile chance to miss if target is moving or on high ground
ChanceToMiss=0.25 in % (1.0 = 100%)

// game-seconds per game-day
DayLength=480 lenght of the day in game-seconds
Dawn=6
lenght of dawn in game-seconds
Dusk=18
lenght of dusk in game-seconds

// earth has a 24 hour day, how many does Azeroth have
DayHours=24 number of hours (in-game) a day has

// maximum amount of gold a gold mine can have
GoldMineMaxGold=1000000

// the distance at which heroes still gain XP for dying units
HeroExpRange=1200

// factors for calculating the cost, time to revive a hero
// goldRevivalCost = originalCost * (ReviveBaseFactor + (ReviveLevelFactor*(level-1)))
// but not exceeding originalCost * ReviveMaxFactor
// lumberRevivalCost = originalCost * (ReviveBaseLumberFactor + (ReviveLumberLevelFactor*(level-1)))
// but not exceeding originalCost * ReviveMaxFactor
// revivalTime = originalTime * level * ReviveTimeFactor
// but not exceeding originalTime * ReviveMaxTimeFactor
ReviveBaseFactor=.40
ReviveLevelFactor=.10
ReviveBaseLumberFactor=0
ReviveLumberLevelFactor=0
ReviveMaxFactor=4.0
ReviveTimeFactor=0.5
ReviveMaxTimeFactor=2.0


// this is the amount where a gold mine is considered low.
LowGoldAmount=1500

// the length that a mine is considered owned after the last peon leaves it.
GoldMineOwnDuration=2.0

// this is the speed units change visibility (smaller = "cloak" slower)
InvisSpeed=0.4

FrostMoveSpeedDecrease=0.5  rate in % (1.0 = 100%) at which the movement speed of a unit decreases when frozen
FrostAttackSpeedDecrease=0.25
rate in % (1.0 = 100%) at which the attack speed of a unit decreases when frozen

// All selection circles will have this added to their z coord
SelectionCircleBaseZ=16 don't know

// Experience & Level Information
MaxHeroLevel=10 maximum level a hero can attain
NeedHeroXP=200,500,900,1400,2000,2700,3500,4400,5400,5400

XP a hero needs for each level (starts for level 2; I don't know why the last value is written two times)

GrantHeroXP=80,100,120,140,160,200,240,280,320,400

XP you gain from a hero at each level when you kill him (starts for level 1)

GrantNormalXP=20,30,40,60,80,120,160,240,320,480

XP you gain from a unit (except heroes) at each level when you kill them (starts for level 1)

PlayerKillBonus=1.25
StrAttackBonus=1.0
 attack bonus for each strength point (affects only heros with strength as primary attribute)
StrHitPointBonus=25
HP bonus for each strength point
StrRegenBonus=0.05
HP regeneration rate bonus for each strength point
IntManaBonus=15
mana bonus for each intelligence point
IntRegenBonus=0.05
mana regeneration rate bonus for each intelligence point
AgiDefenseBonus=0.30
defense bonus for each agility point
AgiDefenseBase=-2
AgiMoveBonus=0
movement speed bonus for each agility point

// Hero Inventory Items
DropItemRange=100
GiveItemRange=150
range in which a hero can give an item to another hero
PickupItemRange=150
range in which an item to pick up must be (else the hero has to move towards it)

// combat related entries
CallForHelp=600 the range in which units must be that they go to help their friendly units
CreepCallForHelp=600
the range in which creeps must be that they go to help other creeps
DefenseArmor=0.06


PierceVsSmall=0.75 % (1.0 = 100%) damage a small unit receives when attacked by a pierce attack
PierceVsLarge=1.50
% (1.0 = 100%) damage a large unit receives when attacked by a pierce attack
PierceVsFort=0.35
% (1.0 = 100%) damage a building receives when attacked by a pierce attack
PierceVsHero=0.50
% (1.0 = 100%) damage a hero receives when attacked by a pierce attack
SpellsVsHero=0.75
% (1.0 = 100%) damage a hero receives when attacked by a spell
MagicVsHero=0.50
% (1.0 = 100%) damage a hero receives when attacked by a magic attack
MagicVsSmall=0.75
% (1.0 = 100%) damage a small unit receives when attacked by a magic attack
NormalVsSmall=1.50
% (1.0 = 100%) damage a small unit receives when attacked by a normal attack
NonSiegeVsFort=0.50
% (1.0 = 100%) damage a building receives when attacked by any non siege attack
SiegeVsFort=1.50
% (1.0 = 100%) damage a building receives when attacked by a siege attack
SiegeVsSmall=0.50
% (1.0 = 100%) damage a small unit receives when attacked by a siege attack
SiegeVsHero=0.50
% (1.0 = 100%) damage a hero receives when attacked by a siege attack
AllVsDivine=0.05
% (1.0 = 100%) damage a divine unit receives when attacked by any attack


// After a unit has strayed 'GuardDistance' from where it started,
// that unit begins thinking about heading back to its start position.
// If the unit has move 'GuardDistance' away from "home" at any time
// and spends 'GuardReturnTime' seconds chasing a target without getting
// attacked by anyone, the unit indeed turns around and heads home.
//
GuardDistance=600
GuardReturnTime=5.0


// refund rates
ConstructionRefundRate=0.75 // for cancelled construction
ResearchRefundRate=1.0 // for cancelled research of spells or unit improvements
ReviveRefundRate=1.0 // for cancelled hero revival
TrainRefundRate=1.0 // currently applied regardless of location in queue
UpgradeRefundRate=0.75 // for a cancelled structure upgrade

ConstructionLifeDrainRate=10.0 // hp per second drained when building construction is halted

// seconds between attack notifications
AttackNotifyDelay=30.0
AttackNotifyRange=1250


// alliance resource trading increments
TradingIncSmall=100
TradingIncLarge=200


SFBldgDmgFactor=0.35 // Buildings receive x% of the damage dealt to normal units.

If you have any question/suggestion/comment or want to explain the meaning of something I don't know (I please you all to do that; I'll update this page then), then send it to scfreak045@hotmail.com.