Jump to content

"Spiritual Successor" - Modding Tool - Released!


Recommended Posts

I did not need to modify anything so far. Playing on classic and its fine. I may need to reload here and there but in most cases it's because I didn't know what was to come, quick reload if I feel that I am not going to pull it off, distribute few potions, select correct weapon type - and boom, encounter completed with full health. I recently met a 3 story tall automaton, while investigating the quest island and had to reload because things seemed very dire. I was using a wrong weapon (what much can the sword do against the metal), didn't have appropriate potions distributed, so when 3 out of 5 were dead, I decided to stop this silliness, reload and prepare for the fight. I press F5 quite often, good habit to have in CRPGs, so I was pretty close to where the encounter started. So far so good, no need any modifications to stats or whatever, now in game+, will be a different story, it will be more fun to create more polished characters. So far, multi-classing only feels as hindering my people's potential. Game+ will most likely be with traditional single classes.

 

 

 

You guys know you can just use console command AttributeScore Companion_Eder(Clone) Might 10 

so on and so forth, and set attributes to whatever? 

 

And lose achievements, sure

 

You can enable/disable the Achivement Flag using the Unity Console mod from the PoE2 Deadfire NEXUS site.

There is also, alternatively, a CheatEngine table available which toggles the flag as well.

 

 

Link to comment
Share on other sites

This is what hurt POE so much, modding it was HARD. If we get a tool that makes it only say, moderately challenging, the mod scene would explode. The game would become way more replayable. Frankly I care about this more than any DLC or whatever.

Really hope to see this happening.

Link to comment
Share on other sites

So, when can we expect it to release?

There is a link in my signature with a countdown timer: https://spiritualsuccessor.net/coming-soon

 

The date is in Eoran calendar though ;) You'll have to calculate it yourself.

 

Consider 00:00:00 on Jan 1 2018 to be 00:00:00 in the first day of the Eoran calendar. Hours have 60 minutes, but the day has 26 hours. ;)

 

Development is going well at the moment. The pretty skeuomorphic UI style may not make it into the first release, but in the worst case you'll have enough functionality to mod the Creatures>Progression Tables>Abilities>Attacks>Status Effects chain of objects. You'll also be able to modify Recovery times, and some Global settings.

 

I'll gradually add support for more objects after the first release.

 

The difficulty is not editing the objects, it's really planning your mod and balancing it.

Edited by Gairnulf
  • Like 2

A Custom Editor for Deadfire's Data:
eFoHp9V.png

Link to comment
Share on other sites

I am not familiar with modding, however, I´m learning character art and I would be interested in creating new head models for godlike, is it something possible at the moment? Or at all? I guess there is not access to the 3d assets and so on right?

Link to comment
Share on other sites

I don't know what's involved in exporting currently existing assets from the unity files or importing new ones. I'm pretty sure you would need a unity development suite, or at least some tool for the export.

 

If you can develop them entirely in unity that would be cool I guess, but unity is proprietary, and the license costs some non-nengligible sum. Alternatively, you could make your models in whatever 3d modelling software you are using, and then pass them to Obsidian.

 

They will credit you when they include them, as they have done with the works of an artist who drew a bunch of portraits for PoE after its release. But for them to include your heads, I guess they'll have to follow strictly the style of the stock ones.

Edited by Gairnulf

A Custom Editor for Deadfire's Data:
eFoHp9V.png

Link to comment
Share on other sites

Yeah, this companion modification through game files idea does not work.

 

I modded Eder's attributes using Notepad++, but his attributes remain the same every time I start a new game and encounter him.

Why don't you use the UnityConsole mod from the Nexus? It doesn't disable achivements and allows changing everything: Attributes, Class/Subclass, etc.

Link to comment
Share on other sites

Ooooh looks pretty interesting :)

 

