Welcome to www.eeve.org, the home of games like Castle Fight, eeve! Tower Defense, You Tower Defense and many other Warcraft 3 projects by geX and others. Here you can get the latest downloads and official information. Join our forum community and participate in the discussion. Have fun!

This page is best viewed with Firefox 3.0 or higher! (Internet Explorer fails to display some content!)

Forum Statistics

Previous Bugs-Fixed crits and onAttack events not firing for towers with non-zero damage point when said towers were pumped with attack speed.-Fixed multiboard showing lives > 100% as yellow.

Miscellaneous-Reverted projectile behaviour: onHit event now again fires when a homing projectile reaches the last known location of a creep that has just died. (This fixes the bug with Dutchman disappearing when the creep that it's pursuing suddenly dies).

Behind the Scenes-Added a safeguard against tower abilities that might try to accidentally give a creep exp (this had potential to cause havoc with the game when it tried to determine which level had just been completed).

We found some nasty bugs in the last release. Therefore we have a quick fix for you here.

Changelog YouTD v1.08

Previous Bugs-Keeper of Wisdom now no longer appears until the player has selected a builder, fixing an issue where food cap would get reset to 60 if a builder was chosen after skilling the food mastery.-Fixed ambiguous BuffType behaviour, capable of causing user value cross-pollenation between buffs of different types on sloppily coded abilities.-Fixed Necromancer creepabil skeletons spawning for the wrong player sometimes. Also added a possibly working corpse-still-exists detection.-Fixed 'advanced tower effects' with a certain default value setting their animation speed at 50x instead of 1x.-Fixed range checkers not being properly cleaned up when upgrading them into towers.Creeps-New creepabils are now less prevalent-Manashield: hpmod decreased, but loses less mana per damage instance. Now approximately 12.5% stronger than a normal wave when you don't have any mana burning towers/items.-Manashield+: hpmod decreased, amount blocked tweaked; approx 25% stronger than a normal wave-Necromancer: skeleton models now larger; champions can revive more skeletons.-Purge: reduced proc chance from 30% to 10%, increased attack speed slow duration from 3 to 4 seconds and decreased the slow from 200% to 150%; Only purges up to 2 buffs per purge. HP mod decreased by 16%.Miscellaneous-Purges no longer remove permanent Buffs.-Mana regen is now shown to two decimal places in the multiboard.-Optimised the triggered hp/mana regen system.

The next YouTD version is out. This version includes many Quality of Life changes, like the item interactions with towers that have full inventories and some more.

Changelog YouTD v1.07

Previous Bugs-Autospawn timer dialog is now hidden when the player loses.-Next level timer dialog is now hidden when the player loses (in cases where it was open, like extreme or race mode).-Fixed issue with tower stashes being considered in iterates, auras, autocasts, inRange events, projectile collisions and as potential oiling candidates.-Fixed many tower and builder actives (including oil/consumable usage) cancelling targeting when used.-Fixed a bug where Protector waves could potentially leave a permanently-lasting curse (until purged or tower replaced).-Fixed recycled Effects initial facing so they don't spin when spawned and fixed the issue of ubersplats spawning out of thin air in old Effect locations.-Fixed stats multiboard (best hit, most damage) to properly update with higher values when dealing with billions and above.-Fixed a bug causing MOD_DAMAGE_TO_UNDEAD, MOD_DMG_TO_MASS and MOD_DMG_FROM_ASTRAL to get reset to 1.0 on some arbitrary Unit whenever a new Unit was created.-Fixed targeted projectiles flying to the centre of the map if their target was killed and its corpse removed.

Creeps-Three new creep abilities added. Play to discover them. -Very slight reduction in creep HP arcross the board, with the most impactful difference around wave ~90, and then also in the lategame.-Gravid: increased child hp by 20%. (ie. childHp = parentHp/numChildren*1.2)

Miscellaneous-Changed to a custom borderless forcepoints icon in resources display.-Moar work on map-corner embellishement.-Clicking on a friend's tower's tower info button (when they share control) now opens the stats multiboard for whoever has that tower selected with control shared to them at the time of click. This unfortunately does still mean that you can annoy your friend by clicking the level info button on their tower when they have it selected, but it's the best we could do!-Savecode is no longer generated if no XP is gathered.-OnAttack events now fire after attack animation damage point. Linked to this: towers no longer spaz out when their attack animation is canceled.-You can now replace a tower by dropping a tower item on it even when it has a full inventory.-Attempting to give an item to a tower with a full inventory will now stop you, instead of dropping the item on the ground.-Hints have been updated, with a few new ones added.-Shaved a bit of time off the builder selection fadeouts at the start of the game.-New loadscreen. Credits to JhoiJhoi for doing the bulk of the work.

Behind the Scenes-Map now uses a triggered mana regen system. This should fix all the issues with occasional unresponsive mana degen in the previous versions, along with uncapping the limits on mana regeneration rate.-Quests trigger is no longer in GUI, so it shouldn't be so fragile anymore. In earlier versions, any disturbance to quests triggers could cause text to randomly disapear. o.0-All of the map trigger code is now under git version control, making it easier for multiple people to develop the map concurrently - Deemzul has helped Glowackos considerably in ironing out bugs and making new additions in this version.-Addressed some possible dummy unit displacement issues.

Previous Bugs-Fixed creep multiboard still displaying wrong movespeed values.-Fixed '-show X' buffgroups command displaying the wrong information in team mode.-Fixed a 'Team'->'Playor' casting error for the PlayerMultiboard. This means that income info (among other things) should now be displaying properly in team mode.-Fixed a rare bug where creeps would occasionally ignore tower auras and not get the aura buff placed on them/refreshed when entering the AoE of a new aura tower.-Jumping tower glitch is now checked for periodically during bonus wave.-'Start Next Level' button is now made available to players who choose their builder after the first wave has started spawning.-Fixed a bug with next level timer not getting released if the player hasn't yet researched any elements.-Implemented a bandaid fix to the wavespawn bug so that it will no longer ruin games. If the bug occurs, the timer will kick back into action after a short delay (granting double the normal time), and the next level button will be re-enabled. Apart from seeing only a portion of the wave spawn, the player will also be notified that the bug has occured, and prompted to post their replay to the forums. With your combined help maybe we'll finally get to the bottom of this one!-Fixed an issue where Autocast settings would appear to carry over when a tower was upgraded, but for some AutocastTypes the tower would start autocasting again, even though the player had switched it off, with autocast toggle suggesting that the autocast was off.-Build mode tower grouping now takes into account the 'sell' button. ie. number of towers per base is now 11 rather than 12. If there are more than 11 towers for a given element in a given rarity, an additional base tower is created for that element and rarity. This functionality means that all darkness uniques will again be accessible in build mode.-Fixed a rare List leak that occurred when there were too many projectiles (>2000) in use concurrently.-Fixed a bug with bonus wave timer not being released for first player to beat the final wave in race mode.

Creeps-Invis: Made the ability a bit less common.-Protector: The curse now also reduces multicrit by 2. Champion-creep protection radius from 800 to 1000. Champion-tower max distance from 800 to 1000. Curse projectile speed from 600 to 750. -Gravid: More sophisticated leak calculation algorithm implemented. For starters, it means that a gravid wave can no longer take more player lives than other creep waves. However it also means that if you leak a gravid creep on tincy hp, the health of the children it was carrying is considered in the leak calculation. Fixed hp and leak ratio calculation for third generation creeps and beyond. Maximum mana of parent now gets equally split amongst children. Also, bosses can now split into only 2-3 children with a small chance for 4 (down from 2-4, with a small chance for 5).-Brain Drain: Removed.-Creep abilities that affect movespeed, bounty, armour and experience (Speed, Wisdom, Relic, etc.) now apply these as regular modifications (visible in the creep multiboard, rather than changing the base value). This means that these creep ability modifications are now additive rather than multiplicative. This will have some noticable differences for some waves. For example, you will now be able to raise the itemdroprate for waves that have 0% itemdrop rate like 'Ultra Wisdom', but will find it near impossible to slow down Speed++ waves.-Mass Challenge: Health increased by roughly 7%.-Final Boss: Still eats 100% lives if leaked, but no longer has any abilities. Lizard version of final boss (exclusive to lvl 240 in v1.05) has been removed. It might resurface in some future release with possibly new/changed abilities.-Bonus Round: Health increased by roughly 15% across the board.

Items-Oil of Lore/Arcane Oil of Lore buffed from 24%/60% to 28%/70%

Bonus Modes-Slight rewording of the RACE mode description: next wave spawns when any TEAM has finished the current wave.-Next level timer in extreme mode now reduces by a rate of 1sec/20 levels for levels above 120. (So now it's a linear ramp from 25s to 40s from levels 1 to 30, a constant 40s from levels 40 to 120, then a linear ramp from 40s to 34s from levels 120 to 240.)

Chat Commands-Added '-autospawn <timeout>', which will automatically press the 'Start Next Level' button for the player <timeout> seconds after the current wave has finished spawning. Your ally needs still needs to type '-cede' for this to autospawn waves in team mode. The autospawn timer can be switched off by typing '-autospawn off'.

Miscellaneous-Reworked the diminishing returns formula such that the values affected transition more smoothly at the the points where diminishing returns kick in (60% and 170%). With this change, the diminished amount can also no longer go below 0%.-Added some random embellishment to the top left corner of the map. Please excuse my artistic skills.

Behind the Scenes-Now using a custom compiled pjass.exe with a bigger stack: It seems the regular one could no longer handle the amount of towers we have in the game. (Credits to Deemzul)-Unit.orderStop() no longer pauses the unit while issuing the order.-Effect system overhaul!! This is a big change that involved a rewrite of the Effect system, merging into it the SFXAtUnit commands from the header. It's now split into three effect types: simple, regular and animated. Simple effects are identical to the SFXAtUnit commands with the added bonus of now having a settable lifetime. Regular effects are a new addition, providing most of the functionality of the old Effect system, with the addition of settable pitch, but at the expense of settable animation. However these effects are recyclable, which should provide a big increase in efficiency and combat at least some of that lategame lag. Animated effects are the same as those in the old effect system, allowing animation of the effect, but not being recyclable, and thus being least efficient of the three. Please report any suspiciously behaving effects, as being a new system, it may still have a kink or two.

Here is the next release of our YouTD Devkit. It contains many updates and fixes.

Devkit v1.25

Scripts-Parser will now throw tantrums if plusses/minuses immediately preceding numbers or square brackets aren't highlighted, and when there is undue indentation in the description.

Creation Maps and TestMap Stub-Unit.getSize() will now return SIZE_MASS_CHALLENGE as SIZE_MASS and SIZE_CHALLENGE as SIZE_BOSS-Unit.getDamageToSize() will now return the modifiers for SIZE_MASS and SIZE_BOSS when called on SIZE_MASS_CHALLENGE and SIZE_CHALLENGE respectively.-Items now fly to an 'item area' rather than to creep spawn point.-Tooltip no longer states '-0% damage per bounce' for bouncing attacks that don't get weaker with each bounce.-Reduced the minimum period for EventTypeList periodic events from 0.2 to 0.1.-Updated the rects in the testmap to reflect those in the main map (ground and air creeps now use the same waypoints; creep lane pathed out).-Cleaned up a bunch of random testmap-specific leaks.-Fixed a bug where Effect instances entering the creep finish area would cause doublefrees.-Fixed the TargetType struct (it was returning junk for custom targettypes every since mass and boss challenge were added as creep types in Creep struct).-Cleaned up some of the divide by zero bits and bobs in the projectile trigger. (They weren't causing any issues cause they were being caught, but now it won't be displaying divideByZero warnings anymore unless there is a good reason to do so.)-Playor.getNumTower() method renamed to Playor.getNumTowers().-Lightning struct has been moved to its own trigger!-Effect struct rewritten - Effects are now broken down into three types: SIMPLE, REGULAR and ANIMATED. SIMPLE effects have the same functionality as the old SFXAtUnit commands, but also allow timed destruction. REGULAR effects are similar to the old Effects, but are recyclable and allow changing of their pitch, but cannot be animated. ANIMATED effects are identical to the old Effects - they can be animated, but are least efficient for the map.-Added a fancy debug multiboard to the testmap, accessible when testing your tower in DEBUG mode (which you should always be doing anyway) and pressing the escape key. It can help identify if your tower/item is leaking stuff. (credits to Deemzul)-Corrected description for Creep.getCurrentArmorDamageReduction() - it can in fact return negative values.-Unit.getZ() now returns a RELATIVE z height, with an impact offset added to better estimate the unit's centre.-Lightnings now expect RELATIVE z heights, rather than absolute.

New Functions-Added AutocastType.getBuffType() method.-Added Unit.getProp_Attackspeed(), Unit.getProp_DamageBase(), Unit.getProp_DamageBasePerc(), Unit.getProp_DamageAd() and Unit.getProp_DamageAddPerc().-Added an Iterate.nextRandom() method which grabs the next unit from the iterate at random.-Added an isPointOnCreepPath() function to the header trigger, which will return true iff given x/y coordinates are on the creep path.-Added Creep.moveToPoint(), which allows movement of creeps to various locations without having to worry they'll get stuck.-Added Unit.addExpFlat() and Unit.removeExpFlat() functions which will not scale the value by exp ratios.-Added Lightning.setColor(), to change lightning color and opacity.-Added Unit.addMana(), Unit.addManaPerc(), Unit.subtractManaPerc().-Added Unit.resetCooldowns() to creation maps (this method has already existed for a few versions of the testmap, but hadn't been documented).-Rewritten Effect trigger - refer to it for the updated methods.

NOTEFor those that wish to download only the updated files, here is a link to them. Please note that there's been a small change to the way content is injected, so it is imperative you update all of your scripts, along with the testmap stub and tower creation maps. Read the README within for instructions on where to extract the files to.YouTD Devkit v1.25 NewBits

Previous Bugs-Fixed some more memory leaks.-An investigative fix to the rare wavespawn bug. Either the bug will still be around or it won't, but it will provide me with feedback as to where the true cause of the bug might lie.-Fixed a bug with the aura system where auragivers could queue up with the same auratype more than once per buff. This had potential to overflow lategame, and also resulted in auras not downgrading when the auragiver levelled down.-Fixed a bug where some challenge waves were immune to silence.-Fixed some lanes spawning airwaves with wrong initial facing.-Fixed multiboard displaying wrong values when movespeedPerc was less than 100% (wasn't taking into account diminising returns).-Fixed a bug with the vjass compiler, which was not properly deallocating instances of structs with extended allocation sizes. (credits to Deemzul)-Fixed the TargetType struct (it was returning junk for custom targettypes ever since mass and boss challenge were added as creep types in Creep struct)-Fixed onPurge events returning the Unit rather than the Buff..-Fixed Unit.purgeBuff causing doublefrees when the onPurge event dealt lethal damage to the creep.-Fixed a bad interaction between Projectile.destroy() and Projectile.avertDestruction().-Fixed a little bug with 'creator joined' text not always fully displaying.-Creep and tower lists now get properly flushed when a player is defeated. (Only caused problems with debugging)-Fixed a possible zero division when detecting for 'cheated' onAttack events.-Disabled projectile processing on the final tick of a projectile that's about to get destroyed. (This might give a very slight boost to performance as well as fixing a divideByZero issue that was loosely tied to this.)

