STEAM GROUP
Final Fantasy - Modding FF-Modding
STEAM GROUP
Final Fantasy - Modding FF-Modding
204
IN-GAME
2,028
ONLINE
Founded
July 26, 2015
Language
English
Location
United States 
All Discussions > Final Fantasy IX > Topic Details
Tirlititi Jun 9, 2016 @ 10:41am
Hades Workshop
Hades Workshop is the most complete Game Editing Tool available for Final Fantasy IX. Its development started for the PSX version and it became compatible with the PC version as well.

It's available on Qhimm:
http://forums.qhimm.com/index.php?topic=14315.0

If you want to contribute, you can read this post:
http://forums.qhimm.com/index.php?topic=14315.msg248197#msg248197

This tool is not compatible with Albeoris's Memoria for the moment.
Last edited by Tirlititi; Feb 18, 2017 @ 10:35am
< >
Showing 76-88 of 88 comments
Lyrithus Jan 17, 2018 @ 9:42am 
In HW, if I go to the tab "stats" and click Beatrix, then select trance link and assign it to 2nd command, then make the trance command "Dbl Wht", will she then have trance and double white magic ability?
Tirlititi Jan 17, 2018 @ 10:19am 
Nop, it's not simple to let Beatrix have Trance at all. She misses a trance model besides all the flags preventing her to have this feature.
Lyrithus Jan 18, 2018 @ 9:08am 
Alright Thanks guys. Also, while editing the weapons, how can I switch two model ID's? I'd like to switch the flame saber and coral sword Model ID's.
Tirlititi Jan 19, 2018 @ 1:09am 
@Lyrithus: It is indeed not possible to change the model ID of weapons using HW yet. It is a feature available for the PSX version but it's a bit harder to do in Steam version. To be honest, I kind of forgot about that so it's been a long time since I didn't check if I could implement it easily now.

There is no "trl" tool to my knowledge. You shouldn't care about whatever Dwight says ; I don't know in which reality he lives but it seems pretty different from mine.

EDIT: Thank you Saftle (I guess it is you) for cleaning up the subforum. Much appreciated.
Last edited by Tirlititi; Jan 20, 2018 @ 8:20am
Lyrithus Jan 22, 2018 @ 10:19am 
That's cool. I can't wait to see if you come up with ID solution for steam version.

I've read all the way through the tutorials you have provided on qhimm, on both posts, and the tips and tricks and have used HW to make my own personal mods before. Getting back into it recently, I ran into a few things that i forgot how to deal with, so thanks for clarifying and answering my posts! :)

I have mostly completed my project, however, on the first test, the first tutorial battle, there is a big game breaking bug. Everyone (Blank, Zidane, Marcus, Cinna) has 9999 HP, full trance, full time bar, and when baku attacks, the damage number, lets say its 28 damage, repeats dozens of times per second, yet according to the HP no damage is being done. The only changes I made were rebalancing/renaming/re-assigning spells, commands and a few items. Is there a common mistake made in editing those things that has caused this kind of issue before?

https://www.dropbox.com/s/p9v8v86kbinq014/HadesWorkshopMod.rar?dl=0

Above is the link to the saved steam mod files, just in case you think you could go through them breifly. You should be able to easily spot the problem since the only things modded were the spells, and what items teach what spells.
Tirlititi Jan 22, 2018 @ 10:40am 
How do you create your mod?
I think that the problems is because you use HW on an already modded game ; it can have weird effects... You should always, in the normal way of using the tool, use .hws files instead of saving your mod solely with the other formats (binary/ppf for PSX, Steam game files for Steam).

I will look into it nonetheless and see what I can do. Can you confirm me that it is the way you proceed though? I will surely not be able to allow HW to open correctly games that are already modded in some ways (ie. with modded Assembly-CSharp.dll) but if you use .hws files, then there is something really bad to fix.
Tirlititi Jan 30, 2018 @ 1:29pm 
Hey !
I found your bug. It was not was I thought.

Some characters have one of their command linked to their trance command counterpart. All of that can be seen/modified in the "Stats" panel. It is useful for letting the trance spells learned at the same rate as the normal ones, like Zidane's Dyne which are learned along his Skills. However, it has a specific requirement (else, it soft locks in battle like what you had):
all the spells under the normal command must be present in the Ability Set (in the stats panel).

That means, if for instance you modify the spells under the "Skills" command, you should also replace the spells in Zidane's Ability Set in the stats panel to match the difference.
Lyrithus Mar 4, 2018 @ 7:15am 
Edit - Ahhh, I see! Wow I can't believe I hadn't seen your response Tirl, thank you. Yes, I can see how that requirement caused my bug then. Then if I un-link the commands to their trance cmd counterpart, this will undo that bug, and it should play normally?

Also, how is the compatability colaboration project with Albeoris' Memoria coming along? I saw on this discussion the two of you talking about the code and working on compatability.
Last edited by Lyrithus; Sep 4, 2019 @ 8:42am
Rhod Briar Mar 22, 2019 @ 12:24am 
Hi.
I'm new to HW and thinking about making an alternate version of the story which, to be exact, would almost be the same (following the original one) but, like for beatrix, with added story and dialogue.

If anyone knowledgeable or motivated is willing to discuss or help, please feel free to jump in the hype train I am driving.

I would mainly need help with some functions like:
_ how to add lines of dialogue. i tried to add in first scene of prima vista where zidane says "it's dark" and "is anyone there" to make a third line for testing purpose burt could not do it.
_ how to change a character skin. I would like for zidane to have his soldier outfit in another scene and that would need a manual change.
_how to change music in the middle of a dialogue and start a fight or change location after an event.

If the project is of interest to anyone, if you have ideas, or really just want to talk, please feel free to reply.
Tirlititi Mar 22, 2019 @ 9:56am 
Hello Liossenel,

