Author Topic: [PSX/PC] General editor - Hades Workshop (0.50b)  (Read 858490 times)

anxietymafia

  • *
  • Posts: 14
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2000 on: 2024-01-06 20:57:04 »
Oh, I see! Thank you for the reply. I won’t waste my time poking at it anymore then. Thanks so much. I might just kill Marcus off in that case.

paky-outsider

  • *
  • Posts: 11
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2001 on: 2024-01-07 14:42:45 »
@paky-outsider: No, they are mostly done for the PC version and even for the PC version that is modded with the Memoria Engine Mod.
These 3 points apply to the PSX version as well, but that's pretty much it.
- Fix "ObjectUID_" in scripts so they adapt if you add or remove entries.
- Add a copy/paste feature for texts. Only enemy, world map and field texts can use this feature.
- Add a couple of interface improvements (mainly some more IDs are displayed).


@g_west: These are handled by the field scripts (in "Environment -> Fields -> Edit Script" windows).

The functions that are relevant to this side-quest are mostly those:
1) Picking up the Red Stone: Field Mountain Path/Trail (1550), Function Zidane_48
2) Picking up the Blue Stone: Field Mountain Path/Trail (1551), Function Zidane_15
3) Picking up the Yellow Stone: Field Mountain Path/Roots (1555), Function Zidane_22
4) Picking up the Green Stone: Field Mountain Path/Roots (1557), Function Zidane_14
5) Placing all the stones: Field Mountain Path/Roots (1554), Function Zidane_16

The picking-up functions all look roughly the same. Something like that:
Code: [Select]
Function Zidane_48
    TimedTurn( Angle(2000, 850), 32 )
    WaitTurn(  )
    SetStandAnimation( 2605 ) // Crouch
    RunAnimation( 2607 ) // Idle crouching
    WaitAnimation(  )
    SetTextVariable( 0, 300 ) // "Red Stone"
    WindowSync( 0, 0, 143 ) // "[Item] is set on the stone. Take it out Leave it alone"
    if ( !GetDialogChoice ) {
        Wait( 10 )
        RunSoundCode3( 53248, 1340, 0, -128, 125 ) // Play Sound
        Wait( 10 )
    }
    SetStandAnimation( 200 ) // Idle
    RunAnimation( 2591 ) // Stand up
    if ( !GetDialogChoice ) {
        RunSoundCode3( 53248, 108, 0, -128, 125 ) // Play Sound
        AddItem( 300, 1 ) // Add the Red Stone key item
        SetTextVariable( 0, 300 ) // "Red Stone"
        if ( 1 ) {
            WindowSync( 7, 0, 58 ) // "  Received [Item]!  "
        } else {
            WindowSync( 7, 0, 59 ) // Unused - "  Received [Item] Card!  "
        }
        set VARL_GenBool_2864 = 1
    }
    WaitAnimation(  )
    return
So you see, by changing the ID "300" to something else, you can change the item given at these statues. It also shows how items are given to the player so you can do something similar later on on disk 3.

The function for placing the stones is a bit more complicated (in particular, it uses a variable "VARL_GenUInt8_358" with bitwise operations to keep track of which stones are already placed). It could be done to add another stone requirement (like a custom made "White Stone" or whatever) that would only be picked up in disk 3, but indeed the easiest is to change the reward in one of the pickup spot above + add the missing stone later on in disk 3.

