Stardew Valleyのセーブデータを改竄する

要するにセーブデータチート

手軽にやれる範囲だけ。
セーブデータの構造解析について触れている記事ではないので勘違いしないように。

Andoidの場合、/sdcard/StardewValley/キャラ名_数字9桁/キャラ名_数字9桁のファイルを改竄する。
中身はXMLで拡張子がないだけ。

エディタ

好きな方法で。以下の例以外にも自分のお気に入りのXMLエディタなどがあればそちらを使う。
ただし行数が1000を越えるのでそれなりにメモリを食う点に注意が必要。

XMLということでテキストベースではあるが、テキストエディタで開くととても見辛いのでお勧めしない。

  • xmlEditor.NET
  • Mery
    • プラグインのアウトラインを導入したうえで、表示 → 編集モード → XMLを選択すると便利

構造

上記の通りXMLなので、XMLタグによって管理されている。

<hogehoge>値</hogehoge>

となっているので、目的のタグ(hogehoge)を見つけて中身(値)を改竄すればよい。

所持金

SaveGame/player/money

最大値は99,999,999。残念ながら億万長者にはなれないようだ。

納品箱を使って稼いだ金額

SaveGame/player/totalMoneyEarned

最大値は不明。
主に実績とクエスト関連に使われる。

  1. 1,000: 犬 / 猫
  2. 15,000: 新人牧場主(実績)
  3. 25,000: 洞窟コウモリ / キノコ栽培
  4. 50,000: 牛飼い(実績)
  5. 250,000: 一人前の牧場主(実績)
  6. 1,000,000: ミリオネア(実績)
  7. 10,000,000: 生ける伝説(実績)

アイテムを増やす

各アイテムはスタックの可否・コード・アイテム名・カテゴリ枠などが全て正しく入力されていないとエラーが起きるようなので、新規ででっちあげるのは避けるべき。
増やしたい元アイテムを入手してカバンに入れておくか、箱に入れておいてスタック数を変更するか、スタック不可のアイテムの場合はコピーして増やすしかないようだ。

なおこの方法はコピー元のデータが正しいものであれば別のセーブデータから移すことも可能。
ある程度進めたセーブデータからイリジウム製の工具を新規で始めたセーブデータに移すこともできる。
アイデア次第だが、別のセーブデータでバンドル納品用の箱を用意しておいて、箱をそっくりそのまま移すといったことも可能。

所持アイテム

SaveGame/player/items/item

アイテムスロットは拡張する必要があり、所持アイテム数には以下の上限がある。

  • 初期状態: 上から12個目まで
  • カバンA: 上から24個目まで
  • カバンB: 上から36個目まで

セーブデータに該当しそうな部分はあるが、フラグによって管理されていると思うので書き換えない方が良さそうだ。

SaveGame/player/maxItems

箱の中身

場所(マップ)によって異なる。
例として畑に設置した箱の場合と、畑に建てた納屋の中に設置した箱の2つのケースを記載しておく。

後述するアイテムの探し方を、そして実際に探してみれば分かるが、箱に入れる場合は探すのがとても面倒くさいので分かりやすい位置に置くか、可能であれば自分で所持して(カバンの中に入れて)おきたい。

畑に設置した箱の場合
SaveGame/locations/GameLocation [p3:type=Farm]/objects/item/value/Object/DisplayName

の値が「箱」となっているものを探す。
同階層(/Object)にある

./Object/items/item

の中身がアイテムのデータとなっている。

畑に建てた納屋の中に設置した箱の場合
SaveGame/locations/GameLocation [p3:type=Fram]/buildings/Building/indoors [p3:type=Shed]/objects/item/value/Object/DisplayName

の値が「箱」となっているものを探す。
畑に設置した箱と同様に、同階層(/Object)にある

./Object/items/item

の中身がアイテムのデータとなっている。

所持アイテムのスタック数の変更

SaveGame/player/items/item/Stack
SaveGame/player/items/item/stack

2つのタグ内の値を同一にすること。
片方だけ書き換えても反映されない模様。

スタック不可のアイテムの場合は頭文字が小文字のstackタグが無いようなのでそこで判断するか、覚えているならアイテム名で判断する。
なお、スタック不可のアイテムの場合のStackの値は常に1。

所持アイテムの品質を変更

SaveGame/player/items/item/quality

品質に関わりがあるアイテムのみ。

特にバンドル納品に使われるパースニップ、トウモロコシ、メロン、カボチャに使うくらいだろうか。

  1. 0: 無印
  2. 1: シルバー
  3. 2: ゴールド
  4. 3: イリジウム

の全4段階。銅(カッパー)は無い。

経験値

SaveGame/player/experiencePoints/int

上から順に

  1. 農業?(未確認)
  2. 釣り
  3. 採取?(未確認)
  4. 採鉱
  5. 戦闘
  6. 幸運?(未確認)

の順で並んでいる。
手持ちのセーブデータでは6番目の幸運?と思わしき値は3年目にしても0のままなので、ここは変更しない方が良さそうだ。

レベルアップさせるには経験値を以下の値-1にして、経験値を稼いでから寝るとレベルアップする。

  • 農業: 畑から野菜・果物・花を収穫
  • 釣り: 魚を釣る or 釣り箱から魚・貝・がらくたを獲得
  • 採取: 野花を拾う、木を伐採して木材を得る、動物の世話をする(獲得系)
  • 採鉱: 岩を割る
  • 戦闘: 敵を倒す

このゲームではレベルアップ時にクラフトレシピが解放されるので、経験値0から経験値15000に書き換えてもLv.1-9間のクラフトレシピは開放されない。注意されたし。

下記の表では便宜上カンマで桁区切りをしているが、実際の値にはカンマは不要。

Lv. exp -1
1 100 99
2 380 379
3 770 769
4 1,300 1,299
5 2,150 2,149
6 3,300 3,299
7 4,800 4,799
8 6,900 6,899
9 10,000 9,999
10 15,000 14,999

住人との好感度

イベントフラグの管理が別なので、ここでは好感度のみ変更する。
細かい数値まで調査していないが、ハート8が2100ということだけ覚えておけば良さそう。

なお、会うことが出来る状態になっているNPCしかリストアップされない。
つまり初期状態では魔術師やサンディの好感度は弄れないということになる。

SaveGame/player/friendshipData/item/key/string

の中身が住人の名前(英語版準拠)

SaveGame/player/friendshipData/item/value/Friendship/Points

の中身が好感度ポイント。