3nvy / wayfinder-save-editor

18 stars 1 forks source link

Suggestion: Echo capacity (startingExp) value editing and Accessory/Weapon slots editing #6

Closed AvernalFury closed 2 months ago

AvernalFury commented 3 months ago

For your Echo editor, could you include the "startingExp": xxxx field into your editor for ones you already own?

Currently when you add echoes from your GUI they are added at whatever level you dictate and have a capacity cost of 2 (because they 'dropped' as that level) - any you have manually fused 5 extra levels in to will have a much higher capacity cost and that appears to be tracked in the Raw Structure for the item as the "startingExp" value. It's independent from the "currentExp" field which dictates the echo's level. It seems the difference between the two values is what dictates the echo's capacity cost.

For Accessories (and weapons) I've been tinkering in the Raw Editor and the _"mGeneratedFogSoulSlots" section dictates their number of sockets and type. "category": "Alfa" is a Sword symbol slot, I haven't tested the others to be able to say which is Balance/Cross/Defensive etc.

You can find each Accessory by searching for instances of "name": "Relic_ or "name": "Accessory_ - they appear to be used interchangeably but the 'Relic' prefix appears more often. The accessory level is dictated by the "currentExp": X, and "startingExp": X, lines. Haven't figured this one out 100% yet but using 49 as the value gives you a level 40 accessory.

The values "bIsUnlocked": false, and "bIsProgressionSlot": false flag the slots as being part of the dropped item and not added by your talents tree or awakening. I've managed to successfully add four Sword sockets to all my accessories following this - haven't risked any further though - it's just a matter of duplicating the existing two parenthesis sections (including the comma, so { to }, ). It also looks like the "bAffectsBudgetCapacity" flag may actually set the slot as a freebie for capacity if set to False.

3nvy commented 3 months ago

Wow, thanks 🙌 thats really insighful :D I don't know how I missed the echo cost on echos tbh, I think when experimenting with the startingExp, I was looking at the power rating rather than the cost 🤦‍♂️ I found the formula that calculates it so it should be fairly easy to create a dropdown to select the actual cost rather than guessing via Exp calculation 👍

As for the Accessories, I've only just started having a bit of look into it and get the list of all Accessories, so havent dwelled much into what needs to be done, so I'll take notes on your discoveries :)

Thanks 👍

AvernalFury commented 2 months ago

I was using Find & Replace in a text editor to make my tweaks since it's difficult to keep track of where certain sections you want to edit begin and end in the Raw Structure. The edit I made to set the accessory slots to "Alfa" (sword polarity) and four of them actually ended up catching my weapons too, and they seem to be included as base slots in addition to the ones you'd normally get through game progression, so I ended up with extra when reloading the save file.