In order to give the missing stone later on, check how to change a chest content that I wrote a long time ago. Most of the time, you'll want to search for the "Chest" functions in field scripts or possibly the "Zidane_XX" functions when the items are placed on the floor and not inside a chest.
It is also possible to add a whole new chest, so you don't replace any other treasure. For that, you mostly need to:
1) Create a new entry in the "Edit Entries" window, of type "Object" (because it will be linked to a chest 3D object).
2) Add functions for that new entry, at least a "Init" (a function of type 0) and a "Range" (a function of type 2). Adding functions is done by right-clicking on the list of functions in the script window. These two functions should be like the functions for existing chests. The "Init" function for instance could look like that:
Code: [Select]
Function ChestA_Init
    SetModel( 75, 0 ) // The model of "ChestA"
    CreateObject( [COORDINATES: Chest position on the field] )
    TurnInstant( [ANGLE: Chest facing angle on the field] )
    SetObjectLogicalSize( 1, 40, 45 )
    SetStandAnimation( 7340 ) // Dummy Close
    SetWalkAnimation( 7340 ) // Dummy Close
    SetRunAnimation( 7340 ) // Dummy Close
    SetObjectFlags( 5 )
    SetHeadFocusMask( 2, 0 )
    if ( [CONDITION: Chest content already picked up] ) {
        SetStandAnimation( 7338 ) // Dummy Open
    } else {
        SetStandAnimation( 7339 ) // Dummy Close
    }
    SetObjectFlags( 49 )
    EnableHeadFocus( 0 )
    return
3) Add a line "InitObject" next to the others in the function "Main_Init" to actually create the chest object when entering the field.


Sorry for the late answers.

Hi Tirlititi and happy new year to everyone who still enjoying this game.
I'm on my way to mod 3rd disk of psx version.
I've to stop and re-mod the entire disk 2 fields, 'cause i overwrite the binary file directly, 'cause of some issues in Iifa Tree fields that stuck the game. Many of these fields, even if you don't modify anythings, if you parse them, appears some errors.
So i don't touch them (except two or three things). It works.
Something like that it happens on disk 3, pandemonium fields, because of my modification, i suppose.
In 3rd disk i'd wanted to add Beatrix in the party...the idea is switch Freya to Beatrix (simply adjustment of SetPartyReserve and SetCharacterData) but in many places there are some troubles: Desert Palace, Oeilivert, Gulgu, Ipsen Castle and so on till to Branbal. The code of the game, often checks who is in your party (is in party check, or with other VARiables) to put in game fields this o that character. Even if from Quina, Eiko and Amarant to Cinna, Marcus and Blank, I made it, It doesn't work if you adjust these checks to say to the game "if Beatrix is in the party you've to act like Freya is in the party".
Now, 'cause of Pandemonium fields problems, i rewrited fields only to have Tantalus... I added Beatrix in some battles (like when you search amarant in Ipsen Castle with Zidane solo party).

1) Any suggestions?

2) Where (or with what) i can edit something about trance models on psx version?
I've already gave trance to Cinna, Marcus and Blank removing Change Model line in Spell animation for Trance Activate --- but, you know, i'm wondering, for example, can i associate blank with pluto suit like trance version of Blank?
And on it, how can i choose (or set) this suit for Blank, in normal game?

It's almost a year that i've started to mod the game thank to this forum, to you Tirlititi and to who posts here throught the years.

Thanks.
« Last Edit: 2024-01-07 15:05:45 by paky-outsider »

Tirlititi

  • *
  • Posts: 874
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2002 on: 2024-01-07 17:15:34 »
Sorry, I can't help you with those.

1) Yes, the game script isn't meant to allow Beatrix in multiple instances. The Desert Palace / Oeilvert split being surely the biggest obstacle. You'd need to create a bunch of functions to have Beatrix appear in these scenes or even to avoid crashes and soft-locks.
Everytime the script uses something like "RunScriptSync( XX, 252, XX )", it searches for a script linked to one of the 4 party members. It soft-locks if Beatrix is that party member and doesn't have the corresponding function. That kind of thing is used a lot for animations, walks, dialogs... in places where the characters present aren't fixed. And as you said, there are also a lot of "IsInParty" checks, sometimes in scripts that assume that "IsInParty(X)" works for exactly 3 characters when X ranges from 1 to 7...
Honestly, that's a huge work to make and it couldn't even be automatized because each script works differently and should be fixed in a different way.

2) You can't do that for the PSX version. Removing the Change Model line is the furthest thing you can do there. I'm actually not even sure if Blank's Pluto Armor model exists in the discs 2, 3 and 4 in the PSX version (or maybe the battle model exists but not the field version).
I guess searching for the IDs of the trance models in the binary file could lead to some results. If you're lucky, these IDs are stored in a row or in a pattern that could be found. Again, that requires the use of a hexa-decimal file editor, not something that HW can do.
The list of model IDs used in the game can be downloaded here.

