QR Code¶
QR Code generation either with the included QRCodeRect node or use the encoding result of the QRCode class.
Compatibility¶
| Godot | Version | 
|---|---|
| 4.5 | >= 1.2.0 | 
| 4.4 | >= 1.2.0 | 
| 4.3 | 1.1.0 - 1.1.3 | 
| 4.2 | 1.1.0 - 1.1.3 | 
| 4.1 | <= 1.0.0 | 
Screenshot¶

Example¶
Interface¶
QRCodeRect¶
extendsTextureRect
res://addons/qr_code/qr_code_rect.gd
TextureRect like node. The texture is updated by itself. When using byte encoding you can also pass strings for specific ECI values (ISO 8859-1, Shift JIS, UTF-8, UTF-16, US ASCII), the input string will be automatically converted to an byte array.
Properties¶
| Name | Type | Description | 
|---|---|---|
| mode | QRCode.Mode | QR Code mode | 
| error_correction | QRCode.ErrorCorrection | Error correction value. | 
| use_eci | String | Use Extended Channel Interpretation (ECI) | 
| eci_value | String | Extended Channel Interpretation (ECI) Value | 
| data | Variant | Type varies based on the encoding mode. | 
| auto_version | bool | Use automatically the smallest QR Code version. | 
| version | int | QR Code version (size). | 
| auto_mask_pattern | bool | Use automatically the best mask pattern. | 
| mask_pattern | int | QR Code mask pattern. | 
| light_module_color | Color | Color of the light modules. | 
| dark_module_color | Color | Color of the dark modules. | 
| auto_module_px_size | bool | Automatically set the module pixel size based on the size. Do not use expand mode KEEP_SIZE when using it.Turn this off when the QR Code changes or is resized often, as it impacts the performance quite heavily.  |  
| module_px_size | int | Use that many pixel for one module. | 
| quiet_zone_size | int | Use that many modules for the quiet zone. A value of 4 is recommended. | 
QRCode¶
extendsRefCounted
res://addons/qr_code/qr_code.gd
QRCode class to generate QR Codes.
Properties¶
| Name | Type | Description | 
|---|---|---|
| mode | QRCode.Mode | QR Code mode. | 
| error_correction | QRCode.ErrorCorrection | Error correction value. | 
| use_eci | String | Use Extended Channel Interpretation (ECI) | 
| eci_value | String | Extended Channel Interpretation (ECI) Value | 
| auto_version | bool | Use automatically the smallest QR Code version. | 
| version | int | QR Code version (size). | 
| auto_mask_pattern | bool | Use automatically the best mask pattern. | 
| mask_pattern | int | QR Code mask pattern. | 
Methods¶
- int get_module_count() const
 - Return the module count per side.
 - int calc_min_version() const
 - Return the minimal version required to encode the data.
 - Image generate_image(module_px_size: int=1, light_module_color: Color=Color.WHITE, dark_module_color: Color=Color.BLACK)
 - Generate an image. This method can be called repeatedly, as encoding will only happens once and the result is cached.
 - void put_numeric(number: String)
 - Put a numeric text. Invalid characters are removed. Will change the encoding mode to 
Mode.NUMERIC. - void put_alphanumeric(text: String)
 - Put a alphanumeric text. Invalid characters are removed. Will change the encoding mode to 
Mode.ALPHANUMERIC. - void put_byte(data: PackedByteArray)
 - Put a bytes. Will change the encoding mode to 
Mode.BYTE. - void put_kanji(data: String)
 - Put a kanji text. Invalid characters are removed. Will change the encoding mode to 
Mode.KANJI. - PackedByteArray encode()
 - Get the QR Code row by row in one array. To get the row size use 
get_module_count. 
QRCode.Mode¶
res://addons/qr_code/qr_code.gd
Encoding mode enum.
| Name | Value | 
|---|---|
| NUMERIC | 1 | 
| ALPHANUMERIC | 2 | 
| BYTE | 4 | 
| KANJI | 8 | 
QRCode.ErrorCorrection¶
res://addons/qr_code/qr_code.gd
Error correction enum.
| Name | Value | 
|---|---|
| LOW | 1 | 
| MEDIUM | 0 | 
| QUARTILE | 3 | 
| HIGH | 2 | 
QRCode.ECI¶
res://addons/qr_code/qr_code.gd
ECI values. See source code for available values.
ShiftJIS¶
res://addons/qr_code/shift_jis.gd
Shift JIS encoding utility.
Methods¶
- PackedByteArray to_shift_jis_2004_buffer(text: String) static
 - Convert text to Shift JIS 2004 encoded bytes. Returns u16 int array. Unknown characters are skipped.
 - String get_string_from_shift_jis_2004(arr: PackedByteArray) static
 - Get text from Shift JIS 2004 encoded bytes. Requires an u16 int array. Unknown characters are skipped.
 - PackedByteArray to_jis_8_buffer(text: String) static
 - Convert text to JIS 8 encoded bytes. Returns u8 int array. Unknown characters are skipped.
 - String get_string_from_jis_8(arr: PackedByteArray) static
 - Get text from JIS 8 encoded bytes. Requires an u8 int array. Unknown characters are skipped.
 
Changelog¶
1.2.0¶
- Require Godot 4.4
 - Add UIDs for Godot 4.4
 - Update static typing
 
1.1.3¶
- Code improvements
 
1.1.2¶
- Use absolute paths in preloads
 
1.1.1¶
- Code optimizing
 
1.1.0¶
- Require Godot 4.2
 - Add more values to plugin.cfg
 - Add static typing in for loops
 
1.0.0¶
- Renamed 
get_string_from_jis_2004toget_string_from_shift_jis_2004 
0.3.1¶
- Improve inspector properties
 - Improve input handling of byte data based on ECI usage
 
0.3.0¶
- Make ECI value optional
 
0.2.0¶
- Added quiet zone size property