Items-Fixed tooltip on basic oil of sorcery.

Creeps-Stun Revenge: HpModifier increased from 0.4 to 0.43.-Slow: Minimum level required raised from 0 to 32.-Unlucky: Chance to proc reduced from 100% to 30%; debuff's trigchance reduction increased from 3% to 10%.-Gravid (re-added): Boss/champion only ability. Won't spawn with Second Chance. Bosses can have from 2-4 children, with a small chance for 5; Champs will always have only two children to prevent things from getting out of hand. Children take 12 secs to reach adulthood. Rest is same as before (except, of course, creeps should no longer be getting stuck in cliffs).-Regen & Regen+: Creeps now enrage slightly earlier. Enrage SFX is now created on the unit, rather than at its position.-Immune: hpModifier from 0.62 to 0.64; these creeps now have a manapool and need to have at least 10 mana to remain immune.-Evolving: hpModifier from 0.8 to 0.7; changed proc threshold from damage above 10% of creep's max health to damage above 8% of creep's max health; changed element resistance on proc from a flat 10% each time, to 40% on the first, 20% on the second, 10% on the third, and so on. This ability will no longer pop up on air or boss waves.-Protector (new creep ability): if a creep dies within 800 AoE of a champion, the champion will start channelling powerful negative energies onto the killing tower, reducing attackdamage and spelldamage by 130% until all other non-champion creeps have left its AoE. Silencable. minLvl: 64, hpMod: 0.65, will not spawn with regen. The champion takes -100% damage from attacks and spells while chanelling.-Refreshed the creep ability exclusion group setup, which was starting to exclude even non-OP ability combinations.. If you find that any OP combinations have suddenly shown up again, please post them.-The level 120 challenge (level 80 in trial; level 240 in neverending) has been renamed to 'final boss'. It also now eats 100% of the player lives if it reaches the finish regardless of how much damage was dealt to it, and thus it in most cases must be defeated to reach the bonus wave.-Ground and air creeps now use the same waypoints.-Better terrain checks now implemented to ensure creeps no longer get stuck from moving/teleporting abilities.