ste459

  • *
  • Posts: 14
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2003 on: 2024-01-21 09:35:19 »
Back to Hades Workshop after a long time  :) Nice to see that FF9 modding is still active!
Congratulations Tirlititi for your wonderful work!

If it were possible I would like to ask for an help. My goal is to create a multi-hit skill for Steiner or Zidane, inspired from limit breaks of previous FF games. The character shoud run towards target (or targets), hit with multiple sword attacks (dealing and displaying damage with every single hit) and then come back. I tried to edit the spell sequencing using Iai strike for animations, but the result was a mess. I am not able to make Steiner run towards the 2nd target after the first damage point and before jumping back (maybe I need to insert some of the unknow instructions like 0x50., 0x71?). It is possible to make a skill like what I intend to do? Is it the only way to do that?
Thanks in advance!

Tirlititi

  • *
  • Posts: 874
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2004 on: 2024-01-21 15:43:55 »
Since you have the Steam version of the game, you can use Memoria's feature for doing things like that. For that, you need to have Memoria updated to some recent version if you haven't done that already: https://github.com/Albeoris/Memoria/releases/latest.
Then, use custom ".seq" files. These are similar to the animation sequences you can edit in Hades Workshop but they allow much more things.

For example, in Alternate Fantasy, I used this sequence file for one of Zidane's ability: it performs a double-hit much like what you want (I think).
Code: [Select]
// Player sequence of SFX Iai_Strike_2
// Used by Zidane (Windfall with a dagger)

WaitAnimation: Char=Caster
Message: Text=[CastName] ; Priority=1 ; Title=True ; Reflect=True
SetupReflect: Delay=SFXLoaded
LoadSFX: SFX=Iai_Strike_1 ; Reflect=True ; UseCamera=False
PlayAnimation: Char=Caster ; Anim=MP_SET
WaitAnimation: Char=Caster
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=670 ; UseCollisionRadius=True ; Anim=MP_RUN
Turn: Char=Caster ; BaseAngle=AllTargets ; Time=4
WaitMove: Char=Caster
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=400 ; UseCollisionRadius=True ; Anim=MP_RUN_TO_ATTACK
WaitMove: Char=Caster
StartThread
Wait: Time=4
WaitSFXLoaded: SFX=Iai_Strike_1
PlaySFX: SFX=Iai_Strike_1
WaitSFXDone: SFX=Iai_Strike_1
EndThread
PlayAnimation: Char=Caster ; Anim=MP_ATTACK
WaitAnimation: Char=Caster
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=-200 ; UseCollisionRadius=True ; Time=0
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=1100 ; UseCollisionRadius=True ; Anim=MP_STEP_BACK
WaitMove: Char=Caster
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=670 ; UseCollisionRadius=True ; Anim=MP_RUN
Turn: Char=Caster ; BaseAngle=AllTargets ; Time=4
WaitMove: Char=Caster
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=400 ; UseCollisionRadius=True ; Anim=MP_RUN_TO_ATTACK
WaitMove: Char=Caster
StartThread
Wait: Time=4
WaitSFXLoaded: SFX=Iai_Strike_1
PlaySFX: SFX=Iai_Strike_1
WaitSFXDone: SFX=Iai_Strike_1
EndThread
PlayAnimation: Char=Caster ; Anim=MP_ATTACK
WaitAnimation: Char=Caster
MoveToPosition: Char=Caster ; AbsolutePosition=Default ; Anim=MP_BACK
Turn: Char=Caster ; BaseAngle=Default ; Time=4
WaitMove: Caster
PlayAnimation: Char=Caster ; Anim=Idle
WaitTurn: Char=Caster
ActivateReflect
WaitReflect
By having this file saved as "{Mod Folder}/StreamingAssets/Data/SpecialEffects/ef030/Sequence.seq", the abilities that use the spell effect "Iai Strike 2" (that you can pick in Hades Workshop) will perform a double-hit with the Iai Strike effect.

