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

Datastorage isnt working properly?

Asked by 5 years ago
Edited 5 years ago

ive got a perfectly fine datastorage set of scripts, but they dont seem to work, ive tried to do everything right, but still isnt working

https://devforum.roblox.com/t/using-google-spreadsheets-as-a-database/12658 (this is what i used)

the module and local script works fine, just seems to be the server script and MAYBE the module script (its in server script service)

the script works that when you gain money, the local script does a fire server and it gets to a few lines in the server script until line 8 and says GetDatabase is not a valid member of module script (EVENTHOUGHITIS), any help?

i tried putting the module script in lighting instead of sss but it doesnt seem to do anything besides not have the server script work, any help?

here's the server script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
saveMoneyEvent = game.ReplicatedStorage.saveMoneyEvent
httpService = game:GetService("HttpService")

local function onSaveMoneyFired(player)
print ("it has arrived!")
money = player:FindFirstChild("cash")
local databaseService = game.ServerScriptService.DatabaseService --- ive considered making the module script into lighting but it doesnt seem to do anything
local globalDatabase = databaseService:GetDatabase("Global") --- heres the error
globalDatabase:PostAsync(player.Name, money.Value)
print(money.Value)
end

saveMoneyEvent.OnServerEvent:Connect(onSaveMoneyFired)


here's the module script

local scriptId = "" ---theres something here, i just removed

-- Touch anything below and you'll upset the script, and that's not a good thing.

local url = "https://script.google.com/macros/s/" .. scriptId .. "/exec"
local httpService = game:GetService'HttpService'
local module = {}

game:WaitForChild'NetworkServer'

function decodeJson(json)
    local jsonTab = {} pcall(function ()
    jsonTab = httpService:JSONDecode(json)
    end) return jsonTab
end

function encodeJson(data)
    local jsonString = data pcall(function ()
    jsonString = httpService:JSONEncode(data)
    end) return jsonString
end

function doGet(sheet, key)
    local json = httpService:GetAsync(url .. "?sheet=" .. sheet .. "&key=" .. key)
    local data = decodeJson(json)
    if data.result == "success" then
        return data.value
    else
        warn("Database error:", data.error)
        return
    end
end

function doPost(sheet, key, data)
    local json = httpService:UrlEncode(encodeJson(data))
    local retJson = httpService:PostAsync(url, "sheet=" .. sheet .. "&key=" .. key .. "&value=" .. json, 2)
    local data = decodeJson(retJson)
    print(retJson)
    if data.result == "success" then
        return true
    else
        warn("Database error:", data.error)
        return false
    end
end

function module:GetDatabase(sheet)
    local database = {}
    function database:PostAsync(key, value)
        return doPost(sheet, key, value)
    end
    function database:GetAsync(key)
        return doGet(sheet, key)
    end
    return database
end

return module
0
your suppose to require the module script first User#23365 30 — 5y
0
using require() User#23365 30 — 5y
0
because the script thinks your indexing a instance inside the module script User#23365 30 — 5y
0
god damn it i used require earlier i removed it to test something StormcloakGuard 30 — 5y
0
ok it works now but its saynig money is a nil value reeeeeeeeeeee this never happens StormcloakGuard 30 — 5y

Answer this question