Script — Luar

-- 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

-- Log with timestamp function debug_utils.log(message, level) level = level or "INFO" local timestamp = os.date("%Y-%m-%d %H:%M:%S") print(string.format("[%s] [%s] %s", timestamp, level, message)) end script luar

-- 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 tostring(v)) end end end -- Log with timestamp

-- -------------------------------------------- -- 5. DEBUGGING / TIMING -- -------------------------------------------- local debug_utils = {} = min and val &lt

-- Check if string starts with a prefix function string_utils.starts_with(str, prefix) return str:sub(1, #prefix) == prefix end