Modding the Shadow Fiend's voscript so that he has a voice response when casting Shadowraze

Hi all!

I've looked everywhere on the web, and could not find and threads or posts discussing this.

In the old dota 2, before reborn it seems, Shadow Fiend would respond to casting a shadow raze by picking 1 of 3 voice lines ( However, in the new patches or engine, he NEVER (pun intended) responds!

I've looked in the VPK file, pak01_dir.vpk, and tried to figure out if the files were missing or the scripts were not playing the sound. It seems, all the correct sound files are there, and the relevant scripts still have the correct lines, so I'm not sure what is stopping him from saying the voice line on ability cast..

For example: "sounds/vo/nevermore/nev_arc_ability_shadow_18.vsnd", the file for a near range shadow raze voice response with the demon eater arcana, is in the correct location, and is also called in the voscript "game_sounds_vo_nevermore.vsndevts_c", but I never hear it in game!

Could perhaps someone more familiar with this stuff shed some light on this issue? It would be super awesome!!


  • Posts: 182

    if you are talking about modding the dota 2 client, you need to take your business elsewere, this forum is for custom games.

    if you are talking about adding this in your custom game, you would probably have to do something with these (never used them myself so im not sure)

    rr_CommitAIResponse( handle, handle ) : bool
    Commit the result of QueryBestResponse back to the given entity to play. Call with params (entity, airesponse)
    rr_GetResponseTargets( ) : handle
    Retrieve a table of all available expresser targets, in the form { name : handle, name: handle }.
    rr_QueryBestResponse( handle, handle, handle ) : bool
    Params: (entity, query) : tests ‘query’ against entity’s response system and returns the best response found (or null if none found).
    CBaseEntity:GatherCriteria( handle hResult ) : void
    Returns a table containing the criteria that would be used for response queries on this entity. This is the same as the table that is passed to response rule script function callbacks.

    oor just manually play the sounds whenever sf casts his stuff.

    CBaseEntity:EmitSound( cstring soundname ) : void
    Plays a sound from this entity.