The other interesting quirk was that whatever Echos ("FogSouls") were equipped on the weapons in the existing slots, remained in those slots even though the slot polarity had changed - so it was letting me have Cross/Balance/Defensive in Sword sockets so long as I didn't unequip them. Similar to how you were able to over-level echoes in the MMOLite rendition of you left them slotted as you ranked them beyond your capacity. It's not straight-forward editing the echoes you have equipped in Raw Structure though as it seems to store them as a string in the section beginning "fogSouls": [

The actual item structure is identical for every item though, whether it's a cosmetic, a spray, a housing decoration, an emote, a weapon, a flask or an armour piece. They all use the same template and just leave the sections that don't apply to the item blank or a value of 0 (E.G. "numTempers": 0, on things like an emote, "placedHouseProxyId": "00000000000000000000000000000000", on a weapon when it seems that this value is for decorations, etc.). Am going to experiment with flasks a bit next and see what can be done with those, the base Health Flask is on line 2487 in my save file, looks fairly simple to alter the number of charges but not sure what the base magnitude and cooldown values that are set to 0 do.

AvernalFury commented 2 months ago

Here's one of the accessories I edited for the sake of how it worked out - it has 4 Sword slots - any extra or capacity boosts added through the talents tree or awakenings then get added on top of those - which I believe is what the "bIsUnlocked" and "bIsProgressionSlot" dictate. I haven't experimented with "bAffectsBudgetCapacity" to see if it actually makes echoes in that socket free but suspect it might. The exp values both seem to be set to the same number across all accessories I had so I stuck with that here, changing them to 49 resulted in a level 40 accessory ingame. I didn't check the before/after for the stat boosts to see if they automatically recalculate based on the new level, but Echoes do automatically scale, so gear may potentially also.

{ "name": "Relic_Woods_Flora_Epic", "iD": "602B1EE948C225E0E2E0FFBEABC313D9", "spec": { "itemSpec": { "equippedToSlotId": "00000000000000000000000000000000", "equipmentSlots": [], "equippedToSlotName": "None", "fogSouls": [], "fogSoulAttachedTo": "00000000000000000000000000000000", "bMatchesFogSoulCategory": false, "bDoNotSave": false, "bStarterItem": false, "currentExp": 49, "fusionFedExp": 0, "startingExp": 49, "rankUnlocked": 1, "numTempers": 0, "numOfProgressionTempers": 0, "currentAwakeningLevel": 0, "totalAwakeningStonesUsed": 0, "currentMaxResonanceExp": 0, "dyes": [], "initialSeed": -1936420686, "randomSeeds": [], "abilitySlots": [], "imbuementSlots": [], "currentImbuementCharges": 0, "reinforcementIds": [], "talentItems": [], "aspectBoosts": [], "echoRarity": "NotAssigned", "bHasEverBeenEquipped": false, "m_GeneratedFogSoulSlots": [ { "category": "Alfa", "bAffectsBudgetCapacity": true, "bIsUnlocked": false, "bIsProgressionSlot": false }, { "category": "Alfa", "bAffectsBudgetCapacity": true, "bIsUnlocked": false, "bIsProgressionSlot": false }, { "category": "Alfa", "bAffectsBudgetCapacity": true, "bIsUnlocked": false, "bIsProgressionSlot": false }, { "category": "Alfa", "bAffectsBudgetCapacity": true, "bIsUnlocked": false, "bIsProgressionSlot": false } ], "placedHouseProxyId": "00000000000000000000000000000000", "dependents": [], "unlockTags": { "gameplayTags": [] }, "flaskSpec": { "currentCharges": 0, "maxCharges": 0, "baseMagnitude": 0, "baseCooldownSeconds": 0 }, "itemFlags": 0 } } },

AvernalFury commented 2 months ago

And here's how the Echoes are stored on a character - I haven't messed with these as it's all encoded as a string, so I just manually equip and re-save:

"fogSouls": [ "FF1E2E4147EFFAC06BF707955BF976E4", "2AA32D6B460615ADDC0304A14D843C3E", "FB0BF3699F0E48068DDA3AF5FB732B29", "90AE94B0479F3457B967F986498921EF", "425CBFB7683D4FC4AA104491FAE31D01", "0C29CB8B4B8A3D7894A26491992D2521", "97A5FAB94521B77CE93FD193C35AAA47", "2882F172B0964E6D82761D881B8E22F2", "00000000000000000000000000000000" ],

I've noticed that the Aspect points you've spent are tracked under "talentItems": [ but it didn't seem to affect my character when I tried to exceed the maximum 41 total by editing each aspect to 25 manually in the Raw Structure.

3nvy commented 2 months ago

bAffectsBudgetCapacity seems to be for specifying if a specific slot affects the overall capacity of the artifact, but this only affects positively rather than negatively. So for example, if your accessory has 0 capacity and you add a new slot, if this slot is set with bAffectsBudgetCapacity: true, then your accessory will have, say additional 6 equip budget on it, but if is set to false, your accessory will remain at 0 for equip budget. So unfortunetaly, no fribbies ahah

I havent experumented with the other properties, but for the sake of simplicity and speed, the first interaction will only allow for simple level edit and slot add/edit/remove (will likely disable remove on slots that have equipped echos just so I dont have to add extra logic to modify the echos entires aswell, will think about maybe adding that on a future update)

Im nearly done with this, just need to properly calculate the exp to level ratio on accessories and should be good to ship :)

Thankf for all the feedback, ill still takes notes on your findings and explore those extra parameters at some later time