// Note: Maps saved with a Reign of Chaos version of the editor will use 25 for the// min unit speed value since it wasn't increased to 150 until Frozen Throne.MinUnitSpeed=10MaxUnitSpeed=400MinBldgSpeed=10MaxBldgSpeed=400

// Formula constants for hero levels beyond the tables...// The three constants are used to define a table as://// f(x) = A*f(x-1) + B*x + C//// where A,B,C are the constants given below//NeedHeroXPFormulaA=1NeedHeroXPFormulaB=100NeedHeroXPFormulaC=0GrantHeroXPFormulaA=1GrantHeroXPFormulaB=0GrantHeroXPFormulaC=100GrantNormalXPFormulaA=1GrantNormalXPFormulaB=5GrantNormalXPFormulaC=5

// 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.// If a creep goes beyond 'MaxGuardDistance' then it always returns home// regardless of who's attacking it.//GuardDistance=600MaxGuardDistance=1000GuardReturnTime=5.0

// refund ratesConstructionRefundRate=0.75 // for cancelled constructionResearchRefundRate=1.0 // for cancelled research of spells or unit improvementsReviveRefundRate=1.0 // for cancelled hero revivalTrainRefundRate=1.0 // currently applied regardless of location in queueUpgradeRefundRate=0.75 // for a cancelled structure upgrade

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

// Note: Maps saved with a Reign of Chaos version of the editor will use 25 for the// min unit speed value since it wasn't increased to 150 until Frozen Throne.MinUnitSpeed=150MaxUnitSpeed=400MinBldgSpeed=25MaxBldgSpeed=400

// Formula constants for hero levels beyond the tables...// The three constants are used to define a table as://// f(x) = A*f(x-1) + B*x + C//// where A,B,C are the constants given below//NeedHeroXPFormulaA=1NeedHeroXPFormulaB=100NeedHeroXPFormulaC=0GrantHeroXPFormulaA=1GrantHeroXPFormulaB=0GrantHeroXPFormulaC=100GrantNormalXPFormulaA=1GrantNormalXPFormulaB=5GrantNormalXPFormulaC=5

// 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.// If a creep goes beyond 'MaxGuardDistance' then it always returns home// regardless of who's attacking it.//GuardDistance=600MaxGuardDistance=1000GuardReturnTime=5.0

// refund ratesConstructionRefundRate=0.75 // for cancelled constructionResearchRefundRate=1.0 // for cancelled research of spells or unit improvementsReviveRefundRate=1.0 // for cancelled hero revivalTrainRefundRate=1.0 // currently applied regardless of location in queueUpgradeRefundRate=0.75 // for a cancelled structure upgrade

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

The comments left by Blizzard employees are also super helpful. Here's my additions:

3ICE: These values all got flipped! I'll explain what each line does. You can change these values in your custom map to reap the below mentioned benefits.

3ICE: Nerfed! In RoC, magic damage type could still damage magic immune units because of no "Magic Immunes Resist Damage"3ICE: Irrelevant. In TFT, thorns aura reflect damage hurts magic immune units. Not so in RoC: "Magic Immunes Resist Thorns"3ICE: Interesting and cool. Lifesteal didn't work against magic immune units in RoC: "Magic Immunes Resist Leech"3ICE: Nerfed. That's right, not even ultimate spells could hurt magic immune units back in RoC: "Magic Immunes Resist Ultimates"3ICE: Not sure about this. "CycloneStasis"3ICE: Best guess: TFT is smarter about dependencies: Introducing "Dep Check Alias"3ICE: RoC > TFT. In RoC, you could teleport home cleverly, keeping your units apart, with their relative positions and distances intact, and weak units kept in the back. In TFT you are susceptible to your opponent's nukes - where they could simply spam AoE spells on your army as soon as your teleport lands, because all your units will have clumped up thanks to "Mass Teleport Cluster"3ICE: Campaign / custom games only. Archimonde ultimate ability summoned 3-3 doom guards and infernals. In RoC they were spread apart, in TFT however: "Dark Summoning Cluster"3ICE: See MassTeleportCluster Two lines above this, for that is exactly what this setting does too: "Town Portal Cluster"3ICE: Again. Above mentioned MassTeleportCluster explains this too: "Amulet Of Recall Cluster"3ICE: Not sure. A huge Talon armys' bird form was difficult to turn off because RoC lacks: "Morph Land Closest"3ICE: Not sure. Hyppo riders are a kind of morph. In TFT they are far easier to create as long as your archers are reasonably near to the birds "Morph Alternate Disable"

