Skip to main content

Getting Started

QR code generation for Luau and Roblox.

Install

pesde add luau_qrgen/qrgen

Or copy src folder into your project.

Quick Start

local qrgen = require("@packages/qrgen")

local qr = qrgen.encodeText("Hello, World!", qrgen.ecc.medium)

print("Version:", qr.version)
print("Size:", qr.size)
print(qrgen.toString(qr))

Error Correction

LevelRecoveryNotes
ecc.low~7%Max capacity
ecc.medium~15%General use
ecc.quartile~25%Industrial
ecc.high~30%Critical

Roblox Frame

local qr = qrgen.encodeText("https://roblox.com", qrgen.ecc.medium)

local container = qrgen.createContainer(screenGui, UDim2.fromOffset(200, 200))

qrgen.renderToFrame(qr, container, {
darkColor = Color3.fromRGB(0, 0, 0),
lightColor = Color3.fromRGB(255, 255, 255),
border = 4,
})

SVG

local qr = qrgen.encodeText("Hello", qrgen.ecc.medium)

local svg = qrgen.toSvg(qr, {
border = 4,
darkColor = "#000000",
lightColor = "#FFFFFF",
moduleSize = 10,
})

local dataUri = qrgen.svgToDataUri(svg)

Binary

local bytes = {72, 101, 108, 108, 111}
local qr = qrgen.encodeBinary(bytes, qrgen.ecc.medium)

Custom Segments

Mixed content for better efficiency:

local segs = {
qrgen.segment.makeAlphanumeric("INVOICE-"),
qrgen.segment.makeNumeric("123456789"),
}
local qr = qrgen.encodeSegments(segs, qrgen.ecc.medium)

Encoding Modes

Auto-selected based on content:

ModeCharactersBits/Char
Numeric0-93.33
Alphanumeric0-9, A-Z, space, $%*+-./:5.5
ByteAny8