Jump to content

First modding attempt, could use some help


Recommended Posts

So I'm trying to start simple, just to make sure I have a proper grasp of things, but it looks like I do not yet. I'm attempting to take the "Return Orbit" ability on the Sungrazer Mace and make a new separate condition based on it, as I do not want to overwrite the original effect. Clearly I am doing something quite wrong, as the game becomes completely unplayable.

 

The sections I'm adding in are: StatusEffectGameData: Sungrazer_Return_Orbit_SE_ApplyOnEvent, StatusEffectGameData: Sungrazer_Return_Orbit_SE_Clear_Recovery, ItemModGameData: Sungrazer_Return_Orbit, and the string for the ability name.I attempted adding in unique UUIDs where required(I think) to make it it's own ability, but I left the OverrideDescriptionString the same (180) because it still had the correct text I wanted.

 

I know little to nothing of scripting aside from just reading things, correlating them and using them how they seem to work, so that's what I did. I took other mods downloaded and compared my information against what their files had, and I honestly am not sure what I'm doing wrong yet. I figured here would be the best place to look for help.

Total Recovery.zip

Link to comment
Share on other sites

So I'm trying to start simple, just to make sure I have a proper grasp of things, but it looks like I do not yet. I'm attempting to take the "Return Orbit" ability on the Sungrazer Mace and make a new separate condition based on it, as I do not want to overwrite the original effect. Clearly I am doing something quite wrong, as the game becomes completely unplayable.

 

The sections I'm adding in are: StatusEffectGameData: Sungrazer_Return_Orbit_SE_ApplyOnEvent, StatusEffectGameData: Sungrazer_Return_Orbit_SE_Clear_Recovery, ItemModGameData: Sungrazer_Return_Orbit, and the string for the ability name.I attempted adding in unique UUIDs where required(I think) to make it it's own ability, but I left the OverrideDescriptionString the same (180) because it still had the correct text I wanted.

 

I know little to nothing of scripting aside from just reading things, correlating them and using them how they seem to work, so that's what I did. I took other mods downloaded and compared my information against what their files had, and I honestly am not sure what I'm doing wrong yet. I figured here would be the best place to look for help.

 

Well first off, your file needs to be called totalrecovery.gamedatabundle instead of totalrecovery.gamedatatable. :)

 

Haven't looked at anything else in it, but that absolutely needs to be done.

 

edit

 

Secondly, you have a trailing comma after a "}" at the very bottom of your file.  It's on the third to last line, and that'll cause some problems as well.

 

That's a fairly common problem, especially if you're just copy-n-pasting stuff.

Edited by Zap Gun For Hire
Link to comment
Share on other sites

The third problem I see is the following bit at  the end:

{
			"$type": "Game.GameData.ItemModGameData, Assembly-CSharp",
			"DebugName": "CHANGED_Sungrazer_Return_Orbit",
			"ID": "9aef6757-4364-4cf8-be57-8c25911acee6",
			"Components": [{
					"$type": "Game.GameData.ItemModComponent, Assembly-CSharp",
					"DisplayName": 225588,
					"HideFromUI": "false",
					"EnchantCategory": "None",
					"Cost": 0,
					"DisplayEvenIfCostZero": "false",
					"CursesItem": "false",
					"StatusEffectsOnEquipIDs": ["d38ce59f-7342-4d19-94ba-0948c3956841"],
					"StatusEffectsOnLaunchIDs": [],
					"StatusEffectsOnAttackIDs": [],
					"AbilityModsOnEquipIDs": [],
					"OnEquipVisualEffects": [],
					"DamageProcs": [],
					"AbilitiesOnEquipIDs": []
				}
			]
		}

"StatusEffectsOnEquipIDs": ["d38ce59f-7342-4d19-94ba-0948c3956841"], is referring to the ORIGINAL version, not your modified one. It should read:

 

