So, the first script in question isn't lua, but is javascript.
var SCRIPT_PROP = PropertiesService.getScriptProperties(); function doGet(e){ try { var key = e.parameter["key"] var sheetName = e.parameter["sheet"] var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key")); var sheet = doc.getSheetByName(e.parameter["sheet"]); var data = sheet.getDataRange().getValues(); var value for (var i = 1; i < data.length; i++) { if (data[i][0] == key) { value = data[i][1]; } } if (value){ return ContentService .createTextOutput(JSON.stringify({"result":"success", "value": value})) .setMimeType(ContentService.MimeType.JSON); } else { return ContentService .createTextOutput(JSON.stringify({"result":"error", "error": "Key not found"})) .setMimeType(ContentService.MimeType.JSON); } } catch(e){ return ContentService .createTextOutput(JSON.stringify({"result":"error", "error": "Database does not exist"})) .setMimeType(ContentService.MimeType.JSON); } } function doPost(e){ var sheetNom = e.parameter["sheet"]; var lock = LockService.getPublicLock(); lock.waitLock(30000); try { var key = e.parameter["key"] var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key")); var sheet = doc.getSheetByName(e.parameter["sheet"]); var data = sheet.getDataRange().getValues(); var headRow = e.parameter.header_row || 1; var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]; var nextRow = sheet.getLastRow()+1; var row = []; for (var i = 1; i < data.length; i++) { if (data[i][0] == e.parameter["key"]) { nextRow = i + 1; } } for (i in headers){ row.push(e.parameter[headers[i]]); } sheet.getRange(nextRow, 1, 1, row.length).setValues([row]); return ContentService .createTextOutput(JSON.stringify({"result":"success", "row": nextRow})) .setMimeType(ContentService.MimeType.JSON); } catch(e){ return ContentService .createTextOutput(JSON.stringify({"result":"error", "error": e, "test": "Test", "sheet": sheetNom})) .setMimeType(ContentService.MimeType.JSON); } finally { lock.releaseLock(); } } function setup() { var doc = SpreadsheetApp.getActiveSpreadsheet(); SCRIPT_PROP.setProperty("key", doc.getId()); }
Yes, I know I know, this is a site strictly on lua but the javascript is aiding the lua script to run, which is as followed.
local scriptId = "AKfycbwQhOD-lpTR7l5mv85gReaGVVBe_3FjOxoFIAxveNzN4BAxmak" local url = "https://script.google.com/macros/s/" .. scriptId .. "/exec" local httpService = game:GetService'HttpService' local module = {} game:WaitForChild('HttpService') 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 .. "&Player Name=" .. 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 .. "&Player Name=" .. key .. "&EXP=" .. 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
How would I add or remove arguments from this script? I want it to be able to print the value of something in google sheets in the roblox game(the java script is in the google sheets)