Ok, so lot's of things there :/
1) The problem lies somewhere else. Modifying the script should have no impact on what happens after the SquareEnix logo. Script modifications are in the file "p0data7.bin" and, if you get an "Assembly-CSharp.dll", that means you're modifying something else.
I don't know what could cause this bug with the latest version of HW. You may try to update your FF9 game by going to your Steam's game library -> right-click on FF9 -> Properties -> Check the integrity of local files. It will update the game to the latest Steam release and replace the modded files (it won't remove the .hws files and it's always better to have your mod in that format as well ("File -> Save Mod" in HW)).
2) So, if I understand correctly, nothing happens in-game if you do that? No bug, but nothing changed?
If so, it may be because of:
- Either your "Blank_Init" function is wrong ; since your "Blank_SpeakBTN" is correct, I feel that you did the other one just fine,
- Or you forgot to add a line "InitObject" in the "Main_Init" function: you should have a look at it and see a bunch of those "InitObject" lines, each corresponding to some 3D model on the field,
- Or you made the mod in one language and play the game in another one (the default language is "English (US)" in HW, you can change that in the "Files -> Preferences"). Scripts are language-dependant.
- Or, as Incinerator said, you copy the files in the "x86" folder of the game while playing in "x64" mode. If you copy the modded files in both folders, you're sure to be good in that regard.
3) It's a bit complicated: Blank uses the same slot as Amarant, so you can't have them both in the team at the same moment. Since Amarant is already there (as a party member) in the Pandemonium scripts, the best is to consider Blank as a NPC if you want to add him in cutscenes.
There is only one feature that is different between playable characters and NPCs in the scripts: it's the possibility to refer to an entry (in that case, a 3D object) that corresponds to the characters in your party. In the "InitObject" line, for instance, one can use "InitObject( 251, 0 )" to refer to the 1st character in the party, instead of doing things like:
if (IsInParty(0)) { // If Zidane is in the party
InitObject( 10, 0 ) // Init the 3D object and functions corresponding to Zidane
}
if (IsInParty(1)) { // If Vivi is in the party
InitObject( 11, 0 ) // Init the 3D object and functions corresponding to Vivi
}
// etc...
Except for that feature, NPCs and PCs are handled the same way.
4) That picture is in the "sharedassets2" archive (like most of this kind of pictures).
When you "right-click -> Export selection", it exports the file in the folder "HadesWorkshopAssets" (in the game's directory) as you saw. You may edit the file from there (if you have the option "Automatically convert images to PNG", as I recommand, you should be able to edit the file with any image editing tool). In order to re-import the modded file in the archive, you must be sure that this modded file is in the "HadesWorkshopAssets" folder at the same place and with the same name as when exported (in this case, there should be no ".png" extension because the file doesn't have an extension in his name in the archive). Then just "right-click -> Import Selection" should popup a message, either saying it was successfully imported or saying that it failed.
The general politic is that the Unity Assets Viewer expect the re-imported file to be in the same format as the exported file, ie. it expects a PNG image if you have the "Automatically convert images to PNG" enabled.
And to complete, the archives are indeed duplicated (except for the "Streaming Assets" archives) in two folders, "x64" and "x86" and only one of them is used by the game. You may switch folders in the Unity Assets Viewer in its options, or you may indeed copy-paste the modded archive to the other folder as well.