Earlier today I tried to load a save from a few days ago (the save is from the release candidate). After a few seconds of loading I got an error message.
The error I got
Error Loading - An exception happened while loading the save data exception: Newtonsoft.Json.JsonSerializationException: Unable to find a constructor to use for type AgentProperties. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute. Path âMicrobeEditor.ReturnToStage.WorldSimulation.entities.Entities[âEntity 2:148.2â][11].ToxinProperties.Speciesâ, line 1, position 6648005.
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at EntityWorldConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in /home/hhyyrylainen/Projects/Thrive/src/saving/serializers/EntityWorldConverter.cs:line 120
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at InProgressObjectDeserialization.ReadNextProperty(Boolean ignoreNotConsumed) in /home/hhyyrylainen/Projects/Thrive/src/saving/serializers/InProgressObjectDeserialization.cs:line 164
at InProgressObjectDeserialization.ReadPropertiesUntil(String lookForName) in /home/hhyyrylainen/Projects/Thrive/src/saving/serializers/InProgressObjectDeserialization.cs:line 199
at InProgressObjectDeserialization.CreateDeserializedInstance(Type objectType) in /home/hhyyrylainen/Projects/Thrive/src/saving/serializers/InProgressObjectDeserialization.cs:line 493
at InProgressObjectDeserialization.CreateInstance() in /home/hhyyrylainen/Projects/Thrive/src/saving/serializers/InProgressObjectDeserialization.cs:line 370
at BaseThriveConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in /home/hhyyrylainen/Projects/Thrive/src/saving/serializers/ThriveJsonConverter.cs:line 568
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at InProgressObjectDeserialization.ReadNextProperty(Boolean ignoreNotConsumed) in /home/hhyyrylainen/Projects/Thrive/src/saving/serializers/InProgressObjectDeserialization.cs:line 164
at BaseThriveConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in /home/hhyyrylainen/Projects/Thrive/src/saving/serializers/ThriveJsonConverter.cs:line 520
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at InProgressObjectDeserialization.ReadNextProperty(Boolean ignoreNotConsumed) in /home/hhyyrylainen/Projects/Thrive/src/saving/serializers/InProgressObjectDeserialization.cs:line 164
at BaseThriveConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in /home/hhyyrylainen/Projects/Thrive/src/saving/serializers/ThriveJsonConverter.cs:line 520
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
at ThriveJsonConverter.<>c__DisplayClass11_01.<DeserializeObject>b__0(JsonSerializerSettings s) in /home/hhyyrylainen/Projects/Thrive/src/saving/serializers/ThriveJsonConverter.cs:line 94 at ThriveJsonConverter.PerformWithSettings[T](Func
2 func) in /home/hhyyrylainen/Projects/Thrive/src/saving/serializers/ThriveJsonConverter.cs:line 223
at ThriveJsonConverter.PerformWithSettings[T](Func`2 func) in /home/hhyyrylainen/Projects/Thrive/src/saving/serializers/ThriveJsonConverter.cs:line 240
at ThriveJsonConverter.DeserializeObject[T](String json) in /home/hhyyrylainen/Projects/Thrive/src/saving/serializers/ThriveJsonConverter.cs:line 94
at Save.LoadFromFile(String file, Boolean info, Boolean save, Boolean screenshot, Action readFinished) in /home/hhyyrylainen/Projects/Thrive/src/saving/Save.cs:line 299
at Save.LoadFromFile(String saveName, Action readFinished) in /home/hhyyrylainen/Projects/Thrive/src/saving/Save.cs:line 86
at InProgressLoad.Step() in /home/hhyyrylainen/Projects/Thrive/src/saving/InProgressLoad.cs:line 104
This save was in the editor. I also tried to load other saves from the same playthrough (an autosave from out of the editor and one in the editor). In hindsight, I probably shouldâve tried loading other saves.