Extra modes-Race mode would formerly be a little lenient where if you killed a wave, it would not start the next wave for players that were currently in the middle of spawning a wave. Now it is no longer lenient. It queues up these waves that can't get spawned immediately and spawns them as soon the current wave finishes spawning. This should be more 'racey' and also provide a much more intense game.

Miscellaneous-getCurrentAttackspeed function now stays within the bounds of the wc3 engine limits (min -80%, max +400%).-Attackspeed displayed in multiboard now accounts for the minimum attackspeed possible.-Reduced the minimum period for EventTypeList periodic events from 0.2 to 0.1.-Creep.getCurrentArmorDamageReduction can now return negative values if the creep has negative armour (takes more damage than tower deals).-Builder no longer starts with the "StartNextLevel" ability. It is instead added once the first wave has started spawning.

Known Issues-Savecode gets written to wc3 directory when a replay is watched. We have a replay detection system (that doesn't waste a pause), but it's still in testing phase, so might switch this on in a later release. For now just be aware, that if you watch someone else's replay, your main savecode will get overwritten and you'll have to refer back to your backlog to find your last savecode.

Although we found some severe bugs which normally would have delayed the release long after Christmas glowackos did everything while on vacation to get the next version ready. Therefore here is the new version (v1.04). Enjoy!

Changelog YouTD v1.04

Previous Bugs-Fixed a nasty interaction between doAttackDamageAoE/doSpellDamageAoE and damage methods that are called in onDamaged events.-doAttackDamageAoE/doSpellDamageAoE are now properly centred for unit-based towers.-Buffs are now properly upgraded when there is an incoming buff of the same bufftype with the same level but higher power.-Autocast doublecheck now also makes sure autocast is still enabled before trying to re-cast.-Fixed doSpellDamage and doAttackDamage calls from misreading the unit's size when determining how much damage to deal to it.-Some more unit leaks addressed (extra thanks to Deemzul for systematically searching through the compressed map's code to find these).

