@@ -69,6 +69,14 @@ def skip_decode(
6969 "id" : reader .optional_guid (),
7070 "value" : reader .read (size ),
7171 }
72+ elif type_name == "SetProperty" :
73+ set_type = reader .fstring ()
74+ value = {
75+ "skip_type" : type_name ,
76+ "set_type" : set_type ,
77+ "id" : reader .optional_guid (),
78+ "value" : reader .read (size ),
79+ }
7280 else :
7381 raise Exception (
7482 f"Expected ArrayProperty or MapProperty or StructProperty, got { type_name } in { path } "
@@ -107,6 +115,13 @@ def skip_encode(
107115 writer .optional_guid (properties .get ("id" , None ))
108116 writer .write (properties ["value" ])
109117 return len (properties ["value" ])
118+ elif property_type == "SetProperty" :
119+ del properties ["custom_type" ]
120+ del properties ["skip_type" ]
121+ writer .fstring (properties ["set_type" ])
122+ writer .optional_guid (properties .get ("id" , None ))
123+ writer .write (properties ["value" ])
124+ return len (properties ["value" ])
110125 else :
111126 raise Exception (
112127 f"Expected ArrayProperty or MapProperty or StructProperty, got { property_type } "
@@ -172,6 +187,10 @@ def load_skiped_decode(wsd, skip_paths, recursive=True):
172187 skip_decode ,
173188 skip_encode ,
174189)
190+ SKP_PALWORLD_CUSTOM_PROPERTIES [".worldSaveData.InLockerCharacterInstanceIDArray" ] = (
191+ skip_decode ,
192+ skip_encode ,
193+ )
175194
176195
177196def convert_sav (file ):
0 commit comments