You can find more informations on how to write .seq files on the wiki: https://github.com/Albeoris/Memoria/wiki/Battle-SFX-Sequence

ste459

  • *
  • Posts: 14
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2005 on: 2024-01-21 20:12:59 »
Thanks! Yes, this is very similar to what I had in mind (even the same animation!).

I tested and worked perfectly for a single target. I'm trying now to edit the sequence to make a multi-target spell, in my intentions the character should be able to hit once (or maybe twice) every enemy, one-by-one. The main obstacle is that I have zero programming knowledge  ;D
I tried to edit the sequence as follows:

Code: [Select]
/ Player sequence of SFX Iai_Strike_2
// Used by Zidane (Windfall with a dagger)

WaitAnimation: Char=Caster
Message: Text=[CastName] ; Priority=1 ; Title=True ; Reflect=True
SetupReflect: Delay=SFXLoaded
LoadSFX: SFX=Iai_Strike_1 ; Reflect=True ; UseCamera=False
PlayAnimation: Char=Caster ; Anim=MP_SET
WaitAnimation: Char=Caster
MoveToTarget: Char=Caster ; Target=FirstTarget ; Distance=670 ; UseCollisionRadius=True ; Anim=MP_RUN
Turn: Char=Caster ; BaseAngle=FirstTarget ; Time=4
WaitMove: Char=Caster
MoveToTarget: Char=Caster ; Target=FirstTarget ; Distance=400 ; UseCollisionRadius=True ; Anim=MP_RUN_TO_ATTACK
WaitMove: Char=Caster
StartThread
Wait: Time=4
WaitSFXLoaded: SFX=Iai_Strike_1
PlaySFX: SFX=Iai_Strike_1
WaitSFXDone: SFX=Iai_Strike_1
EndThread
PlayAnimation: Char=Caster ; Anim=MP_ATTACK
WaitAnimation: Char=Caster
MoveToTarget: Char=Caster ; Target=FirstTarget ; Distance=-200 ; UseCollisionRadius=True ; Time=0
MoveToTarget: Char=Caster ; Target=FirstTarget ; Distance=1100 ; UseCollisionRadius=True ; Anim=MP_STEP_BACK
WaitMove: Char=Caster
MoveToTarget: Char=Caster ; Target=SecondTarget ; Distance=670 ; UseCollisionRadius=True ; Anim=MP_RUN
Turn: Char=Caster ; BaseAngle=SecondTarget ; Time=4
WaitMove: Char=Caster
MoveToTarget: Char=Caster ; Target=SecondTarget ; Distance=400 ; UseCollisionRadius=True ; Anim=MP_RUN_TO_ATTACK
WaitMove: Char=Caster
StartThread
Wait: Time=4
WaitSFXLoaded: SFX=Iai_Strike_1
PlaySFX: SFX=Iai_Strike_1
WaitSFXDone: SFX=Iai_Strike_1
EndThread
PlayAnimation: Char=Caster ; Anim=MP_ATTACK
WaitAnimation: Char=Caster
MoveToTarget: Char=Caster ; Target=SecondTarget ; Distance=-200 ; UseCollisionRadius=True ; Time=0
MoveToTarget: Char=Caster ; Target=SecondTarget ; Distance=1100 ; UseCollisionRadius=True ; Anim=MP_STEP_BACK
WaitMove: Char=Caster
MoveToTarget: Char=Caster ; Target=ThirdTarget ; Distance=670 ; UseCollisionRadius=True ; Anim=MP_RUN
Turn: Char=Caster ; BaseAngle=ThirdTarget ; Time=4
WaitMove: Char=Caster
MoveToTarget: Char=Caster ; Target=ThirdTarget ; Distance=400 ; UseCollisionRadius=True ; Anim=MP_RUN_TO_ATTACK
WaitMove: Char=Caster
StartThread
Wait: Time=4
WaitSFXLoaded: SFX=Iai_Strike_1
PlaySFX: SFX=Iai_Strike_1
WaitSFXDone: SFX=Iai_Strike_1
EndThread
PlayAnimation: Char=Caster ; Anim=MP_ATTACK
WaitAnimation: Char=Caster
MoveToTarget: Char=Caster ; Target=ThirdTarget ; Distance=-200 ; UseCollisionRadius=True ; Time=0
MoveToTarget: Char=Caster ; Target=ThirdTarget ; Distance=1100 ; UseCollisionRadius=True ; Anim=MP_STEP_BACK
WaitMove: Char=Caster
MoveToTarget: Char=Caster ; Target=FourthTarget ; Distance=670 ; UseCollisionRadius=True ; Anim=MP_RUN
Turn: Char=Caster ; BaseAngle=FourthTarget ; Time=4
WaitMove: Char=Caster
MoveToTarget: Char=Caster ; Target=FourthTarget ; Distance=400 ; UseCollisionRadius=True ; Anim=MP_RUN_TO_ATTACK
WaitMove: Char=Caster
StartThread
Wait: Time=4
WaitSFXLoaded: SFX=Iai_Strike_1
PlaySFX: SFX=Iai_Strike_1
WaitSFXDone: SFX=Iai_Strike_1
EndThread
PlayAnimation: Char=Caster ; Anim=MP_ATTACK
WaitAnimation: Char=Caster
MoveToPosition: Char=Caster ; AbsolutePosition=Default ; Anim=MP_BACK
Turn: Char=Caster ; BaseAngle=Default ; Time=4
WaitMove: Caster
PlayAnimation: Char=Caster ; Anim=Idle
WaitTurn: Char=Caster
ActivateReflect
WaitReflect

