Dota 2 Wiki

Hero Infobox edits[]

Your edits to the Hero infobox template appears to have removed semantic properties from a ton of heroes, resulting in missing things across the Wiki, like Table of hero attributes. I'm gonna roll it back for now and see if it fixes it. You can keep tweaking it but please keep SMW in mind! - Lemoncake(talk) 20:51, 10 January 2016 (UTC)

Strange thing, I did the same treatment to Template:Item infobox and there were no issues. Gonna do some investigation. Of course the aim was to add semantics, not to remove them. I only checked a few properties last time, was not enough it seems. Molldust (talk) 21:37, 10 January 2016 (UTC)
Are you sure it broke? Everything looks fine for me. I checked Table of hero attributes, Invoker, Invoker/zh-hans, Anti-Mage, Anti-Mage/zh-hans, Property:Title, Property:Title, Property:Strength even after purging each page to refresh the semantics. Maybe you looked at the table mid transition. If you find any errors, let me know and I try to fix asap. Most likely there will be some minor issues with the wrapper, but I think I catched all of them so far. Molldust (talk) 09:14, 14 January 2016 (UTC)
On my browser it looks like most of the heroes on Table of hero attributes are gone. Maybe it took a while before the properties disappeared? - Lemoncake(talk) 10:50, 14 January 2016 (UTC)
Still perfect for me. I tested on a new firefox profile with a cleared cache and no cookies. Can you name a few heroes that are gone and a few that stayed? Are all heroes showing up on Property:Strength for you? What browser are you using? It may be an issue with the ask query. Would be good to know some other experiences as well to identify the problem. Molldust (talk) 11:49, 14 January 2016 (UTC)
Nvm, I don't know how to count, it's way below the 111 heroes. Hold on. Molldust (talk) 13:20, 14 January 2016 (UTC)
Nailed it. Default release state is now true. Molldust (talk) 13:26, 14 January 2016 (UTC)

About old heroes and the hero infobox[]

Most heroes had totally different stats before their rework, so just using the wrapper is not good because it displays wrong numbers and it updates. Also, using the infobox puts them into categories. I think the best would be to create a 2nd hero box for old heroes and for custom game mode heroes, so they don't show up in the default heroes' categories. ~~ Bu3ny (talk) 13:17, 17 January 2016 (UTC)

Figured that out already and reverted the changes. I tried to come up with a good solution, but wasn't lucky so far:
  • It would be nice to be able to wrap pseudo items like Dagon and heroes/items from custom game modes. Therefore removing semantic properties is no solution. But then we have to introduce certain filters/properties to distinguish whether they origin from the main game or not (gamemode = main/haunted_colloseum/pudge_wars). Level stats (1/2/3/4 seconds CD for example) can't be handled by SMW directy, too. They need to be set once per value (cd = 1, cd = 2, cd = 3, cd = 4).
  • Removing the semantic properties from translation pages is necessary, but the setting "remove semantic properties" is not enough to solve all issues. For example the title property needs to be set for future translation switching. So far I worked around that circumstance and implemented it twice.
  • Template:Creep infobox uses no semantic properties. Main issue is that creeps like Kobold Foreman/Spirit Bear should have their own page and be transcluded to the camps/heroes. This also resolves the source-force-name dilemma.
I'll drop a note if I come up with a sane implementation. Molldust (talk) 14:26, 17 January 2016 (UTC)


It should be "upgrades" but not "updates". Elite stay (talk) 14:03, 21 January 2016 (UTC)

