• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

How do I get the lists of type ids (units, items, abilities, ...) ?

Status
Not open for further replies.
Hello,

I'd like to get the complete list of defaults types per classification:
- Units
- Items
- Destructibles
- Doodads
- Abilities
- Buff/effects
- Upgrades

I saw this old topic, part of what I need is here, but it is old and the method to get it is not described :(

Can somebody explain me how I can extract this data from game files ?
Dr Super Good talked about using "MPQ editor", but all I know to do with a MPQ Editor is to get the list of files in a map (.w3i, .w3a, ...), not how to read them :(
 
you get Cascview, open the warcraft 3 main folder with it. Then inside cascview you navigate to units or to units inside _Balance not sure which holds the correct informations. But regardless there are slk and txt files. The slk files should be openable with an excell software and contain the default data. While the txt files contain order, images, missle data, sfx etc.

While your warcraft 3 map is openable with mpq and holds changed values in regards to one used base set.
 
Level 5
Joined
Jul 4, 2007
Messages
84
Edit: This took me almost 3 hours, so shower me in +rep and donate at 3ICE.hu — thanks for the question, this was a very fun project.

836+2-3 UnitIDs found across all MPQ/CASC versions as of 2019. october 17. (Patch 1.31.1.12164)

Firstly, some weird extras no other SLKs have except one:

Extra ID found only in units\unitweapons.slk
nrmf

From _balance\custom_v0.w3mod\units\unitabilities.slk
oang

In both cases the remaining (hundreds of IDs) were slightly reordered but otherwise identical to the master list below. (So I did not make a mistake and find a loose weapon or ability ID.)
In both cases it is a unit ID. Probably leftover from a removed unit.

MANY files did not have these three IDs but were otherwise similar:
Code:
nba2
nsca
nsce

Lastly, Reign of Chaos of course:
_balance\custom_v0.w3mod\units\notused_unitdata.slk
Only has 466 of the 836 units.

From _balance\custom_v1.w3mod\units\unitbalance.slk
Code:
Hamg
Hblm
Hmkg
Hpal
hbot
hbsh
hdes
hdhw
hfoo
hgry
hgyr
hkni
hmil
hmpr
hmtm
hmtt
hpea
hphx
hpxe
hrif
hrtt
hsor
hspt
hwat
hwt2
hwt3
nlv1
nlv2
nlv3
halt
harm
hars
hatw
hbar
hbla
hcas
hctw
hgra
hgtw
hhou
hkee
hlum
hshy
htow
hvlt
hwtw
Obla
Ofar
Oshd
Otch
ncat
nsw1
nsw2
nsw3
nwad
obot
ocat
odes
odoc
oeye
ogru
ohun
ohwd
okod
opeo
orai
oshm
osp1
osp2
osp3
osp4
ospm
ospw
osw1
osw2
osw3
otau
otbk
otbr
otot
owyv
oalt
obar
obea
ofor
ofrt
ogre
oshy
osld
ostr
otrb
otto
ovln
owtw
Edem
Edmm
Ekee
Emoo
Ewar
earc
ebal
ebsh
echm
edcm
edes
edoc
edot
edry
edtm
efdr
efon
ehip
ehpr
emtg
esen
espv
even
ewsp
eaoe
eaom
eaow
eate
eden
edob
edos
egol
emow
eshy
etoa
etoe
etol
etrp
Ucrl
Udea
Udre
Ulic
uabo
uaco
uban
ubsp
ucrm
ucry
ucs1
ucs2
ucs3
ucsB
ucsC
ufro
ugar
ugho
ugrm
uloc
umtw
unec
uobs
uplg
ushd
uske
uskm
uubs
uaod
ubon
ugol
ugrv
unp1
unp2
unpl
usap
usep
ushp
uslh
utod
utom
uzg1
uzg2
uzig
Nal2
Nal3
Nalc
Nalm
Nbrn
Nbst
Nfir
Nngs
Npbm
Nplh
Nrob
Ntin
ncg1
ncg2
ncg3
ncgb
ndr1
ndr2
ndr3
nfa1
nfa2
nfac
ngz1
ngz2
ngz3
ngz4
ngzc
ngzd
npn1
npn2
npn3
npn4
npn5
npn6
nqb1
nqb2
nqb3
nqb4
nwe1
nwe2
nwe3
nadk
nadr
nadw
nahy
nanb
nanc
nane
nanm
nano
nanw
narg
nass
nba2
nbal
nban
nbda
nbdk
nbdm
nbdo
nbdr
nbds
nbdw
nbld
nbnb
nbot
nbrg
nbwm
nbzd
nbzk
nbzw
ncea
ncen
ncer
ncfs
nchp
ncim
ncks
ncnk
ndqn
ndqp
ndqs
ndqt
ndqv
ndrv
ndtb
ndth
ndtp
ndtr
ndtt
ndtw
nehy
nelb
nele
nenc
nenf
nenp
nepl
nerd
ners
nerw
nfel
nfgb
nfgo
nfgt
nfgu
nfod
nfor
nfot
nfov
nfpc
nfpe
nfpl
nfps
nfpt
nfpu
nfra
nfrb
nfre
nfrg
nfrl
nfrp
nfrs
nfsh
nfsp
nftb
nftk
nftr
nftt
ngdk
nggr
ngh1
ngh2
ngir
nglm
ngna
ngnb
ngno
ngns
ngnv
ngnw
ngrd
ngrk
ngrw
ngsp
ngst
ngza
nhar
nhdc
nhfp
nhhr
nhrh
nhrq
nhrr
nhrw
nhyc
nhyd
nhyh
nhym
nina
ninc
ninf
ninm
nith
nitp
nitr
nits
nitt
nitw
njg1
njga
njgb
nkob
nkog
nkol
nkot
nlds
nlkl
nlpd
nlpr
nlps
nlrv
nlsn
nltc
nltl
nlur
nmam
nmbg
nmcf
nmdr
nmfs
nmgd
nmgr
nmgw
nmit
nmmu
nmpg
nmrl
nmrm
nmrr
nmrv
nmsc
nmsn
nmtw
nmyr
nmys
nndk
nndr
nnht
nnmg
nnrg
nnrs
nnsu
nnsw
nnwa
nnwl
nnwq
nnwr
nnws
noga
nogl
nogm
nogn
nogo
nogr
nomg
nowb
nowe
nowk
npfl
npfm
nplb
nplg
nqbh
nrdk
nrdr
nrel
nrog
nrvd
nrvf
nrvi
nrvl
nrvs
nrwm
nrzb
nrzg
nrzm
nrzs
nrzt
nsat
nsbm
nsbs
nsc2
nsc3
nsca
nscb
nsce
nsel
nsgb
nsgg
nsgh
nsgn
nsgt
nska
nske
nskf
nskg
nskm
nsko
nslf
nslh
nsll
nslm
nsln
nslr
nslv
nsnp
nsns
nsoc
nsog
nspb
nspd
nspg
nspp
nspr
nsqa
nsqe
nsqo
nsqt
nsra
nsrh
nsrn
nsrv
nsrw
nssp
nsth
nstl
nsts
nstw
nsty
nthl
ntka
ntkc
ntkf
ntkh
ntks
ntkt
ntkw
ntor
ntrd
ntrg
ntrh
ntrs
ntrt
ntrv
ntws
nubk
nubr
nubw
nvde
nvdg
nvdl
nvdw
nwen
nwgs
nwiz
nwld
nwlg
nwlt
nwna
nwnr
nwns
nwrg
nws1
nwwd
nwwf
nwwg
nwzd
nwzg
nwzr
nzep
nzom
nalb
ncrb
nder
ndog
ndwm
nech
necr
nfbr
nfro
nhmc
now2
now3
nowl
npig
npng
npnw
nrac
nrat
nsea
nsha
nshe
nshf
nshw
nskk
nsno
nvil
nvk2
nvl2
nvlk
nvlw
nvul
ncb0
ncb1
ncb2
ncb3
ncb4
ncb5
ncb6
ncb7
ncb8
ncb9
ncba
ncbb
ncbc
ncbd
ncbe
ncbf
ncnt
ncop
ncp2
ncp3
nct1
nct2
ndch
ndh0
ndh1
ndh2
ndh3
ndh4
ndrg
ndrk
ndro
ndrr
ndru
ndrz
nfh0
nfh1
nfoh
nfr1
nfr2
ngad
ngme
ngnh
ngni
ngol
ngt2
ngwr
nhns
nmer
nmg0
nmg1
nmh0
nmh1
nmoo
nmr0
nmr2
nmr3
nmr4
nmr5
nmr6
nmr7
nmr8
nmr9
nmra
nmrb
nmrc
nmrd
nmre
nmrf
nmrk
nnzg
nshp
ntav
nten
nth0
nth1
ntn2
ntnt
ntt2
nwgt
Ecen
Eevi
Eevm
Efur
Eidm
Eill
Eilm
Ekgg
Emfr
Emns
Etyr
Ewrd
Hant
Hapm
Harf
Hart
Hdgo
Hgam
Hhkl
Hjai
Hkal
Hlgr
Hmbr
Hmgd
Hpb1
Hpb2
Huth
Hvsh
Hvwd
Naka
Nbbc
Nkjx
Nklj
Nmag
Nman
Npld
Nsjs
Ocb2
Ocbh
Odrt
Ogld
Ogrh
Opgh
Orex
Orkn
Osam
Otcc
Othr
Uanb
Ubal
Uclc
Udth
Uear
Uktl
Umal
Usyl
Utic
Uvar
Uvng
Uwar
eilw
enec
ensh
eshd
etrs
hbew
hcth
hhdl
hhes
hprt
hrdh
nbee
nbel
nbsp
nchg
nchr
nchw
nckb
ncpn
ndmu
ndrd
ndrf
ndrh
ndrj
ndrl
ndrm
ndrn
ndrp
ndrs
ndrt
ndrw
ndsa
negz
nemi
nfgl
ngbl
nhea
nhef
nhem
nhew
njks
nmdm
nmed
nmpe
nmsh
nser
nspc
nssn
nthr
nw2w
nwat
nzlc
odkt
ogrk
ojgn
omtg
onzg
oosc
oswy
ovlj
owar
ownr
uabc
uarb
ubdd
ubdr
ubot
udes
uktg
uktn
uswb
haro
nbfl
nbse
nbsm
nbsw
nbt1
nbt2
nbwd
ncap
ncaw
ncmw
ncta
ncte
nctl
ndfl
ndgt
ndke
ndkw
ndmg
ndrb
ndt1
ndt2
nef0
nef1
nef2
nef3
nef4
nef5
nef6
nef7
nefm
negf
negm
negt
net1
net2
nfnp
nfrm
nfrt
nft1
nft2
nfv0
nfv1
nfv2
nfv3
nfv4
ngob
nhcn
nheb
nico
nitb
nmgv
nnad
nnfm
nnsa
nnsg
nntg
nntt
npgf
npgr
nshr
ntt1
ntx2
nvr0
nvr1
nvr2
nwc1
nwc2
nzin
ocbw
zcso
zhyd
zjug
zmar
zshv
zsmc
zzrg
There were no changes since Dr Super Good's post in 2011.
However I did find 2 extras and 3 possibly removed IDs (see above).

I'm working on abilities next. Just because units are the same, we can't assume all others will be.
Abilities and upgrades WERE changed around plenty, I read from the patch notes.
 

Attachments

  • 3ICE's ID list of unit.txt
    4.9 KB · Views: 158
  • 3ICE's ID list of bonus unit.txt
    12 bytes · Views: 115
Last edited:
Level 5
Joined
Jul 4, 2007
Messages
84
(The HIVE text editor is starting to get laggy with so many lines, so I'm starting a new post instead of editing.)

237±2 Buffs, 799+4 abilities, and 275+1-1+3 Items

I loved reading all the original slk comments by D. Lawrence, A. Gilson, F. Gilson, A. Bond, B. Wood, M. Scipione, and Frank Pearce himself!
How many HP the locust must collect before it will return the HP to the mother.
How much life hero will have when reincarnated. Use huge number to set to hero's max life.
Arbitrary text to determine display order in editor
Maximum number of acolytes that can be sucking gold from the mine at one time.
sadly, this is not an area, but instead the scaling factor increase for the King's graphic when he is BIG
Stealing leaves unit alive (0 = false) (1 = true)
Not available for use in editor
Setting duration makes this ability heal over time. Set a buff for this to work.
Shared cooldown (the cooldown on the item is used instead of on the spells).
Radius of detection object created when Blademaster becomes ethereal.
Radius of the ring that the acolytes form around the gold mine while mining.
Priority for stealing (0 means it gets ignored): Low # = Low Priority
Max locusts that can target any particular enemy unit at the same time.
Mana regeneration disabled during the day.
List of units that are randomly chosen from to be spawned in.
Impact delay (must match birth time on unit).
If set to 0, it just uses the duration field to determine when the club should die.
Fraction of damage dealt by locusts that will be collected and returned to the mother.
For each unit healed, charge the mana cost up until X number of units.
Extra damage applied to primary target. Only applies to targeted version of this spell (ie Frost Nova)
Defines the class ID that determines the general behavior of the ability.
Bitmask indicating which weapons are enabled while rooted.
Building that gets created based on which race is casting the spell (human, orc, undead, night-elf)
Area of effect at beginning of spell. (Radius grows over duration of spell.)
Area to search for a friendly unit to give the buff to.
Allow busy units to get pulled in (if we can't find enough idle ones).
Allows for duplicate entries of an ability with different spell data.
Amount of time spiders spend on unit.
"Buffer mana". Can't cast until mana reaches "mana cost" + "buffer mana".

237±2 Buffs

Two buffs found only in units\abilitybuffdata.slk
Bps1
BIhm

I'm not sure if they are new or removed.
NOTE: Not included in the list below!

Rest of the buffs from _balance\custom_v0.w3mod\units\abilitybuffdata.slk
Code:
BPSE
BSTN
Bchd
Bdef
Bdet
Bfre
Bfro
Bvul
Bpoi
Bpsd
Bpsi
Bsha
Bspe
Btrv
Bclf
Bcmg
Bhea
Binf
Binv
Bmlc
Bmlt
Bmil
Bpxf
Bphx
Bply
Bslo
BHab
BHad
BHav
BHbn
BHbd
BHbz
BHds
Bdcb
Bdcl
Bdcm
Bdtb
Bdtl
Bdtm
BHfs
BHtc
BHwe
Bakb
Boar
Barm
Bbof
Bbsk
Bblo
Bdvv
Bdig
Bens
Bena
Beng
Beye
Bhwd
Blsh
Blsa
Bliq
Bprg
Bspln
Bstt
BOac
BOae
BOeq
BOea
BOhx
BOmi
BOsh
BOsf
BOvd
BOvc
BOwd
BOww
BOwk
Bbar
Bcor
Bcyc
Bcy2
Beat
Bfae
Bgra
Bmfl
Bmfa
Bpsh
Brej
Broa
Bspo
Bssd
Bssi
Bvng
BEah
BEar
BEer
BEfn
BEim
BEia
BEme
BEst
BEsh
BEsv
Bams
Bam2
Babr
Bapl
Bcri
Bcrs
Bfrz
Bplg
Bpoc
Bpos
Brai
Brpb
Brpl
Brpm
Bspa
Buhf
Buns
Bweb
Bwea
BUan
BUau
BUav
BUcb
BUcs
BUdd
BUfa
BUim
BUsl
BUsp
BUst
BUts
Basl
BCbf
BCtc
Bfzy
Bmec
BNmr
Bpig
BNpi
BNsa
Bshs
BNss
Btdg
Btsp
Btsa
BNba
BNbf
BHca
Bcsd
Bcsi
BNdm
BNdo
BNdi
BNdh
BNef
BNht
BNms
BNsi
BNst
BNsg
BNsq
BNsw
BNto
BNwm
BNbr
BNdc
BNin
BNpa
BNpm
BNrd
BNrf
BNsl
BIcb
BFig
BIcf
BIil
BIrb
BIrg
BIrl
BIrm
BIsv
BIsh
BIwb
BImo
BIpv
Xclf
Xfla
XHbz
XHfs
Xbof
XOeq
XOre
Xesn
XEsf
XEtq
XUdd
XNmo
XErc
XErf
XIct
AEsd
AEtr
ANmd
Bivs
BUad
Bult
BNab
BNcr
BNhs
XNhs
BNtm
BNeg
BNcs
XNcs
BNfy
BNcg
BNic
BNso
BNlm
BNvc
BNva
XNvc
Xbdt
Xbli
Xdis
Xfhs
Xfhm
Xfhl
Xfos
Xfom
Xfol
Xfns
Xfnm
Xfnl
Xfus
Xfum
Xful


799+4 abilities


I found four new abilcodes since 2011:

AIhm

AIdg
AIg2
AIwd

NOTE: They are already included in the list below.

Abilities from _balance\custom_v1.w3mod\units\abilitydata.slk
Code:
AHbz
AHab
AHmt
AHwe
ANst
ANsg
ANsq
ANsw
AOww
AOcr
AOmi
AOwk
AHbn
AHfs
AHdr
AHpx
AUcb
AUim
AUls
AUts
ANba
ANch
ANdr
ANsi
AUan
AUdc
AUdp
AUau
AEev
AEim
AEmb
AEme
AUsl
AUav
AUcs
AUin
AOcl
AOeq
AOfs
AOsf
AEer
AEfn
AEah
AEtq
AUdr
AUdd
AUfa
AUfu
AUfn
AHav
AHbh
AHtb
AHtc
ANfl
ANfa
ANto
ANms
AHad
AHds
AHhb
AHre
ANbf
ANdb
ANdh
ANef
ANdo
ANht
ANca
ANrf
AHfa
AEst
AEsf
AEar
AOae
AOre
AOsh
AOws
AOhw
AOhx
AOsw
AOvd
AEbl
AEfk
AEsh
AEsv
ANab
ANcr
ANhs
ANtm
ANeg
ANcs
ANc1
ANc2
ANc3
ANrg
ANg1
ANg2
ANg3
ANsy
ANs1
ANs2
ANs3
ANde
ANd1
ANd2
ANd3
ANic
ANia
ANso
ANlm
ANvc
ANin
SNin
ANfb
ANfd
ACfd
ACf3
ANdp
ANrc
ANr3
AEsb
ANrn
ANdc
SNdc
ANsl
AEIl
AEvi
SNeq
SNdd
ANmo
AEpa
ANwm
AHca
ANbr
Arsg
Aamk
Arsq
Arsp
ANsb
ANhw
Arsw
ANhx
AOls
ANcf
Acdb
Acdh
Acef
AOr2
AOr3
AOs2
AOw2
ANcl
Aadm
Andm
ACdm
ACd2
Aabs
Aaha
ANav
Aalr
Aall
Aast
ACad
Aams
Aam2
ACam
Aatk
ACba
ACac
ACav
SCae
Aap1
Aap2
Aap3
Aap4
Aoar
Aabr
Aasl
ACat
Aakb
Aave
Aawa
Abof
ACbn
ACbh
ANbh
ANb2
Abtl
Sbtl
Abrf
Absk
Sbsk
ACbk
Abds
Abdl
Abgs
Abgl
Abgm
ANbl
ACbz
Ablo
ACbl
ACbb
ACbc
ACbf
ANbu
AHbu
AObu
AEbu
AUbu
AGbu
Abur
Abu2
Abu3
Abu5
Abdt
Acan
Acn2
ACcn
Abun
Advc
Sch2
Sch5
Sch4
Sch3
Aenc
Achd
ACca
ACcv
ACc2
ACc3
ACcl
Ache
Sca1
Sca2
Sca3
Sca4
Sca5
Sca6
Achl
ACch
ACce
Aclf
ACcw
Acmg
Acpf
Acor
Acoa
Acoh
Aco2
Aco3
ACsp
Acri
Scri
ACcr
ACct
Acrs
ACcs
Acyc
Acny
ACcy
SCc1
ACdc
Adda
Amnx
Amnz
Adec
Adef
Adt1
Atru
Adtg
ANtr
Agyv
Adts
Adtn
Adev
ACdv
Advm
ACde
Adch
Adcn
Adis
Adsm
ACds
ACdr
Adri
Adro
Sdro
Atdp
Aeat
Aegr
ANen
Aens
ACen
Aent
Aegm
Aenr
Aenw
Aetl
Aetf
ACev
ACes
Aexh
ANfy
Afae
Afa2
ACff
Afbk
Afbt
Afbb
ACsf
ACs9
ACs8
ACs7
Afod
Awfb
ACfb
Aflk
Afla
ACfs
ANfs
ACfr
ACfl
Afsh
Afrz
Afzy
ACfa
ACf2
ACfu
Afra
Afr2
Afrb
ACfn
ACcb
Agho
Aeth
Agld
Agra
Agyd
Agyb
Assk
Ansk
Ahar
ANha
Ahrl
Ahr3
Ahr2
Ahea
Anhe
Anh1
Anh2
Ahwd
AChw
AChv
Ahnl
AHer
AChx
Acht
ACim
ACmp
Aimp
Ainf
ACif
Aivs
AInv
Apak
Aion
Aihn
Aien
Aiun
Avul
Alit
Alsh
ACls
Aliq
Aloa
Sloa
Slo2
Slo3
Atlp
Aloc
Amdf
Amim
ACmi
ACm2
ACm3
Amls
Ambt
Amb2
Amnb
Ambd
Ambb
Amfl
ACmf
Amed
Amel
Amil
Amic
ANmr
Amin
ACmo
Amgl
Amgr
Amov
Aneu
Ane2
Andt
ANre
ACnr
AAns
Ansp
Afak
ANak
Afir
Afih
Afio
Afin
Afiu
ANpa
ACpa
ANpi
Apmf
Apig
Apiv
Apsh
Aphx
Apxf
Apts
Apoi
Aply
ACpy
Apos
ACps
Aps2
Awar
ACpv
Apit
Aprg
Apg2
ACpu
ACrf
ACrg
Arai
ACrd
ARal
Arav
Amrf
ACrn
ANr2
Arbr
Arej
ACrj
ACr2
Aren
Ahrp
Arep
Arpb
Arpl
Arpm
Arsk
ACrk
ACsk
Arst
Argd
Argl
Arlm
AHta
Arng
Arev
Aroa
Ara2
ACr1
ACro
Aroc
Aro1
Aro2
Asac
Asal
Alam
ACsa
Asds
Asdg
Asd2
Asd3
Asid
Asud
Aesn
Aesr
Aeye
ACtn
Ashm
AIhm
Sshm
Ahid
ACss
ACsh
ACst
ANsh
ACsi
ACsm
ACsl
Asla
Aslo
ACsw
Aspo
Asod
Assp
Aspd
Aspy
Aspt
Asps
Asph
Asp1
Asp2
Asp3
Asp4
Asp5
Asp6
Aspa
Aspi
Aspl
Astd
Asta
Astn
Asth
Asb1
Asb2
Asb3
Aslp
ACwe
Attu
Srtt
Atau
ANta
ANth
ANt2
ACah
ACtb
ACtc
ACt2
Atdg
Atsp
Atwa
Atol
Ault
ACua
Auhf
Suhf
ACuf
Auco
Auns
SCva
ACvp
Avng
Awan
Awrs
Awrg
Awrh
ANwk
Awha
Awh2
Aven
ACvs
Awrp
Aweb
ACwb
AIa1
AIa3
AIa4
AIa6
AIx5
AIx1
AIx2
AIs1
AIs3
AIs4
AIs6
AIi1
AIi3
AIi4
AIi6
AIxm
AIam
AIim
AIsm
AIgm
AItm
AInm
AIaa
AIat
AIt6
AIt9
AItc
AItf
AItg
AIth
AIti
AItj
AItk
AItl
AItn
AIva
AIbk
AIbl
AIbg
AIbt
AIbb
AIbf
AIbr
AIbs
AIbh
AIcy
AId1
AId2
AId3
AId4
AId5
AIgf
AIgu
AIem
AIe2
AIfd
AIff
AIfr
AIfu
AIfh
AIfs
AIir
AIuw
AIfl
AIfm
AIfo
AIfn
AIfe
AIfx
AIfa
AIin
AIlm
AIlp
AIlf
AIl1
AIl2
AIms
ANbs
AIdf
AIcb
AIdn
AIfb
AIgd
AIzb
AIob
AIll
AIlb
AIsb
AIpb
Apo2
AInd
Arel
Arll
AIsi
AIos
AIso
Asou
AIcf
AIco
AIdm
AIda
AIdb
AIta
AIdi
AIds
APdi
AIh1
AIh2
AIh3
AIha
AIhb
APh1
APh2
APh3
AIhw
AIsw
AIil
AIv1
AIv2
AIvu
AIvl
AIm1
AIm2
AImr
APmr
APmg
AIpm
AIrt
AIrm
AIrn
AIrc
AIre
AIra
APra
AIsp
AIsa
APsa
AItp
AIad
AIcd
AIba
AIav
AIar
AIae
AIau
AIuv
AIls
AIxs
AIan
AIrs
AIrr
AIev
AImx
AImh
AImb
AIbm
AIsx
AIs2
AIrl
AIpr
AIsl
AIpl
AIp1
AIp2
AIp3
AIp4
AIp5
AIp6
AIgo
AIlu
AIrv
AIdc
AIwb
AImo
AIct
AIri
AIsr
Ablp
AIpv
Aste
Amec
Ashs
ANpr
ANsa
ANss
ANse
Aret
AImt
Aspb
AIrd
AItb
AIdv
AIse
AIpg
AIps
AIfg
APrl
APrr
AIrb
Aspp
AUds
APwt
AIuf
AId0
AIcm
AImz
AIfz
AIdp
AImv
AIpx
AIdd
AId8
AId7
AIlz
AIhx
AIaz
AIrx
AIbx
AItx
AIwm
AIsh
AI2m
AIgx
AIhl
AIsz
AIpz
AIfw
AIft
AIlx
AIcs
AIcl
AIx3
AIx4
AIxk
AIdg
AIg2
AIwd
All slk sources were identical. Dr Super Good's list is also the same minus some empty lines. (Except of course the 4 new abilities, see above.)

275+1-1+3 Items

There is one new item in units\itemdata.slk
ofr2

One was removed from _balance\custom_v0.w3mod\units\itemdata4.slk
spur

NOTE: Neither 'ofr2' nor 'spur' is included in the list below.

The rest are heavily reordered between each version, not sure by what logic. But otherwise similar.

Oh, and we gained 47 more! (Presumably all the TFT-only items...) Here is the full list:

From _balance\custom_v1.w3mod\units\itemdata.slk
Code:
ckng
modt
tkno
ratf
rde4
ofro
fgdg
infs
shar
sand
sres
wild
srrc
rej6
odef
rde3
pmna
rhth
ssil
spsh
desc
ankh
pdiv
pres
whwd
rej5
hcun
hval
mcou
belv
bgst
ciri
ajen
clfm
ratc
ward
kpin
crys
totw
fgfh
fgrd
fgrg
fgsk
wcyc
hlst
mnst
rej4
ram4
lhst
afac
lgdh
sbch
brac
rwiz
dsum
pghe
pgma
pnvu
sror
woms
rej3
ofir
ocor
oli2
oven
ram3
evtl
penr
prvt
rat9
rde2
rlif
tret
tgrh
will
wlsd
wswd
rej2
gemt
ram2
stel
cnob
gcel
rat6
rde1
bspd
tdx2
texp
tin2
tpow
tst2
pnvl
stwp
wneg
sneg
wneu
shea
sman
rej1
pspd
dust
ram1
clsd
rag1
rin1
rst1
manh
tdex
tint
tstr
pinv
phea
pman
spro
hslv
moon
shas
skul
mcri
rnec
tsct
azhr
bzbe
bzbf
ches
cnhn
glsk
gopr
k3m1
k3m2
k3m3
ktrm
kybl
kygh
kymn
kysn
ledg
phlt
sehr
engs
sorf
gmfr
jpnt
shwd
skrt
thle
pomn
wshs
fgun
lure
olig
amrc
ccmd
flag
gobm
gsou
nflg
nspi
oflg
pams
pgin
rat3
rde0
rnsp
soul
tels
tgxp
uflg
anfg
brag
drph
iwbr
jdrn
lnrn
mlst
oslo
sbok
sksh
sprn
tmmt
vddl
spre
sfog
sor1
sor2
sor3
sor4
sor5
sor6
sor7
sor8
sor9
sora
fwss
shtm
esaz
btst
gold
lmbr
gfor
guvi
rspl
rre1
rre2
gomn
rsps
rspd
rman
rma2
rres
rreb
rhe1
rhe2
rhe3
rdis
rwat
sclp
pclr
plcl
silk
vamp
sreg
ssan
tcas
tbsm
tfar
tlum
tbar
tbak
gldo
wtlg
wolg
mgtk
stre
horl
hbth
blba
rugt
frhg
gvsm
crdt
arsc
scul
tmsc
dtsb
grsl
arsh
shdt
shhn
shen
thdm
stpg
shrs
bfhr
cosl
shcw
srbd
frgd
envl
rump
mort
srtl
stwa
klmm
rots
axas
mnsf
schl
asbl
kgal
dphe
dkfw
dthb
ritd
war2
There is not much of a difference between 2011 and 2019 items except the ordering was changed yet again. Oh and four brand new ItemIDs:

Three new items since Dr Super Good's list:
Code:
ofr2
ritd
war2

And also there's the possibly removed 'spur'. That makes four(?). Or was it added and subsequently removed...
 

Attachments

  • 3ICE's ID list of ability.txt
    4.7 KB · Views: 94
  • 3ICE's ID list of bonus buff.txt
    12 bytes · Views: 50
  • 3ICE's ID list of bonus item.txt
    12 bytes · Views: 63
  • 3ICE's ID list of buff.txt
    1.4 KB · Views: 67
  • 3ICE's ID list of item.txt
    1.6 KB · Views: 95
Last edited:
Level 5
Joined
Jul 4, 2007
Messages
84
(Trying to keep these posts under 1500 lines each, and failing...)
246 Destructables, 469 Doodads, 89+1 Upgrades, and 57 Effects

There are 128 destructables in _balance\melee_v0.w3mod\units\destructabledata.slk and 118 more in units\destructabledata.slk (RoC vs TFT)
Code:
ATtr
BTtw
CTtr
FTtw
LOcg
LTba
LTcr
LTbr
LTbx
LTbs
LTex
LTg1
LTg2
LTg3
LTg4
LTe1
LTe2
LTe3
LTe4
ATg1
ATg2
ATg3
ATg4
DTg5
DTg6
DTg7
DTg8
DTg1
DTg2
DTg3
DTg4
LTlt
NTtw
WTtw
WTst
YTct
YTwt
YTst
YTft
VTlt
LTw0
LTw1
LTw2
LTw3
YT00
YT01
YT02
YT03
YT04
YT05
YT06
YT07
YT08
YT09
YT10
YT11
YT12
YT13
YT14
YT15
YT16
YT17
YT18
YT19
YT20
YT21
YT22
YT23
LT00
LT01
LT02
LT03
LT04
LT05
LT06
LT07
LT08
LT09
LT10
LT11
XTbd
XTvt
LTr1
LTr2
LTr3
LTr4
LTr5
LTr6
LTr7
LTr8
NTbd
DTes
DTsh
YSdb
YSdc
XOkt
XOk1
XOk2
DTc1
DTc2
DTsp
DTrc
DTsb
DTs1
DTs2
DTs3
Dofw
Dofv
YT24
YT25
YT26
YT27
YT28
YT29
YT30
YT31
YT32
YT33
YT34
YT35
YT36
YT37
YT38
YT39
YT40
YT41
YT42
YT43
YT44
YT45
YT46
YT47
ZTr0
ZTr1
ZTr2
ZTr3
ZTtw
ZTw0
ZTw1
ZTw2
ZTw3
ZTg1
ZTg2
ZTg3
ZTg4
ITtw
ZTd1
ZTd2
ZTd3
ZTd4
ZTd5
ZTd6
ZTd7
ZTd8
ITib
ITi2
ITi3
ITi4
ITg1
ITg2
ITg3
ITg4
ITw0
ITw1
ITw2
ITw3
LTt0
LTt1
LTt2
LTt3
LTt4
ATt0
ATt1
LTt5
ZTnc
ITf1
ITf2
ITf3
ITf4
ITx1
ITx2
ITx3
ITx4
ATtc
OTtw
KTtw
ITig
DTrf
DTrx
XTmp
XTm5
XTmx
XTx5
ITcr
DTep
ATwf
YTfb
YTfc
YTlb
Ytlc
YTpb
YTpc
YTab
YTac
ZTsg
ZTsx
DTfp
DTfx
DTlv
YTce
YTcx
LTtc
LTtx
JTct
JTtw
ITtg
GTsh
BTrs
BTrx
OTsp
OTip
OTis
BTtc
CTtc
NTtc
ZTtc
ITtc
IOt0
IOt1
IOt2
LTrc
YT48
YT49
YT50
YT51
OTds
ITag
BTsc
LTs1
LTs2
LTs3
LTs4
LTs5
LTs6
LTs7
LTs8
Volc

469 Doodads
There is only one slk handling doodads, thankfully. Not dozens of versions for me to look through and compare! But I got lucky only this one time...
Code:
APms
AOhs
APtv
APct
AObd
AObr
AWfs
AOgs
AOks
AOlg
AOla
AOob
AOsk
AObo
AOsr
APbs
AWlp
AWfl
ARrk
ASbc
ASbr
ASbl
ASra
ASr1
ASwt
BPca
BObo
BOct
BOth
BOtt
BRcr
BRfs
BRrk
BRrp
BRrs
BRsp
BRgs
BSar
BSra
BSr1
BSrc
BSrv
BSrw
CObl
COhs
COlg
COla
COob
CObo
CPbs
CPct
CPms
CPlp
CRfs
CRrs
CSbc
CSbr
CSbl
CSra
CSr1
LPcr
LPfp
LPlp
LPrs
LPwb
LPwh
LPcw
LOar
LOam
LOh1
LOo1
LOo2
LObr
LObz
LOce
LOca
LOct
LOfl
LOgr
LOhb
LOch
LOcb
LOrc
LOxx
LOhc
LOsh
LOhp
LOic
LOlp
LOpg
LOrb
LOrh
LOsp
LOsc
LOss
LOsk
LOsm
LOsw
LOth
LOtz
LOt1
LOtr
LOwb
LOwr
LOwp
LRrk
LSba
LSeb
LSsb
LSsf
LSgr
LSgs
LSin
LSra
LSr1
LSsi
LSst
LSwl
LSwb
LSwm
NObc
NObk
NObo
NOfl
NOal
NOgv
NOok
NOtb
NWfb
NWfp
NWf1
NWf2
NWf3
NWf4
NWi1
NWi2
NWi3
NWi4
NWpa
NOfp
NOfg
NOft
NObt
NWrw
NWrd
NWsp
NWsd
NWwh
NPth
NRfs
NRic
NRrk
NRwr
NSct
NSra
NSr1
NSrb
VOfl
VOal
VOfs
VOas
VSvb
YObb
YOwb
YObs
YOsa
YObw
YOwa
YOfn
YOgr
YOob
YOlp
YOst
YOks
XOcs
XOcl
XOmr
YOts
YObg
YOta
YOec
YOth
YOws
YPbs
YPfs
YPfa
YPpp
YSaw
YSa1
YSca
YSco
YScd
YSc5
YScs
YSc2
YSc3
YSc4
YSls
YSw0
YSw1
YSw2
YSw3
YSlt
YSll
YSta
COdf
CRrk
DRrk
YOlb
YOtf
YOfb
YOfs
YOf1
YOf2
YOf3
YOr1
YOr2
DSar
DSa1
DSah
DSa2
DOtp
DOjp
DOch
DOcp
DRfc
DRst
DOlc
DOcr
DObh
DObk
DOkb
DObw
DOab
DOob
DOtb
DOtc
DOim
DOtt
DOmc
DOme
DSp0
DSp9
GPsh
GRrk
GRfc
GRst
GOob
GSah
GSa2
GSar
GSa1
GSp0
GSp9
GOlc
LWw0
LCc0
LCc2
YOsw
YOcp
YS00
YS01
YS02
YS03
YS04
YS05
YS06
YS07
YS08
YS09
YS10
YS11
YS12
YS13
YS14
YS15
YZef
LZth
ZObz
ZOst
ZOsb
ZOss
ZSar
ZSa1
ZSas
ZSs1
ZSab
ZSb1
ZWfs
ZWsf
ZSrb
ZOfo
ZOob
ZOrt
IRrk
ZOrp
ZOsh
YCc1
YCc2
YCc3
YCc4
YCd1
YCd2
YCd3
YCd4
ZOrc
ZOdt
ZOd2
ZOrb
ZOtb
ZOt2
ZOvr
ZOfp
ZRrk
ZCv1
ZCv2
ZWsw
ZWbg
IWbg
IWie
IWw0
ZPfw
ZPsh
ZPlp
ZPru
ZWcl
ZWca
ZZdt
IOst
ISar
ISa1
IOob
IOpr
IRic
DOas
IOsm
ZRrs
ZRsp
ORrk
ORrs
IOss
IOsl
AZrf
OPop
IRgc
ORmk
YCx1
YCx2
YCx3
YCx4
YCx5
YCx6
YCx7
YCx8
YCr1
YCr2
YCr3
YCr4
YCp1
YCp2
YCp3
YCp4
YCs1
YCs2
YCs3
YCs4
YCt1
YCt2
YCt3
YCt4
YCo1
YCo2
YCo3
YCo4
YCg1
YCg2
YCg3
YCg4
YCu1
YCu2
YCu3
YCu4
YCl1
YCl2
YCl3
YCl4
ZRbs
ZRbd
ORfk
OZfc
ASpr
ASpt
ZPms
ZPvp
ZOls
YScr
YOfr
ZZgr
JZif
YSr0
YSr1
YSr2
YSr3
YSr4
YSr5
YSr6
YSr7
YSr8
YSr9
YSra
YSrb
YSrc
YSrd
YSre
YSrf
ZZys
JScs
JSc2
JSc3
JSc4
JSco
JScx
JSrc
JSr6
JSar
JSax
ZZcd
LSrg
AOnt
DOsv
DOsw
LOwf
KOdr
OZsp
ASv0
ASv1
ASv2
ASv3
ASv4
ASx0
ASx1
ASx2
ZOtr
ZOba
IZrw
KOst
IZft
IOic
IRcy
ISsr
ISs1
IOch
OOal
OOgr
OOob
OOsk
OOst
ORrr
JZud
OOsd
IRrs
ISrb
JOgr
BPtw
ZPtw
IZww
YSlx
OSar
OSa1
Probably no changes since 2011 in either. But can't confirm as I don't have access to those lists.

89+1 Upgrades

One new upgrade in units\upgradedata.slk
Rhsb

Added that to the remaining 58+31 (RoC + TFT) from _balance\custom_v1.w3mod\units\upgradedata.slk to get:
Code:
Rhme
Rhra
Rhhb
Rhar
Rhgb
Rhac
Rhde
Rhan
Rhpt
Rhst
Rhla
Rhri
Rhlh
Rhse
Rhfl
Rhss
Rhrt
Rhpm
Rhfc
Rhfs
Rhcd
Rhsb
Rome
Rora
Roar
Rwdm
Ropg
Robs
Rows
Roen
Rovs
Rowd
Rost
Rosp
Rotr
Rolf
Roch
Rowt
Rorb
Robk
Ropm
Robf
Rume
Rura
Ruar
Ruac
Rugf
Ruwb
Rusf
Rune
Ruba
Rufb
Rusl
Rucr
Rupc
Rusm
Rubu
Rusp
Ruex
Rupm
Resm
Resw
Rema
Rerh
Reuv
Renb
Resc
Remg
Reib
Remk
Redt
Redc
Resi
Recb
Reht
Repb
Rers
Rehs
Reeb
Reec
Rews
Repm
Rgfo
Rguv
Rnen
Rnsw
Rnsi
Rnat
Rnam
Rnsb
Dr Super Good's list is only missing Rhsb, no other changes since 2011.

57 Effects

Interestingly, there are two Spiked Barricade Damage (%) effects with the same ID in _balance\custom_v0.w3mod\units\upgradeeffectmetadata.slk:
Code:
sppb
sppb

This was supposedly fixed in _balance\melee_v0.w3mod\units\upgradeeffectmetadata.slk
sppm

New ID. But their name is still identical.

Here is the one without duplicates:
Code:
atdb
atdm
levb
levm
levc
hpxb
hpxm
mnxb
mnxm
mvxb
mvxm
mnrb
mnrm
hpob
hpom
manb
manm
movb
movm
atxb
atxm
lumb
lumm
atrb
atrm
atsb
atsm
spib
spim
hprb
hprm
sigb
sigm
atcb
atcm
adlb
adlm
minb
minm
raib
raim
entb
entm
enwb
audb
audm
asdb
asdm
asrb
asrm
roob
urob
uart
utma
ttma
sppb
sppm
Again, can't say if anything changed since 2011.

(Upgrades will have to go in their own post. Edit: Never mind, edited it in above. But now I'm over 1k lines again...)

Bonus 1: Mapping from upgradeID to effectID (BWood: The upgrade effect for which this field is relevant)
Code:
atdb    ratd
atdm    ratd
levb    rlev
levm    rlev
levc    rlev
hpxb    rhpx
hpxm    rhpx
mnxb    rmnx
mnxm    rmnx
mvxb    rmvx
mvxm    rmvx
mnrb    rmnr
mnrm    rmnr
hpob    rhpo
hpom    rhpo
manb    rman
manm    rman
movb    rmov
movm    rmov
atxb    ratx
atxm    ratx
lumb    rlum
lumm    rlum
atrb    ratr
atrm    ratr
atsb    rats
atsm    rats
spib    rspi
spim    rspi
hprb    rhpr
hprm    rhpr
sigb    rsig
sigm    rsig
atcb    ratc
atcm    ratc
adlb    radl
adlm    radl
minb    rmin
minm    rmin
raib    rrai
raim    rrai
entb    rent
entm    rent
enwb    renw
audb    raud
audm    raud
asdb    rasd
asdm    rasd
asrb    rasr
asrm    rasr
roob    rroo
urob    ruro
uart    rart
utma    rtma
ttma    rtma
sppb    rspp
sppm    rspp
Bonus 2: Just the effectIDs:
Code:
ratd
ratd
rlev
rlev
rlev
rhpx
rhpx
rmnx
rmnx
rmvx
rmvx
rmnr
rmnr
rhpo
rhpo
rman
rman
rmov
rmov
ratx
ratx
rlum
rlum
ratr
ratr
rats
rats
rspi
rspi
rhpr
rhpr
rsig
rsig
ratc
ratc
radl
radl
rmin
rmin
rrai
rrai
rent
rent
renw
raud
raud
rasd
rasd
rasr
rasr
rroo
ruro
rart
rtma
rtma
rspp
rspp
 

Attachments

  • 3ICE's ID list of destr.txt
    1.4 KB · Views: 47
  • 3ICE's ID list of doodad.txt
    2.7 KB · Views: 40
  • 3ICE's ID list of effect.txt
    342 bytes · Views: 39
  • 3ICE's ID list of upgrade.txt
    540 bytes · Views: 48
Last edited:
Level 5
Joined
Jul 4, 2007
Messages
84
Oh, and to actually answer your original "Can somebody explain" question... To extract this data from game files you need an MPQ editor or a CASC editor, depending on your game version. (The newer patches use CASC, anything older than 2019 uses MPQ.)

The IDs are in *.slk files. There are special SLK editors available, but for our purposes Excel will be just fine. Though I'm angry at Microsoft for it really mangles the plaintext readability of SLK once you save it. Pure SLK can be edited in Notepad with some effort, but good luck doing the same once Excel saves its format strings and other junk into it. Blizzard started using Excel and it shows... Suddenly the file size grew from a couple kilobytes per data table to 20 MB total! Not sure which patch is the culprit. Possibly happened over time as they changed data in pure SLK files as needed, and Excel mangled them on save one by one.
Many other spreadsheet and database tools can handle the file format. Use your favorite!

The specific files are all found in the various mpq files: war3.mpq, war3x.mpq, war3patch.mpq, war3xlocal.mpq, etc. Use your MPQ editor's search functionality in all these mpq files, one by one. Extract what you find in separate folders (they have the same name but different contents in each MPQ.) Usually war3xpatch has the latest version.

Or in the case of CASC: Click File → Open CASC Storage... Navigate to your wc3 folder, then select Data and click OK. (we don't care about folders like x86_64 and the executables, pak's, dll's, etc. inside them so...)
Once the 2GB is loaded, expand war3.w3mod and use ALT+F7 to "Search in Storage" / "files" for *.slk.
Do not use find text as it will take a very long time and likely just crash. Extracting everything would be a costly operation!
The asterisk (*) is very important. (Search *slk or *.slk, not plain slk.) Without "*" there will be no results because it matches regex /^(%s)$/, not /.*(%s).*/ as one might expect...

These are the search results:
_balance\custom_v0.w3mod\units\abilitybuffdata.slk
_balance\custom_v1.w3mod\units\abilitybuffdata.slk
_balance\melee_v0.w3mod\units\abilitybuffdata.slk
units\abilitybuffdata.slk

_balance\custom_v0.w3mod\units\abilitybuffmetadata.slk
_balance\custom_v1.w3mod\units\abilitybuffmetadata.slk
_balance\melee_v0.w3mod\units\abilitybuffmetadata.slk
units\abilitybuffmetadata.slk

_balance\custom_v0.w3mod\units\abilitydata.slk
_balance\custom_v1.w3mod\units\abilitydata.slk
_balance\melee_v0.w3mod\units\abilitydata.slk
units\abilitydata.slk

_balance\custom_v0.w3mod\units\abilitymetadata.slk
_balance\custom_v1.w3mod\units\abilitymetadata.slk
_balance\melee_v0.w3mod\units\abilitymetadata.slk
units\abilitymetadata.slk

ui\soundinfo\abilitysounds.slk
ui\soundinfo\ambiencesounds.slk
ui\soundinfo\ambientmusic.slk
ui\soundinfo\animlookups.slk
ui\soundinfo\animsounds.slk
terrainart\clifftypes.slk

units\destructabledata.slk
_balance\custom_v0.w3mod\units\destructabledata.slk
_balance\custom_v1.w3mod\units\destructabledata.slk
_balance\melee_v0.w3mod\units\destructabledata.slk

units\destructablemetadata.slk
_balance\melee_v0.w3mod\units\destructablemetadata.slk
_balance\custom_v1.w3mod\units\destructablemetadata.slk
_balance\custom_v0.w3mod\units\destructablemetadata.slk

ui\soundinfo\dialogsounds.slk
doodads\doodadmetadata.slk
doodads\doodads.slk
ui\soundinfo\eaxdefs.slk
ui\soundinfo\environmentsounds.slk

_balance\custom_v1.w3mod\units\itemdata.slk
units\itemdata.slk
_balance\melee_v0.w3mod\units\itemdata.slk
_balance\custom_v0.w3mod\units\itemdata.slk

splats\lightningdata.slk
ui\soundinfo\midisounds.slk

_balance\custom_v0.w3mod\units\miscmetadata.slk
_balance\custom_v1.w3mod\units\miscmetadata.slk
_balance\melee_v0.w3mod\units\miscmetadata.slk
units\miscmetadata.slk

_balance\custom_v0.w3mod\units\notused_unitdata.slk
_balance\melee_v0.w3mod\units\notused_unitdata.slk
_balance\custom_v0.w3mod\units\notused_unitui.slk
_balance\melee_v0.w3mod\units\notused_unitui.slk

ui\soundinfo\portraitanims.slk
ui\skinmetadata.slk

_teen.w3mod\splats\spawndata.slk
splats\spawndata.slk

_teen.w3mod\splats\splatdata.slk
splats\splatdata.slk

terrainart\terrain.slk
splats\ubersplatdata.slk
ui\soundinfo\uisounds.slk

_balance\custom_v0.w3mod\units\unitabilities.slk
_balance\custom_v1.w3mod\units\unitabilities.slk
_balance\melee_v0.w3mod\units\unitabilities.slk
units\unitabilities.slk

ui\soundinfo\unitacksounds.slk

_balance\custom_v0.w3mod\units\unitbalance.slk
_balance\custom_v1.w3mod\units\unitbalance.slk
_balance\melee_v0.w3mod\units\unitbalance.slk
units\unitbalance.slk

ui\soundinfo\unitcombatsounds.slk

_balance\custom_v0.w3mod\units\unitdata.slk
_balance\custom_v1.w3mod\units\unitdata.slk
_balance\melee_v0.w3mod\units\unitdata.slk
units\unitdata.slk

_balance\custom_v0.w3mod\units\unitmetadata.slk
_balance\custom_v1.w3mod\units\unitmetadata.slk
_balance\melee_v0.w3mod\units\unitmetadata.slk
units\unitmetadata.slk

_balance\custom_v0.w3mod\units\unitui.slk
_balance\custom_v1.w3mod\units\unitui.slk
_balance\melee_v0.w3mod\units\unitui.slk
units\unitui.slk

_balance\custom_v0.w3mod\units\unitweapons.slk
_balance\custom_v1.w3mod\units\unitweapons.slk
_balance\melee_v0.w3mod\units\unitweapons.slk
units\unitweapons.slk

_balance\custom_v0.w3mod\units\upgradedata.slk
_balance\custom_v1.w3mod\units\upgradedata.slk
_balance\melee_v0.w3mod\units\upgradedata.slk
units\upgradedata.slk

units\upgradeeffectmetadata.slk
_balance\custom_v0.w3mod\units\upgradeeffectmetadata.slk
_balance\melee_v0.w3mod\units\upgradeeffectmetadata.slk
_balance\custom_v1.w3mod\units\upgradeeffectmetadata.slk

_balance\custom_v0.w3mod\units\upgrademetadata.slk
_balance\custom_v1.w3mod\units\upgrademetadata.slk
_balance\melee_v0.w3mod\units\upgrademetadata.slk
units\upgrademetadata.slk

terrainart\water.slk
terrainart\weather.slk

I ordered them by file name, not path, to show which files describe the same thing. (But differently of course.) And separated with an empty line where 2 or 4 (usually different) versions exist. (Some ID's are even duplicated across 8-10 or even 12 files. Have fun merging them!)

To bulk extract everything in the search results, you sadly can not drag-select nor press CTRL+A inside that modal popup dialog, but luckily shift-selecting works. So press home, then shift+end, or scroll up, click the first item, scroll down, and shift+click the last item. Then right click→extract (F5). Default settings are fine, but: Remember the directory where the files will be extracted to!

Now go to the Work folder of Casc Viewer, (It's usually wherever you installed it), open the SLK files one by one and extract your desired data from them! ID in this case:
Select the first column, copy paste into a diff tool. I use Notepad++ with Compare plugin or NetBeans DIFF because it visually compares changes with pretty spline curves.

Excel can natively compare entire spreadsheets, but you will be buried in spam because Blizzard changed the font... Arial 10pt vs Calibri 11pt (So stupid, to save font information in a data table. Oh well...)
They also don't keep the data ordered, and there have been random order changes and even mass-moves in the files sadly. I work around this by sorting the data myself, before comparing. Excel can do it; Data→Sort, Notepad++ has TextFX Tools by default which you can can use, and NetBeans has a "Sort line tools" plugin.

Merge differences, throw away duplicates, massage the data into whatever format you need. And that's it.

I did my best to preserve Blizzard's ordering, so I'd sort → compare → merge and then undo the sort.

We should probably create a downloadable master txt file with ALL the ID's from above, merged into a single list. Even insert the deleted ID's, maybe...

I'm curious; What will you use this data for?

This took me over 3 hours, so shower me in +rep and donate at 3ICE.hu — thanks for the question, this was a very fun project.
 

Attachments

  • 3ICE's ID list of all (effect, upgrade, doodad, destr, item, ability, buff, unit, bonus, wurst).txt
    17.7 KB · Views: 53
  • 3ICE's every single ID list (all, effect, upgrade, doodad, destr, item, abil, buff, unit, bonus).zip
    17.4 KB · Views: 48
Last edited:

Thanks a lot dude ! I like persons who enjoy intellectual challenges :)
+ thanks the summary in your posts is very complete ! I commended & donated

Just a question an additional question: what CASC software (+ version) did you use to browse CASC 1.31.1 ? I couldn't with latest CASCView, it crashed on launch :(

Funny you found 803 abilities, and WE only displays 785 of them. I wonder which ones are hidden excepted Atak & Amov :)

First I'll incorporate abilities in the library I am making that will expose some usefull functions:
- Scanning all abilities at game start with min lagg/freeze
- Get all ability in game
- Game a unit's abilities (ID format, the new instanciated type "ability" suxx)
- Game an item's abilities (ID format, the new instanciated type "ability" suxx)
- Call the new 1.31 primitives GetAbilityXxxxx(Level)Field with ID as parameter instead of "ability" instance

Then I want to do a similar lib for other items ! Buffs first, then Items,...
 
Last edited:
Level 5
Joined
Jul 4, 2007
Messages
84
Thank you very much! Honestly did not expect to get anything, I was so surprised. What a nice email to wake up to. :)

Reading and re-reading my posts above, I found a very weird, 5 letter rawcode:
'Bspln'
(among the buffs)

Reviewing my master list (attached) also yielded several case-insensitively duplicated IDs across different types (4 to be exact):

Code:
asbl•ASbl
ASpt•Aspt
dtsb•DTsb
NSra•nsra

This is not a problem as ASCII has different values for upper case and lower case chars (naturally). Just make sure to always use the list in a case-sensitive manner. (Because I initially didn't... Oops...)

I also did some additional research yesterday to try and verify my list is indeed complete, and found Wurst's source code:
They already have up to date lists in .*wurst form (might be even easier to use than my plaintext lists, the Wurst syntax is like Java/C# with JASS and vJASS keywords):
ability: wurstscript/WurstStdlib2
unit: https://raw.githubusercontent.com/wurstscript/WurstStdlib2/master/wurst/_wurst/assets/UnitIds.wurst

Did not find IDs for the rest (items, doodads, etc.) Only model paths, sounds, icons, animations, textures, etc. Those do not concern us.

Look at their beautiful naming convention and useful comments:
Wurst:
    static constant lightningShieldcreep     = 'ACls'
    static constant liquidFire                 = 'Aliq'
    static constant load                    = 'Aloa' // (Goblin Zeppelin)
    static constant load1                    = 'Aenc'
    static constant loadBurrow                 = 'Sloa'
    static constant loadNavies                 = 'Slo3'
    static constant loadPilot                = 'Atlp'
    static constant loadWisp                = 'Slo2' // (Entangled Gold Mine)
    static constant locust                    = 'Aloc' // Makes unit unselectable
    static constant magicDefense             = 'Amdf'

Wurst:
   static constant archmage = 'Hamg' // model: HeroArchMage     selectScale: 1,5
   static constant arthas = 'Hart' // model: Arthas     scale: 1,1     selectScale: 1,1
   static constant arthaswithfrostmourne = 'Harf' // model: ArthaswithSword     scale: 1,1     selectScale: 1,1
   static constant assassin = 'nass' // model: BanditSpearThrower     scale: 1,3
   static constant azuredragon = 'nadr' // model: AzureDragon     scale: 1,75     selectScale: 2,25
   static constant azuredragonwhelp = 'nadw' // model: AzureDragonWelp     scale: 0,7     selectScale: 1,75
   static constant azuredrake = 'nadk' // model: AzureDragon     scale: 1,2     selectScale: 2
   static constant azurelordfrostwyrm = 'ubdd' // model: FrostWyrm     scale: 2     selectScale: 2,5
   static constant azureloredragon = 'ubdr' // model: AzureDragon     scale: 2,25     selectScale: 2,7
   static constant balnazzar = 'Ubal' // model: Tichondrius     scale: 1,6     selectScale: 1,9


Testing their lists against mine, I found the exact same order and also matching number of unitIDs (836 units), so I'm even more reassured I got everything right. BUT the discrepancy between abilities is worrying: I have 803 abilities, they have only 692. But that's not what worries me since I got more than them by hundreds. What worries me is this; They have several abilities that I missed!!

38 new abilities, to be exact:
Code:
Aami
Aapl
Aarm
Abli
Acar
ACbr
Acha
Adet
Adta
Ahrs
Ahsb
AIab
AIas
AIde
AIfi
AIhe
AIma
AImi
AIml
AImm
AIvi
Amtc
ANgl
Anit
ANlg
ANrl
Anwm
AOac
AOwd
Aroo
Artn
Aspx
Atpi
AUmd
Awhe
Buns
Stpm
Stpr

Alternative format that explains what some of them are:
Code:
ahrs = 'Ahrs'
anwm = 'Anwm'
aspx = 'Aspx'
berserkerRage = 'ACbr'
blight = 'Abli'
cargoHold1 = 'Acar'
cargoHold2 = 'Amtc'
chaos = 'Acha'
chaosRaider = 'Sca2'
commandAura = 'AOac'
darkSummoning = 'AUmd' //Malganis
detector = 'Adet'
diseaseCloud1 = 'Aapl'
entangleGoldMine = 'Aent'
entangledGoldMineAbility= 'Aegm'
entanglingRoots = 'Aenr' // (Neutral Hostile)
entanglingRoots1 = 'AEer'
entanglingSeaweed = 'Aenw'
exchangeGoldforLumber = 'ANgl'
exchangeLumberforGold = 'ANlg'
heal2 = 'Awhe'
itemAntiMagicShell = 'Aami'
itemAreaDetection = 'AIta'
itemArmorBonus = 'AIde'
itemAttackSpeedBonus = 'AIas'
itemFirebolt = 'AIfi'
itemHealing = 'AIhe'
itemHeroStatBonus = 'AIab'
itemLifeBonus = 'AIml'
itemLifeGain = 'AImi'
itemManaBonus = 'AImm'
itemManaRegain = 'AIma'
itemTemporaryAreaArmorBonus = 'AIda'
itemTemporaryInvisibility = 'AIvi'
lifeRegeneration = 'ANrl'
loadWisp = 'Slo2' // (Entangled Gold Mine)
manaRegenerationAura = 'Aarm'
pIlotTankRifleman = 'Stpr'
pilotTank = 'Atpi'
pilotTankMortarTeam = 'Stpm'
return111 = 'Artn'
reveal = 'Adta'
root = 'Aroo'
shadowHunterSerpentWard2= 'AOwd'
sunderingBlades = 'Ahsb'
tracking = 'Anit'
unloadInstant = 'Adri' // (Entangled Mine)
unsummon = 'Buns'
wateryMinion = 'ANwm'

I don't know how I could have missed anything... More research will need to be done. (Some notes to myself: ANwm exists, twice. (Anwm) Slo2 not actually missing. Did I fail at failing? ANlg not in ANY slk. Check in editor, make hacked custom units, check their data files, widgetize map.)


On to your questions!

First, I use a very old version of Casc (because I'm lazy to check for updates) and PTR Warcraft 3. (Compared the PTR data against official release and also against 1.26 versions, also, of course.)

Crashes do happen, but I just restart the program and try to do it again, but differently (to avoid the buggy code paths). My Windows reliability history says I crashed CascView.exe 8 times yesterday, and 2 times today. Latest crash report:
Description
Faulting Application Path: C:\Warcraft III\!\CascView\CascView.exe
Problem signature
Problem Event Name: APPCRASH
Application Name: CascView.exe
Application Version: 1.0.2.81
Application Timestamp: 5b766f60
Fault Module Name: CascView.exe
Fault Module Version: 1.0.2.81
Fault Module Timestamp: 5b766f60
Exception Code: c0000005
Exception Offset: 00000000000136b4
OS Version: 10.0.17763.2.0.0.256.48
Locale ID: 1038
Additional Information 1: b5f2
Additional Information 2: b5f20ee2d653e9ee73db948330695d77
Additional Information 3: afe7
Additional Information 4: afe7a4ad4b574be95d98e973a5c016e2
Extra information about the problem
Bucket ID: f309ee115c275938a401cf31140e5c98 (1441661165432102040)

The hidden abilities (and units!) are flagged in slk with useInEditor = 0, I even noted this in my comments section (See the "Some examples" spoiler under "Frank Pearce himself" for "Not available for use in editor" emphasized word mine.) Here are my favorites:
Code:
Ability:
Aalr    Alarm
Aatk    Attack
ANbu    Build (Neutral)
AHbu    Build (Human)
AObu    Build (Orc)
AEbu    Build (Night Elf)
AUbu    Build (Undead)
AGbu    Build (Naga)
ACsp    Creep Sleep
Atdp    Drop Pilot
AHer    Hero
Atlp    Load Pilot
Aloc    Locust
Amov    Move
Afir    On Fire
Afih    On Fire (Human)
Afio    On Fire (Orc)
Afin    On Fire (Night Elf)
Afiu    On Fire (Undead)
Attu    Tank Turret
Atol    Tree of life (for attaching art)
Code:
Unit:
nwad    units\orc\WatcherWard    SentryWard
egol    buildings\nightelf\EntangledGoldMine
uloc    units\undead\Locust
nanm    Archnathid    Arachnathid    barbedarachnathidmerc
nlur    Units\Creeps\MonsterLure    monsterlure
ntor    Abilities\Spells\Other\Tornado\TornadoElemental
zshv    Units\Critters\Shoveler    Kobold    theshoveler
zsmc    Units\Critters\SammyCube
Yes, all of them are my favorite!

What you are making will be very useful.

I too recoil at the sight of that instantiated ability native (extends agent):
vJASS:
native BlzGetAbilityBooleanField takes ability whichAbility, abilitybooleanfield whichField returns boolean
native BlzSetAbilityBooleanField takes ability whichAbility, abilitybooleanfield whichField, boolean value returns boolean
Are we supposed to use BlzGetUnitAbilityByIndex each time, or what?
vJASS:
native BlzGetUnitAbility takes unit whichUnit, integer abilId returns ability
At least it works natively with
vJASS:
constant native GetSpellAbility takes nothing returns ability


We got alternative forms (string or int) here, why not there too?
vJASS:
native GetAbilityEffect takes string abilityString, effecttype t, integer index returns string
native GetAbilityEffectById takes integer abilityId, effecttype t, integer index returns string

p.s.: These natives were added in 1.29, not 1.31 ;)

Edit: Found explanation for why that ability native type felt wrong: List Unit Abilities#post-3329873 — It's not consistent!
 

Attachments

  • 3ICE's ID list of bonus bonus ability from wurst.txt
    1.2 KB · Views: 39
  • 3ICE's ID list of bonus ability from wurst.txt
    294 bytes · Views: 44
  • 3ICE's ID list of all (effect, upgrade, doodad, destr, item, ability, buff, unit, bonus, wurst).txt
    17.7 KB · Views: 51
  • 3ICE's every single ID list (all, effect, upgrade, doodad, destr, item, abil, buff, unit, bonus).zip
    17.4 KB · Views: 51
Last edited:
Status
Not open for further replies.
Top