99% miss this change: ItemSaleAggroRanges was renamed to singular: ItemSaleAggroRange.

This little used feature never supported more than one value anyway. I imagine the idea was that Different strength (creep camp level) neutral hostile units would react more/less aggressively to items being sold right under their noses. A little gnoll archer cares not, whereas a powerful goblin chieftain would throw a fit if their shop was touched (made use of) by a player. But it was not implemented.

In the end, a value of 0 is set in both RoC and TFT meaning that all creep camps ignore item sales completely. (But still wake up if approached so make sure you stay at max range from them!)

Custom game authors can change this value to make sleeping creeps wake up if you try using the shop nearby them. Makes for interesting gameplay.

GlobalExperience means your heroes can stay out of the action and still level up from combat. In TFT pros often send 3-4 grunts to solo a creep camp, while their hero is harassing the enemy. In RoC your hero must be present & on location if they want to gain experience from a kill.

MaxLevelHeroesDrainExp: In RoC you didn't have to worry about level 10 heroes wasting potential XP. In TFT you have to send all level 5+ heroes away so your newly trained heroes can gain full XP from kills. In my opinion forcing this "hero dance" on all optimal-minded players is stupid. I'd rather gain full XP to level 10 and not have my maxed (level 5 or lvl 10, either way...) heroes steal/waste xp from the low level ones.

BuildingKillsGiveExp: This is huge nerf. In RoC all towers, undead's black citadels, and night elf's ancients (or war, lore, wind, etc) and tree of life/eternity/etc could freely get kills and be awarded full XP to the owner's hero. In TFT you have to spam stop or risk a building getting the last hit and thus xp waste.

DisplayEnemyInventory The one setting everyone knows! Yes, even most RoC maps have this turned on by map makers. I certainly try to do it for each and every one of my maps. Makes no sense to hide inventory in RoC from the enemy. Especially since when shopping, the newly bought item is temporarily revealed if the enemy pays attention and selects the shopping hero. Is this a bug? Graphical glitch for RoC pros to take advantage of.

Heroes cost resources to revive, based on their level this cost increases. Tavern revives are even pricier!

RoC was simple, with one rule making heroes just flat 150% more expensive ( both gold and wood) to revive:AwakenMarkupFactor=2.5 //multiplier for tavern instant revive

Although! Where in RoC do you find a tavern exactly? That's a TFT-only building!

Then TFT got more complicated still, with all these new rules (not present in RoC):AwakenBaseFactor=.80AwakenLevelFactor=.20AwakenBaseLumberFactor=.80AwakenLumberLevelFactor=.20AwakenMaxFactor=8.0

Ultimate slow: dryad poison+undead frost breath/nova+cripple+human sorceress slow was a fun combo in RoC team games. Not so OP on TFT:MinUnitSpeed was buffed from 10 to 150, and MinBldgSpeed (uprooted ancients?) from 10 to 25.

Relevant Blizzard Note that makes no sense: "Maps saved with a Reign of Chaos version of the editor will use 25 for the min unit speed value since it wasn't increased to 150 until Frozen Throne."3ICE: The value is 10, not 25!