However this code makes Steiner hit always 4 times (even if there are <4 enemies), furthermore the damage is dealt to all the enemies with every hit. I've checked the Memoria's wiki u linked, but I'm still not sure of how can I fix this (maybe I need a target loop thread?).

Thanks in advance for your suggestions and your time!!

Tirlititi

  • *
  • Posts: 874
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2006 on: 2024-01-22 09:42:29 »
Exactly, you need a target loop thread with the option "Chain". You also need to redo a "LoadSFX" operation when you change the target, which is the reason why it applied to all the targets everytime.

Something like:
Code: [Select]
StartThread: TargetLoop ; Chain ; Sync
LoadSFX: SFX=Iai_Strike_1 ; Target=AllTargets ; Reflect=True ; UseCamera=False
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=670 ; UseCollisionRadius=True ; Anim=MP_RUN
Turn: Char=Caster ; BaseAngle=AllTargets ; Time=4
WaitMove: Char=Caster
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=400 ; UseCollisionRadius=True ; Anim=MP_RUN_TO_ATTACK
WaitMove: Char=Caster
StartThread
Wait: Time=4
WaitSFXLoaded: SFX=Iai_Strike_1
PlaySFX: SFX=Iai_Strike_1
WaitSFXDone: SFX=Iai_Strike_1
EndThread
PlayAnimation: Char=Caster ; Anim=MP_ATTACK
WaitAnimation: Char=Caster
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=-200 ; UseCollisionRadius=True ; Time=0
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=1100 ; UseCollisionRadius=True ; Anim=MP_STEP_BACK
WaitMove: Char=Caster
EndThread

ste459

  • *
  • Posts: 14
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2007 on: 2024-01-22 22:28:42 »
Thanks!!! Works great
I used your code to make a double-hit, multi target ability for Steiner. I added a check to prevent him from hitting again an enemy already killed by the first strike, and made minor tweaks like playing the victory animation at start.
The result is quite funny, especially when using custom flags to allow criticals  8)


