📚

【Roblox開発】データストアを扱う方法

2024/07/02に公開

データストアとは

  • データを永続的に保存するサービス
  • スコアランキングや持ち物、プレイヤー情報を保存するときに使える

公式リンク

https://create.roblox.com/docs/ja-jp/reference/engine/classes/GlobalDataStore

はじめに

ServerScriptService に「DataStoreController」という名前にしたモジュールscriptを配置。

データストアに値を保存する

local dataStore = DataStoreService:GetDataStore("Sample")

local DataStoreController = {}

function DataStoreController.GetData(player)
    local success, data = pcall(function()
		return dataStore:GetAsync(player.UserId)
	end)
	
	if success then
		print(data)
		return data
	end
end

データストアからplayerをキーにして値を取得する

function DataStoreController.SetData(player, data)
    local success, data = pcall(function()
		return dataStore:SetAsync(player.UserId, data)
	end)

	if success then
		print("success")
	end
end

全体コード

local dataStore = DataStoreService:GetDataStore("Sample")

local DataStoreController = {}

function DataStoreController.GetData(player)
    local success, data = pcall(function()
		return dataStore:GetAsync(player.UserId)
	end)
	
	if success then
		print(data)
		return data
	end
end

function DataStoreController.SetData(player, data)
    local success, data = pcall(function()
		return dataStore:SetAsync(player.UserId, data)
	end)

	if success then
		print("success")
	end
end

return DataStoreController --これを忘れずに

このコードを実行する

ServerScriptServiceにSampleScriptという名のScriptを配置する。

local ServerScriptService = game:GetService("ServerScriptService")
local DataStoreController = require(ServerScriptService.DataStoreController)

Players.PlayerAdded:Connect(function(player)

    DataStoreController.SetData(player, "Test")

    local data = DataStoreController.GetData(player)

    print("data is " .. data) --Output is "Test"
end)
Landelテックブログ

Discussion