Items-Upped ratio of item drops that are oils/consumables from 0.35 to 0.4.-Reworked Seeker's and Arcane Seeker's oils. They now grant 2%(+0.08%/lvl) and 5%(+0.2%/lvl) bonus item chance and item quality respectively (down from 10% and 25%), but the bonus is applied to all towers within 180 AoE of the oiled tower.

Creeps-Mass Challenge and Challenge waves are now treated as Mass and Boss respectively.-Some slight adjustment to creep hp growth across the board. Most noticeably beginner mode creeps will now be significantly weaker, especially at later levels in the game.-Reduced demana aura strength from -800% (-500% stated) to -200% regeneration, and range from 1300 to 1200.-Slow aura now states the attackspeed reduction (-50%).-Meaty waves food drop from 5 to 2.

Miscellaneous-Raised the allocation limits for List and ListElement instances even further, so that they sit just under powers of 2 now (space efficiency).-Some library dependency rearrangement.-Adjusted endgame cinematic camera rotation to account for increasing numbers of creators.

After the last release we noticed quite a few bugs which did not occur while testing. These bugs influenced the gaming experience negatively. Therefore we worked hard - in fact glowackos did - to bring you a fixed version as soon as possible and here it is.

Changelog YouTD v1.03

Previous Bugs-Increased the allocation limit for List and ListElement objects to address the lategame overflow issues players were experiencing.-Towers can be built in quick succession again without confusing the engine.-Projectile start/end points and Casts are now properly centred for unit-based towers.-Buff Special Effects are now properly centred for unit-based towers.-cb_banish now shows a 'banished' buff icon on the target.-added a 'doublechecking' function to the autocast system. If it initially thinks the cast has been successful, it will (after a short delay) check whether the EventHandling trigger registered the cast as having gone off. This should fix the problem with some towers with slow cast times tricking the engine into thinking their casts were successful, when in fact the target had died or moved out of range before they had finished casting their ability.-removed all commas from buff descriptions as they would cut off any text following them..

Creeps-Unlucky buff visual effect is now consistent across all towers.-Slow and ManaDrain aura buff effects now show buff icons on the target.

Miscellaneous-Added some highlighting of the gamemode messages.-The "-follow" command will now chop off all the other stuff in the next level multiboard, so that only the upcoming levels of the team being followed are shown.

Here is the next release of our YouTD Devkit. It contains many updates and fixes.

Devkit v1.24

Scripts-injectTower.gsl: fixed 0-range autocasts having their range displayed in the tooltip.-commonParse.gsl: will now check for commas in buff descriptions (wc3 doesn't like this, and we need to respect its fussiness!)

Creation Maps and TestMap Stub-Solid restructure and update of all triggers in testmap.-Bone decay time to 8 secs.-Item drops in testmap no longer fly to the creep spawn point.-Added a getBaseArmorValue method to the Creep struct.-The Item.destroy() method can now safely be used to destroy items. (This will destroy the raw item as well, so no need to worry about that)-Fixed Unit.subtract mana in the testmap. (Its description had been updated in the creation maps, but the functionality still wasn't correct in the testmap)-Added a '-zoom' testcommand that works the same way as the one in game.-Added the function 'isPointBuildableForPlayer(). Probably going to be very rarely used, but if interested, read more in the function comments in the creation maps.-Added all standard highlighting colours for element, rarity and attacktype to the highlighting trigger in creation maps.-As an undesirable side effect that came about when fixing cb_silence, any BuffTypes that duplicate this predefined buff and set an icon for it will result in TWO buffs showing up on the unit: the default 'this unit is silenced' one, and the custom user-defined one.-SetUnitFlyHeight should now be working for unit-based towers.-Unit.getX() and Unit.getY(), now return the 'proper' coordinates. They work just just like earlier, except that if called on a unit-based tower, they will return the coordinates of the centre of that tower's tile, rather than the coordinates of the unit itself (which are offset).-Added Unit.isStunned, to match the existing Unit.isSilenced and Unit.isBanished. Note that these can also be found by searching for the buff's corresponding stacking group on the Unit.-cb_banish should now be properly 'duplicatable'.

Miscellaneous-Updated JNGP version to 2.0, so download the full devkit+JNGP if you want to be hip with the times.

NOTEAll the files have been compressed in 7z format, cause glow ceebs finding a program to compress folders to rar.You can open them using 7zip (which is, imo, the best archiving tool around).For those who do not wish to download the whole devkit, here are two links containing only the changed files (read the README in each of them to know where to extract them to):-New bits-New JNGP

Alright, here it is. We finally managed to release a new version of YouTD. This version fixes some problems with the some game modes, shared stashes and neverending. There are also some new creep abilities, builders and a new savecode system which adds easier savecode management:

Quote:

Savecodes now get automatically written to a file titled 'savecode.txt' (overwrites itself each time) in the player's 'Warcraft III\save\YouTD\' directory. A backlog directory is also created at the same location, where a file is created with the version name and loadcode as the filename, so that players can keep a history of their codes. Just sort that folder by date modified. Please note that codes will not get loaded automatically by the map from this location. Although this is possible to do, (AFAIK) it is not possible without opening a huge window for shady characters to tamper with the map. So you will still need to copy paste your code from that location at the start of the next game.

This version also features 31 new, 59 updated and 2 deleted towers and 4 new, 2 updated and 3 deleted items. You can check the changed content in our new tower / item changelog (Changelog). These were some major changes; for all changes, check our changelog.

YouTD v1.02 - Changelog

Previous Bugs-Fixed the bug with predefined buff 'cb_silence' which would cause the whole game to crash if the buff lasted longer than ~1 second on the unit. This should make Nortrom playable again!-Fixed issue with screen sometimes locking in SHARED STASHES mode.-Fixed issue with multiple keepers of wisdom popping up if player loads 0 xp (as a result of using a code from a no longer supported version).-Fixed issue with bonus round timer not getting released in extreme mode.-Addressed some possible divideByZero errors. This should definitely lessen the projectile system's fragility. (Thanks Deemzul for pointing this out.)-Moving projectiles with no rotation now have their facing properly reset after creation.-Moving projectiles now have their zspeed initialised properly on creation, and reset when recycled.-Moving projectiles now have their zspeed updated properly at each tick (some random static variable was being referenced earlier, which could've resulted in threadcrashes D:).-Fixed another issue with the aura system, where the expiration check would go haywire when executed while a tower was being upgraded (when tower unit was destroyed, but the wrapper struct still existed). Will also now fire an exipration check on an aurabuff before attempting to refresh/upgrade it.-Fixed player starting gold being added to 'gold farmed' in player multiboard.-Fixed buffgroups not carrying over for towers that were put into buffgroups of other players.-Lightnings, Levelup/Oil and some other effects cast by towers are now properly centred on unit-based towers.-Creep level (number under its name) no longer represents its tier. It is now just always 1. (Levels 6+ were giving creeps immunity to certain casts..)-Cleaned up some more handle leaks here and there, plus some rare strain of doublefree.

Creeps-The 'Abilities:' heading will no longer be displayed in a creep's MB if that creep has no abilities.-Meaty ability now only has a 10% chance to drop food in the bonus round (this chance scales inversely with the creep's triggerchances)-Gravid ability will be sitting this version out, and will be re-introduced again as a boss/champion ability in the next version, after more thorough cliff-stuck glitch testing has been done. :3-New creep ability: Flock. Air only ability; double the usual amount of creep spawns; they fly out of the spawn point in cute little pairs.-New creep ability: Brain Drain. Creeps grant negative experience. >:)-Bonus round creeps now have 30% more health.

