この記事では、Godot における res:// と user:// の違いと、用途ごとの使い分けについて整理します。
目次
res:// と user:// の基本的な意味
res:// と user:// は、Godotで使用できる仮想パス表記です。以下に、それぞれの意味についてまとめます。
res:// … プロジェクト内リソース用パス
- プロジェクトのルートフォルダ(
project.godotがある場所)を基準とした仮想パスです。 - ゲーム内の シーン、テクスチャ、スクリプト など「プロジェクト側で用意した資源」を参照する際に使います。
- エディタで実行しているときは読み書き可能ですが、エクスポート後は基本的に読み取り専用になります。
var enemy_scene = preload("res://scenes/Enemy.tscn")user:// … ユーザーが書き込むデータ用パス
- ゲームがユーザー環境で動作しているときに 確実に書き込み可能 なフォルダを指す仮想パスです。
- セーブデータ、設定ファイル、スクリーンショット、ダウンロードされたコンテンツなど、ユーザー固有の永続データに使います。
- エクスポート後でも書き込み可能で、OSごとに以下のパスで保存されます
- Windows :%APPDATA%/Godot/[プロジェクト名]
- macOS : ~/Library/Application Support/Godot/app_userdata/[プロジェクト名]
var save_file_path = "user://save/game1.save"上記の保存先フォルダは、Godotエディタのメニューバー>プロジェクト>ユーザーデータフォルダーを開く から開くことができます。(テスト時に便利なアクセスです)

どう使い分けるべきか
それぞれをどう使い分けるかを簡単にまとめると以下のようになります。
要は、読み取り専用でパッケージに含めるのが res:// で、ビルド後のゲームで読み書きがあるものはuser://に配置します。
| 用途 | 推奨パス | 理由 |
|---|---|---|
| ゲーム内リソースの読み込み | res:// | プロジェクト内の固定資源を一貫して参照できる |
| セーブデータ / プレイヤーデータ | user:// | 常に書き込み可能で、永続保存に向いている |
| スクリーンショット / ダウンロードデータ | user:// | ユーザー側データとして安全に保存できる |
| プロジェクトの一部ファイルを動的に生成 | 基本は user:// | res:// はエクスポート後の環境では書き込めないため |
参考リンク
以下は res:// と user:// の挙動や定義を説明している公式ドキュメントです:
Godot Engine documentation
File paths in Godot projects
This page explains how file paths work inside Godot projects. You will learn how to access paths in your projects using the res:// and user:// notations, and wh...
Godot Engine documentation
File system
Introduction: A file system manages how assets are stored and how they are accessed. A well-designed file system also allows multiple developers to edit the sam...
リンク
リンク