Those can be done through Field script editing. In HW, go to the panel "Environment -> Fields", find the field you want to change and "Edit Script". I guess you got it that far already.

In order to change a cutscene, you need to write lines of script code. Inside a script function, the lines are executed sequencially (except when you have control flow lines, like loops "while ..." or "RunScriptSync", etc...). So you'd want to spot the lines of code telling the game to make Zidane speak, for instance.
In the first field, "Prima Vista/Cargo Room", Zidane's two first lines are in the function "Zidane_Loop". In practice, the code for cutscenes are very often either in a function of the characters or in the function "Main_Loop". There it is at the beginning of "Zidane_Loop" so you shouldn't search for it for too long.

Take a look at these lines:
SetWalkSpeed( 15 ) Wait( 25 ) WindowSync( 2, 128, 34 ) InitWalk( ) Walk( 25, -664 ) Wait( 5 ) RunAnimation( 2719 ) Wait( 10 ) WindowSync( 2, 128, 35 ) WaitAnimation( ) Wait( 10 ) RunAnimation( 2717 ) Wait( 61 ) RunSoundCode3( 53248, 349, 0, -128, 125 ) WaitAnimation( ) SetStandAnimation( 2715 ) SetWalkAnimation( 2713 ) SetLeftAnimation( 2723 ) SetRightAnimation( 2725 )
You can see the two dialog bubbles, it's the lines "WindowSync" (click on the line inside HW to have more informations about it). "Sync" means that the code will wait until the dialog is closed before resuming, so the "Walk( 25, -664 )" line won't run until the player close the bubble (in contrast with "WindowAsync"). These lines are typically what you can find for doing a cutscene with only one character: the character speaks, runs some animations and walks around.

Simply adding a "WindowSync" line somewhere there with the correct parameters will make Zidane speak an additional line of dialog.

If you want an example of a cutscene with several intertwining character actions, go to the cases "+4", "+6", ..., "+11" of the same "Zidane_Loop" function. For instance, in the "case +6", you have these lines:
set VAR_GlobUInt8_26 = 4 Wait( 1 ) RunAnimation( 2726 ) WaitAnimation( ) EnableHeadFocus( 7 ) set VAR_GlobUInt8_26-- while ( VAR_GlobUInt8_26 > 0 ) { set VAR_GlobBool_230 = 1 Wait( 1 ) }
The variable "VAR_GlobUInt8_26" is used there as a counter for waiting all the characters to finish their job. It is setup to 4 first, then Zidane does his stuff, and is decremented by 1 in the line "set VAR_GlobUInt8_26--".
If you go to "Blank_Loop" or "Cinna_Loop" or "MarcusA_Loop", you will also see that they decrement this variable with lines "set VAR_GlobUInt8_26--" when they are done with speaking/moving/whatever.

Note that the function "Code3_Loop" basically controls the cutscene's flow here: it updates the cutscene's counter "VAR_GlobUInt8_24" (that you'll find in the other functions I mentionned) when required to the next value.

In general, "Loop" functions are executed every frame, waiting for something, because there are the two lines "Wait(1)" and "loop" at the end.

Click on the "Function List" button to have access to all the possible codes usable in the scripts. For instance,
- for starting a fight, it's "Battle" or "BattleEx",
- for changing the field, it's "Field" (or "WorldMap" when leaving the the world map); it is often preceeded by a line "set General_FieldEntrance = VALUE" to say where the character comes from in the script of the destination field,
- for playing a music, it's "RunSoundCode( 0, MusicID )",
- for changing a character's 3D model, it's "SetModel" and you need to setup the character's default animations (when standing, walking, turning...) with codes like "SetStandAnimation". I'm not exactly sure if swapping the 3D model of a character like that is bug-free but I think I remember some script doing that (maybe while the model is hidden though).

You should scroll the "HELP AND TIPS" section in the Qhimm forum's topic as there are other examples of how to use scripts (as you will see, it's the same system for the AI of the enemies so it has really broad purposes).
Rhod Briar Mar 22, 2019 @ 11:56am 
I am quiet a complete neophyte to coding, so i will probably take a little moment to experiment this all. Thank you yet agin for everything.

I won't disapoint you, great one.
Rhod Briar Mar 26, 2019 @ 11:53am 
Hi.

I have managed to do most of those things, but I am stcuk with the way choices work. I am trying to add 2 choices in the tantalas meeting before the play, and my two added choices, without my input, are acting like chosing the second vanilla choice.

any input? it's globuint17 i think, and mine are, i think, globuint 27 and 35.

UPDATE:
I have decided to scrap this specfic choice, for it gave an unnatural feel to the lore giving.
I still don't understand how the choices mechanic works and would like some help on this.
Last edited by Rhod Briar; Mar 27, 2019 @ 6:53am
Tirlititi Mar 27, 2019 @ 10:58am 
Using "GetDialogChoice" allows to retrieve the (last shown) dialog's picked choice.
Typically:
WindowSync( ... ) // Display a dialog with several choices, ie. with a [CHOO] text opcode if ( GetDialogChoice == 0 ) { // The first option was chosen } else if ( GetDialogChoice == 1 ) { // The second option was chosen // ... etc } else { // Default routine, if none of the others above connected }
Note that an "else if" sequence like this is equivalent to a "switch" block:
WindowSync( ... ) switch 3 ( GetDialogChoice ) { // Note that you need to specify the number of cases case 0: // The first option was chosen break; case 1: // The second option was chosen break; case 9: // The 10th option was chosen break; default: // Default routine, if none of the others above connected }
< >
Showing 76-88 of 88 comments
Per page: 1530 50

All Discussions > Final Fantasy IX > Topic Details