• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
June 14, 2025, 04:39:30 pm

News:

Don't be hasty to start your own mod; all our FFT modding projects are greatly understaffed! Find out how you can help in the Recruitment section or our Discord!


FlamingZelda's Stuff

Started by FlamingZelda, February 04, 2023, 12:57:55 pm

FlamingZelda

February 04, 2023, 12:57:55 pm Last Edit: December 27, 2024, 07:27:40 am by FlamingZelda Reason: Formatting, Autobattling, Levelcaps. Mission Module Update.
Important
Please do not post in this thread!
FFHacktics only allows around 10-14 file uploads for the lifetime of a post. I'm getting very close to this limit (each time I update a mod it requires a new file upload) so I request that people do not post in this thread. If you have any questions about these mods or how to use them please either ask in the FFTA channel of the FFHacktics Discord (https://discord.gg/ePeXxgewh6) or in a separate thread.

Intro
Hey all, through the last 5 years of editing FFTA I've learned a few things. So here I'm going to share a handful of doodads that I created and found which aided me in the creation of my romhack. (A Shattered Dream)

1. Nightmare Modules

This is an improved set of nightmare modules which includes the following:
Ability Effect Editor
Combo Editor
Card Shop Editor
Formation data editor (Unit data begins at 0x852A4D0 for those of you who want to repoint formations)
Lawset editor
Law editor (Doesn't seem to work properly)
Mission data editor (includes mission and cutscene triggers)
Mission rewards editor
Recruited Unit Editor
"Special Characters" (??? don't use this. Included in the upload by accident.)
"Throw" & "Hurl" Item Lists Editor
FFTA nmm.zip

2. Regen and Poison Calculations

"To make Regen use the same formula as poison, paste 00 B5 FF F7 D5 FF 02 BC 08 47 at 1303FC in rom"
By default, Hp Regeneration and Poison have different value calculations. I don't remember the exact calc, but HP Regen varies from about 12 points to 25 for the entirety of the game, meanwhile poison scales to 1/8th of your max hp. You can use the above instruction to skip the hp regen routine altogether and just use the poison calc instead. (I found this makes hp regen a viable option for healing and unit sustainability)
If you want to edit the game's poison calculation I went ahead and made an event file for that. Just follow the instructions in the txt to change the poison calc and then load into eventassembler.
FlamingZeldas_Regen__Poison.txt

3. Unit position data
I'm sure I've mentioned this before, but in the formation editor in AIO there are 6 values in the bottom right listed as "Unknown Values."
The values are as follows: Unit X coordinate, Unit Y Coordinate, Unit Facing, Unit Class type, Buffer, Buffer.
This is useful if you ever add new units to a pre-existing formation (If only there was a tool to do that *cough* *cough*)

4. Custom Crit and Advice Calculations
In FFTA a unit's crit% = JobEvade/10
I made an Event File (run with event assmbler) to change crit% to a set value. Additionally you can use this file to edit how much of a crit chance boost Advice status gives. (For example in my hack I made a move "Meditate" which sets the user's crit chance to 70% for the rest of the battle)
FlamingZeldas_Crit_Change.txt

5. Weapon animation types
The game has 4 weapon animation types:

Bludgeoning/Slashing: Blades of all kind/ Sticks of all kind/ Instruments/ Knuckles/ Unarmed
Ranged: Bows/Greatbows/Guns
Piercing: Rapiers/Spears
Casting: Performing magic A-Abilities

This is contrary to what is documented elsewhere on this site.

6. Enemy AI
In my time here I've also worked out how the game's ai system works. This isn't a rigorous explanation but a functional one which should be helpful for anyone seeking to make custom formations. It's a bit complicated so I've put it in the next post.

7. Mission Chart
I also made a chart of every combat mission in the game and when it gets unlocked. I have it listed below, just open in a new tab and download to view.

8. Counter/Bonecrusher & Reflex/Strikeback
Counter and bonescrusher activate if the ability targeting the user is physical (even if it's a healing move)
Reflex and strikeback activate if the ability targeting the user is "fight" (or combo in the case of doublesword)
Bonecrusher does not activate if the enemy's attack misses
Strikeback does not activate if the user cannot attack the enemy (out of range or disabled)
As such, Counter provides more consistent damage payout than Bonecrusher and Reflex provides more defensive coverage than Strikeback

9. AutoBattling
Write "05 E0" at "0x092578" in the romfile to enable automatic battling. This should work for any version of FFTA including romhacks. (Credit: Rurusachi)

10. Level Caps
This is an EventAssembler mod which allows the user to set custom level caps for each of the story missions. Open the .event file with a text editor to edit and view these level caps.
(Made in collaboration with Aya)
FFTA Level Caps by Story Progression.zip
  • Modding version: Other/Unknown

FlamingZelda

FFTA ENEMY AI

Step 1: Scan every ability that the unit knows and add that ability's "Priority Value" (PV) into a pool. (Fight's PV is called "Agressiveness" in AIO)

Step 2: Roll a number from 1 to [total of all PVs]

Step 3: Attempt to execute whichever move is landed on. If the move cannot be executed go back to step 2. (Fight will always be executed)

Step 3 cont.
A move cannot be executed if it:
A. Violates the current laws and the unit does not have the boss flag
B. The unit does not have enough MP
C. The ability is set to "Do not use" in the targeting editor (Listed as A-Ability Editor -> AI Data -> AI Behavior -> "Unknown" in AIO)
D. Has no valid targets

D Cont.
Valid targets:
The game checks the ability's effects. Each effect has a group of valid or invalid targets.
Additionally, the ai will not do negative effects on allies or positive effects on enemies.
The ai does not check Equipment or Abilities.
(If Fight has no valid targets then just move without performing an action)

Step 4: Select a square to use the action on

Step 5: Choose a square to move the unit to in order to be able to target the square selected in step 4.

Step 6: Complete the action.

Step 7: Select a facing.

Misc info:
A PV of 100 does not mean "the unit has a 100% chance of performing the action" as many people keep trying to insinuate.

Fight is never invalidated. If a unit would use fight and can't they instead move toward whichever square they would fight from.
This means a unit with a higher fight value will more often do nothing or just walk on their turn. Units with a low fight value are more likely to use abilities.
  • Modding version: Other/Unknown

FlamingZelda

  • Modding version: Other/Unknown