"StatusEffectsOnEquipIDs": ["cf4566b0-e64d-44b8-b012-3578b5a91128"],

 

That way it's calling the modified version given in your file,

 

====

 

I don't know if your mod will actually do what you want, mind.  Not really that deep into that area of modding of the game.  But each of those things I mentioned absolutely needs to be done for it to have a chance of working.

 

Also might be problems with that localized file you threw in there, but that's really outside of my area of expertise. 

Link to comment
Share on other sites

 

So I'm trying to start simple, just to make sure I have a proper grasp of things, but it looks like I do not yet. I'm attempting to take the "Return Orbit" ability on the Sungrazer Mace and make a new separate condition based on it, as I do not want to overwrite the original effect. Clearly I am doing something quite wrong, as the game becomes completely unplayable.

 

The sections I'm adding in are: StatusEffectGameData: Sungrazer_Return_Orbit_SE_ApplyOnEvent, StatusEffectGameData: Sungrazer_Return_Orbit_SE_Clear_Recovery, ItemModGameData: Sungrazer_Return_Orbit, and the string for the ability name.I attempted adding in unique UUIDs where required(I think) to make it it's own ability, but I left the OverrideDescriptionString the same (180) because it still had the correct text I wanted.

 

I know little to nothing of scripting aside from just reading things, correlating them and using them how they seem to work, so that's what I did. I took other mods downloaded and compared my information against what their files had, and I honestly am not sure what I'm doing wrong yet. I figured here would be the best place to look for help.

 

Well first off, your file needs to be called totalrecovery.gamedatabundle instead of totalrecovery.gamedatatable. :)

 

Haven't looked at anything else in it, but that absolutely needs to be done.

 

edit

 

Secondly, you have a trailing comma after a "}" at the very bottom of your file.  It's on the third to last line, and that'll cause some problems as well.

 

That's a fairly common problem, especially if you're just copy-n-pasting stuff.

 

 

Ah, I actually uploaded an older version and didn't realize.... I did actually fix both of those issues, but I got the same results in game.

Link to comment
Share on other sites

The third problem I see is the following bit at  the end:

{
			"$type": "Game.GameData.ItemModGameData, Assembly-CSharp",
			"DebugName": "CHANGED_Sungrazer_Return_Orbit",
			"ID": "9aef6757-4364-4cf8-be57-8c25911acee6",
			"Components": [{
					"$type": "Game.GameData.ItemModComponent, Assembly-CSharp",
					"DisplayName": 225588,
					"HideFromUI": "false",
					"EnchantCategory": "None",
					"Cost": 0,
					"DisplayEvenIfCostZero": "false",
					"CursesItem": "false",
					"StatusEffectsOnEquipIDs": ["d38ce59f-7342-4d19-94ba-0948c3956841"],
					"StatusEffectsOnLaunchIDs": [],
					"StatusEffectsOnAttackIDs": [],
					"AbilityModsOnEquipIDs": [],
					"OnEquipVisualEffects": [],
					"DamageProcs": [],
					"AbilitiesOnEquipIDs": []
				}
			]
		}

"StatusEffectsOnEquipIDs": ["d38ce59f-7342-4d19-94ba-0948c3956841"], is referring to the ORIGINAL version, not your modified one. It should read:

 

"StatusEffectsOnEquipIDs": ["cf4566b0-e64d-44b8-b012-3578b5a91128"],

 

That way it's calling the modified version given in your file,

 

====

 

I don't know if your mod will actually do what you want, mind.  Not really that deep into that area of modding of the game.  But each of those things I mentioned absolutely needs to be done for it to have a chance of working.

 

Also might be problems with that localized file you threw in there, but that's really outside of my area of expertise. 

 

I think I actually had this fixed in my latest file (I was updating the override file but not the one I ended up uploading here) but I went back to check and make sure. Still no dice, when I load up the game it literally breaks everything, I can't continue or load games (little turning gear icons) and even the Berath's blessings are all screwed up.

 

