Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Accessing a datastore from a module script? [Solved]

Asked by 5 years ago
Edited 5 years ago

So I made a module script for inventories to make it easier for me & I am trying to use datastore in the module script to save & load inventories but when I try to test it it just comes up with the error "DataStore can't be accessed from client". I looked around but I couldn't find anything saying you couldn't access DataStore from a module script but I still don't know why this error comes up, here is the code (without the parts that don't access datastore):

local InventoryMod = {}
    DataStoreService = game:GetService("DataStoreService")
    InventoryStore = DataStoreService:GetDataStore("InventoryDataStore")
    Refresh = game.StarterGui.ScreenGui.Inventory.Refresh
    Inventories = {}

    function InventoryMod.LoadInventory(player)
        Inventories[player.name] = InventoryStore:GetAsync(player.UserId)
        if Inventories[player.name] == nil then
            Inventories[player.name] = InventoryMod.NewInventory(player)
        end
        Refresh:FireClient(player)
    end

    function InventoryMod.SaveInventory(player)
        if Inventories[player.name] ~= nil then
            InventoryStore:SetAsync(player.UserId, Inventories[player.name])
        end
    end

    function InventoryMod.PlayerLeaving(player)
        InventoryMod.SaveInventory(player)
        Inventories[player.name] = nil
    end

    return InventoryMod

BTW Refresh is the remote event that I use to tell the inventory GUI script to refresh & InventoryMod.NewInventory is the function to make a new inventory with some items.

1 answer

Log in to vote
0
Answered by 5 years ago

Never mind I found out that it was giving me the error because I was requiring the module script in a local script so the error was coming from it thinking that I was trying to access datastore in the local script through the module script.

Ad

Answer this question