I'm curious, since I'm not familiar with modding Unity games, would a tool like this make it possible to swap models? I've been wanting to switch the ranger lion pet for one of the white tigers that appear in the game, and while I imagine it should work in theory (I assume both use the same animations for movement and whatnot) I know in practice even seemingly simple changes can get messy :sweat:

Link to comment
Share on other sites

Development is going well at the moment. The pretty skeuomorphic UI style may not make it into the first release, but in the worst case you'll have enough functionality to mod the Creatures>Progression Tables>Abilities>Attacks>Status Effects chain of objects. You'll also be able to modify Recovery times, and some Global settings.

 

I'll gradually add support for more objects after the first release.

 

The difficulty is not editing the objects, it's really planning your mod and balancing it.

 

How about editing attack/spellcasting speed? I messed around with the files looking for action, recovery & combat movement speed values, found the latter 2 but only combat movement edit worked. GlobalRecoveryMultiplier had no effect in the game no matter what value I assigned to it and I haven't managed to find anything for action speed, maybe in some DLL file?

Link to comment
Share on other sites

 

Development is going well at the moment. The pretty skeuomorphic UI style may not make it into the first release, but in the worst case you'll have enough functionality to mod the Creatures>Progression Tables>Abilities>Attacks>Status Effects chain of objects. You'll also be able to modify Recovery times, and some Global settings.

 

I'll gradually add support for more objects after the first release.

 

The difficulty is not editing the objects, it's really planning your mod and balancing it.

 

How about editing attack/spellcasting speed? I messed around with the files looking for action, recovery & combat movement speed values, found the latter 2 but only combat movement edit worked. GlobalRecoveryMultiplier had no effect in the game no matter what value I assigned to it and I haven't managed to find anything for action speed, maybe in some DLL file?

 

 