Another edit I changed that isn't in those files is the stringtable. I took out the <NextEntryID> and <EntryCount> lines, since other mods had not used them.

Link to comment
Share on other sites

Another edit I changed that isn't in those files is the stringtable. I took out the <NextEntryID> and <EntryCount> lines, since other mods had not used them.

 

Yeah, I took a deeper look at your stringtable file, and the XML is all messed up.  You have spaces all over the place where you shouldn't.

 

Right now it looks like this:

  <  ? xml version = "1.0" encoding = "utf-8" ?  >
 	 < StringTableFile xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns : xsd = "http://www.w3.org/2001/XMLSchema" >
 	 < Name > game \ itemmods <  / Name >
 	 < Entries >
 	 < Entry >
 	 < ID > 8899 <  / ID >
 	 < DefaultText > Total Recovery <  / DefaultText >
 	 < FemaleText /  >
 	 <  / Entry >
	    </Entries>
 </StringTableFile>

It should look something like this:

<?xml version="1.0" encoding="utf-8"?>
<StringTableFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 	 <Name>game\itemmods</Name>
 	 <Entries>
 	 	<Entry>
 	 		<ID>8899</ID>
 	 		<DefaultText>Total Recovery</DefaultText>
 	 		<FemaleText />
 	 </Entry>
	</Entries>
 </StringTableFile>

(Yes, keep that space in <FemaleText />.  That tells the game that there isn't anything to be processed there.  I've seen similar things in various conversationbundles)

 

Preeeety sure that's how it should look, but I haven't been messing around with stringtables much.

 

Hope this helps. :)

Edited by Zap Gun For Hire
Link to comment
Share on other sites

 

Another edit I changed that isn't in those files is the stringtable. I took out the <NextEntryID> and <EntryCount> lines, since other mods had not used them.

 

Yeah, I took a deeper look at your stringtable file, and the XML is all messed up.  You have spaces all over the place where you shouldn't.

 

Right now it looks like this:

  <  ? xml version = "1.0" encoding = "utf-8" ?  >
 	 < StringTableFile xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns : xsd = "http://www.w3.org/2001/XMLSchema" >
 	 < Name > game \ itemmods <  / Name >
 	 < Entries >
 	 < Entry >
 	 < ID > 8899 <  / ID >
 	 < DefaultText > Total Recovery <  / DefaultText >
 	 < FemaleText /  >
 	 <  / Entry >
	    </Entries>
 </StringTableFile>

It should look something like this:

<?xml version="1.0" encoding="utf-8"?>
<StringTableFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 	 <Name>game\itemmods</Name>
 	 <Entries>
 	 	<Entry>
 	 		<ID>8899</ID>
 	 		<DefaultText>Total Recovery</DefaultText>
 	 		<FemaleText />
 	 </Entry>
	</Entries>
 </StringTableFile>

(Yes, keep that space in <FemaleText />.  That tells the game that there isn't anything to be processed there.  I've seen similar things in various conversationbundles)

 

Preeeety sure that's how it should look, but I haven't been messing around with stringtables much.

 

Hope this helps. :)

 

 

That could be an issue in other places, My Notepad++ doesn't like Json files even with the plugin, so I have to do big stupid round-a-bouts to get files in there effeciently, and it seems like extra chunks of space or whatever get shoved in. I'm using glogg to open the large text files, copy and paste em into notepad++, then JSON format them, but now that I think, I don't think the format worked properly for the string table file.

 

Tried it - Progress!

So, the game isn't broke anymore.... However I'm not sure if my files actually did anything lol. I had planned to use the Unity Console mod to add the effect to something to test it out, assuming the console queried your files, but I'm left with 3 possibilities... 1. It only queries your files on install, so I have to reinstall it. 2. It only has it's own vanilla list and changing that would mean modding the mod. or 3. My crap just didn't work.

