Roblox DataStore: подробное руководство по использованию DataStore для управления данными игроков

Чтобы использовать службу DataStore в Roblox, которая позволяет сохранять и извлекать данные игроков, вы можете выполнить следующие действия:

  1. Инициализация хранилища данных:

    local DataStoreService = game:GetService("DataStoreService")
    local myDataStore = DataStoreService:GetDataStore("MyDataStore")
  2. Сохранение данных игрока:

    local function saveData(player)
       local key = "PlayerData_" .. player.UserId
       local data = {
           -- Your data here
           gold = 100,
           level = 5,
           -- ...
       }
       myDataStore:SetAsync(key, data)
    end
    game.Players.PlayerAdded:Connect(saveData)
    game.Players.PlayerRemoving:Connect(saveData)
  3. Получение данных об игроке:

    local function loadData(player)
       local key = "PlayerData_" .. player.UserId
       local success, data = pcall(myDataStore.GetAsync, myDataStore, key)
       if success and data then
           -- Use the retrieved data
           print("Gold:", data.gold)
           print("Level:", data.level)
           -- ...
       else
           -- Handle if data retrieval fails
           print("Failed to retrieve data for player:", player.Name)
       end
    end
    game.Players.PlayerAdded:Connect(loadData)
  4. Обновление и сохранение данных игрока:

    local function updateData(player, newData)
       local key = "PlayerData_" .. player.UserId
       local success, data = pcall(myDataStore.GetAsync, myDataStore, key)
       if success and data then
           -- Update the data
           data.gold = newData.gold or data.gold
           data.level = newData.level or data.level
           -- ...
           -- Save the updated data
           myDataStore:SetAsync(key, data)
       end
    end
  5. Удаление данных игрока:

    local function deleteData(player)
       local key = "PlayerData_" .. player.UserId
       myDataStore:RemoveAsync(key)
    end
    game.Players.PlayerRemoving:Connect(deleteData)