Recovery and Attack times are tied to the individual attacks/abilities which can be found in attacks.gamedatabundle and abilities.gamedatabundle respectively. They are tied to attacks through a UUID (Universally Unique Identifier) database key. The reason for this is that the attack times themselves are game data objects which have GUI information and some other things attached which allow for quick reuse, better stability, and most likely the ability to run script based checks and logic for things like attack interrupts and valid targeting (though I haven't really looked this specifically just guessing).

 

 

There are 5 base attack recovery times, these can be found in attacks.gamedatabundle and referenced by other specific attacks under the component heading "RecoveryTimeID" by referencing their UUID. Here is a quick reference for their UUIDs:

 

Recovery_Average (4 second duration) UUID: 566840d9-1561-4243-8ca7-889df9869847

 

Recovery_Fast (3 second duration) UUID: 9d15e1c1-c6e1-4b25-bc1d-bf3707f6f534

 

Recovery_Instant (0 second duration) UUID: 039ef4b4-eeb3-42d3-9817-a8df05c53515

 

Recovery_Slow (4.5 second duration) UUID: 2065a64b-0d53-48b8-9cfd-600992c389fd

 

Recovery_Very_Fast (2 second duration) UUID: cd5ad068-453b-41f9-8779-db38ff00dd20

 

There are also a couple of custom unique recovery durations for specific attacks as well, but it is unlikely someone would want to mess with those or reference them for other stuff.

 

 

There are 4 base attack times also known as action speed. These are referenced as "CastSpeedID" data components on each attack which can be found in the attacks.gamedatabundle and can be referenced by their UUIDs which are found in abilities.gamedatabundle. Here is a quick reference of their UUIDs:

 

Average (3 second duration) UUID: eacb53e3-6eb5-422a-92ca-99cc883ae4a9

 

Fast (0 second duration) UUID: e4c738a7-4d3f-407f-b035-cc76191fe26b

 

Slow (4.5 second duration) UUID: 3bf6c8e7-49b6-46b1-8c62-cb9121f0d22a

 

Very_Slow (6 second duration) UUID: e2258426-92df-4a1d-b12c-927feb8328cd

 

 

The easiest way to modify a specific attacks speed and recovery is to search for and locate the attack you want to modify, and replace the current "RecoveryTimeID" and/or "CastSpeedID" with one of the other ones listed above.

 

You can also edit the RecoverySpeed and CastSpeed objects directly by simply locating them in the attacks.gamedatabundle and abilities.gamedatabundle and directly changing the "Duration" values listed there. This is not advisable unless you are making some kind of large scale balance mod, as changing these will alter every attack in the game that utilizes that value.

 

You should be able to create your own new RecoverySpeed and CastSpeed objects by copying one of the existing objects to a new file and changing the "ID", "DebugName", and "DisplayName" to be unique and then assigning the desired duration. DisplayName, I believe, modifies the stringtables which means you will need to edit those as well to add a new string (and give that string a new id number to reference in your new attack/ability) for the name of cast/recovery speeds in the GUI. I'm not sure if leaving it blank will cause issues as I've not done anything with modding these values as of yet.

 

I hope this helps.

  • Like 1
Link to comment
Share on other sites

Thanks a lot. I found those recoveryspeeds and changed the durations but guess the override didn't work. Prolly something to do with this...

 

 

You should be able to create your own new RecoverySpeed and CastSpeed objects by copying one of the existing objects to a new file and changing the "ID", "DebugName", and "DisplayName" to be unique and then assigning the desired duration. DisplayName, I believe, modifies the stringtables which means you will need to edit those as well to add a new string (and give that string a new id number to reference in your new attack/ability) for the name of cast/recovery speeds in the GUI. I'm not sure if leaving it blank will cause issues as I've not done anything with modding these values as of yet.

...which goes above my head.

 

You can also edit the RecoverySpeed and CastSpeed objects directly by simply locating them in the attacks.gamedatabundle and abilities.gamedatabundle and directly changing the "Duration" values listed there. This is not advisable unless you are making some kind of large scale balance mod, as changing these will alter every attack in the game that utilizes that value.

This is exactly what I want to do. I want to change overall flow of the combat with way less recovery time for everyone with way slower attack animations and slower combat running speed which I've already found.

Link to comment
Share on other sites

Thanks a lot. I found those recoveryspeeds and changed the durations but guess the override didn't work. Prolly something to do with this...

 

 

You should be able to create your own new RecoverySpeed and CastSpeed objects by copying one of the existing objects to a new file and changing the "ID", "DebugName", and "DisplayName" to be unique and then assigning the desired duration. DisplayName, I believe, modifies the stringtables which means you will need to edit those as well to add a new string (and give that string a new id number to reference in your new attack/ability) for the name of cast/recovery speeds in the GUI. I'm not sure if leaving it blank will cause issues as I've not done anything with modding these values as of yet.

...which goes above my head.

 

You can also edit the RecoverySpeed and CastSpeed objects directly by simply locating them in the attacks.gamedatabundle and abilities.gamedatabundle and directly changing the "Duration" values listed there. This is not advisable unless you are making some kind of large scale balance mod, as changing these will alter every attack in the game that utilizes that value.

This is exactly what I want to do. I want to change overall flow of the combat with way less recovery time for everyone with way slower attack animations and slower combat running speed which I've already found.

 

 

Did you actually make a mod or did you just alter the files directly? By didn't work what exactly do you mean? Does it not show in the tooltip? Does it not appear to cast faster? I will test this out shortly to see if I can get it to work.

 

Also what are you testing the changes against? What abilities did you use or look at to test the changes in game?

Edited by Excerpt
Link to comment
Share on other sites

Did you actually make a mod or did you just alter the files directly? By didn't work what exactly do you mean? Does it not show in the tooltip? Does it not appear to cast faster? I will test this out shortly to see if I can get it to work.

 

Also what are you testing the changes against? What abilities did you use or look at to test the changes in game?

Tried to make a mod, not altering the game files directly. I don't have much programming knowledge, just some tidbits left from high school. I DLed a mod and copied its code structure, which worked for combat running speed. Now I'm trying to do the same for the other 9 values you listed above.

 

For testing, I'm just looking at the speed & recovery time of weapon properties, to see any change. I tested the running in combat; assigned it to 2 from 0.85, to see if it would work; they were so fast, animation bugged to "fast walking" :p

 

Does this seem right for a mod file?

{
  "GameDataObjects": [
    {
	  "$type": "Game.GameData.CastSpeedGameData, Assembly-CSharp",
	  "DebugName": "Average",
	  "ID": "eacb53e3-6eb5-422a-92ca-99cc883ae4a9",
	  "Components": [
		{
		  "$type": "Game.GameData.CastSpeedComponent, Assembly-CSharp",
	      "DisplayName": 1475, "Duration":3}]
	},
	{
	  "$type": "Game.GameData.CastSpeedGameData, Assembly-CSharp",
	  "DebugName": "Fast","ID":"e4c738a7-4d3f-407f-b035-cc76191fe26b",
	  "Components": [
	    {
		  "$type": "Game.GameData.CastSpeedComponent, Assembly-CSharp",
		  "DisplayName": 1474,"Duration":0}]
	},
	{
	  "$type": "Game.GameData.CastSpeedGameData, Assembly-CSharp",
	  "DebugName": "Slow",
	  "ID": "3bf6c8e7-49b6-46b1-8c62-cb9121f0d22a",
	  "Components": [
	    {
		  "$type": "Game.GameData.CastSpeedComponent, Assembly-CSharp",
		  "DisplayName": 1476,"Duration":4.5}]
	},
	{
	  "$type": "Game.GameData.CastSpeedGameData, Assembly-CSharp",
	  "DebugName": "Very_Slow",
	  "ID":" e2258426-92df-4a1d-b12c-927feb8328cd",
	  "Components": [
	    {
		  "$type": "Game.GameData.CastSpeedComponent, Assembly-CSharp",
		  "DisplayName": 1892,"Duration":6}]
	},
  ]
}
Edited by Quillon
Link to comment
Share on other sites

 

Did you actually make a mod or did you just alter the files directly? By didn't work what exactly do you mean? Does it not show in the tooltip? Does it not appear to cast faster? I will test this out shortly to see if I can get it to work.

 

Also what are you testing the changes against? What abilities did you use or look at to test the changes in game?

Tried to make a mod, not altering the game files directly. I don't have much programming knowledge, just some tidbits left from high school. I DLed a mod and copied its code structure, which worked for combat running speed. Now I'm trying to do the same for the other 9 values you listed above.

 

For testing, I'm just looking at the speed & recovery time of weapon properties, to see any change. I tested the running in combat; assigned it to 2 from 0.85, to see if it would work; they were so fast, animation bugged to "fast walking" :p

 

Does this seem right for a mod file?

{
  "GameDataObjects": [
    {
	  "$type": "Game.GameData.CastSpeedGameData, Assembly-CSharp",
	  "DebugName": "Average",
	  "ID": "eacb53e3-6eb5-422a-92ca-99cc883ae4a9",
	  "Components": [
		{
		  "$type": "Game.GameData.CastSpeedComponent, Assembly-CSharp",
	      "DisplayName": 1475, "Duration":3}]
	},
	{
	  "$type": "Game.GameData.CastSpeedGameData, Assembly-CSharp",
	  "DebugName": "Fast","ID":"e4c738a7-4d3f-407f-b035-cc76191fe26b",
	  "Components": [
	    {
		  "$type": "Game.GameData.CastSpeedComponent, Assembly-CSharp",
		  "DisplayName": 1474,"Duration":0}]
	},
	{
	  "$type": "Game.GameData.CastSpeedGameData, Assembly-CSharp",
	  "DebugName": "Slow",
	  "ID": "3bf6c8e7-49b6-46b1-8c62-cb9121f0d22a",
	  "Components": [
	    {
		  "$type": "Game.GameData.CastSpeedComponent, Assembly-CSharp",
		  "DisplayName": 1476,"Duration":4.5}]
	},
	{
	  "$type": "Game.GameData.CastSpeedGameData, Assembly-CSharp",
	  "DebugName": "Very_Slow",
	  "ID":" e2258426-92df-4a1d-b12c-927feb8328cd",
	  "Components": [
	    {
		  "$type": "Game.GameData.CastSpeedComponent, Assembly-CSharp",
		  "DisplayName": 1892,"Duration":6}]
	},
  ]
}

 

Did you alter the Duration values? What did you set them to exactly, those look to be the default values. It appears to be working for me, the changes are obvious/significant if they are reduced greatly.

 

Keep in mind the tooltips will not be exactly these values, because there are many other recovery and action speed buffs/debuffs. All armors have a multiplier of some type. When you hover over an ability/items attack speed/cast speed/recovery speed/reload speed it should give a detailed breakdown of the numbers. These changes will only alter the "base" values (starting point before any modifications).

 

To straight up test change them all to 0 (just for testing purposes), then unequip all armor/remove anything that has a -recovery % or -action speed%. Then you should see the real difference directly.

Link to comment
Share on other sites

Did you alter the Duration values? What did you set them to exactly, those look to be the default values. It appears to be working for me, the changes are obvious/significant if they are reduced greatly.

 

Keep in mind the tooltips will not be exactly these values, because there are many other recovery and action speed buffs/debuffs. All armors have a multiplier of some type. When you hover over an ability/items attack speed/cast speed/recovery speed/reload speed it should give a detailed breakdown of the numbers. These changes will only alter the "base" values (starting point before any modifications).

 

To straight up test change them all to 0 (just for testing purposes), then unequip all armor/remove anything that has a -recovery % or -action speed%. Then you should see the real difference directly.

Yeah I didn't change the values, posted here to ask if the code is correct for a mod file. Anyway like I said above, both worked but now I need attack speed values since castspeed doesn't effect attack speed.

Link to comment
Share on other sites

 

Did you alter the Duration values? What did you set them to exactly, those look to be the default values. It appears to be working for me, the changes are obvious/significant if they are reduced greatly.

 

Keep in mind the tooltips will not be exactly these values, because there are many other recovery and action speed buffs/debuffs. All armors have a multiplier of some type. When you hover over an ability/items attack speed/cast speed/recovery speed/reload speed it should give a detailed breakdown of the numbers. These changes will only alter the "base" values (starting point before any modifications).

 

To straight up test change them all to 0 (just for testing purposes), then unequip all armor/remove anything that has a -recovery % or -action speed%. Then you should see the real difference directly.

Yeah I didn't change the values, posted here to ask if the code is correct for a mod file. Anyway like I said above, both worked but now I need attack speed values since castspeed doesn't effect attack speed.

 

 

Try buying a new weapon and test to see if the values are different. As the castspeed value is tied to the weapon attack id it may be that each weapon is spawned with a set attackspeed. I am going to get a haircut, if that doesnt work i will be back shortly and look into it in the assembly to see what is up.

Link to comment
Share on other sites

Ok, thanks for the help so far.

 

To test stuff I set the CastSpeeds to:

 

 

Average to 5 from 3

 

Fast unchanged from 0

 

Slow to 7.5 from 4.5

 

Very Slow to 10 from 6

 

 

But every weapons' & melee abilities' attack speeds are under 1 sec. in the game. 0.5 secs on most weapons. Bought new weps, same thing :/

 

 

Also combat is all kinda messed up, everything's happening ultra fast(on default speed in slider)

 

Anyway, going to bed, will mess with it more tomorrow :p

Edited by Quillon
Link to comment
Share on other sites

 

Development is going well at the moment. The pretty skeuomorphic UI style may not make it into the first release, but in the worst case you'll have enough functionality to mod the Creatures>Progression Tables>Abilities>Attacks>Status Effects chain of objects. You'll also be able to modify Recovery times, and some Global settings.

 

I'll gradually add support for more objects after the first release.

 

The difficulty is not editing the objects, it's really planning your mod and balancing it.

 

How about editing attack/spellcasting speed? I messed around with the files looking for action, recovery & combat movement speed values, found the latter 2 but only combat movement edit worked. GlobalRecoveryMultiplier had no effect in the game no matter what value I assigned to it and I haven't managed to find anything for action speed, maybe in some DLL file?

 

Since there is relatively few of them, I figured the gain from having an interface for them would be minimal and anyone who wants to edit, add such objects can just do it by hand. However I'll add interface for these types of objects too, just for convenience.

 

 

The thing to keep in mind is, every object you "edit" will be exported as a part of a X.gamedatabundle file. You can edit any object, and if you change a character in its ID, it will be added to the existing objects. If not, it will replace the object with the ID it has. You always end up with new objects and new files, never edit the vanilla gamedatabundles directly.

  • Like 1

A Custom Editor for Deadfire's Data:
eFoHp9V.png

Link to comment
Share on other sites

Are melee attack/ability speeds tied to individual "PreHitDuration"s? If so there are too many of them to edit to accomplish...what I want to accomplish :p

 

And most values aren't round; they are like: "PreHitDuration": 0.7019876

 

 

Anyway, for now I'm gonna buff move speed to 1.7 & recovery speeds to 1/4 of default values and play combat at slowest at the slider and remove the CastSpeed mod until if/when it could effect melee attacks/abilities beside spells.

Edited by Quillon
Link to comment
Share on other sites

Are melee attack/ability speeds tied to individual "PreHitDuration"s? If so there are too many of them to edit to accomplish...what I want to accomplish :p

 

And most values aren't round; they are like: "PreHitDuration": 0.7019876

 

 

Anyway, for now I'm gonna buff move speed to 1.7 & recovery speeds to 1/4 of default values and play combat at slowest at the slider and remove the CastSpeed mod until if/when it could effect melee attacks/abilities beside spells.

 

You're on the right track. I am writing a mini-guide, in another post because we don't want to crowd this one with unrelated things, on altering action speeds for attacks. Will post shortly once I have everything fleshed out.

  • Like 1
Link to comment
Share on other sites

 

Are melee attack/ability speeds tied to individual "PreHitDuration"s? If so there are too many of them to edit to accomplish...what I want to accomplish :p

 

And most values aren't round; they are like: "PreHitDuration": 0.7019876

 

 

Anyway, for now I'm gonna buff move speed to 1.7 & recovery speeds to 1/4 of default values and play combat at slowest at the slider and remove the CastSpeed mod until if/when it could effect melee attacks/abilities beside spells.

 

You're on the right track. I am writing a mini-guide, in another post because we don't want to crowd this one with unrelated things, on altering action speeds for attacks. Will post shortly once I have everything fleshed out.

 

 

Dude, where is your post? :) I doubled all 474 "PreHitDuration"s, still no effect on attack speed :/

 

Edit: Ok, nvm. Added the rest of the unedited code into the mod file, now it works.

 

Sorry for the derailment, AwesomeButton. Today's the big day for Spiritual Successor, hype! :D

Edited by Quillon
  • Like 1
Link to comment
Share on other sites

the castspeed IDs do affect how long it takes before a character attacks. weapons correspond to the fast/avg/slow/very slow IDs.

what they DON'T affect is the actual sequence of animation from when the char draws the weapon, uses it in an attack swing or gun shot or spell casting (moving their hands whatever), and then lowering their arms back to their sides.

speeds as you already found out can be globally adjusted in characters file just control + F "Default Mover"

If I were you I would just double the numbers on the 4 speed ID's, halve the recovery multiplier numbers, and HALVE the default mover numbers on run/walk. (on the default mover run/walk the higher the number the FASTER they go)

(which is why everything is happening ultra fast for you)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...