Script Luar May 2026

-- Check if value is a number within range function validate.is_in_range(val, min, max) return type(val) == "number" and val >= min and val <= max end

-- Split string by delimiter (returns table) function string_utils.split(str, delimiter) local result = {} local pattern = string.format("([^%s]+)", delimiter) for match in str:gmatch(pattern) do table.insert(result, match) end return result end script luar

-- Trim whitespace from both ends function string_utils.trim(str) return str:match("^%s*(.-)%s*$") end -- Check if value is a number within range function validate

-- Print table recursively (for debugging) function table_utils.print_table(tbl, indent) indent = indent or 0 for k, v in pairs(tbl) do local formatting = string.rep(" ", indent) .. tostring(k) .. ": " if type(v) == "table" then print(formatting) table_utils.print_table(v, indent + 1) else print(formatting .. tostring(v)) end end end tostring(v)) end end end -- Read entire file

-- Read entire file as string (returns nil + error on failure) function file_utils.read_file(filename) local f, err = io.open(filename, "r") if not f then return nil, err end local content = f:read("*all") f:close() return content end

-- Merge table t2 into t1 (overwrites t1 keys) function table_utils.merge(t1, t2) for k, v in pairs(t2) do t1[k] = v end return t1 end