local sensorpath = "sensor_0" local sensor = peripheral.wrap(sensorpath) or error("Unable to wrap sensor.",0) local maxx = 3 local maxz = 3 local maxy = 6 local running = true local update = 0.1 -- seconds local state = true local gateside = "right" local rsinput = "top" local rsoutput = "left" local function getData() local users = sensor.getPlayerNames() local userdata = {} for index,ign in pairs(users) do local user = sensor.getPlayerData(ign) if user then table.insert(userdata,index,user.position) end end return userdata end local function checkUsers() local userdata = getData() for index,pos in ipairs(userdata) do if pos.x <= maxx+1 and pos.x >= -maxx and pos.z <= maxz+1 and pos.z >= -maxz and pos.y <= maxy and pos.y >= 0 then return true end end return false end while running do state = not checkUsers() rs.setOutput(gateside,state) rs.setOutput(rsoutput,rs.getInput(rsinput)) sleep(update) end