HeroFactorXP in RoC was a constant 100 which meant full XP at all levels. In TFT you get dynamically reduced XP as you level up: 80%, 70%, 60%, 50%, and 0% — That last "0" value meaning XP gain is turned off completely at level 5 since it's the 5th item.

3ICE: I hate 2D damage tables. And keeping track of changes between versions is extra (3D) work. But here goes!(Foreword: SMALL means unarmored, MEDIUM is the same as NORMAL, and LARGE is heavy armor type. Right? Strange...)

RoC Damage Bonus changes:Normal deals 1.5× damage against SMALL, 1× against MEDIUM, and 0.5× against FORTIFIEDPierce deals 1.5× against LARGESiege deals 0.5× against SMALLMagic deals 1× against SMALL, and 1× against LARGE

TFT Damage Bonus changes:Normal deals 1× against SMALL, 1.5× against MEDIUM, and 0.7× against FORTIFIEDPierce deals 2× damage against SMALLSiege deals 1× against SMALL, 1.5× against FORTIFIED, 1× against NORMAL, and 0.5× against HEROMagic deals 1.25× against SMALL,0.75× against MEDIUM, 0.35 against FORTIFIED, 0.5× against HERO, and 0.05× against DIVINE

This brilliant and insightful Blizzard comment deserves highlight:// After a unit has strayed 'GuardDistance' (600) 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' (5) seconds chasing a target without getting attacked by anyone, the unit indeed turns around and heads home. If a creep goes beyond 'MaxGuardDistance' (1000) then it always returns home regardless of who's attacking it.

3ICE: Abusing this mechanic is known as "creep pulling". Example: Get a golem to MaxGuardDistance=1000 away from its spawn and surround it, then you will take no damage while killing it slowly, as it constantly attempts to return home instead of staying still and fighting.3ICE: Dance between 600 and 1000 (or 900 and 1100) units/range/distance/away from creep camps to confuse creeps with forced move commands interspersed between their attacks. You will take little to no damage.

Last of all; TFT introduced MissDamageReduction=0.5 which I had no idea about. A "Miss!" still deals half the damage? Does it really!?

To make your level 1-20 abilities pickable at levels 1-20, not at levels 1, 3, 5, ... 37, and 39.

// Formula constants for hero levels beyond the tables...// The three constants are used to define a table as:// f(x) = A*f(x-1) + B*x + C// where A,B,C are the constants given belowNeedHeroXPFormulaA=1NeedHeroXPFormulaB=100NeedHeroXPFormulaC=0GrantHeroXPFormulaA=1GrantHeroXPFormulaB=0GrantHeroXPFormulaC=100GrantNormalXPFormulaA=1GrantNormalXPFormulaB=5GrantNormalXPFormulaC=5

Whenever I'm hacking RPGs the easiest cheat (not touching the big war3map.j script) is to jack up these numbers in the imported *.txt file.So one kill gets me 10-20 levels. The quadratic component is the "FormulaA" part, so focus on changing that. The rest are only linear / constant and don't count for much.Do not touch (or lower) the lines starting with Need*, obviously.

Or for non hackers: Define your own leveling curve! For example this makes it so each level needs only 1 XP:NeedHeroXPFormulaA=0NeedHeroXPFormulaB=0NeedHeroXPFormulaC=1(Useful for some custom game styles.)

What an amazing unused attribute: AgiMoveBonus... Imagine walking ever so slightly faster the more agility stat points you have! Recommend changing the default 0 to somewhere between 0.1 - 1 depending on tome availability. And 0.001 for crazy RPGs with 10k stats available.

Also; I was comparing the wrong files, Custom_V0\Units\MiscGame.txt instead of Melee_V0\Units\MiscGame.txt, so this applies more to custom maps than ladder. Oh well.

Heroes were cheaper (NB: Actually this section was just moved from Miscdata.txt to MiscGame.txt, turns out):// Max revival cost of a heroHeroMaxReviveCostGold=700HeroMaxReviveCostLumber=0HeroMaxReviveTime=150