Project page (GitHub): https://github.com/melindil/FTSE
Download link (current): https://github.com/melindil/FTSE/blob/master/Release/FTSE_0.56a.zip?raw=true
Documentation link: https://melindil.github.io/FTSE/manual/01-introduction.md.html
This mod enhances the game Fallout Tactics, adding the following capabilities:
Configurable EXE patching
Most of the known hex-edits for the BOS executable file are included. Each can be selectively enabled or disabled from a configuration file. New edits can also be added without needing to hex edit, or rebuild the mod.
Custom Scripting Engine
The mod will patch the BOS executable to load an included DLL, containing a Lua language interpreter, and interfaces to the Fallout Tactics data. The Lua code can specify code to execute at certain pre-defined trigger points within the game, and modify game variables in real-time to produce customized behaviors.
Installation Instructions (NOTE this has changed for 0.45a)
IMPORTANT: If upgrading from a version earlier than 0.45a, it is highly advised to remove any existing ftse.lua script file, and reapply any customizations to the new ftse.lua file generated after installation. This ensures that the old Lua code for fixing the burst bug is properly removed from ftse.lua, since it is now included in ftse_base.lua.
Download the latest .ZIP release from the Release directory, and uncompress. Included is FTSESetup.exe - running this will bring up a small UI. Select the BOS.EXE file, and click "Install". The setup utility will patch the EXE and copy all necessary files to the game directory. A backup of the EXE will be produced.
Note that the installer will check the EXE to ensure that a) the patch is not yet installed, and b) that the code being modified is as expected (BOS.EXE version 1.27). If the UI shows "Installed", then the EXE has already been patched. The setup utility will still copy the latest versions of the DLL and config files.
If upgrading from 0.45a to a later release, then running FTSESetup.exe should show the status as "INSTALLED" already. As long as the newer FTSESetup.exe has been run, the new versions of FTSE.DLL and the configuration files will be copied over.
If the UI shows "Unknown", then the EXE doesn't match the expected version, and will not allow patching.
The new UI also allows selecting individual hex patches. Select/unselect desired patches, then click "Apply Changes".
After installation, double-check that the FTSE.DLL, FTSE_config-base.json, and ftse_base.lua files have been copied to the Fallout Tactics directory.
Upon starting the game, if everything is working, the FTSE version should be included in the version string near the bottom of the main menu screen.
More documentation will be forthcoming as new functionality is added.
Enjoy!
Changelog:
Download link (current): https://github.com/melindil/FTSE/blob/master/Release/FTSE_0.56a.zip?raw=true
Documentation link: https://melindil.github.io/FTSE/manual/01-introduction.md.html
This mod enhances the game Fallout Tactics, adding the following capabilities:
Configurable EXE patching
Most of the known hex-edits for the BOS executable file are included. Each can be selectively enabled or disabled from a configuration file. New edits can also be added without needing to hex edit, or rebuild the mod.
Custom Scripting Engine
The mod will patch the BOS executable to load an included DLL, containing a Lua language interpreter, and interfaces to the Fallout Tactics data. The Lua code can specify code to execute at certain pre-defined trigger points within the game, and modify game variables in real-time to produce customized behaviors.
Installation Instructions (NOTE this has changed for 0.45a)
IMPORTANT: If upgrading from a version earlier than 0.45a, it is highly advised to remove any existing ftse.lua script file, and reapply any customizations to the new ftse.lua file generated after installation. This ensures that the old Lua code for fixing the burst bug is properly removed from ftse.lua, since it is now included in ftse_base.lua.
Download the latest .ZIP release from the Release directory, and uncompress. Included is FTSESetup.exe - running this will bring up a small UI. Select the BOS.EXE file, and click "Install". The setup utility will patch the EXE and copy all necessary files to the game directory. A backup of the EXE will be produced.
Note that the installer will check the EXE to ensure that a) the patch is not yet installed, and b) that the code being modified is as expected (BOS.EXE version 1.27). If the UI shows "Installed", then the EXE has already been patched. The setup utility will still copy the latest versions of the DLL and config files.
If upgrading from 0.45a to a later release, then running FTSESetup.exe should show the status as "INSTALLED" already. As long as the newer FTSESetup.exe has been run, the new versions of FTSE.DLL and the configuration files will be copied over.
If the UI shows "Unknown", then the EXE doesn't match the expected version, and will not allow patching.
The new UI also allows selecting individual hex patches. Select/unselect desired patches, then click "Apply Changes".
After installation, double-check that the FTSE.DLL, FTSE_config-base.json, and ftse_base.lua files have been copied to the Fallout Tactics directory.
Upon starting the game, if everything is working, the FTSE version should be included in the version string near the bottom of the main menu screen.
More documentation will be forthcoming as new functionality is added.
Enjoy!
Changelog:
Code:
0.56a:
Bug fixes (FOT):
* Added hex patch for proper fix of Night Person, Die Hard, and Adrenaline Rush
Bug fixes (FTSE):
* FTSESetup now displays error message if an error occurs on reading the BOS executable
* Calling RemoveInventory on Container and Vehicle now triggers game engine inventory revalidate function
* Equip and unequip hooks no longer called if World hasn't fully loaded yet
* Fix Collectable:GetWeightTotal calling the wrong function
* Ensure calculations for radiation and poison resistance cap at 100% to avoid triggering heal logic
New Class Functions:
* Entity:SetTag
* Actor:GetXP
* Actor:AddXP
* Actor:GetReputation
* Actor:AddReputation
* Actor:GetHP
* Actor:ApplyDamage
* Actor:HealHP
* Actor:GetAP
* Actor:AdjustAP
* Added handling for Entity vtable function 510 (ActOnControllerCommand)
0.55a: June 27, 2024
Bug fixes (FOT):
* Added hex patch fixes for radiation and poison resistance to work properly
* Added hex patch fix for proper randomization of injury on non-aimed-shot critical hits
Bug fixes (FTSE):
* Corrected a typo that prevented the GetEffectMaximum function in Consumable class from working correctly
New class functions:
* World:AdvanceTime
* Entity:SetColor
* Entity:RefreshSprite
Major features:
* Added ability to call and/or hook most Entity class vtable functions. See vtable documentation for details.
0.52a: May 7, 2021
Bug fixes (FOT):
* Swapping items in hands no longer reloads weapons for free, and keeps both equipped.
New hooks:
* OnCheckEquip
* OnEquip
* OnCheckUnequip
* OnUnequip
New class functions:
* Actor:EquipItem
* Actor:UnequipItem
* Actor:GetEquippedItem
* Entity:GetInternalName
0.51a: April 8, 2021
Bug fixes (FTSE):
* Fixed random crashes due to missing LUA stack cleanup
0.50a: May 9, 2020
Bug fixes (FTSE):
* Modified the AP value in ActorStatus to properly handle it as a floating point value
Scripting additions/changez:
* Added all remaining entity types (too numerous to list here)
* Added functions to retrieve, add to, and remove from inventory
* Added function to create an entity (non-actor so far)
* Added function to destroy an entity
* Added hooks when items are added to or removed from inventories (Actor, Vehicle, Container)
* Added hook for LUA to control whether items can be equipped/used
0.45a: August 30, 2019
General changes:
* Added a new UI for installing the FTSE.dll loading patch, and selecting hex patches
* Added FTSE_config_base.json and FTSE_base.lua files which contain default changes, so that new installations don't overwrite user customizations
* Changed build properties to lower CPU requirements (should improve compatibility)
Bug fixes (FTSE):
* Fixed burst attack hook to properly remove crouching allies in front of shooter
New hex patches:
* Added hex patch to fix melee/unarmed critical hit bugs (left leg punch bug)
* Added hex patch to fix Bonus H2H Damage perk's 15% bonus
* Added hex patch to fix crash when game runs out of special encounters
Scripting additions/changes:
* Substantial refactoring: Objects passed to Lua scripts now have proper entity hierarchy
* Added the following hooks:
* OnChanceToHitCalc
* OnConeAttack
* OnSprayAttack
* OnStraightAttack
* OnRadialAttack
* OnAreaAttack
* OnProjectileAttack
* OnChanceToCritical1
* OnChanceToCritical2
* OnCriticalEffect1
* OnCriticalEffect2
* OnDamageCalc
* Added the following classes:
* Actor (significantly updated)
* Ammo
* Breakable
* Collectable
* StateBreakable
* Trap
* Vehicle
* VehicleWeapon
* Weapon (significantly updated)
* Added calls to Entity class to use game built-in vtable functions where available/useful
0.32a: November 15, 2018
* Added OnBurstAttack for burst bug fix
* Added hex patch for high-res support (default on)
* Added hex patch for color fixes in encounters (default on)
* Added hex patch to blank starting inventory (default off)
* Disabled hex patch for burst bug (replaced by scripting fix)
0.30a: August 29, 2018
* Added hook + function to add locale strings from Lua script
* Added hook to time calculations, so that scripts can customize (e.g. to change start date)
* Added world:CombatLog to allow scripts to write to combat log
* Added actor::GetField for other actor values (non-attribute)
* Added world:GetPlayer and world:GetSquad
* Added support for getting and setting mission and campaign flags
Last edited: