Description
Changelog
Reviews (0)
VortarisCSV
Modern CSV/DSV data plugin for Godot 4.7+, written in C++ (GDExtension). Fast RFC 4180 parsing, UE-DataTable-style reflection binding, a full editor import pipeline, and a rich convenience API. Easy to start, flexible under the hood.
Features
- Fast, robust parsing — single-pass C++ state machine: quoted fields, escaped quotes, multi-line fields, CRLF/LF/CR, UTF-8 BOM, comment lines, configurable delimiter/quote, strict vs. lenient rows, and line/column error reporting.
- UE-DataTable style binding — bind CSV rows directly to your own row class
(GDScript
extends Resourceor C++ClassDBclass). Column names map to@exportproperties automatically; cell strings are converted to the property's type (int, float, bool, String, enums, Vector2/3/4, Color, Rect2, arrays, JSON dictionaries, and more). - Editor import — drop a
.csv/.tsvinto the project and it is imported as aVCSVDataTableresource (.tres). Configurable per-file options and a three-tier control over the built-in translation importer. - Easy one-liners —
VCSVUtil.load_csv_dict_array("res://data.csv"),VCSVDataTable.from_file(...),table.to_dict_array(),to_json_string(). - Auxiliary toolkit — sorting (numeric-aware), searching (6 match modes),
filtering, distinct values, grid editing, aggregations (
column_stats), batch APIs, cross-table foreign keys and joins, GBK/GB2312 encoding, and JSON/dictionary interop. - Bilingual documentation — every class documented (EN + 简体中文), quickstart and reference guides included.
Installation
- Copy the
addons/vortariscsv/folder into your project. - Open the project in the Godot editor and enable VortarisCSV under Project → Project Settings → Plugins.
- Done — start using the API, or
.csv/.tsvfiles in the project are imported as data tables.
Quickstart
# One-liner: read a CSV as typed dictionaries.
var rows: Array = VCSVUtil.load_csv_dict_array("res://data/monsters.csv")
# Bind rows to a typed class (UE-DataTable style).
var table: VCSVDataTable = VCSVDataTable.from_file(
"res://data/monsters.csv", null, "res://scripts/row_types/monster_row.gd")
var goblin: MonsterRow = table.get_row("goblin")
print(goblin.health, " ", goblin.position)
# Editor-imported resource (after enabling the plugin):
var table: VCSVDataTable = load("res://data/monsters.csv")
Platforms
Prebuilt binaries for Windows, Linux and macOS are included
(windows x86_64 / linuxbsd x86_64 / macos universal), for both debug and
release. Requires a 64-bit platform; Godot 4.7 or newer.
Version
- Current: 0.1.2 (2026-08-11)
- Compatibility: Godot 4.7+ (GDExtension, forward-compatible)
License
MIT — see LICENSE.
Links
- Repository: https://github.com/Vortaris/VortarisCSV
- Documentation: https://github.com/Vortaris/VortarisCSV/blob/main/docs/quickstart.md
Changelog for version v0.3.2
No changelog provided for this version.