Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


BMac last won the day on December 18 2017

BMac had the most liked content!

Community Reputation

794 Excellent

About BMac

  • Rank

Profile Information

  • Steam


  • Lords of the Eastern Reach Backer Badge

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. That is an intentional change. Great question - that feedback was very common and we definitely agreed with it. In this patch, Dexterity now grants a bonus to Stride in turn-based mode in addition to its other bonuses. Stride is a very useful stat in TBM, so this should make Dexterity more attractive once again. I have no idea how this missed the patch notes; I'll see what's up there. Yes, now that TBM is out of beta we won't be making any more content or balance changes. The pen-and-paper game is entirely separate from the video game; they don't share any systems.
  2. This is a list of changes from v4.1.0.0011 to v5.0.0.0040 that specifically affect modding the game. The patch notes for other changes to the game can be found here. Check the documentation for more details on the functionality of added data properties. Modding Patch Notes for v5.0.0.0040 Looping AttackBaseVisualEffects are now supported for all events rather than just AnimEvents. The effects are stopped on Impact. Added ExperienceTableComponent.TrapLockXPIncrements Added HostilityType.HostileEver Added TacticalModeSettingsComponent Added CombatSettingsComponent.MinimumRollToGrazeTactical, MinimumRollToHitTactical, MinimumRollToCritTactical Added AttributeComponent.TacticalOverrideBonusesFormatString Added CharacterStatsSettingsComponent.AttributeTacticalStrideMultiplier Added DamageData.TacticalMinimumOverride / TacticalMaximumOverride Added GenericAbilityComponent.ShowStatusEffects Added StatusEffectDurationType.UseDuratonUnadjusted Added GenericAbilityComponent.RandomizeStatusEffect Added AIBehaviorDataComponent.CanEngage Added AICombatMoveComponent.AbortIfImmobile Added AIMoveComponent.AbortIfImmobile (Community Request) Added IsAnyWeaponEquipped conditional (Community Request) Added IsAnyWeaponEquippedInSecondarySlot conditional Fixed a problem where oei_this was not properly initialized when checking soulbound advancement conditionals. (Community Report) Fixed a problem where ModScriptHooks sometimes did not work correctly when loading very old savegames Fixed a problem where scripts or conditionals that were called recursively would not receive correct values for special GUIDs Thanks for working with us to make this game even cooler and more fun! I'm looking forward to seeing where you take it in the future.
  3. Unfortunately that ability is using some special code and it doesn't look like there is a way to override the strings from game data. You're right that this string is not very helpful - I will put in a report. You could potentially add a new status effect to the abilities that has no effect but just has an override string clarifying the effects. It would have to be in addition to the existing strings, though.
  4. I believe the world map merchants all share a single store object which exists on the FreeWorldMap scene: Store_RE_Generic_Merchant (e5ba7105-c251-4191-bc2b-9a7d7f8a3c32). You should be able to use a script hook to modify that inventory like any other. Generally the world map functions like any other scene and the objects in it like those in other scenes, though there are certain aspects that work differently as house2fly observed.
  5. There is some structural information about NPC schedules in ScheduleGameData objects, but unfortunately the details of what a particular NPC does during each time slice are defined on the Unity data for that character and are hard to modify.
  6. Most of that is defining what the Game Data object is and what components it has one it, as covered by the Basic Concepts tutorial. The last three lines are specific data for the ModScriptHookComponent and are documented in the documentation here.
  7. Thanks for the report! This issue will be fixed in v4.1.2.
  8. Yes, you can create new spells and add them to progression tables this way. You'll just need to create a new GenericAbilityGameData object with a new GUID in addition to making the object described here. I don't believe we have a tutorial specifically about creating spells, but the basic concepts tutorial and this tutorial may help.
  9. The hooks will not continue to run after they have run or succeeded if they have RunOnlyOnce or SucceedOnlyOnce respectively. Of course, SucceedOnlyOnce hooks will be running on each scene transition until they succeed, which could potentially lead to slightly longer load times. I would expect it to be pretty minimal, though (an IsInActiveScene call takes about 0.2-0.3 milliseconds on my machine). Also, I don't know exactly how you're using the GlobalScripts, but to clarify, they won't call themselves. They're intended to be re-usable or organized blocks of scripts you can call from different places; you do still need to call them from, for example, a ModScriptHook.
  10. That's good. I believe I know what the issue is now - I'll test it with your save and have it fixed for 5.0.0.
  11. I think I know what's up there. You can probably fix it by adding "OverrideDescriptionStringTactical": -1 to your status effects. Unfortunately it sounds like that's defaulting to 0 when omitted, which indicates string ID 0, whereas -1 indicates "don't use this". I'll see if I can do something about that on my end for 4.1.1.
  12. Unfortunately, yes, that's correct. Yes, you just need to duplicate the object in the AbilityUnlocks array. This example redundantly adds the same ability twice, just to show the syntax: { "GameDataObjects": [ { "$type": "Game.GameData.BaseProgressionTableAppendGameData, Assembly-CSharp", "DebugName": "Priest_FastRunner", "ID": "5ec6e46a-4e3f-4f78-affe-0d7477d3b97f", "Components": [ { "$type": "Game.GameData.BaseProgressionTableAppendComponent, Assembly-CSharp", "BaseTableID": "a52e8b61-9343-4716-8a55-3168be143cc4", "AbilityUnlocks": [ { "Note": "", "Category": "General", "UnlockStyle": "Unlock", "ActivationObject": "Self", "AddAbilityID": "935b1a37-6f38-4ccc-bbc7-296f0f76790f", "RemoveAbilityID": "00000000-0000-0000-0000-000000000000", "Prerequisites": { "MinimumCharacterLevel": 1, "PowerLevelRequirement": { "ClassID": "f7cb46af-a719-41c0-9a53-107eefdbce2b", "MinimumPowerLevel": 1 }, "RequiresAbilityID": "00000000-0000-0000-0000-000000000000", "Conditional": { "Operator": 0, "Components": [] }, "VisibilityConditional": { "Operator": 0, "Components": [] }, "IsMutuallyExclusiveUpgrade": "true" } }, { "Note": "", "Category": "General", "UnlockStyle": "Unlock", "ActivationObject": "Self", "AddAbilityID": "935b1a37-6f38-4ccc-bbc7-296f0f76790f", "RemoveAbilityID": "00000000-0000-0000-0000-000000000000", "Prerequisites": { "MinimumCharacterLevel": 1, "PowerLevelRequirement": { "ClassID": "f7cb46af-a719-41c0-9a53-107eefdbce2b", "MinimumPowerLevel": 1 }, "RequiresAbilityID": "00000000-0000-0000-0000-000000000000", "Conditional": { "Operator": 0, "Components": [] }, "VisibilityConditional": { "Operator": 0, "Components": [] }, "IsMutuallyExclusiveUpgrade": "true" } } ] } ] } ] }
  • Create New...