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 Resource or C++ ClassDB class). Column names map to @export properties 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 / .tsv into the project and it is imported as a VCSVDataTable resource (.tres). Configurable per-file options and a three-tier control over the built-in translation importer.
  • Easy one-linersVCSVUtil.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

  1. Copy the addons/vortariscsv/ folder into your project.
  2. Open the project in the Godot editor and enable VortarisCSV under Project → Project Settings → Plugins.
  3. Done — start using the API, or .csv/.tsv files 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.

Reviews

VortarisCSV has no reviews yet.

Login to write a review.

Consider supporting the creators!

If you enjoyed this asset consider supporting its creator. Follow the link below.