--- @type {[string]: any} local out = { tileSize = arg[1] } local idx = "" local cnt = 1 for i = 0, #arg - 1, 4 do idx = arg[i + 2] out[idx] = {} for x = tonumber(arg[i + 3]), tonumber(arg[i + 5]), tonumber(out.tileSize) do for y = arg[i + 4], arg[i + 6], out.tileSize do out[idx][idx .. cnt] = { x = x, y = y, w = out.tileSize, h = out.tileSize } end end end print(out) -- command for test: luajit dev_utils/tile_generator.lua 32 grass 0 0 95 95 flower_grass 96 0 189 95