Code: [Select]
WaitAnimation: Char=Caster
Message: Text=[CastName] ; Priority=1 ; Title=True ; Reflect=True
SetupReflect: Delay=SFXLoaded
SetBackgroundIntensity: Intensity=0.5 ; Time=4 ; HoldDuration=50
Wait: Time=30
PlayAnimation: Char=Caster ; Anim=MP_WIN
WaitAnimation: Char=Caster
WaitTurn: Char=Caster
StartThread: TargetLoop ; Chain ; Sync
LoadSFX: SFX=Iai_Strike_1 ; Target=AllTargets ; Reflect=True ; UseCamera=False
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=670 ; UseCollisionRadius=True ; Anim=MP_RUN
Turn: Char=Caster ; BaseAngle=AllTargets ; Time=4
WaitMove: Char=Caster
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=400 ; UseCollisionRadius=True ; Anim=MP_RUN_TO_ATTACK
WaitMove: Char=Caster
StartThread
Wait: Time=4
WaitSFXLoaded: SFX=Iai_Strike_1
PlaySFX: SFX=Iai_Strike_1
WaitSFXDone: SFX=Iai_Strike_1
EndThread
PlayAnimation: Char=Caster ; Anim=MP_ATTACK
WaitAnimation: Char=Caster
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=-200 ; UseCollisionRadius=True ; Time=0
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=500 ; UseCollisionRadius=True ; Anim=MP_STEP_BACK
WaitMove: Char=Caster
EndThread
StartThread: TargetLoop ; Chain ; Sync
StartThread: Condition=TargetHP != 0 ; Sync
LoadSFX: SFX=Iai_Strike_1 ; Target=AllTargets ; Reflect=True ; UseCamera=False
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=670 ; UseCollisionRadius=True ; Anim=MP_RUN
Turn: Char=Caster ; BaseAngle=AllTargets ; Time=4
WaitMove: Char=Caster
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=400 ; UseCollisionRadius=True ; Anim=MP_RUN_TO_ATTACK
WaitMove: Char=Caster
StartThread
Wait: Time=4
WaitSFXLoaded: SFX=Iai_Strike_1
PlaySFX: SFX=Iai_Strike_1
WaitSFXDone: SFX=Iai_Strike_1
EndThread
PlayAnimation: Char=Caster ; Anim=MP_ATTACK
WaitAnimation: Char=Caster
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=-200 ; UseCollisionRadius=True ; Time=0
MoveToTarget: Char=Caster ; Target=AllTargets ; Distance=500 ; UseCollisionRadius=True ; Anim=MP_STEP_BACK
WaitMove: Char=Caster
EndThread
EndThread
SetBackgroundIntensity: Intensity=1 ; Time=8
MoveToPosition: Char=Caster ; AbsolutePosition=Default ; Anim=MP_BACK
Turn: Char=Caster ; BaseAngle=Default ; Time=4
WaitMove: Caster
PlayAnimation: Char=Caster ; Anim=Idle
WaitTurn: Char=Caster
ActivateReflect
WaitReflect


There is just an issue. I tested this spell against Yans and noticed that after getting hit twice they countered with Float against themselves. I remember that this bug may happen when an enemy able to counterattack gets hit by a double damaging spell, right? There is now a way to fix that, other than disabling counterattacks for the specific spell I made?
I tried to activate CountersBetterTarget in Memoria.ini with no result
« Last Edit: 2024-01-23 12:09:56 by ste459 »

Tirlititi

  • *
  • Posts: 874
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2008 on: 2024-01-23 17:12:05 »
I don't understand why there is this issue with a counter-float on themselves, sorry. I don't know where it comes from. I'm afraid that you'll have to investigate that issue yourself. "CounterBetterTarget" only applies to party members' counters so you don't need to take it into account when checking things. I would say you should rather check Yan's IA.

