Compare commits
5 Commits
0.0.1
...
0.0.1.post
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
82f8feb884 | ||
|
|
7a2eb6db47 | ||
|
|
95daa73463 | ||
|
|
52719c2546 | ||
|
|
9eef1abc54 |
2
.project
2
.project
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>{{project_name}}</name>
|
||||
<name>sotffixcompanions</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding//src/sotffixcompanions/sotffixcompanions.py=utf-8
|
||||
encoding/<project>=UTF-8
|
||||
|
||||
@@ -14,9 +14,15 @@ from importlib.metadata import version, PackageNotFoundError
|
||||
|
||||
try: # pragma: no cover
|
||||
__version__ = version("sotffixcompanions")
|
||||
except PackageNotFoundError: # pragma: no cover
|
||||
except PackageNotFoundError: # pragma: no cover
|
||||
import warnings
|
||||
|
||||
warnings.warn("can not read __version__, assuming local test context, setting it to ?.?.?")
|
||||
__version__ = "?.?.?"
|
||||
|
||||
from .test_module import test_function
|
||||
from sotffixcompanions.sotffixcompanions import (
|
||||
SOTFSaveThune,
|
||||
SOTFSaveThune_Exception_SaveNotFound,
|
||||
SOTFSaveThune_Exception,
|
||||
SOTFSaveThune_Exception_WrongSave,
|
||||
)
|
||||
|
||||
157
src/sotffixcompanions/sotffixcompanions.py
Normal file
157
src/sotffixcompanions/sotffixcompanions.py
Normal file
@@ -0,0 +1,157 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# sotffixcompanions (c) by chacha
|
||||
#
|
||||
# sotffixcompanions is licensed under a
|
||||
# Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Unported License.
|
||||
#
|
||||
# You should have received a copy of the license along with this
|
||||
# work. If not, see <https://creativecommons.org/licenses/by-nc-sa/4.0/>.
|
||||
|
||||
"""A tiny tool to fix SOTF companions (bring them back to life)
|
||||
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from pathlib import Path
|
||||
from glob import glob
|
||||
import os
|
||||
import json
|
||||
|
||||
if TYPE_CHECKING: # Only imports the below statements during type checking
|
||||
from typing import Optional, Union, List, Dict
|
||||
|
||||
JsonType = Union[None, int, str, bool, List[JsonType], Dict[str, JsonType]]
|
||||
|
||||
|
||||
class SOTFSaveThune_Exception(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class SOTFSaveThune_Exception_SaveNotFound(SOTFSaveThune_Exception):
|
||||
pass
|
||||
|
||||
|
||||
class SOTFSaveThune_Exception_WrongSave(SOTFSaveThune_Exception):
|
||||
pass
|
||||
|
||||
|
||||
class SOTFSaveThune:
|
||||
_savespath: Optional[Path]
|
||||
|
||||
def __init__(self, savespath: Optional[Path]) -> None:
|
||||
if savespath is not None:
|
||||
self.savespath = savespath
|
||||
self.lastsave: Optional[Path] = None
|
||||
self.lastGameStateSaveData: Optional[Path] = None
|
||||
self.lastSaveData: Optional[Path] = None
|
||||
self.prevlastsave: Optional[Path] = None
|
||||
|
||||
@property
|
||||
def savespath(self) -> Optional[Path]:
|
||||
"""savespath getter
|
||||
|
||||
Returns:
|
||||
the current game saves directory path
|
||||
"""
|
||||
return self._savespath
|
||||
|
||||
@savespath.setter
|
||||
def savespath(self, savespath: Optional[Path | str]) -> None:
|
||||
"""Change / Set the game saves directory path.
|
||||
|
||||
Args:
|
||||
savespath: The (new) game saves directory path
|
||||
"""
|
||||
|
||||
if isinstance(savespath, (str, Path)):
|
||||
self._savespath = Path(savespath)
|
||||
|
||||
def search_last_save(self) -> Optional[Path]:
|
||||
try:
|
||||
latest_file = sorted(self.savespath.iterdir(), key=lambda t: t.stat().st_mtime).pop()
|
||||
print(latest_file)
|
||||
|
||||
MP = Path(latest_file) / "Multiplayer"
|
||||
latest_file = sorted(MP.iterdir(), key=lambda t: t.stat().st_mtime).pop()
|
||||
|
||||
return Path(latest_file)
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
def open_last_save(self) -> None:
|
||||
lastsave = self.search_last_save()
|
||||
if lastsave is None:
|
||||
raise SOTFSaveThune_Exception_SaveNotFound()
|
||||
|
||||
if self.prevlastsave != lastsave:
|
||||
try:
|
||||
self.lastGameStateSaveData = json.load(open(lastsave / "GameStateSaveData.json"))
|
||||
self.lastSaveData = json.load(open(lastsave / "SaveData.json"))
|
||||
except:
|
||||
raise SOTFSaveThune_Exception_WrongSave()
|
||||
self.prevlastsave = lastsave
|
||||
|
||||
def save_last_save(self):
|
||||
self.open_last_save()
|
||||
|
||||
with open(self.prevlastsave / "GameStateSaveData.json", "w") as outfile:
|
||||
outfile.write(json.dumps(self.lastGameStateSaveData))
|
||||
|
||||
with open(self.prevlastsave / "SaveData.json", "w") as outfile:
|
||||
outfile.write(json.dumps(self.lastSaveData))
|
||||
|
||||
def resuscitate_kelvin(self) -> None:
|
||||
self.open_last_save()
|
||||
nestedjson = json.loads(self.lastGameStateSaveData["Data"]["GameState"])
|
||||
if "IsRobbyDead" in nestedjson:
|
||||
print(nestedjson["IsRobbyDead"])
|
||||
nestedjson["IsRobbyDead"] = False
|
||||
print(nestedjson["IsRobbyDead"])
|
||||
|
||||
self.lastGameStateSaveData["Data"]["GameState"] = json.dumps(nestedjson)
|
||||
|
||||
nestedjson = json.loads(self.lastSaveData["Data"]["VailWorldSim"])
|
||||
print(nestedjson["Actors"])
|
||||
|
||||
Kelvin = [_ for _ in nestedjson["Actors"] if _["TypeId"] == 9][0]
|
||||
print(Kelvin)
|
||||
if "PlayerKilled" in Kelvin and Kelvin["PlayerKilled"] == True:
|
||||
del Kelvin["PlayerKilled"]
|
||||
Kelvin["FamilyId "] = 0
|
||||
Kelvin["State "] = 2
|
||||
Kelvin["Stats"] = {"Health": 100, "Hydration": 16, "Energy": 100}
|
||||
Kelvin["StateFlags "] = 0
|
||||
print(nestedjson["Actors"])
|
||||
self.lastSaveData["Data"]["VailWorldSim"] = json.dumps(nestedjson)
|
||||
|
||||
self.save_last_save()
|
||||
|
||||
def resuscitate_virginia(self) -> None:
|
||||
self.open_last_save()
|
||||
nestedjson = json.loads(self.lastGameStateSaveData["Data"]["GameState"])
|
||||
# if "IsVirginiaDead" in nestedjson:
|
||||
# print(nestedjson["IsVirginiaDead"])
|
||||
nestedjson["IsVirginiaDead"] = False
|
||||
# print(nestedjson["IsVirginiaDead"])
|
||||
|
||||
self.lastGameStateSaveData["Data"]["GameState"] = json.dumps(nestedjson)
|
||||
|
||||
nestedjson = json.loads(self.lastSaveData["Data"]["VailWorldSim"])
|
||||
# print(nestedjson["Actors"])
|
||||
|
||||
Virginia = [_ for _ in nestedjson["Actors"] if _["TypeId"] == 10][0]
|
||||
# print(Virginia)
|
||||
if "PlayerKilled" in Virginia and Virginia["PlayerKilled"] == True:
|
||||
del Virginia["PlayerKilled"]
|
||||
Virginia["FamilyId "] = 0
|
||||
Virginia["State "] = 2
|
||||
Virginia["Stats"] = {"Health": 100, "Anger": 0, "Fear": 0, "Fullness": 44, "Hydration": 16, "Energy": 100, "Affection": 50}
|
||||
Virginia["StateFlags "] = 0
|
||||
# print(nestedjson["Actors"])
|
||||
self.lastSaveData["Data"]["VailWorldSim"] = json.dumps(nestedjson)
|
||||
|
||||
self.save_last_save()
|
||||
@@ -1,43 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# sotffixcompanions (c) by chacha
|
||||
#
|
||||
# sotffixcompanions is licensed under a
|
||||
# Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Unported License.
|
||||
#
|
||||
# You should have received a copy of the license along with this
|
||||
# work. If not, see <https://creativecommons.org/licenses/by-nc-sa/4.0/>.
|
||||
|
||||
"""Phasellus tellus lectus, volutpat eu dapibus ut, suscipit vel augue.
|
||||
|
||||
Tips:
|
||||
Aliquam non leo vel libero sagittis viverra. Quisque lobortis nunc sit amet augue euismod laoreet.
|
||||
Note:
|
||||
Maecenas volutpat porttitor pretium. Aliquam suscipit quis nisi non imperdiet.
|
||||
Note:
|
||||
Vivamus et efficitur lorem, eget imperdiet tortor. Integer vel interdum sem.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING: # Only imports the below statements during type checking
|
||||
pass
|
||||
|
||||
def test_function(testvar: int) -> int:
|
||||
""" A test function that return testvar+1 and print "Hello world !"
|
||||
|
||||
Proin eget sapien eget ipsum efficitur mollis nec ac nibh.
|
||||
|
||||
Note:
|
||||
Morbi id lectus maximus, condimentum nunc eget, porta felis. In tristique velit tortor.
|
||||
|
||||
Args:
|
||||
testvar: any integer
|
||||
|
||||
Returns:
|
||||
testvar+1
|
||||
"""
|
||||
print("Hello world !")
|
||||
return testvar+1
|
||||
45
test/test_sotffixcompanions.py
Normal file
45
test/test_sotffixcompanions.py
Normal file
@@ -0,0 +1,45 @@
|
||||
# sotffixcompanions (c) by chacha
|
||||
#
|
||||
# sotffixcompanions is licensed under a
|
||||
# Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Unported License.
|
||||
#
|
||||
# You should have received a copy of the license along with this
|
||||
# work. If not, see <https://creativecommons.org/licenses/by-nc-sa/4.0/>.
|
||||
|
||||
import unittest
|
||||
from io import StringIO
|
||||
from pathlib import Path
|
||||
from contextlib import redirect_stdout, redirect_stderr
|
||||
|
||||
print(__name__)
|
||||
print(__package__)
|
||||
|
||||
from src.sotffixcompanions import SOTFSaveThune, __version__, SOTFSaveThune_Exception_SaveNotFound
|
||||
|
||||
testdir_path = Path(__file__).parent.resolve()
|
||||
|
||||
|
||||
class TestSOTF(unittest.TestCase):
|
||||
def test_version(self):
|
||||
self.assertNotEqual(__version__, "?.?.?")
|
||||
|
||||
def test_SOTFSaveThune_searchlastsave(self):
|
||||
testSOTF = SOTFSaveThune(testdir_path / "testfiles" / "Saves")
|
||||
testSOTF.search_last_save()
|
||||
|
||||
def test_SOTFSaveThune_SaveNotFound(self):
|
||||
testSOTF = SOTFSaveThune(testdir_path / "testfiles" / "NoSaves")
|
||||
with self.assertRaises(SOTFSaveThune_Exception_SaveNotFound):
|
||||
testSOTF.open_last_save()
|
||||
|
||||
def test_SOTFSaveThune_openlastsave(self):
|
||||
testSOTF = SOTFSaveThune(testdir_path / "testfiles" / "Saves")
|
||||
testSOTF.open_last_save()
|
||||
|
||||
def test_SOTFSaveThune_resuscitate_kelvin(self):
|
||||
testSOTF = SOTFSaveThune(testdir_path / "testfiles" / "Saves")
|
||||
testSOTF.resuscitate_kelvin()
|
||||
|
||||
def test_SOTFSaveThune_resuscitate_virginia(self):
|
||||
testSOTF = SOTFSaveThune(testdir_path / "testfiles" / "Saves")
|
||||
testSOTF.resuscitate_virginia()
|
||||
@@ -1,32 +0,0 @@
|
||||
# sotffixcompanions (c) by chacha
|
||||
#
|
||||
# sotffixcompanions is licensed under a
|
||||
# Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Unported License.
|
||||
#
|
||||
# You should have received a copy of the license along with this
|
||||
# work. If not, see <https://creativecommons.org/licenses/by-nc-sa/4.0/>.
|
||||
|
||||
import unittest
|
||||
from io import StringIO
|
||||
from contextlib import redirect_stdout,redirect_stderr
|
||||
|
||||
print(__name__)
|
||||
print(__package__)
|
||||
|
||||
from src import sotffixcompanions
|
||||
|
||||
class Testtest_module(unittest.TestCase):
|
||||
def test_version(self):
|
||||
self.assertNotEqual(sotffixcompanions.__version__,"?.?.?")
|
||||
|
||||
def test_test_module(self):
|
||||
|
||||
with redirect_stdout(StringIO()) as capted_stdout, redirect_stderr(StringIO()) as capted_stderr:
|
||||
self.assertEqual(sotffixcompanions.test_function(41),42)
|
||||
|
||||
self.assertEqual(len(capted_stderr.getvalue()),0)
|
||||
self.assertEqual(capted_stdout.getvalue().strip(),"Hello world !")
|
||||
self.assertEqual(len(capted_stderr.getvalue()),0)
|
||||
|
||||
|
||||
|
||||
0
test/testfiles/NoSave/.gitkeep
Normal file
0
test/testfiles/NoSave/.gitkeep
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"Fires":"{\"Version\":\"0.0.0\",\"FiresPerStructureType\":{\"32\":[{\"PutOutChance\":1,\"Fuel\":120.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":2,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":1260.0,\"FuelDrainRate\":0.25},{\"PutOutChance\":1,\"Fuel\":120.0,\"FuelDrainRate\":0.892857134},{\"PutOutChance\":1,\"Fuel\":120.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":120.0,\"FuelDrainRate\":0.25},{\"PutOutChance\":1,\"Fuel\":120.0,\"FuelDrainRate\":0.25},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":2,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":120.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":120.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":120.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":120.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":2,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":120.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":2,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":2,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":2,\"Fuel\":120.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":0.25},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":0.25},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":0.25},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":0.357142866},{\"PutOutChance\":1,\"Fuel\":120.0,\"FuelDrainRate\":0.25},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":1.0},{\"PutOutChance\":1,\"Fuel\":1260.0,\"FuelDrainRate\":0.25},{\"IsLit\":true,\"PutOutChance\":1,\"Fuel\":237.6526,\"FuelDrainRate\":0.25},{\"PutOutChance\":1,\"Fuel\":300.0,\"FuelDrainRate\":0.25},{\"PutOutChance\":1,\"Fuel\":120.0,\"FuelDrainRate\":0.357142866},{\"PutOutChance\":2,\"Fuel\":120.0,\"FuelDrainRate\":1.0}]}}"}}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"FreeFormTreeStructures":"{\"Version\":\"0.0.1\",\"_treeStructureData\":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]}"}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"FurnitureStorage":"{\"Version\":\"0.0.0\",\"Furnitures\":[]}"}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"GameSetup":"{\"_settings\":[{\"Name\":\"Mode\",\"SettingType\":3,\"StringValue\":\"Custom\"},{\"Name\":\"UID\",\"SettingType\":3,\"StringValue\":\"9c2c14b59b1f45779dc26e1b789de83c\"},{\"Name\":\"GameSetting.Vail.EnemySpawn\",\"BoolValue\":true},{\"Name\":\"GameSetting.Vail.EnemyHealth\",\"SettingType\":3,\"StringValue\":\"LOW\"},{\"Name\":\"GameSetting.Vail.EnemyArmour\",\"SettingType\":3,\"StringValue\":\"LOW\"},{\"Name\":\"GameSetting.Vail.AnimalSpawnRate\",\"SettingType\":3,\"StringValue\":\"High\"},{\"Name\":\"GameSetting.Environment.SeasonLength\",\"SettingType\":3,\"StringValue\":\"Long\"},{\"Name\":\"GameSetting.Environment.DayLength\",\"SettingType\":3,\"StringValue\":\"Long\"},{\"Name\":\"GameSetting.Environment.PrecipitationFrequency\",\"SettingType\":3,\"StringValue\":\"Low\"}],\"name\":\"\"}"}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"GameState":"{\"Version\":\"0.0.0\",\"GameName\":\"Custom 148 Days 16:12:14\",\"SaveTime\":\"2023-05-08T17:57:18.9719754+02:00\",\"GameType\":\"Custom\",\"GameId\":\"cd34590b-6d7a-40b8-884a-82bee685e61c\",\"GameDays\":148,\"GameHours\":16,\"GameMinutes\":12,\"GameSeconds\":23,\"GameMilliseconds\":555,\"IsRobbyDead\":true,\"CoreGameCompleted\":true,\"StayedOnIsland\":true,\"CrashSite\":\"snow\",\"NamedIntDatas\":[{\"SaveObjectNameId\":\"LuxuryBunker.EntranceDoor\",\"SaveValue\":3},{\"SaveObjectNameId\":\"LuxuryBunker.HellDoorCaveEntrance\",\"SaveValue\":3},{\"SaveObjectNameId\":\"HangingTacticalGpsPickedUp\"},{\"SaveObjectNameId\":\"BuriedTacticalGpsPickedUp\"},{\"SaveObjectNameId\":\"RaftTacticalGpsPickeUp\",\"SaveValue\":1},{\"SaveObjectNameId\":\"BunkerA.EntranceHatch\",\"SaveValue\":3},{\"SaveObjectNameId\":\"BunkerB.EntranceHatch\",\"SaveValue\":3},{\"SaveObjectNameId\":\"BunkerC.EntranceHatch\",\"SaveValue\":3},{\"SaveObjectNameId\":\"EntertainmentBunker.ExitDoor\",\"SaveValue\":3},{\"SaveObjectNameId\":\"EntertainmentBunker.EntranceDoor\",\"SaveValue\":3},{\"SaveObjectNameId\":\"EntertainmentBunker.ComputerRoomDoor\"},{\"SaveObjectNameId\":\"BunkerFoodAndDining.EntranceHatch\",\"SaveValue\":3},{\"SaveObjectNameId\":\"BunkerFoodAndDining.EntranceDoor\",\"SaveValue\":3},{\"SaveObjectNameId\":\"BunkerFoodAndDining.DiningDoor\",\"SaveValue\":3},{\"SaveObjectNameId\":\"HangingTactical\",\"SaveValue\":1},{\"SaveObjectNameId\":\"HangingTacticalCutDown\",\"SaveValue\":1},{\"SaveObjectNameId\":\"CaveC.Sluggy\",\"SaveValue\":3},{\"SaveObjectNameId\":\"BunkerResidential.ExitDoor\",\"SaveValue\":3},{\"SaveObjectNameId\":\"BunkerResidential.EntranceDoor\",\"SaveValue\":3},{\"SaveObjectNameId\":\"CaveB.Sluggy\",\"SaveValue\":1}]}"}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"GardenPlotManager":"{\"_gardenPlotsData\":[{\"SeedId\":-1},{\"SeedId\":605,\"GrowTimeSecondsRemaining\":-7.48648262},{\"SeedId\":600,\"GrowTimeSecondsRemaining\":-7.060627},{\"SeedId\":604,\"GrowTimeSecondsRemaining\":-46817.832},{\"SeedId\":599,\"GrowTimeSecondsRemaining\":-46817.832},{\"SeedId\":603,\"GrowTimeSecondsRemaining\":-7.45452166},{\"SeedId\":602,\"GrowTimeSecondsRemaining\":-7.27251053},{\"SeedId\":596,\"GrowTimeSecondsRemaining\":-7.51452255},{\"SeedId\":599,\"GrowTimeSecondsRemaining\":-46817.832},{\"SeedId\":605,\"GrowTimeSecondsRemaining\":-7.53163671},{\"SeedId\":596,\"GrowTimeSecondsRemaining\":-91357.9453},{\"SeedId\":604,\"GrowTimeSecondsRemaining\":-92841.52}]}"}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"Hotkeys":"{\"Version\":\"0.0.1\",\"RightHandItemIds\":[394,474,355,381,522,379,356,-1,426,-1],\"LeftHandItemIds\":[-1,-1,-1,-1,-1,-1,-1,471,-1,-1]}"}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"MultiplayerPlayerRoles":"{\"Version\":\"0.0.0\",\"PlayerList\":[]}"}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"PlayerArmourSystem":"{\"Version\":\"0.0.0\",\"ArmourPieces\":[{\"ItemId\":593,\"Slot\":4,\"RemainingArmourpoints\":40.0},{\"ItemId\":593,\"Slot\":5,\"RemainingArmourpoints\":5.0},{\"ItemId\":593,\"Slot\":6,\"RemainingArmourpoints\":40.0},{\"ItemId\":593,\"Slot\":7,\"RemainingArmourpoints\":40.0},{\"ItemId\":593,\"Slot\":10,\"RemainingArmourpoints\":40.0},{\"ItemId\":593,\"Slot\":11,\"RemainingArmourpoints\":40.0}]}"}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"PlayerClothingSystem":"{\"Version\":\"0.0.0\",\"Clothing\":[500]}"}}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"PlayerRetrieveDroppedInventoryAction":"{\"Version\":\"0.0.0\"}"}}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"RainCatcherManager":"{\"_rainCatchersData\":[{\"IsFrozen\":true},{\"IsFrozen\":true}]}"}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"Resin3dPrinter_BunkerA":"{\"Version\":\"0.0.0\",\"CurrentResinVolume\":6.666664,\"CurrentBlueprintId\":4}"}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"Resin3dPrinter_BunkerB":"{\"Version\":\"0.0.0\",\"CurrentResinVolume\":80.00001,\"CurrentBlueprintId\":4}"}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"Resin3dPrinter_Entertainment":"{\"Version\":\"0.0.0\",\"CurrentResinVolume\":0.000112533569,\"CurrentBlueprintId\":4}"}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"Resin3dPrinter_Residential":"{\"Version\":\"0.0.0\",\"InMidPrint\":true,\"CurrentBlueprintId\":4}"}}
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
|
After Width: | Height: | Size: 78 KiB |
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"ScrewStructureNodeInstances":"{\"_structures\":[{\"Id\":43,\"Pos\":{\"x\":1728.49182,\"y\":96.43189,\"z\":-490.3838},\"Rot\":{\"w\":1.0}}]}"}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"ScrewTraps":"{\"_tarpStructureData\":[{\"IsTriggered\":true},{\"IsTriggered\":true}]}"}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"ScrewTreeLinkers":"{\"_treeStructureData\":[{},{},{},{},{},{},{},{},{},{},{},{\"_locatorId\":\"4D13C5FFC09E0500055F0A00\"},{},{},{},{},{},{},{},{\"_locatorId\":\"78C7DEFFB8740C0046CC0800\"},{},{\"_locatorId\":\"5E29E4FFD0800D00EF3B0500\"},{},{},{},{},{},{},{},{\"_locatorId\":\"3A9DEDFF7D86140088C4FEFF\"},{},{\"_locatorId\":\"3A9DEDFF7D86140088C4FEFF\"},{},{\"_locatorId\":\"3A9DEDFF7D86140088C4FEFF\"},{},{\"_locatorId\":\"F572C4FF610305009CBA1700\"},{},{},{},{\"_locatorId\":\"4CF1C5FFF1EF0500CC0E2700\"},{},{\"_locatorId\":\"7721C7FFAABB0500607C1E00\"},{},{\"_locatorId\":\"F2C4CAFF051405008E353C00\"},{\"_locatorId\":\"EE13BAFF68F60700DABAF9FF\"},{\"_locatorId\":\"EE13BAFF68F60700DABAF9FF\"},{},{\"_locatorId\":\"B44BC9FFB35C0500E9523F00\"},{\"_locatorId\":\"A3AEC8FF40DA04003BE44400\"},{\"_locatorId\":\"49BAC7FF580A05009D5B4500\"},{},{\"_locatorId\":\"DDA7C3FFAC8F0500E7924C00\"},{},{\"_locatorId\":\"811EC2FFF0F40500913B4F00\"},{},{\"_locatorId\":\"16FAC0FF160C060057B64F00\"},{},{\"_locatorId\":\"E9D46600284605004EAB2700\"},{},{\"_locatorId\":\"6FE36300F8420500623D2900\"},{},{\"_locatorId\":\"4A585E00668D0300C6BC2C00\"},{},{\"_locatorId\":\"CCE45A000B7B0400D8572F00\"},{},{\"_locatorId\":\"4B325300B4AA06001DBA3500\"},{},{\"_locatorId\":\"BD854E000A360700DEB73D00\"},{},{\"_locatorId\":\"EC9C48004FB707001BEF3E00\"},{},{\"_locatorId\":\"D6EA41004C7908000B453E00\"},{},{\"_locatorId\":\"6E623D0058180900295A3F00\"},{},{\"_locatorId\":\"0853360095810700ECDE4300\"},{},{\"_locatorId\":\"165D3300A164050091EA4800\"},{},{\"_locatorId\":\"E0182B0065EC050088854A00\"},{},{\"_locatorId\":\"8FF92800EADF0500AA294B00\"},{},{\"_locatorId\":\"450F210011DC0400C7854A00\"},{},{\"_locatorId\":\"8FF92800EADF0500AA294B00\"},{},{\"_locatorId\":\"D6EA41004C7908000B453E00\"},{},{\"_locatorId\":\"4B325300B4AA06001DBA3500\"},{},{\"_locatorId\":\"80E1C2FFF8F20500A2F45300\"},{},{\"_locatorId\":\"80E1C2FFF8F20500A2F45300\"},{\"_locatorId\":\"BFE0CAFFDB0F050021F95000\"},{\"_locatorId\":\"D65ACAFF1E1D050072CE5000\"},{\"_locatorId\":\"88B2CDFF505A0400266A4F00\"},{\"_locatorId\":\"95FDCDFFE221040072784E00\"},{},{\"_locatorId\":\"5753D0FFD8FE0300B68F4900\"},{},{\"_locatorId\":\"A083D7FF168803006ABC4400\"},{},{\"_locatorId\":\"2F09DBFFBFB60300962E4300\"},{},{\"_locatorId\":\"CBA3DEFF147103006BCD4200\"},{},{\"_locatorId\":\"608AE4FF84500200B7DC4300\"},{},{\"_locatorId\":\"608AE4FF84500200B7DC4300\"},{},{\"_locatorId\":\"5B26EBFF19C80200818A4600\"},{},{\"_locatorId\":\"B2FAF1FFD50A030041B94600\"},{},{\"_locatorId\":\"C411F9FF5071030050A54400\"},{},{\"_locatorId\":\"FE38FEFFE3920400BC4B4400\"},{},{\"_locatorId\":\"CC960100B30805005FDC4A00\"},{},{\"_locatorId\":\"EEA30800858C050015B54700\"},{},{\"_locatorId\":\"20640B00024A06001EC24300\"},{},{\"_locatorId\":\"F8410F00DC120600E6B94100\"},{},{\"_locatorId\":\"AEBA14002993070029324000\"},{},{\"_locatorId\":\"CB411900899F0800BCE04100\"},{},{\"_locatorId\":\"811EC2FFF0F40500913B4F00\"},{},{\"_locatorId\":\"5111200058A508001D6A4600\"},{},{\"_locatorId\":\"450F210011DC0400C7854A00\"},{},{\"_locatorId\":\"E490550014A5050022A13300\"},{},{\"_locatorId\":\"CCE45A000B7B0400D8572F00\"},{},{\"_locatorId\":\"709B6B00B1530200BFCC2100\"},{},{\"_locatorId\":\"413C6A003D4203009B4E1E00\"},{},{\"_locatorId\":\"15B5650068F50300244E1900\"},{},{\"_locatorId\":\"B2B862002B7A04008A1F1300\"},{\"_locatorId\":\"738C5400335906006A753400\"},{\"_locatorId\":\"E490550014A5050022A13300\"},{},{\"_locatorId\":\"278C6000EE690200755A0400\"},{\"_locatorId\":\"4FB75F0074CA0400F8280C00\"},{\"_locatorId\":\"0B7D5F004F500400D4F60A00\"},{\"_locatorId\":\"44ED61002D9304002D511200\"},{\"_locatorId\":\"B2B862002B7A04008A1F1300\"},{},{},{},{},{},{\"_locatorId\":\"D0256200BB5502002FAC0100\"},{},{\"_locatorId\":\"E9DD650030530200EDB0F9FF\"},{},{\"_locatorId\":\"E18267000BCC0300F118F2FF\"},{},{\"_locatorId\":\"9E826B007FE903007329EBFF\"},{},{\"_locatorId\":\"36FC6B0069770400DEF5E6FF\"},{},{\"_locatorId\":\"AF7F6900BBA60500C111E2FF\"},{\"_locatorId\":\"AF7F6900BBA60500C111E2FF\"},{},{\"_locatorId\":\"AB72C1FF407010006134CFFF\"},{},{},{},{\"_locatorId\":\"EA2AC6FFA2BA0F00A164DAFF\"},{},{\"_locatorId\":\"68BFC8FFAEFA0E0005C8DEFF\"},{},{\"_locatorId\":\"4FCCCAFFEC3C0E0037F9E4FF\"},{},{\"_locatorId\":\"87E0CBFF5A490D000C6EE8FF\"},{},{\"_locatorId\":\"A61CCDFF1CAF0B00636CEBFF\"},{},{\"_locatorId\":\"86D3CCFFAA7C0900EAEBF3FF\"},{},{\"_locatorId\":\"8B95D0FF4566080025CF0100\"},{},{\"_locatorId\":\"387DCEFFFA780700895B0500\"},{\"_locatorId\":\"E99BCBFFE0CD06004B780900\"},{\"_locatorId\":\"F688CBFF77C40600FD1E0A00\"},{},{},{},{},{},{},{},{\"_locatorId\":\"4CF1C5FFF1EF0500CC0E2700\"},{},{\"_locatorId\":\"BF01CBFF9BA605001C703400\"},{},{},{},{},{},{\"_locatorId\":\"F8410F00DC120600E6B94100\"},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]}"}}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"WeatherSystem":"{\"Version\":\"0.0.0\",\"_currentSeason\":3,\"_startingDayOffset\":10.0,\"_wetnessVelocity\":-3.28153146E-05,\"_wetnessCurrent\":0.00183244119}"}}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":"0.0.0","Data":{"WorldItemManager":"{\"Version\":\"0.0.0\",\"WorldItemStates\":[{\"ObjectNameId\":\"World.HangGlider.12\",\"ItemId\":626,\"Position\":{\"x\":-1297.054,\"y\":79.975,\"z\":1740.63477},\"Rotation\":{\"x\":345.6263,\"y\":51.9747849,\"z\":2.88373137}},{\"ObjectNameId\":\"World.HangGlider.04\",\"ItemId\":626,\"Position\":{\"x\":-1184.1,\"y\":221.516174,\"z\":-1728.82288},\"Rotation\":{\"x\":339.567169,\"y\":202.175552,\"z\":358.482422}},{\"ObjectNameId\":\"World.HangGlider.14\",\"ItemId\":626,\"Position\":{\"x\":846.108,\"y\":208.549,\"z\":1105.33716},\"Rotation\":{\"x\":345.6263,\"y\":41.03186,\"z\":2.88373685}},{\"ObjectNameId\":\"World.HangGlider.05\",\"ItemId\":626,\"Position\":{\"x\":733.1571,\"y\":369.35,\"z\":740.7741},\"Rotation\":{\"x\":346.592865,\"y\":55.28923,\"z\":3.63867712}},{\"ObjectNameId\":\"World.HangGlider.13\",\"ItemId\":626,\"Position\":{\"x\":-799.537,\"y\":189.46,\"z\":-281.768},\"Rotation\":{\"x\":345.6263,\"y\":325.6798,\"z\":2.883733}},{\"ObjectNameId\":\"World.HangGlider.11\",\"ItemId\":626,\"Position\":{\"x\":-1772.03,\"y\":83.56678,\"z\":1171.02441},\"Rotation\":{\"x\":347.06366,\"y\":258.640076,\"z\":4.550671}},{\"ObjectNameId\":\"World.HangGlider.01\",\"ItemId\":626,\"Position\":{\"x\":-504.4314,\"y\":322.9,\"z\":-307.391937},\"Rotation\":{\"x\":347.33783,\"y\":304.745667,\"z\":6.05460072},\"State\":1},{\"ObjectNameId\":\"World.HangGlider.06\",\"ItemId\":626,\"Position\":{\"x\":1083.82,\"y\":276.317383,\"z\":-108.445892},\"Rotation\":{\"x\":344.984741,\"y\":55.88374,\"z\":1.21760261}},{\"ObjectNameId\":\"World.HangGlider.10\",\"ItemId\":626,\"Position\":{\"x\":789.7307,\"y\":400.973053,\"z\":273.9027},\"Rotation\":{\"x\":347.482727,\"y\":134.715927,\"z\":6.64512062}},{\"ObjectNameId\":\"World.HangGlider.09\",\"ItemId\":626,\"Position\":{\"x\":1297.53906,\"y\":193.973,\"z\":-30.139},\"Rotation\":{\"x\":344.984741,\"y\":92.78199,\"z\":1.217601}},{\"ObjectNameId\":\"World.KnightV.06\",\"ItemId\":630,\"Position\":{\"x\":1106.58667,\"y\":87.5037155,\"z\":1622.528},\"Rotation\":{\"x\":353.512939,\"y\":186.727982,\"z\":59.38967}},{\"ObjectNameId\":\"World.KnightV.07\",\"ItemId\":630,\"Position\":{\"x\":1454.986,\"y\":192.25,\"z\":-417.372},\"Rotation\":{\"x\":355.17334,\"y\":306.921173,\"z\":323.681152}},{\"ObjectNameId\":\"\",\"ItemId\":626,\"Position\":{\"x\":808.3687,\"y\":227.743942,\"z\":982.7315},\"Rotation\":{\"x\":336.5333,\"y\":149.73378,\"z\":-0.00268429681},\"Unnamed\":true},{\"ObjectNameId\":\"\",\"ItemId\":626,\"Position\":{\"x\":799.067139,\"y\":227.744583,\"z\":975.5742},\"Rotation\":{\"x\":336.530243,\"y\":119.888756,\"z\":-0.000218732443},\"Unnamed\":true},{\"ObjectNameId\":\"World.KnightV.11\",\"ItemId\":630,\"Position\":{\"x\":-734.531,\"y\":134.001541,\"z\":28.555},\"Rotation\":{\"x\":359.134064,\"y\":275.3971,\"z\":308.603241}},{\"ObjectNameId\":\"\",\"ItemId\":630,\"Position\":{\"x\":-962.7085,\"y\":90.2664261,\"z\":854.2894},\"Rotation\":{\"x\":59.47909,\"y\":342.049927,\"z\":90.09661},\"Unnamed\":true},{\"ObjectNameId\":\"\",\"ItemId\":630,\"Position\":{\"x\":-961.857056,\"y\":90.27529,\"z\":855.5413},\"Rotation\":{\"x\":90.0,\"y\":47.8625031},\"Unnamed\":true},{\"ObjectNameId\":\"\",\"ItemId\":630,\"Position\":{\"x\":-964.038147,\"y\":90.29958,\"z\":856.18},\"Rotation\":{\"x\":289.935547,\"y\":303.950378,\"z\":212.422028},\"Unnamed\":true}]}"}}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,4 @@
|
||||
"steam_autocloud.vdf"
|
||||
{
|
||||
"accountid" "1154514810"
|
||||
}
|
||||
Reference in New Issue
Block a user