Link to comment
Share on other sites

I'd stick NextEntry and EntryCount back in to be on the safe side

 

[8 minute grep time - sheesh]

 

grep -lr EntryCount | grep -v exported
GalaxyPeer64.dll
GalaxyCSharpGlue.dll
PillarsOfEternityII_Data/Managed/OEIFormats.dll
PillarsOfEternityII_Data/Managed/Assembly-CSharp.dll
PillarsOfEternityII_Data/Managed/System.dll
PillarsOfEternityII_Data/Managed/Assembly-CSharp-firstpass.dll
PillarsOfEternityII_Data/Managed/GalaxyCSharp.dll
PillarsOfEternityII_Data/Plugins/GalaxyPeer64.dll
PillarsOfEternityII_Data/Plugins/GalaxyCSharpGlue.dll
PillarsOfEternityII_Data/Plugins/Galaxy64.dll
PillarsOfEternityII_Data/Plugins/GalaxyPeer.dll
Galaxy64.dll

OK Fair warning has been applied

 

I'm gonna move the domain to https://perspak.com early Feb but will keep all content

 

There are reasons behind this move which basically boil down to unifying my release schedule

 

My friends are welcome to play (I'll set you up your own areas if you desire them)

 

Please note that this process is messy so may take a few weeks 

Link to comment
Share on other sites

 

I'd stick NextEntry and EntryCount back in to be on the safe side

 

[8 minute grep time - sheesh]

 

grep -lr EntryCount | grep -v exported
GalaxyPeer64.dll
GalaxyCSharpGlue.dll
PillarsOfEternityII_Data/Managed/OEIFormats.dll
PillarsOfEternityII_Data/Managed/Assembly-CSharp.dll
PillarsOfEternityII_Data/Managed/System.dll
PillarsOfEternityII_Data/Managed/Assembly-CSharp-firstpass.dll
PillarsOfEternityII_Data/Managed/GalaxyCSharp.dll
PillarsOfEternityII_Data/Plugins/GalaxyPeer64.dll
PillarsOfEternityII_Data/Plugins/GalaxyCSharpGlue.dll
PillarsOfEternityII_Data/Plugins/Galaxy64.dll
PillarsOfEternityII_Data/Plugins/GalaxyPeer.dll
Galaxy64.dll

 

 

You lost me after "minute"

Link to comment
Share on other sites

Sorry, I know what I'm talking about so often forget that not everyone has the same skill set

 

That grep stuff after 'minute' means - in plain English

 

Find me every file in POE2 (I'm in a copy of the game on my server) that contains the text EntryCount but exclude anything that results in anything in exported (as there will be a huge number of them)

 

I did Backer stuff and chose GOG - that's why I have Galaxy*.* files (not seen a Steam version so unsure how it changes)

 

There are five (5) what appear to be game files that include EntryCount so even though it looks pointless it is in Obsidian's code somewhere by the look of it.

 

This is why I say that even if they ain't required stick them in and make them consistent anyway.

 

*.conversationbundle are a noteworty case as they're already a little screwed up so better safe than sorry

OK Fair warning has been applied

 

I'm gonna move the domain to https://perspak.com early Feb but will keep all content

 

There are reasons behind this move which basically boil down to unifying my release schedule

 

My friends are welcome to play (I'll set you up your own areas if you desire them)

 

Please note that this process is messy so may take a few weeks 

Link to comment
Share on other sites

 

 

That could be an issue in other places, My Notepad++ doesn't like Json files even with the plugin

 

 

I've found that the JSON plugin (I'm using JSToolNpp) can be a little persnickety.  What I've found most reliable is to use the JSFormat option in JSTool.  That has given me the cleanest version to play with.  If you're already doing that, then ignore this bit. :)

 

 

 

So, the game isn't broke anymore.... However I'm not sure if my files actually did anything lol. I had planned to use the Unity Console mod to add the effect to something to test it out, assuming the console queried your files, but I'm left with 3 possibilities... 1. It only queries your files on install, so I have to reinstall it. 2. It only has it's own vanilla list and changing that would mean modding the mod. or 3. My crap just didn't work.

Everything that is modded gets loaded up on game startup, which means a game has to be quit completely and then restarted for any mods to take affect.  So reinstall shouldn't be in the cards.

 

As for the rest... Since I'm not exactly sure what your trying to do here, I really can't be of more help. When you say "make a new separate condition based on it", what is it exactly you're trying to accomplish?

Link to comment
Share on other sites

 

 

 

That could be an issue in other places, My Notepad++ doesn't like Json files even with the plugin

 

 

I've found that the JSON plugin (I'm using JSToolNpp) can be a little persnickety.  What I've found most reliable is to use the JSFormat option in JSTool.  That has given me the cleanest version to play with.  If you're already doing that, then ignore this bit. :)

 

 

 

