日本語 · English
「ワールドダイスター 夢のステラリウム」の保存済みデータを、自分のパソコン上で利用するための非公式ローカルサーバーです。UnknownSekai/server-of-dreams を土台に、進行・育成・報酬・カスタマイズなどの機能を補っています。元の実装に深く感謝します。
まずお読みください:これは公式サービスの復旧や、アプリを配布するものではありません。アカウントZIPだけでは起動できません。 対応版アプリ、マスターデータ、必要な楽曲・画像などのデータを別途用意する必要があります。このリポジトリにアプリやゲーム素材、他の方のアカウントは含まれません。
- 3.0.0には未対応です。 2.31.3を使用してください。導入・互換性の詳細は旧版への戻し方を参照してください。動作している旧バージョンのアプリは削除・更新しないでください。
- 開発環境では、ホーム、ソロプレイ、結果の再起動後の保存、複数の育成・進行機能を実機で確認しています。配布用セットアップ全体の実機確認とは区別してください。
- 公開マルチユーザーサーバーではなく、個人・家庭内LAN向けのプレビューです。1環境で公式アカウント1件を復元でき、元の初期セーブも保持します。Windows手順は用意していますが、実機未検証です。
- 対応版のゲームが入った端末。「新規アカウント」は「新しくダウンロードした3.0.0で遊べる」という意味ではありません。
- 同じWi-FiにつながるMacまたはWindows PC。通常のプレイにUSB接続は不要です。旧版への変更手順では使用します。
- uv、Git、起動済みの Docker Desktop(PostgreSQL用)。既存のPostgreSQLを使う方は詳細手順へ。
- 端末側の WireGuard。
- ゲームデータ用に約45 GBの空き容量。下記の手順で、公式CDNの配信が続く間は取得できます。取得済みフォルダーがある場合はDATA.mdを参照してください。
- 任意:保存済みのアカウントZIP、または公式の連携ID・連携パスワード。公式の認証・アカウント取得APIが応答する間は、保存ツールを使わずに自動復元を試せます。
ZIPをダウンロードして展開し、ターミナル/PowerShellでそのフォルダーを開きます。以降のコマンドはすべてそのフォルダーで実行します。初回は依存パッケージと指定コミットの上流ソースをダウンロードするため、インターネット接続が必要です。
対応版は 2.31.3(ビルド2.31.3.425) です。誤って3.0.0に更新した場合は、先にMac・iOS向けの旧版への戻し方をご覧ください。確認済みの上書き手順と制限を記載しています。既に動いている旧版はそのまま保管してください。旧版への変更にはUSBが必要ですが、通常のプレイには不要です。
Docker Desktopを起動し、PCをスリープさせずに実行してください。
uv run --locked python server.py setup必要なソフトを確認し、基準版iOSデータの取得、サーバーの準備、必要に応じたPostgreSQLの起動、
サーバー起動まで順に行います。中断後は原因を解消して同じコマンドを再実行できます。
検証済みの取得ファイルは再利用し、設定済みのアカウントを作り直すことはありません。
設定済み環境では取得・準備を省略するため、素材不足には下記の repair-data を使ってください。
現在、30件の既知の取得不可ファイルがあります。
assets/Notations/901/・902/・903/・904/・10172/ 配下の通常譜面・設定ファイルがHTTP 404になります。
901〜904の別譜面と、公開済みの楽曲ID 172の譜面は取得対象に含まれているため、
この30件の不足だけで該当楽曲がすべて欠けているという意味ではありません。
この30件でセットアップが止まった場合は、data/download-report.jsonl を確認してから、次のコマンドで再実行してください。
uv run --locked python server.py setup --allow-missing検証済みの取得ファイルは再利用します。--data-dir を指定していた場合は、再実行時にも同じ指定を付けてください。
このフラグは30件だけでなくすべての取得失敗を許容するため、それ以外の失敗がある場合は原因を確認してから進んでください。
取得できないファイルを復元するものではなく、ほかの素材不足によって楽曲や画面が動かない場合があります。
アプリ本体の取得や3.0.0への対応は含みません。
取得済みのゲームデータがある場合:
uv run --locked python server.py setup --data-dir "/path/to/game-data" --skip-downloadWindowsのパス例は "C:\Users\You\Documents\game-data" です。
既存PostgreSQLの利用・個別コマンドも引き続き利用できます。
セットアップページがブラウザーで開きます。開かなければ private/setup.html を開いてください。
- 端末のWi-Fi設定で HTTPプロキシをオフにし、保存ツール用などの他のWireGuardトンネルをオフにします。
- WireGuardの「トンネルを追加」→「QRコードから作成」で、ページのQRを読み取り、有効にします。QRには秘密鍵が入っているので公開しないでください。
- 端末のSafariでページに表示される証明書URLを開きます。
- 「設定 → 一般 → VPNとデバイス管理」からプロファイルをインストールします。
- 設定ページの証明書名・フィンガープリントを確認し、「一般 → 情報 → 証明書信頼設定」で完全な信頼を有効にします。同じ「mitmproxy」という名前でも別の証明書の場合があります。以前の証明書の再利用は証明書の確認と引き継ぎを参照してください。インストールだけでは不十分です。
最初は通常のログインを試してください。アカウントZIPや手動インポートは不要です。 接続した後、ゲームを完全に終了して開き直し、タイトル画面から進むと、端末に残っている公式のログイン情報を使って アカウントの復元を試みます。保存に成功した後は、ローカルサーバーのセーブを読み込みます。
端末に有効な公式ログイン情報が残っていることと、公式のアカウント取得APIが応答することが必要です。 元のアカウントが表示されない場合に、下記の手動復元を試してください。 ログイン情報のない新規クライアントは初期アカウントで始まるため、以前の公式アカウントを自動で特定することはできません。
すべてのローカルアカウントに、1回限りの 歌劇目録10,000個 を用意しています。 プレゼントボックスの 楽曲解放サポート から受け取ってください。楽曲・譜面の解放条件は残ります。
復元後は、登録済みのログイン情報でローカルのセーブを利用できます。公式アカウントをまだ復元していない環境で公式に接続できない場合は、初期セーブが選ばれることがあります。その場合は下記の手動復元を試し、セーブの削除やセットアップのやり直しはしないでください。復元の詳細とバックアップも参照してください。
ホーム → ソロプレイ → リザルト → アプリ再起動の順で、進行が保存されるか確認してください。
Docker Desktopを開き、同じサーバーフォルダーの Start-Mac.command または Start-Windows.cmd をダブルクリックします。ターミナルからは次の1行でも起動できます。
uv run --locked python server.py start既存環境を再利用し、必要なら対応するDocker DBを起動して、現在のLAN IPを検出します。 指定したサーバー・トンネル・証明書用ポートは次回も引き継ぎます。ゲームデータの取得は行いません。 準備不足なら対処が必要な箇所を表示します。IPが変わった場合は「困ったとき」に従ってWireGuardの接続先を更新してください。
プレイ中はPCをスリープさせず、ターミナルを開いたままにします。
終了時はWireGuardをオフにして Control+C。DBも止める場合は docker compose stop を実行します。
Macでダブルクリック起動が拒否される場合は、上記のターミナルコマンドを使ってください。
自動復元で元のアカウントが表示されなかった場合のみ、タイトルの メニュー → データ連携 → 連携パスワード入力 から、公式の連携ID・連携パスワードを入力し、表示名を確認してください。この環境の元の初期セーブやZIPから取り込んだセーブを選ぶ場合は、private/linking-credentials.txt のローカル連携情報を使います。Appleでのサインインによる復元には未対応です。連携操作は、接続先端末で選択しているアカウントを変更します。
ゲーム内のデータ連携で復元できない場合や、取り込み前にバックアップを保存したい場合は、ブラウザーの復元ページを使います。
サーバーを起動した状態で、サーバーを動かしているパソコンから
アカウント復元 を開いてください。
セットアップページにもリンクがあります。ポートを変更した場合は、その番号を使用します。
公式の連携ID・連携パスワードを入力すると、バックアップZIPを取得できます。
Apple IDやローカルサーバーの連携情報ではありません。
private/recovered-exports にもコピーを保存します。取得だけではセーブは変わりません。
ZIPを保存した後、必要であれば15分以内に「ローカルに取り込む」を選んでください。 元の初期セーブは残り、同じ公式アカウントが既にある場合は進行を上書きしません。 その後、ゲームの「データ連携」で公式の連携情報を入力し、復元したローカルアカウントを選択します。 通常のログインが初期セーブに紐付いていても、このページから公式への再取得を試せます。 失敗時に初期セーブへ切り替えることはありません。初回取得は公式APIの稼働状況に依存します。
保存済みのZIPがあり、公式から取得できない場合は ZIPからの復元手順 を参照してください。 このコマンドは空の環境専用です。すでにアカウントを作成したサーバーとは別の環境を用意し、動作中のセーブを削除して取り込まないでください。
| 項目 | 現在の状況 |
|---|---|
| ソロプレイ、結果保存 | 対応。確認範囲はCHANGELOGを参照 |
| 楽曲購入、育成、報酬、進行、衣装など | 30の機能グループを追加・修正。個別の確認範囲はCHANGELOG |
| Anthology・公演の終了日時 | 保存用マスターの対象終了日時を延長。原本は保持 |
| スコア・レッスン・制限回数 | 一部は近似・保存用の寛容な設定。公式と完全一致ではありません |
| 新規アカウント | 自動作成・登録名の保存に対応。冒頭からの一連の操作は実機確認待ち |
| マルチプレイ・サークル・シアターリーグ | 未対応/未完成。ログ取得済みを実装済みとは扱いません |
| 全解放・完全な無制限モード | 今回のリリースには含まれません |
| 3.0.0・新規アプリインストール | 2.31.3を使用してください。互換性の詳細は旧版への戻し方を参照 |
- スリープ・Wi-Fi再接続後につながらない:PCのLAN IPアドレスが変わっている可能性があります。下記の復旧手順を確認してください。
- ポート競合:既定はバックエンドTCP 8125(ループバックのみ)、WireGuard UDP 51822、証明書TCP 8766、PostgreSQL TCP 55433(ループバックのみ)。
uv run --locked python server.py start --port 8126 --wg-port 51823 --cert-port 8767で変更できます。DBは初期化前に.envとvendor/server-of-dreams/config.ymlの両方を変更します。 - 証明書/トンネルが使えない:同じLAN、ゲストWi-Fiの端末間隔離、PCのファイアウォール、完全な信頼を確認。必要な通信のみ家庭内ネットワークで許可してください。インターネットへのポート公開は不要です。
- 画像・楽曲が出ない/404:
uv run --locked python server.py doctorとlogs/backend.logを確認。ゲーム素材が不足している可能性があります。全ファイル数が多くても完全性の保証にはなりません。アプリのキャッシュは消さないでください。 - 3.0.0で連携後もサービス終了のお知らせが表示される:旧版への戻し方を参照し、対応版のクライアントを使用してください。
- DB接続失敗:Docker Desktopの起動と
docker compose psを確認。既存ボリュームのパスワードは.envの変更だけでは変わりません。安易にボリュームを削除しないでください。
バックアップ・データ形式・既存PostgreSQLも参照してください。不具合報告は日本語・英語のどちらでも構いません。OS・アプリ版・止まった手順と、秘密情報を除いたエラーを記載してください。アカウントZIP、privateフォルダー、QR、連携情報は公開しないでください。
PCが有線LAN、スマートフォンがWi-Fiでも、ルーターが端末間の通信を許可していれば利用できます。ipconfig で接続中のEthernetアダプターのIPv4アドレスを確認し、セットアップに表示された証明書用ポート(既定はTCP 8766)を使ってください。
-
サーバーを起動したまま、Local server tunnel ready の表示を確認します。スマートフォン側の WireGuardを一時的にオフにし、Safariで
http://PCのIPアドレス:8766/cert.cerを開きます。LAN経由の証明書ダウンロードにはWireGuardは不要です。 -
PCでは開けるのにスマートフォンでは止まる場合、Windowsの 設定 → ネットワークとインターネット → イーサネット → ネットワークプロファイルの種類 を確認してください。信頼できる自宅のネットワークなら プライベート を選択します。「パブリック」のままでは、プライベート用のファイアウォール規則は適用されません。公共・共有ネットワークを、この設定のためだけに信頼済みに変更しないでください。
-
必要に応じて PowerShellを管理者として実行し、以下の規則を追加します。ポートを変更している場合は、その番号に置き換えてください。
New-NetFirewallRule -DisplayName "Yumesute certificate" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8766 -Profile Private -RemoteAddress LocalSubnet New-NetFirewallRule -DisplayName "Yumesute tunnel" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 51822 -Profile Private -RemoteAddress LocalSubnet
追加済みなら、自宅のネットワークをプライベートに変更するだけで規則が適用されます。重複して追加する必要はありません。ファイアウォール自体は無効にしないでください。ルーターのポート開放も不要です。
-
証明書のダウンロードを再試行します。改善しない場合は、ゲストWi-Fi・端末間隔離・別のVPNを確認してください。証明書のインストールと信頼設定が済んだら、ゲーム用トンネルをオンに戻します。WireGuardがオンでも接続成功とは限らないため、直近のハンドシェイクも確認してください。
接続先サーバーと一致する証明書を信頼することで、ガチャ画面の読み込み停止が解消した事例があります。ただし、すべてのガチャ停止が同じ原因とは限りません。
- 現在起動しているサーバーのセットアップページから証明書をダウンロードし、インストールしてください。別のPCや環境では、どちらも「mitmproxy」という名前でも証明書が異なる場合があります。
- セットアップに表示された証明書と一致することを確認し、iPhone/iPadの 設定 → 一般 → 情報 → 証明書信頼設定 で対象の証明書の 完全な信頼 を有効にしてください。プロファイルのインストールだけでは不十分です。
- ゲームを完全に終了して起動し直してください。改善しない場合は「ガチャ画面を開くとき」「抽選中」「結果から戻るとき」のどこで止まるかと、秘密情報を除いたターミナルのTLSエラーを報告してください。証明書の秘密鍵やWireGuardのQRコードは共有しないでください。
プレイ中はPCを起動したままにしてください。WireGuardが「オン」でも、サーバーに接続できているとは限りません。 復帰後はPCの現在のLAN IPv4アドレスを確認します。MACアドレスが同じでも、DHCPによってIPが変わることがあります。
-
Macでは接続中のネットワークの システム設定 → Wi-Fi → 詳細 → TCP/IP を確認します。 Windowsでは
ipconfigを実行し、接続中のWi-Fi/EthernetアダプターのIPv4を確認してください。 VPNアダプターやデフォルトゲートウェイのアドレスではありません。 -
古いサーバーを Control+C で停止し、PostgreSQLが起動していることを確認して、新しいIPで再起動します。 次のIPは例なので、自分のPCのアドレスに置き換えてください。
uv run --locked python server.py start --host 192.168.1.22
使用中の独自設定(
--port、--wg-port、--cert-port、--ca-dir)があれば引き続き指定します。 -
端末のWireGuardで既存トンネルを編集し、ピアの Endpoint(エンドポイント) のIP部分だけを変更します。 UDPポート番号はそのままにしてください。標準設定なら、例として
192.168.1.21:51822→192.168.1.22:51822です。鍵やInterfaceのアドレスは変更しません。 更新されたセットアップページのQRでプロファイルを入れ替える方法でも構いませんが、重複したトンネルは有効にしないでください。 -
トンネルをオフ→オンにし、ゲームを完全に終了して開き直します。 PCのIPが変わっていない場合は、設定を変える前にサーバーの再起動とトンネルの切り替えを試してください。
IP変更だけなら、証明書の再インストール・アカウントの再取り込み・ゲームデータの削除は不要です。 改善しない場合は、同じLANに接続しているか、サーバーの起動エラーがないか、設定したUDPポートを ファイアウォールが許可しているか確認してください。プレイ中はPCのスリープを避けてください。
IPとMACアドレスの違い: Endpointに指定するのはPCのIP(例:192.168.1.22)です。
MACアドレスはローカルネットワーク上で機器の通信インターフェースを識別するための値です。
最近のmacOSではWi-Fiの詳細から「プライベートWi-Fiアドレス」を「オフ」「固定」「ローテーション」から選べます。
「固定」はそのネットワーク用のプライベートアドレスを維持し、「ローテーション」は定期的に変更します。
Appleの説明も参照してください。
自分で管理している家庭内ルーターでは、サーバーPCの DHCP予約(IPアドレス予約) を設定すると、 Endpointの変更を減らせます。PCのプライベートWi-Fiアドレスがローテーションしている場合は、その家庭内ネットワークで 「固定」を検討し、実際に表示されているWi-FiのMACアドレスを使って予約します。MACの固定だけではIPは固定されません。 すべてのネットワークでプライベートアドレスを無効にしたり、iPhone/iPadのMACをPCに合わせたりする必要はありません。 MacのWi-Fiアドレス設定を変えた直後は、再接続や予約・Endpointの更新が一度必要になる場合があります。
証明書は通常 private/mitmproxy に保存されます。更新時もこのフォルダーを保管してください。
設定ページに証明書名とSHA-256フィンガープリントを表示します。
「mitmproxy」という同じ名前でも、別のインストールで作られた証明書は異なります。
以前のローカル環境で動作していた証明書を再利用する場合:
uv run --locked python server.py start --ca-dir "/以前の環境への絶対パス/private/mitmproxy"指定した場所は次回以降も使用されます。フォルダーを移動・削除せず、秘密鍵は公開しないでください。
新規作成時の証明書名は Yumesute Local … です。既存の証明書は自動で置き換えません。
設定ページに表示された証明書の「完全な信頼」を有効にし、ゲームを終了して開き直してください。
画面が開かない場合は、ターミナルのTLSエラーと証明書を確認してください。
サーバーをControl+Cで停止してから実行します。
uv run --locked python server.py repair-data対象ファイルを確認・取得し、サーバーに配置済みのコピーも修復します。
アカウント・設定・鍵は変更せず、正常なファイルは再利用します。全体の確認には時間がかかります。
別の場所へ取得した場合は --data-dir "/path/to/game-data" を指定してください。
取得できないファイルは download-report.jsonl で確認します。不足を了承して検証済み分だけを
配置する場合のみ --allow-missing を追加してください。中断後も同じコマンドで再試行できます。
完了後は uv run --locked python server.py start で起動します。アプリのキャッシュは消さないでください。
バナー・ヘルプのみの小さな補完手順もDATA.mdに残しています。
基盤:server-of-dreams、固定コミット 3cfca23267fb0f79d7336732db768e1510f20313。プロトコルの参考:OpenSiriusServer、536004f17e174e2190d247edad2622ca2133b181。2つのサーバーを混ぜたものではありません。
本リポジトリのサーバー拡張はGPL-3.0。保存ツール由来のコードにはMITの著作権表示も保持しています。THIRD_PARTY.mdを参照してください。公式運営・権利者とは無関係の取り組みです。