SnowRunner

Table of Contents

1 Kort om hur jag gått tillväga

Jag checkade in mina filer i en versionshanterare (git), och observerade påföljande ändringar. Spelarens kampanjer sparas på plats enligt nedan.

"%USERPROFILE%\Documents\My Games\SnowRunner\base\storage\<32 hex-tecken profil>\"

1.1 Trasiga JSON-filer

De JSON-filer som jag kollat på har avslutats med en extra 00h. Jag gissar att JSON skrivs först till minnet i NULL-terminerade strängar och sedan råkar dom även få med terminatorn när dom skriver ut på disk.

Jag har inspekterat i Firefox och då tagit bort den avslutande nollan för att kunna läsa filerna. När jag ändrat i filerna har jag givetvis lämnat nollan intakt.

2 Om moln-synk mot "Epic Games"

När spelet startas görs en synkronisering mot molnet. Om lokala ändringar gjorts får man välja att behålla antingen den lokala klumpen eller klumpen i molnet. Välj den lokala klumpen.

Utöver att ändra i filerna så har jag provat att rulla tillbaka det som hänt under en session där jag, för försökets skull, sålde en av bilarna. Det går bara bra. En risk med att rulla tillbaka är förstås att formatet ändrats mellan de punkter man går mellan. Formatet verkar anges som "cfg_version". Använder de den egenskapen och är det struktur eller innehåll eller både som versioneras? Värdet är fortfarande 1, ett halvår av uppdateringar efter att spelet släpptes.

3 CompleteSave.dat (JSON - SslType: SaveObject)

I detta sparas merparten av objekten i en spelares kampanj. Jag har skrapat lite på ytan och det finns några egenskaper här som kan vara intressanta peta på, när man spelar Co-Op sporadiskt. Det är såklart lite vanskligt att ändra i filen eftersom interna beroenden är oklara, exempelvis finns ett uppenbart beroende mellan "trucksInWareHouse" och "ownedTrucks".

Traversera hit:
CompleteSave -> SslValue -> persistentProfileData

3.1 Egenskap: "money" (heltal)

När man på ett eller annat sätt tillägnar sig en bil tillfaller den värden för Co-Op'et. Övriga som är med får ibland rätt att köpa bilen och ibland händer inget alls. Får man köpa bilen så är ju lite extra pengar praktiskt. Det kan också vara skönt att som gäst i någons Co-Op kunna köpa släpvagnar, utan att behöva bry sig om att sälja av dom innan man lämnar sessionen. Gör man inte det så försvinner släpen, helt enkelt.

3.2 Egenskap: "unlockedItemNames" (namn->boolean)

De bilar, släp och tillbehör som spelaren låst upp. Den här egenskapen identifierar jag som den vettigaste att peta på, för att göra Co-Op'et mer balanserat. Nycklarna är namn på saker och värdet är alltid boolesk falsk. Jag har provat att sätta boolesk sann istället, utan någon märkbar effekt. För att lägga till saker i tabellen måste man finna rätt namn på annan plats i filen, eller gissa rätt.

3.3 Egenskap: "addons" (namn->heltal)

De räknare som man ser i "Customize"-menyn. Innehåller en större mängd nycklar än "unlockedItemNames" men är såvitt jag förstår ändå inte en komplett lista över tillgängliga "addons". Jag tror dock att det är enklast att börja här, om man vill förstå schemat för namnen.

4 CommonSslSave.dat (JSON - SslType: CommonSaveObject)

Skulle kanske kunna vara gemensam för spelarens alla kampanjer. Det som talar för är främst att den är separat från CompleteSave.dat. Det som talar mot är att jag gissar att spelarens kampajer ligger åtskiljda i separata kataloger. Jag har inte provat att göra ändringar i den här filen.

Traversera hit:
CommonSslSave -> SslValue

4.1 Egenskap: achievementStates (nestade tabeller)

I varje post spåras spelarens utveckling mot att uppnå det aktuella målet. Jag gissar att detta är ett komplett register över existerande "achievements".

Date: 2020-10-09

Author: Gunnar Lingegård

Validate