Crash While Trying To "Shop" at Ceria's on Tavros

julesxo

Member
Apr 12, 2023
7
0
29
Not sure what happened here, I have used a save editor previously, but I loaded a past save and got the same error.

Version: 0.9.050-PUBLIC#3271 Message: XIMK5SecondSkin requires it's canMergeWith call to be overridden if it has dynamic properties. Stack:
TiTSException: XIMK5SecondSkin requires it's canMergeWith call to be overridden if it has dynamic properties.
at r (https://www.fenoxo.com/play/TiTS/release/main.872dc3ac.js:1:9760648)
at o.value (https://www.fenoxo.com/play/TiTS/release/main.872dc3ac.js:1:5806365)
at https://www.fenoxo.com/play/TiTS/release/main.872dc3ac.js:1:11820030
at Array.filter ()
at https://www.fenoxo.com/play/TiTS/release/main.872dc3ac.js:1:11819938
at Array.forEach ()
at o.value (https://www.fenoxo.com/play/TiTS/release/main.872dc3ac.js:1:11819788)
at o.value (https://www.fenoxo.com/play/TiTS/release/main.872dc3ac.js:1:11824479)
at o.value (https://www.fenoxo.com/play/TiTS/release/main.872dc3ac.js:1:11825668)
at Za (https://www.fenoxo.com/play/TiTS/release/vendors.0a48f957.js:1:547721)
 

julesxo

Member
Apr 12, 2023
7
0
29
Update: Unless there is some bigger error, I think I fucked my own save, I'm getting this error everywhere (ship storage, other characters, etc). :( Damn
 

Gedan

BUTTS BUTTS BUTTS
Staff member
Aug 26, 2015
8,008,896
8,008,326
The canMergeWith error hints that an item has had its classInstance changed in the save data. Usually when this crops up, it's because somebody has been editing their save.

Most of the time we don't save the full object for items, because they are all standardized. We have a handful of items that can be more complicated, and when using these items we flip a setting on them that makes their full stats save because these values can be changed by the game - this is the dynamic properties bit. With how we've built out the UI for inventory management, we try to compress items down into the minimal number of stacks to make seeing at a glance what you actually have easier. canMergeWith is a special function that we have to write for each item we know will have dynamic properties, so that we can accurately determine if two items with the same class but dynamic properties are actually the same or not, and we don't have a generic method to handle this because items can be very complex, and we want the implementations of these checks to be as direct to the point as possible - otherwise we can merge items in a way that loses data.

I think a lot of people open up the save file, find an item that has its full stat block (because they want to mess around), flip its classInstance to something else, and then blow up the game because the classInstance they are using doesn't have a canMergeWith implementation, because that item will, in the normal course of play, never need it. The pistol given to TechSpecs during creation is usually the weapon that gets this treatment, and it's easy to tell because it has a unique name that can only come from character creation.