Items-Reduced the chance of an itemdrop being an oil from 50% to 35%. Yes, we know this is drastic, but oils are currently the top dog in YouTD, completely removing the usefulness of any non-oiled carry tower lategame. By bringing oils back into check, we'll be able to start bringing this issue under control, along with lessening the craziness of lategame item overflow. We expect the game to be a little tougher as a result of this change; if it proves too hard, we might bring back creep hp a little with the next version to make lategame a little more forgiving. This change might also make it possible to lessen the harshness of diminishing returns, but this'll need further balance testing first.-Consumable hobbit now also grants 2% lives, divided by the teamsize. (keeping this value low for the time being, in case it becomes exploitable.)-Reduced the critdamage granted by Oil of Accuracy from 10% to 5%.-Reduced the critdamage granted by Arcane Oil of Accuracy from 20% to 10%.-Reduced the critdamage granted by Arcane Oil of Accuracy from 30% to 25%.

Builders-Adventurer's item find chance from 20% to 15%.-Waterknight's exp ratio rescaled from 80% to 60%+1%/lvl. This small nerf is to account for the massive buff he will be getting with exp loss also being scaled by exp ratio now. (See changelog, misc section)-Fixed Benevolent witch having her bonuses all muddled and topsy-turvy. She now grants what is stated in her description.-Some tincy tweaks to a few builder backstories.

Extra modes-Timer countdown between levels for RACE mode reduced from 5s to 2s. This time is now also reduced further with every wave level, down to 0s at the last creep wave.-Players must now roll their own starting towers before they are allowed to purchase from the stashes in SHARED STASHES mode.-Chance to roll a tower now gets reduced in SHARED STASHES mode by a factor of [numPlayingPlayers / 2]. For example, when you research a level in an element in a 4-player game, rather than gaining a 10% chance to roll a tower of that element after each wave, you'll gain only a 10 / (4 players / 2) = 5% chance. This means that this change will only affect games with 3+ players. Note however, that there is still a minimum of 1 tower researched per player per level.-Number of starting towers in SHARED STASHES mode reduced from 6 to 4.

Miscellaneous-Savecodes now get automatically written to a file titled 'savecode.txt' (overwrites itself each time) in the player's 'Warcraft III\save\YouTD\' directory. A backlog directory is also created at the same location, where a file is created with the version name and loadcode as the filename, so that players can keep a history of their codes. Just sort that folder by date modified. Please note that codes will not get loaded automatically by the map from this location. Although this is possible to do, (AFAIK) it is not possible without opening a huge window for shady characters to tamper with the map. So you will still need to copy paste your code from that location at the start of the next game.-All player commands are now case insensitive (some were already insensitive in previous versions).-Player lives are now always rounded up to the nearest 1% in the multiboard.-Reduced the decay time of bones from 15s to 8s to reduce lategame lag.-Severed the tie that building towers from items had with Lists. Now, if/when Lists start to bug, you won't get a random tower building from a tower item.-Non-interpolated projectiles can now have their positions changed during their own periodic events by setting their .x and .y coords.-An upgraded tower's experience, kills, level, damageDealt and permanent effects are now transferred over BEFORE the successor's onCreate events fire.-Once a mastery in the Keeper of Wisdom is maxed it will now disappear (rather than a message popping up when the player attempts to click it again).-Next level timer dialog now says 'BONUS LEVEL in: xxtimexx' rather than 'Level 81/121/241 in: xxtimexx'.-Added information on Diminishing returns to the Quests log. Also prettied up the whole log with some additional highlighting here and there (plus a typo fix).-Unit.RemoveExp is now inversely affected by expRatio (previously it was unaffected). ie. if your tower is meant to lose 2 exp but it has a ratio of 160%, then it'll only lose 2/1.6 = 1.25 experience. Similarly, if your tower has an exp ratio of only 40%, it'll lose 2/0.4 = 5 experience. Any ratio below 10% is treated as 10%.

We created a new GHost++ Config file if you want to host the map with a bot.

Today the new YouTD changelog went live. The changelog will contain all changes for upcoming versions of YouTD. Changes are reflected in realtime and once a version hits all changes will be saved and available in a new tab.