The page is so slow, I try to fix since 30 min :/ Molldust (talk) 14:06, 21 January 2016 (UTC)
God bless you. :( Elite stay (talk) 15:28, 21 January 2016 (UTC)
Fixed, the item nav caused troubles. Molldust (talk) 15:44, 21 January 2016 (UTC)
It seems that SystemNav have some problem. I'll fix it later. Thank you! Elite stay (talk) 15:53, 21 January 2016 (UTC)


Your changes are making Template:Cosmetic Item infobox look weird, the rarity and slot text doesn't align with the hero icon anymore. Example - Lemoncake(talk) 16:07, 12 February 2016 (UTC)

Did not notice the info until now. Was it fixed in the meantime? Looks good from what I can tell. Molldust (talk) 16:16, 12 February 2016 (UTC)
Are you sure? On Chrome it looks like this to me. Tried refreshing and everything. Looks OK on Firefox and IE though... - Lemoncake(talk) 17:15, 12 February 2016 (UTC)
Firefox user here unfortunately. I have 0 experience with Chrome debugging, so little possibilities to fix from my side. If there is some developer console, it would be helpful to know whether the hero icon or the rarity/slot reserve the double amount of height. I have a dream, where all browser vendors support and implement the same HMTL and CSS specifications. Molldust (talk) 17:39, 12 February 2016 (UTC)
Ok, well most of our users are using Chrome, so can you tinker with it or revert it? Thanks - Lemoncake(talk) 17:45, 12 February 2016 (UTC)
Pictogram comment.png Fixed Overflow discrepancy between the vendors. Molldust (talk) 18:00, 12 February 2016 (UTC)
Wonderful, thank you ! - Lemoncake(talk) 18:06, 12 February 2016 (UTC)

Kinetic Gems[]

I'd still like kinetic gems to be listed in hero equipment templates, so just keep that in mind when you change them. Thanks - Lemoncake(talk) 21:22, 26 February 2016 (UTC)

They should be included by default for every hero. Did you spot a case where it got dropped? It might have to do with the kinetic gem itself, if he is missing some semantic properties. Molldust (talk) 22:12, 26 February 2016 (UTC)

Thanks for your work[]

Hi Molldust. Just dropped by the old wiki to see how things were going. Looks like you're the current caretaker for a lot of my babies, including the oft-frustrating-but-fundamentally-useful SMW stuff. Consider that I pushed for SMW to be added before Dota got hats; it is now being used for roles that I could not have imagined. Wow! Thanks for all your work. I appreciate it. Also let me know if you have any questions about why I implemented some feature or another in a dumb way. —Kroocsiogsi (talk) 23:12, 26 April 2016 (UTC)

Hi mate, that's very pleasant to hear from the guy who actually set those things up! Actually SMW is the Schmoo of this wiki and caused a "few" pages to get deprecated. I'm glad the admins gave me so much free space and showed a lot of patience. I often did very drastic changes that caused a great stir and broke the wiki over longer periods or required them to help out with fixing. Molldust (talk) 23:37, 26 April 2016 (UTC)

A task for you[]

Hi Molldust, I need you to mass create pages for each hero with your bot:

1. Template:Tabs Hero - Template

2. Hero/Guide - Template

3. Hero/Counters - Template

4. Hero/Gear - Template

...and simply replace HERONAME in the templates with each hero's name. I've already done about a dozen heroes manually, so you'll have to skip the ones that exist. Let me know if this is doable. Thanks for your help! - Lemoncake(talk) 17:25, 10 June 2016 (UTC)

Ez task, but will take a while (~ 1 week) to set things up and make sure I don't break everything. Molldust (talk) 20:27, 10 June 2016 (UTC)
Sure, take your time. PS: I didn't name the template Tabber because we already have an extension that uses the tag <tabber>... oh well ._. - Lemoncake(talk) 20:42, 10 June 2016 (UTC)
Yeah, I know and they offer basically the same functionality. I would have named it Template:Tabs, but it's already in use. I will merge the two templates soon anyway, so I could rename all Tabbers to Tabs then afterwards. TabStart always bugged me out, because I was expecting TabEnd. Molldust (talk) 00:48, 11 June 2016 (UTC)
While I'm at it, I could move "Hero/equipment" to "Hero/Equipment", "Hero responses" to "Hero/Responses" and "Hero sounds" to "Hero/Sounds"? Molldust (talk) 17:59, 13 June 2016 (UTC)

And linking to Dotabuff and TorteDeLini wouldn't hurt either on "/Strategy" and/or "/Guide". Molldust (talk) 18:21, 13 June 2016 (UTC)

OK go ahead and move the three pages, but leave a redirect behind. Don't add the external links right now, I'll think about that in the future. Also, are you using AutoWikiBrowser to do this? - Lemoncake(talk) 19:31, 13 June 2016 (UTC)
Naa I write custom scripts for the PyWikiBot Molldust (talk) 19:56, 13 June 2016 (UTC)
Hey, that's good idea, if I'll tell you what to do with same russian pages could you create them too, after EN? Medok 20:28, 13 June 2016 (UTC)
Yes, that's possible. Do you want to copy-paste the EN pages? Or you want a completely new layout and manually insert the info? Molldust (talk) 20:47, 13 June 2016 (UTC)
I want the same template but with russian words and links. Medok 21:09, 13 June 2016 (UTC)
1. Hero/Guide/ru - Template
2. Hero/Counters/ru - Template
Other is identical to EN becouse have only templates. Medok 08:32, 14 June 2016 (UTC)


Now as we have separate wikies for each language, so then we have to get proper interwiki links. I did some iw corrections on some pages (example), but for global use (all articles in every 5 languages) we need bot help. What do you think about that? --Dark2Eagle (talk) 03:04, 8 February 2017 (UTC)

Yes we need bots, but they can only can do what we tell them. Updating the links right now makes little sense, because most the wikis are in the middle of renaming / moving etc. Once everything settles we can think about how we get most interwiki links done. You can read into Wikidata a bit if you like to. Molldust (talk) 09:00, 8 February 2017 (UTC)

response files move[]

Abaddon_audio_responses‎: abad_ -> vo_‎abaddon_abad_
Acolyte_of_the_Lost_Arts_audio_responses: kidvo_ -> vo_invoker_kidvo_
Alchemist_audio_responses‎: alch_ -> vo_‎alchemist_alch_
Ancient_Apparition_audio_responses‎: appa_ -> vo_‎ancient_apparition_appa_
Anti-Mage_audio_responses‎: anti_ -> vo_‎antimage_anti_
Arc_Warden_audio_responses‎: arcwar_ -> vo_arc_warden_arcwar_
Axe_audio_responses‎: axe_ -> vo_‎axe_axe_
Fists_of_Axe_Unleashed_audio_responses‎: jung_axe -> vo_axe_jung_axe_
Bane_audio_responses‎: bane_ -> vo_bane_bane_
Batrider_audio_responses‎: bat_ -> vo_‎batrider_bat_
Beastmaster_audio_responses‎: beas_ -> vo_‎beastmaster_beas_
Bladeform_Legacy_audio_responses: jugsc_ -> vo_juggernaut_jugsc_
Bloodseeker_audio_responses‎: blod_ -> vo_‎bloodseeker_blod_
Bounty_Hunter_audio_responses‎: bount_ -> vo_‎bounty_hunter_bount_
Brewmaster_audio_responses‎: brew_ -> vo_‎brewmaster_brew_
Bristleback_audio_responses‎: bristle_ -> vo_‎bristleback_bristle_
Broodmother_audio_responses‎: broo_ -> vo_‎broodmother_broo_ 
Call_of_the_Bladeform_Legacy: jug_ -> vo_juggernaut_jug_
Centaur_audio_responses: cent_ -> vo_centaur_cent_
Chaos_Knight_audio_responses: chaknight_ -> vo_chaos_knight_chaknight_
Chen_audio_responses: chen_ -> vo_chen_chen_
Clinkz_audio_responses: clinkz_ -> vo_clinkz_clinkz_
Clockwerk_audio_responses: ratt_ -> vo_rattletrap_ratt_
Crystal_Maiden_audio_responses: cm_ -> vo_crystalmaiden_cm_
Dark_Seer_audio_responses: dkseer_ -> vo_dark_seer_dkseer_
Dark_Willow_audio_responses: sylph_ -> vo_dark_willow_sylph_
Dazzle_audio_responses: dazz_ -> vo_dazzle_dazz_
Death_Prophet_audio_responses: dpro_ -> vo_death_prophet_dpro_
Demon_Eater_audio_responses: nev_ -> vo_nevermore_nev_
Disruptor_audio_responses: dis_ -> vo_disruptor_dis_
Doom_audio_responses: doom_ -> vo_doom_bringer_doom_
Dragon_Knight_audio_responses: DK_drag -> vo_dragon_knight_drag (without the last _ because there is drag_ and dragon_)
Drow_Ranger_audio_responses: dro -> vo_drow_ranger_dro (without  the last _ because there is dro_ and drow_)
Earth_Spirit_audio_responses: earthspi_ -> vo_earth_spirit_earthspi_
Earthshaker_audio_responses: erth_ -> vo_earthshaker_erth_
Elder_Titan_audio_responses: elder_ -> vo_elder_titan_elder_
Ember_Spirit_audio_responses: embr_ -> vo_ember_spirit_embr_
Enchantress_audio_responses: ench_ -> vo_enchantress_ench_
Enigma_audio_responses: enig_ -> vo_enigma_enig_
Faceless_Void_audio_responses: face_ -> vo_faceless_void_face_
Feast_of_Abscession_audio_responses: pud_ -> vo_pudge_pud_
Fractal_Horns_of_Inner_Abysm_audio_responses: terr_ -> vo_terrorblade_terr_
Great_Sage's_Reckoning_audio_responses: monkey_ -> vo_monkey_king_monkey_
Grimstroke_audio_responses: grimstroke_ -> vo_grimstroke_grimstroke_
Gyrocopter_audio_responses: gyro_ -> vo_gyrocopter_gyro_
Huskar_audio_responses: husk_ -> vo_huskar_husk_
Invoker_audio_responses: invo_ -> vo_invoker_invo_
Io_audio_responses: wisp_ -> vo_wisp_
Jakiro_audio_responses: jak_ -> vo_jakiro_jak_
Juggernaut_audio_responses: jug -> vo_juggernaut_jug (without last _ because there is jug_ and jugg_)
Keeper_of_the_Light_audio_responses: keep_ -> vo_keeper_of_the_light_keep_
Kunkka_audio_responses: kunk_ -> vo_kunkka_kunk_
Legion_Commander_audio_responses: legcom_ -> vo_legion_commander_legcom_
Leshrac_audio_responses: lesh_ -> vo_leshrac_lesh_
Lich_audio_responses: lich_ -> vo_lich_lich_
Lifestealer_audio_responses: lifest_ -> vo_life_stealer_lifest_
Lina_audio_responses: lina_ -> vo_lina_lina_
Lion_audio_responses: lion_ -> vo_lion_lion_
Lone_Druid_audio_responses: lone_druid_ -> vo_lone_druid_lone_druid_
Luna_audio_responses: luna_ -> vo_luna_luna_
Lycan_audio_responses: lycan_ -> vo_lycan_lycan_
Magnus_audio_responses: magn_ -> vo_magnataur_magn_
Majesty_of_the_Colossus_audio_responses: tiny_ -> vo_tiny_tiny_
Manifold_Paradox_audio_responses: phass_ -> vo_phantom_assassin_phass_
Mars_audio_responses: mars_ -> vo_mars_mars_
Medusa_audio_responses: medus_ -> vo_medusa_medus_
Meepo_audio_responses: meepo_ -> vo_meepo_meepo_
Mercurial's_Call_audio_responses: spec_ -> vo_spectre_spec_
Mirana_audio_responses: mir_ -> vo_mirana_mir_
Monkey_King_audio_responses: monkey_ -> vo_monkey_king_monkey_
Morphling_audio_responses: mrph_ -> vo_morphling_mrph_
Naga_Siren_audio_responses: naga_ -> vo_naga_siren_naga_
Nature's_Prophet_audio_responses: furi_ -> vo_furion_furi_
Necrophos_audio_responses: necr_ -> vo_necrolyte_necr_
Night_Stalker_audio_responses: nstalk_ -> vo_night_stalker_nstalk_
Nyx_Assassin_audio_responses: nyx_ -> vo_nyx_assassin_nyx_
Ogre_Magi_audio_responses: ogmag_ -> vo_ogre_magi_ogmag_
Omniknight_audio_responses: omni_ -> vo_omniknight_omni_
Oracle_audio_responses: orac_ -> vo_oracle_orac_
Outworld_Destroyer_audio_responses: odest_ -> vo_outworld_destroyer_odest_
Pangolier_audio_responses: pangolin_ -> vo_pangolin_pangolin_
Phantom_Assassin_audio_responses: phass_ -> vo_phantom_assassin_phass_
Phantom_Lancer_audio_responses: plance_ -> vo_phantom_lancer_plance_
Phoenix_audio_responses: phoenix_ -> vo_phoenix_phoenix_
Planetfall_audio_responses: earth_ -> vo_earthshaker_earth_
Puck_audio_responses: puck_ -> vo_puck_puck_
Pudge_audio_responses: pud_ -> vo_pudge_pud_
Pugna_audio_responses: pugna_ -> vo_pugna_pugna_
Queen_of_Pain_audio_responses: pain_ -> vo_queenofpain_pain_
Razor_audio_responses: raz_ -> vo_razor_raz_
Riki_audio_responses: riki_ -> vo_riki_riki_
Rubick_audio_responses: rubick_ -> vo_rubick_rubick_
Sand_King_audio_responses: skg_ -> vo_sand_king_skg_
Secret_Shop_audio_responses: secretshop_ -> vo_secretshop_secretshop_
Shadow_Demon_audio_responses: shadow_demon_ -> vo_shadow_demon_shadow_demon_
Shadow_Fiend_audio_responses: nev_ -> vo_nevermore_nev_
Shadow_Shaman_audio_responses:shad_ -> vo_shadowshaman_shad_ 
Silencer_audio_responses: silen_ -> vo_silencer_silen_
Siltbreaker_audio_responses: silt_ -> vo_siltbreaker_silt_
Skywrath_Mage_audio_responses: drag_ -> vo_skywrath_mage_drag_
Slardar_audio_responses: slar_ -> vo_slardar_slar_
Slark_audio_responses: slark_ -> vo_slark_slark_ 
Sniper_audio_responses: snip_ -> vo_sniper_snip_
Spectre_audio_responses: spec_ -> vo_spectre_spec_
Spirit_Breaker_audio_responses: spir_ -> vo_spirit_breaker_spir_
Storm_Spirit_audio_responses: ss_ -> vo_storm_spirit_ss_
Sven_audio_responses: sven_ -> vo_sven_sven_
Techies_audio_responses: tech_ -> vo_techies_tech_
Tempest_Helm_of_the_Thundergod_audio_responses: zeus_ -> vo_zuus_zeus_
Tempest_Helm_of_the_Thundergod_audio_responses: zuus_ -> vo_zuus_zuus_
Templar_Assassin_audio_responses: temp_ -> vo_templar_assassin_temp_
Terrorblade_audio_responses: terr_ -> vo_terrorblade_terr_
The_Magus_Cypher_audio_responses: rub_ -> vo_rubick_rub_
Tidehunter_audio_responses: tide_ -> vo_tidehunter_tide_
Timbersaw_audio_responses: timb_ -> vo_shredder_timb_
Tinker_audio_responses: tink_ -> vo_tinker_tink_
Tiny_audio_responses: tiny_ -> vo_tiny_tiny_
Treant_Protector_audio_responses: treant_ -> vo_treant_treant_
Troll_Warlord_audio_responses: troll_ -> vo_troll_warlord_troll_
Tusk_audio_responses: tusk_ -> vo_tusk_tusk_
Underlord_audio_responses: abys_ -> vo_abyssal_underlord_abys_
Undying_audio_responses: undying_ -> vo_undying_undying_
Ursa_audio_responses: ursa_ -> vo_ursa_ursa_
Vengeful_Spirit_audio_responses: vng_ -> vo_vengefulspirit_vng_
Venomancer_audio_responses: venm_ -> vo_venomancer_venm_
Viper_audio_responses: vipe_ -> vo_viper_vipe_
Visage_audio_responses: visa_ -> vo_visage_visa_
Warlock_audio_responses: warl_ -> vo_warlock_warl_
Warlock's_Golem_audio_responses: wargol_ -> vo_warlock_golem_wargol_
Weaver_audio_responses: weav_ -> vo_weaver_weav_
Windranger_audio_responses: wind_ -> vo_windrunner_wind_
Winter_Wyvern_audio_responses: winwyv_ -> vo_winter_wyvern_winwyv_
Witch_Doctor_audio_responses: wdoc_ -> vo_witchdoctor_wdoc_
Wraith_King_audio_responses: wraith_ -> vo_skeleton_king_wraith_
Zeus_audio_responses: zuus_ -> vo_zuus_zuus_
Zeus_audio_responses: zeus_ -> vo_zuus_zeus_
Can't move File:Anti death 01.mp3 to File:vo ‎antimage anti death 01.mp3. Extension error. Molldust (talk) 06:29, 11 October 2019 (UTC)
That's strange. I'll do them manually later then (once the bot is done). They should get movable once I upload the new files. Just list all the ones that don't work here. ~~ Bu3ny (talk) 09:58, 11 October 2019 (UTC)
Self-reminder: Unfuck the axe announcer after everything is done. My regex was too loose and a couple slipped into Category:Sounds vo axe. Molldust (talk) 20:22, 13 October 2019 (UTC)