So, the game isn't broke anymore.... However I'm not sure if my files actually did anything lol. I had planned to use the Unity Console mod to add the effect to something to test it out, assuming the console queried your files, but I'm left with 3 possibilities... 1. It only queries your files on install, so I have to reinstall it. 2. It only has it's own vanilla list and changing that would mean modding the mod. or 3. My crap just didn't work.

Everything that is modded gets loaded up on game startup, which means a game has to be quit completely and then restarted for any mods to take affect.  So reinstall shouldn't be in the cards.

 

As for the rest... Since I'm not exactly sure what your trying to do here, I really can't be of more help. When you say "make a new separate condition based on it", what is it exactly you're trying to accomplish?

 

 

I fixed the Notepad ++ issue with the most stupid solution... I had to run it OFF of administrator mode (I've become so used to running everything with it on it's default now.)

 

As for what I'm actually trying to do it's really simple so I can learn what I'm doing. There's a mod on the flail Sungrazer called "Return Orbit" that gives a 10% chance for the character to recover instantly on hit. I'm just trying to create a new instance of that Ability, except at 100% instead. There's no way to access this ability naturally of course, but I had thought with the way the Unity Console mod worked, I would be able to add it on to items (like all other itemmod values)

 

Edit: I do realize (now) that another ability exists that already does this for characters, as a permanent buff, but I didn't know that when i started, and at this point I just want to figure it out so I can know I'm doing things right before I start trying to create the actual Mod I want.

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

Hey, don't worry

 

Breaking things is how we learn what NOT to do :)

 

My job doesn't actually require me to do anything (apart from today and I'm doing it in the background for the moment - switching a server to a new box so backing up first)

 

I started modding POE2 about 2 1/2 weeks ago and just like you I was clueless at the start. Owing to my job being somewhat undemanding (I get paid whether I do anything or not) I've been able to spend all my time dissecting POE2 (apart from today when I have to do something I get paid for)

 

I've released six (6) mods so far and helped out on a Mod. Nothing major but useful stuff.

 

Stick with it and you'll be an ace in no time. The more you do this the more you understand.

 

I promised my next Howto would be about adding a conversation option to an NPC - this allows us to attach a sorta shop to any boring named NPC (I spent nearly a week trying to add a real shop - not possible)

 

After I've done that one I'll write up a basic howto create an item

OK Fair warning has been applied

 

I'm gonna move the domain to https://perspak.com early Feb but will keep all content

 

There are reasons behind this move which basically boil down to unifying my release schedule

 

My friends are welcome to play (I'll set you up your own areas if you desire them)

 

Please note that this process is messy so may take a few weeks 

Link to comment
Share on other sites

 

 

 

 

That could be an issue in other places, My Notepad++ doesn't like Json files even with the plugin

 

 

I've found that the JSON plugin (I'm using JSToolNpp) can be a little persnickety.  What I've found most reliable is to use the JSFormat option in JSTool.  That has given me the cleanest version to play with.  If you're already doing that, then ignore this bit. :)

 

 

 