The changelog can be found in the YouTD header section or the YouTD links forum thread.

Previous Bugs-Projectile colouring is now properly reset in the recycling process.-Fixed bug with projectiles spawning to the side of their towers instead of from them.-Fixed issue with projectiles initially facing the wrong direction when released (bug could be seen most prominently on Quillboar, Crypt and Sapphiron's Cold Grave)-Fixed non-champion-only abilities from being added twice to champions in the bonus round, causing most modifications to be doubled at the cost of severe hp reduction. This was also the cause of inifite gravid growth.-Fixed air-only and boss-only abilities from being added to champions in the bonus round.-Fixed creep hpRegen and hpRegenPercent from being restricted to only positive values. Apart from fixing geyser and bronze dragon abilities, this means that creeps can now die from negative regen (will be treated as anonymous kill and thus no exp will be granted, but gold&points will still be gained).-Fixed a LAN savecode exploit.-Fixed Auras often not being reapplied properly when the auraGiver was upgraded.-Fixed a nasty typo in the DoubleList struct, which was causing chaos with the List struct. This would have been causing countless random errors in the game (including with auras, tower boni, tower effects, projectiles, etc..), as the game uses a lot of Lists..-Took care of doublefrees that were occuring when a buff was removed during its 'onExpire' event.-Fixed getBuffOfType returning 0 if the BuffType had been given a stackingGroup.-When a tower is upgraded/replaced, the onDestruction events will now fire BEFORE the predecessor passes over it's items and stats to its successor.-Fixed a bug where base damage oils would have no effect on paused (eg stunned) units.-Fixed stun and banish buff icons not appearing on units.

Creeps-Rescaled the constant, linear, quadratic and cubic components of creep hp growth to make early game a little easier for beginner, easy and medium difficulties, and a little harder for hard and extreme difficulties.-Gravid is now an air-only creep ability. To accomodate better for this, children will now mature within 8 seconds rather than 12 and the hpMod has been reduced from 0.45 to 0.4. Chance weighting has also been increased a little so the ability should now appear more often.-Gravid will no longer spawn with Second Chance.-Added some new creepAbils, play to discover them!-Movespeed in creepMB will no longer be displayed as any less than 100 (as this is the slowest a unit can move).-Renamed lvl 112 mass challenge to 'Challenge 14' from 'Challenge 13', as it was meant to be. Fixed tier number displayed under challenge name.-Fixed Challenge hint typo: loose -> lose.-Fixed a double-negative description error for demana aura.-Creep abilities are now listed in the creep multiboard.-After all creeps of a wave finish spawning, there is now a delay of [5secs / numCreepsSpawned] before the earlyStart button becomes available again.

Items-Increased Minecart's income rate bonus from 2% to 10%. Also changed floating text to display the bonus as a percentage rather than a decimal.-Increased Arcane Book of Power's fp boost from 6 to 8.-Increased Hobbit's bonuses: fp from 10 to 20, food from 4 to 8, income remains as is at 6%.

Builders-Unit.calcChance is no longer affected by the tower's triggerchances if the original chance is equal to or greater than 'certain'. This will fix the issue with Realist severely restricting most towers.-Pandaren Monk rescaled: attackspeed from 30% to 25%, base damage from 30% to 15(+1.4/lvl)%, spell damage from 30% to 20(+1.2/lvl)%, itemdrop from -70(+1/lvl)% to -60(+1.2/lvl)%, removed -50% debuff duration modifier, added -10% item quality modifier.-Arch Sorceress rescaled: spell critical strike damage from 80% to 50(+2/lvl)%, base damage from -15(-1/lvl)% to -10(-1.2/lvl)%.-Realist rescaled: base damage from 15(+1/lvl)% to 15(+1.5/lvl)%, spell damage from 15(+1/lvl)% to 15(+1.5/lvl)%.-Elementalist rescaled: bonus fp per level from 1 to 2, damage to orcs from 15% to 25%, damage to undead from 15% to 20%, damage to nature from -15% to -20%, damage to humanoid from -15% to -5%.-Royal Assassin buffed: itemqual bonus from 1%/lvl to 2%/lvl-Spirit Warden rescaled: debuff duration from -50% to -30%, buff duration from 50% to 60%.-Benevolent Witch rescaled: mana regeneration from 100% to 50(+2/lvl)%.-Blademaster buffed: critchance from 6% to 8%.-Farseer buffer: attack range bonus from 50 to 75.

Extra modes-Introduced some basic competitive gamemodes, which allow for more interactivity between players. Currently, these extra modes are in beta and so there is no guarantee they'll be balanced or won't be exploitable.-Race: As soon as a team has defeated a creepwave, the next level timer is released for all players who are fighting a creepwave of the same level or lower. Next level timer is set to 5 secs for this mode instead of the regular 15 secs.-Shared stashes: Whenever a player researches a new tower, it becomes available in the stashes of all other players. Whenever a player buys a tower from their stash, that tower is removed from all other players' stashes. Rerolling towers is disabled for this mode. BEWARE: If playing random upgrade and you take a tower that another player has researched, you won't be able to level it unless you have forcepoints in that element!-Same builder: Host chooses builder; all other players get that builder. This means that players might end up playing with builders they wouldn't normally have access to due to their level. It also means that if the host has lost their savecode then he/she can choose only beginner builders for everyone. :3

Miscellaneous-Reduced Neverending Mode to 240 levels. The reason for this was threefold:One - wc3 was struggling with holding the game together in the later waves, leading to users often experiencing lag, weird overflow issues that could reset tower stats/bug aura system, and the occasional gamecrash;Two - little more was being brought to the table during waves 240-360, leading to a somewhat monotonous experience with item overflow and no use for gold. Plus playing a game for 6hrs straight can't be healthy. Three - the reason for neverending mode was to give players more time to screw around with the lategame towers rather than have their game finish on them abruptly. A bonus 120 waves should be more than sufficient for this.-Reduced cube conversion cooldown from 1s to 0.1s.-Tower.doAttackDamage crits will now be displayed red instead of cyan, except they will appear above the target unit, rather than above the tower like normal crits.-Spellcrits and Tower.doAttackDamage crits will no longer be shown if they are crits of 0 damage.-Removed all the random crap from the upkeep tooltip (when you hover mouse over it). It now says stuff relevant to YouTD.-Can now only roll a common tower on your last re-roll if you lack the forcepoints to buy an uncommon.-Renamed all 'lumber' messages and variable names to 'forcepoints'.-Capitalized 'Distribution' in 'Bounty Distribution' in the little game mode summary box at start of game for consistency (yes, I am that pedantic).-Reduced the cap for tower EventTypeList PeriodicEvents from 0.2 to 0.1 (most of the descriptions in the tower creation maps were already saying cap is 0.1 anyway..).-Autocasts with zero range no should no longer have their range displayed.

We created a new GHost++ Config file if you want to host the map with a bot.

Here is the next release of our YouTD Devkit. It contains many updates and fixes.

Devkit v1.23 Changelog

Scripts-injectTower.gsl and injectItem.gsl: updated to handle advanced targetTypes in autocasts; fixed creation of superfluous targetTypes for auras.-tableTooltips.gsl: "-" sign now highlighted for bounce attack-YouTD_header.gsl: added special f2s methods to get proper rounding (was done a few versions ago, but forgot to upload).-spellCheck.gsl: greatly expanded the library of small words that shouldn't be capitalized in headings (there were a few common ones missing: ie. 'to').-annotations.gsl, commonInject.gsl, injectTower.gsl, injectItem.gsl: now handles function/struct imports/exports. Remember to use unique and meaningful function/struct names because, just like global params, functions/structs you import/export will be visible across ALL other towers and you don't want your function/struct called by some other tower by accident. Also increased level of code parsing to clean up indentation and remove extra whitespace and commenting from injected code. (Check out how neat the libinject trigger now is! )

Creation Maps and TestMap Stub-Devkit now uses the same projectile recycling system that is used in the actual map.-Updated most triggers to reflect changes/fixes in main map.-Fixed a number of trigger descriptions.-Added a set of doCustomAttackDamage methods to the Tower struct, which do the same thing as their doAttackDamage counterparts, except that the attacktype can be chosen. -Added a setScale method to the Unit struct. Note that for creeps, developers should use the adjustScale method provided in the creep struct.-Added a getHeldItem method to the Tower struct, which returns an Item at a chosen position, or 0 if there is no item.-Added an Item.drop() command. Note that this can also be used in conjunction with the Tower.getHeldItem command to force towers to drop particular items.-Added more commenting to the Event.getTarget() method in the Event trigger, to emphasize what targets onDamaged and onAttacked events return.-Added Event.getCurrentPeriodicEvent(), which can be called from inside a periodic event tick to gain access to the periodic event handle. (This was added quite a while back, but forgot to mention it in the changelog)-Added advanced TargetType support for Autocasts: the TargetType field will now accept more specific target types, restricting the autocast to particular tower elements or creep races/sizes. NOTE: this will only affect the autocast targetting; forbidden races/sizes will still be manually targetable, so be sure to account for this in your code!-Added an Iterate.count() method which returns the number of Units remaining to be counted (not for counting corpses!).-Made Unit.addPermanentEffect accessible in the tower/item creation maps. This method takes an EventTypeList and applies it to a given Unit. For towers, this EventTypeList will remain applied even if the tower is upgraded/replaced. Use this method only for VERY unique abilities.-Added a 'Re-release' button to the testmap that can release the last released creep wave again (so you don't have to click through all the menus..). Hotkey for this is 'n' and hotkey for usual release button is 'c'.-Fixed various commenting here and there.

Test CommandsNOTE TO DEVELOPERS: Please always test your towers in debug mode (Choose JassHelper from dropdown menu -> Debug Mode). It will provide much more feedback to you when things go wrong! Test your towers at their limits by giving them monster stats with the '-mod' commands and use the '-debug' command ingame to monitor your tower's progress to ensure everything is running as expected.-"-test mod" and "-test exp" will now be applied to all selected units, rather than to just one.

10 files have been updated in total. For those who wish to update just those files without redownloading the whole devkit, replace the files in your devkit at the following locations with the files in this zip:YOUR DEVKIT FOLDER\YouTD - tower creation map and item creation maps go hereYOUR DEVKIT FOLDER\YouTD\data - testmap stub goes hereYOUR DEVKIT FOLDER\script\lib\YouTD - all gsl scrpit files go here

We finally got the first YouTD (non-RC) version released. This release fixes many bugs from previous versions and adds some cool new features as well. I hope you enjoy the new version.

Changelog YouTD v1.00

Previous Bugs-'Show Unit Stats' ability can now be cast on immune creeps.-Fixed creep regen ability creating a new EventTypeList during the game every time a creep with this ability spawned.-Fixed item aura removal again..(bug re-emerged after aura rework in previous version)-Fixed an inefficiency where aura refreshing was storing superfluous elements in the aura lists.-Fixed an issue with AC_TYPE_ALWAYS_BUFF autocasts going permanently idle after being disabled then enabled again.-Fixed projectile passives not being removed from projectile on destruction.-Fixed tower items not getting immediately dropped when put in ally's inventory.-Fixed an issue with player 12 (one of the four creep players) not being allied properly to the lane partners of players in a north or south lane.-Fixed a naming issue with creep players.

Loadcode parser-Loadcodes have been reset for the next version. This was a tough decision, as we knew there are many players who have worked hard for their codes,however we decided that since this is the beginning of no more RC versions, the codes should be reset so that we can properly turn over a new leaf for this map.Please remember that the levelling component is only a small part of this map, and have fun playing with the (beefed up) beginner builders again! -Loadcodes will be compared against older YouTD versions in the correct order now (newest to oldest).-Tidied up loadcode parser to be more multiplayer friendly: this should resolve the rare bug where code was mistakenly read as being from an older version of YouTD.-Addressed single player bug. If you still encounter it, be sure to report it!-Fixed a loadcode exploit (no more naughty hacky cheaters).

Builders-Reduced debuff duration reduction on Spirit Warden from 100% to 50%. Reduced his damage to bosses malus from 15% to 10%.-Reverted changes to Elementalist and added some bonuses. He now deals 15% increased damage to Orc and Undead and 15% decreased damage against Nature and Humanoid. The income malus has been removed.-Raised Queen of the Seven Skies' attackspeed bonus from 5% to 10% and her base bonus against air from 15% to 30%.-Added 1% item quality per tower level to Royal Assasin.-Raised Benevolent witch's mana regeneration bonus from 50% to 100%.-Raised Blademaster's crit chance bonus from 3% to 6%.-Removed mana and mana regen boni from farseer. Added +50 tower attack range.-New Specialist builder - Realist. (Play to discover his bonuses)-Added builder icons to Stats Multiboard.

Creeps-Silence will no longer prevent creeps from secondchancing or turning ethereal.-New Creep Ability: Gravid. Upon death, the creep's children jump out and continue running to the finish. A random number of children can spawn between 2-4, with a low chance for 5. Children have a combined hp equal to their parent. After 12 seconds children will have grown to full size and will spawn their own offspring when killed. HpMod: 0.45, minLvl: 40, abil will only appear on bosses and air waves. Note that the item dropchance, gold and exp granted have been reduced by 80% for these creeps, but the children will give just as much as the parents.-New Creep Ability: Spellbinder. These creeps zap up to three mana using towers in 1000 aoe every three seconds, stealing up to 30% of each target's mana and silencing it for 3 seconds. Costs creep 30 mana per zap (champion-only ability). This ability is silencable. HpMod: 0.8, minLvl: 48. Does not stack with demana aura.-Reduced the weight of the magic immune ability by 10% (will appear a tidbit less often now)-Added some flavour to the bonus round.-Every 40 rounds the number of creeps that can spawn in one round will increase slightly.-Every 120 rounds the number of champions that can spawn will increase by 1.-On Extreme difficulty, the next level timer is now released once the level has finished spawning as opposed to once the wave is defeated. Team has 25(+0.5/lvl) seconds before next wave spawns. This timer is capped at 40 seconds.

Miscellaneous-Projectiles now get recycled (whole Projectile object, unit included). This should be less strenuous on the engine now.. can only wait and see Cap of 2000, before they start getting destroyed rather than recycled. Please not that this may have some visual side effects with directed projectiles.-Raised unit movespeed cap from 500 to 522.-All genvals (buff duration, debuff duration, itemdrop, itemqual, trigchance, bounty) are now affected by diminishing returns once they pass 170% or fall below 60%. These diminished values will now be the ones displayed in the mb so there is no confusion as to exactly what each genval has been reduced to.-Teams dialog box no longer has the 'all together' option if there are only two playing players in the game.-Added trigger chance bonus to keeper of wisdom: +1.3%/upgrade.-Added a toggle to keeper of wisdom, which will let the player level masteries straight to max in one click. Also, a reminder that all masteries can be skilled with hotkeys using the QWER layout.-Silence now works on towers, it will prevent the use of both tower and item abilities.-Replacing a tower with a family member that has a lesser goldcost no longer returns 100% gold (it is now treated as though the replacing tower were from another tower family).-Hints can now be toggled with the "-hintson" and "-hintsoff" commands.-Changed victory figures back to steedless malfurions (What they were in RC2). They'll stay like this from hereon as i ceebs changing them for every version.-Cleaned up code for buffgroups-Added commands for manipulating the game camera (see in game player chat commands quest for details) -Moved buffgroups to their own quest item thingo.-Updated player chat commands quest thingo with new available commands.-Build mode is no longer referred to as 'lame and easy' in the gamemode dialog box, it's now just 'lame'. -Escape key now switches between player and stats mb, rather than always switching only to the player mb.-Fixed hotkey colouring for all builder tooltips (that other yellow was too bright )-Made tier completion time bonus message clearer (it is bonus points you get, not gold!)-Fixed hotkeys for autocast abilities: first autocast (from right) gets "V", second gets "C", third gets "X".-Number cruncher players are now considered as pro when the game decides which description to display for creep abilities.-Crit chance and spell crit chance are now coloured red in the multiboard when negative-The '-show' command for buffgroups now also shows which towers are buffing that group.-The stats multiboard now shows 'PLAYERNAME [XX]' rather than PLAYERNAME '[lvl XX]', so that those with small screens have less chance of cutoff. It should be obvious that the number in the bracket is the player's level.-Some fancy things now happen when a player is recognised as a YouTD contributor - if you've contributed to YouTD by making towers/items, be sure to provide your BNet name here, so that you can also get these fancy in-game effects too! The higher the YouTD score, the more effects (not fully tested, so expect whacky & retarded visuals :D).-When a tower is upgraded/replaced, all buffs are now removed prior to removing the tower unit. This means that onCleanup events in a buff can now safely still refer to particular attributes of the tower unit they belonged to.

-Updated most of the triggers (copypaste from real map).-added a getBaseBountyValue() method to the Creep struct.-fixed a rounding issue in parsescripts.-added calcAttackCrit().-added calcAttackMulticrit().-added missing space into dps tooltip.-Fixed an internal spelling error: Unit.substractMana -> Unit.subtractMana. Also changed this method to return 0 if <subtractIfInsufficient> is set to false and the unit has insufficient mana. Towers/items that used this method in the past will need updating.-Added Event.getAutocastType, which can be called from an onSpellCast or onSpellTarget event.-Added a bunch of accessors to the AutocastType struct. Namely: getRange, getCooldown, getManacost, isItemAutocast, getName.-Added creepMultiboard & show unit stats abil to builder.-Added a Lightning struct to the Effect trigger. Use the new methods within to create lightnings. Currently only supports static lightnings, so either destroy your lightning immediately after creation, or create it between stationary units (ie. towers, stunned creeps).-Added the TimerUtils trigger to the tower and item creation maps.-Set all testcreep collision sizes to 8.0. The numbers before varied from 16.0 to 32.0 and were causing some auras to go haywire. Also, creeps won't block each other so much anymore.-Added a bunch of methods to the Unit struct for adding spellcrits to the next spelldmg instance.-Added a setPower() method to the Buff struct. This is to be used only on AuraBuffs and should be called from the Buff's onRefresh event, as the aurabuff will otherwise revert to its old power when upgraded (ie, when tower levels up or when the aura giver changes).-Can now force a Unit to execute its Aura's onRefreshEvents with refreshAuras(). This will immediately call the AuraBuff's onRefresh event for every unit that this buff is on. Useful if you have a setPower call in your AuraBuffType's onRefresh handler.