Robloxの DataStore は基本的に「キー型データベース」なので、キー+テーブルの設計で十分に扱えます。
🔑 DataStoreの基本
- キー(Key)
文字列で指定。例:"story_123"や"user_456_progress"。 - 値(Value)
保存できるのは「シリアライズ可能なデータ型」=数値、文字列、ブール、テーブル。 - テーブル保存
複雑なデータ(物語のシーンやセリフ)もテーブルとしてまとめて保存可能。
📖 物語保存の設計例
local storyData = {
title = "紙芝居劇 第一幕",
authorId = 12345,
scenes = {
{
background = "Scene1Model",
dialogue = {"こんにちは", "今日はいい天気ですね"}
},
{
background = "Scene2Model",
dialogue = {"さようなら", "また会いましょう"}
}
},
clapCount = 0,
createdAt = os.time()
}
DataStore:SetAsync("story_001", storyData)
- キー:
"story_001" - 値:
storyDataテーブル
⚖️ 設計のポイント
- キー設計
"story_<id>"のように一意なIDを付ける。- 作者別に
"author_<id>_stories"のようなキーを持たせても良い。
- テーブル構造
title,authorId,scenes,clapCountなどをフィールド化。scenesの中にbackgroundとdialogueを持たせると紙芝居的に再生可能。
- 拡張性
- 拍手ランキング用に
clapCountを持たせる。 - 評価やタグを追加する場合はフィールドを増やせば良い。
- 拍手ランキング用に
✅ 結論
RobloxのDataStoreは「キー+テーブル」で設計して問題ありません。むしろ紙芝居劇のような複数シーン・セリフを持つ構造は、テーブル保存が自然です。