So, the game isn't broke anymore.... However I'm not sure if my files actually did anything lol. I had planned to use the Unity Console mod to add the effect to something to test it out, assuming the console queried your files, but I'm left with 3 possibilities... 1. It only queries your files on install, so I have to reinstall it. 2. It only has it's own vanilla list and changing that would mean modding the mod. or 3. My crap just didn't work.

Everything that is modded gets loaded up on game startup, which means a game has to be quit completely and then restarted for any mods to take affect.  So reinstall shouldn't be in the cards.

 

As for the rest... Since I'm not exactly sure what your trying to do here, I really can't be of more help. When you say "make a new separate condition based on it", what is it exactly you're trying to accomplish?

 

 

I fixed the Notepad ++ issue with the most stupid solution... I had to run it OFF of administrator mode (I've become so used to running everything with it on it's default now.)

 

As for what I'm actually trying to do it's really simple so I can learn what I'm doing. There's a mod on the flail Sungrazer called "Return Orbit" that gives a 10% chance for the character to recover instantly on hit. I'm just trying to create a new instance of that Ability, except at 100% instead. There's no way to access this ability naturally of course, but I had thought with the way the Unity Console mod worked, I would be able to add it on to items (like all other itemmod values)

 

Edit: I do realize (now) that another ability exists that already does this for characters, as a permanent buff, but I didn't know that when i started, and at this point I just want to figure it out so I can know I'm doing things right before I start trying to create the actual Mod I want.

 

 

What I would do then, instead of dealing with Unity Console, is simply, and temporarily, just add it to Sungrazer itself via a mod and see if it works (by adding Sungrazer to your inventory via console if necessary).  If it does, then you know you're on the right track when it comes to modifying abilities (or in this case a Status Effect) to suit your purpose.

 

For instance change this:

{
			"$type": "Game.GameData.RecipeData, Assembly-CSharp",
			"DebugName": "Recipe_Return_Orbit",
			"ID": "b18c9b9e-dd77-43c3-82df-a5e0f76de1eb",
			"Components": [{
					"$type": "Game.GameData.RecipeComponent, Assembly-CSharp",
					"DisplayName": 724,
					"CraftingLocation": "None",
					"CategoryID": "7bad3803-0dfd-473a-a857-326f4853a4d6",
					"VisibilityConditions": {
						"Operator": 0,
						"Components": [{
								"$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
								"Data": {
									"FullName": "Boolean HasItemMod(Guid)",
									"Parameters": ["565e12ab-5601-4a8d-bfbb-9ff74a6f819d"],
									"Flags": "",
									"UnrealCall": "",
									"FunctionHash": 1518072523,
									"ParameterHash": 582447092
								},
								"Not": true,
								"Operator": 0
							}, {
								"$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
								"Data": {
									"FullName": "Boolean HasItemMod(Guid)",
									"Parameters": ["27daf400-e712-4964-8c0a-c7c1389d0ece"],
									"Flags": "",
									"UnrealCall": "",
									"FunctionHash": 1518072523,
									"ParameterHash": 846517722
								},
								"Not": true,
								"Operator": 0
							}
						]
					},
					"CreationConditions": {
						"Operator": 0,
						"Components": []
					},
					"Cost": 3000,
					"CanModifyWeapons": "false",
					"CanModifyArmor": "false",
					"CanModifyShields": "false",
					"CanModifySpecificItemsIDs": ["ab2f745b-0b0d-4da1-bc98-df49c49a1a16"],
					"Ingredients": [{
							"ItemID": "f5ab3a19-47bd-4935-9a27-9c495996fcab",
							"Quantity": 1,
							"IsDestroyed": "true"
						}, {
							"ItemID": "cef02c6b-ac11-4a9c-a6ae-fd90de22d543",
							"Quantity": 1,
							"IsDestroyed": "true"
						}, {
							"ItemID": "38b527d6-ec68-4674-9f13-e69250fbfcec",
							"Quantity": 1,
							"IsDestroyed": "true"
						}
					],
					"Output": [],
					"ItemModsToAddIDs": ["27daf400-e712-4964-8c0a-c7c1389d0ece"],
					"ItemModsToRemoveIDs": []
				}
			]
		}