I don't get why they would target themselves because they don't have any spell that would target themselves normally. So even if there is some kind of mess because of 2 counters being queued simultaneously (and there shouldn't: the behaviour now should be that any new counter is dismissed until the 1st counter is performed), I don't see how the target could end up being themselves.

ste459

  • *
  • Posts: 14
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2009 on: 2024-01-23 19:58:10 »
Ok, I'm happy if it is not a known issue, maybe I only messed up something while modding, I'll do some check.

Thanks again Tirliti!!

razzle

  • *
  • Posts: 1
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2010 on: 2024-02-13 14:35:09 »
This is my first time using this mod, and I followed all the directions for installing. However, my problem is that every time I modify something, like changing "thunder" to "thunderZ" just for testing, after saving it using the save Steam mod and attempting to close the app, it says, "There are unsaved changes.

Tirlititi

  • *
  • Posts: 874
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2011 on: 2024-02-20 08:47:26 »
You should better always save your mod as "Steam Mod" but also as HWS saves ("File -> Save Mod").
You cannot resume the modding of the game after closing Hades Workshop if you don't do that: Hades Workshop should always load the base game when you open it: you can resume a mod you previously started by using "File -> Open Mod" and selecting the HWS file you previously saved.

charlie_38

  • *
  • Posts: 4
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2012 on: 2024-02-24 20:16:48 »
Hi Charlie_38.
There's no problem. Me and other people have done it without noticing any bug and there shouldn't be any. There would be issues if you tried to load a HWS that was created with HW v0.50b into the older version of HW v0.43, but the other way around is designed to work fine.

Hi Tirlititi,

I've noticed that this new version exports csv files that don't have all items, in StreamingAssets\Data\Items folder.
For example, "Weapons.csv" file, when exported from HW, contains the weapons I've modded and some of the rest of non-modded weapons, but not all of them.
I also have an issue with "Items.csv" and "ItemEffects.csv" files, since they don't contain all items ids. Then, when playing game, some attacks or actions don't work fine, like for example giving an elixir or a phoenix down to a party member.
I've modded some armours and none of them appear in "Armours.csv" file when exported. Only five items appear, and they are all non-modded.

However, text files in FF9_Data\embeddedasset\text folder contain only the modded stuff and they work fine. I guess it is because the tag "[TXID=X]" that must mean something like "mantain the name of the non-modded items until the item X that is modded".

Is this caused because my project was started with a previous HW version? Should I configure something else in HW?

Apart from this issue, in the Help window of HW, it says:

"[Scripts]
You can't edit the World Maps' scripts in the Japanese version of the game."

Does this still happen if you change language setting in HW to Japanese, and edit worldmaps' scripts?

Regards!
« Last Edit: 2024-02-28 22:20:40 by charlie_38 »

Tirlititi

  • *
  • Posts: 874
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2013 on: 2024-03-02 15:22:13 »
Hello charlie_38,

Regarding the non-complete CSV and MES files, that's normal. You must get an up-to-date version of Memoria in order for it to work properly though. So once you've updated Memoria, it should be all good.

Regarding that note in the Help window, it only concerns the PSX Japanese version of the game. If I recall correctly, one of the World Maps used for debugging had a "corrupted" script that would make Hades Workshop crash if it tried to read it. In the Steam version of the game, that's not a problem anymore and you can indeed edit the Japanese World Maps' scripts if you change language setting in HW to Japanese and it will work fine.

charlie_38

  • *
  • Posts: 4
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2014 on: 2024-03-02 20:57:32 »
Hi Tirlititi,

I had already updated Memoria (v2023.06.11), and I started to use this new version of HW afterwards. I've just re-updated Memoria though, to check again.
The curious thing about this is that it seems to work fine with a new project: it only exports the changes you make, and then in game everything works correctly. But if I load my HW project and export, the CSV files are exported in the way I explained. That's why I thought it might have something to do with the version of my project: it will only work fine in game if I have the CSV files with all items.

Regarding the note in the Help windows, I had not read the top of that section: it clearly says that all those issues only apply for the PSX version. Sorry for not reading it from the beginning, LOL.


stir472

  • *
  • Posts: 18
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2015 on: 2024-03-03 21:36:22 »
Hii tirlititi, I am curious to know if there will be a memory or hadesworkshop update in the coming months, greetings. I love your job

Yerek

  • *
  • Posts: 1
    • View Profile
Re: [PSX/PC] General editor - Hades Workshop (0.50b)
« Reply #2016 on: 2024-04-04 12:04:03 »
First, just want to say I love the tool you've made. Second I was wondering if anyone had any ideas on a problem I am running into. I made a psx mod that makes the defend conmand activate trance only if at max gauge (auto trance is disabled as well), but because a command is used to enter trance, it increments the trance gauge down one turn right after activating it. Does anyone have any ideas on a way to fix this? I haven't found anything myself,  but wanted to check and see if anyone else has any ideas.