to this:

{
			"$type": "Game.GameData.RecipeData, Assembly-CSharp",
			"DebugName": "Recipe_Return_Orbit",
			"ID": "b18c9b9e-dd77-43c3-82df-a5e0f76de1eb",
			"Components": [{
					"$type": "Game.GameData.RecipeComponent, Assembly-CSharp",
					"DisplayName": 724,
					"CraftingLocation": "None",
					"CategoryID": "7bad3803-0dfd-473a-a857-326f4853a4d6",
					"VisibilityConditions": {
						"Operator": 0,
						"Components": [{
								"$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
								"Data": {
									"FullName": "Boolean HasItemMod(Guid)",
									"Parameters": ["565e12ab-5601-4a8d-bfbb-9ff74a6f819d"],
									"Flags": "",
									"UnrealCall": "",
									"FunctionHash": 1518072523,
									"ParameterHash": 582447092
								},
								"Not": true,
								"Operator": 0
							}, {
								"$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
								"Data": {
									"FullName": "Boolean HasItemMod(Guid)",
									"Parameters": ["27daf400-e712-4964-8c0a-c7c1389d0ece"],
									"Flags": "",
									"UnrealCall": "",
									"FunctionHash": 1518072523,
									"ParameterHash": 846517722
								},
								"Not": true,
								"Operator": 0
							}
						]
					},
					"CreationConditions": {
						"Operator": 0,
						"Components": []
					},
					"Cost": 3000,
					"CanModifyWeapons": "false",
					"CanModifyArmor": "false",
					"CanModifyShields": "false",
					"CanModifySpecificItemsIDs": ["ab2f745b-0b0d-4da1-bc98-df49c49a1a16"],
					"Ingredients": [{
							"ItemID": "f5ab3a19-47bd-4935-9a27-9c495996fcab",
							"Quantity": 1,
							"IsDestroyed": "true"
						}, {
							"ItemID": "cef02c6b-ac11-4a9c-a6ae-fd90de22d543",
							"Quantity": 1,
							"IsDestroyed": "true"
						}, {
							"ItemID": "38b527d6-ec68-4674-9f13-e69250fbfcec",
							"Quantity": 1,
							"IsDestroyed": "true"
						}
					],
					"Output": [],
					"ItemModsToAddIDs": ["9aef6757-4364-4cf8-be57-8c25911acee6"],
					"ItemModsToRemoveIDs": []
				}
			]
		}

What this is doing is using your UUID from your ItemMod instead of the basegame's.  Then in-game upgrade Sungrazer with Return Orbit (it'll should still be called that in the upgrade window) and see if your modded ability has worked.

 

If it has, congrats!  It should be able to be put on various items.  If not?  Well back to the drawing board. ;)

 

(When done, just remove that block of code I suggested from your mod and Sungrazer will be returned to its base state)

 

When I was fiddling about with abilities on a minor level, I found it far easier to just apply it to a specific item I already had and then see if it worked. 

Edited by Zap Gun For Hire
Link to comment
Share on other sites

NOTE:  I just changed my suggestion in my prior post, as I quoted the wrong bit of code. Sorry!

 

Basically what I am doing here is making it so when the upgrade Return Orbit is applied to Sungrazer, it applies ***YOUR*** version of it instead of the basegame's.

 

The only difference in the two code blocks is the next-to-final lines where I changed the "ItemModsToAddIDs" field from the base game's to yours.

Edited by Zap Gun For Hire
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...