{"id":49908032,"url":"https://github.com/tobitege/du-tools","last_synced_at":"2026-05-16T11:13:06.280Z","repository":{"id":349478563,"uuid":"1202221438","full_name":"tobitege/du-tools","owner":"tobitege","description":"Dual Universe tools and workflows: server mods, MCP bridge automation, live Lua authoring, RenderScript emulator, and data/export utilities.","archived":false,"fork":false,"pushed_at":"2026-04-06T05:00:46.000Z","size":4855,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-06T07:13:23.652Z","etag":null,"topics":["dualuniverse","lua","mcp","renderscript"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tobitege.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-05T18:57:58.000Z","updated_at":"2026-04-06T05:00:54.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tobitege/du-tools","commit_stats":null,"previous_names":["tobitege/du-tools"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/tobitege/du-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobitege%2Fdu-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobitege%2Fdu-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobitege%2Fdu-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobitege%2Fdu-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tobitege","download_url":"https://codeload.github.com/tobitege/du-tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobitege%2Fdu-tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33100392,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dualuniverse","lua","mcp","renderscript"],"created_at":"2026-05-16T11:13:05.729Z","updated_at":"2026-05-16T11:13:06.265Z","avatar_url":"https://github.com/tobitege.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# du-tools\n\nMixed workspace for Dual Universe tooling: myDU server mods, live MCP-assisted coding workflows, in-game Lua authoring and code generation, and local browser-based RenderScript development.\n\nSome folders target the [myDU](https://github.com/dual-universe/mydu-server-mods) local server installation directly. Others are fully local tools, browser apps, operator manuals, or tracked live-work artifacts.\n\nIt is highly recommended to use this repo in combination with an AI assistant to either help explain tools or install anything.\nMost sub-folders have their own respective README.md for further details.\nSome utility scripts may need paths adapted to either your own myDuServer installation.\n\n## License\n\nThis repository is licensed under the GNU General Public License v3.0.\nSee [LICENSE](LICENSE) for the full text.\n\n## Projects\n\n### Live automation and in-game authoring\n\n| Tool | Description |\n| ---- | ----------- |\n| [DuMcpBridge](DuMcpBridge/) | Local MCP server that turns the existing ModUiToolbox + Lua probe pipeline into a transport layer for live Dual Universe automation. Exposes tools for reading and writing open Lua or screen editors, chat interaction, native editor open steps, and related live UI actions. |\n| [live_lua_coding](live_lua_coding/) | Operator manual and tracked artifact area for live bridge-driven Lua work. Contains the shared safety rules, editor targeting workflow, and tracked live snapshots for bridge-driven authoring. |\n| [LuaPainter](LuaPainter/) | In-game layout painter for Dual Universe. Provides a visual editor for painting screen layouts, saving them on a programming board, and exporting generated Lua / RenderScript-style code for linked screens and signs. |\n\nNote: parts of this live workflow can rely on separately installed helper tools such as `ScreenShotNet` and `AutoHotkey v2`.\n\nIt also covers the in-game Lua and screen editor enhancement layer delivered through `ModUiToolbox`: themed editor chrome for both editors, a 35-theme catalog, caret and viewport persistence, line highlighting, IDE sync, and the runtime-module/plugin system that makes it practical to add new in-game modules, including AI-assisted ones, without hard-wiring every feature into the probe core.\n\n### Server mods (DLL)\n\n| Tool | Description |\n| ---- | ----------- |\n| [ModFlightLogger](ModFlightLogger/) | Embedded server mod that records construct telemetry from Lua into NDJSON files. Computes derived metrics (acceleration, g-load, jerk, vertical speed, brake force estimates) and sends periodic chat summaries. Triggered via `system.modAction` from in-game Lua scripts. |\n| [ModUiToolbox](ModUiToolbox/) | Embedded server mod that injects JavaScript payloads into the DU client UI. Captures full HTML, CSS, and JS dumps from the running game client via chunked NDJSON. Includes a Lua editor probe with per-filter position restore, IDE sync, and a local editor rig for development without a running game client. |\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"screens/mod-payload-modules.png\" alt=\"ModUiToolbox payload modules screenshot\"\u003e\u003cbr\u003e\n  \u003cbr\u003e\n  Lua editor theming (35 light and dark themes):\n  \u003cbr\u003e\n  \u003cimg src=\"screens\\mod-lua-editor-theming.png\" alt=\"Lua editor theming\"\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"screens\\mod-lua-editor-theming-dark.png\" alt=\"Lua editor dark theming\"\u003e\n  \u003cbr\u003e\n  Industry UI theming:\n  \u003cbr\u003e\n  \u003cimg src=\"screens\\mod-industry-ui-theming.png\" alt=\"Lua editor theming\"\u003e\n  \u003cbr\u003e\n\u003c/p\u003e\n\n---\n\n### Data export\n\n| Tool | Description |\n| ---- | ----------- |\n| [ItemExport2Json](ItemExport2Json/) | CLI tool that connects to the myDU Orleans backend and exports the full ItemBank to YAML and JSON files. Requires a running myDU stack with Orleans and Queueing services. |\n| [ItemExportWin](ItemExportWin/) | Windows Forms GUI for exporting items and recipes from the myDU backend. Supports filtering by size, tier, nanocraftable status, and recipe time. Includes item/recipe lookup by name or ID. |\n| [MeshDump](MeshDump/) | Scans the game client's `resources_generated/elements` directory and extracts axis-aligned bounding boxes from Unigine `.mesh` files. Outputs a JSON mapping of element names to their min/max coordinates. |\n\n### Analysis\n\n| Tool | Description |\n| ---- | ----------- |\n| [HashCheck](HashCheck/) | Computes deterministic 32-bit hash IDs from item names using a modified golden-ratio mixer and cross-references them against a set of known target IDs. Used to resolve item name-to-ID mappings. |\n| [du_blueprint_parser.py](du_blueprint_parser.py) | Python script that parses Dual Universe blueprint JSON exports. Decodes and decompresses voxel data chunks (LZ4, zlib, or uncompressed), parses `VoxelCellData` binary structures, and prints per-material block counts and liter volumes. |\n\n### RenderScript and screen tooling\n\n| Tool | Description |\n| ---- | ----------- |\n| [rs_emulator](rs_emulator/) | **RScript Emulator**: full browser-based RenderScript playground for Dual Universe screen code. Runs Lua in a local canvas preview, supports persistent sessions, file import/export, module search paths, and Monaco-based editing. |\n| [rs_tests](rs_tests/) | Lightweight Node-based regression tests around RenderScript-adjacent screen layout and Lua serialization behavior. Useful for small targeted checks without opening the browser app. |\n\n### Server operations\n\n| Tool | Description |\n| ---- | ----------- |\n| [logmgr](logmgr/) | Terminal UI (Rust/Ratatui) for browsing and tailing myDU server log files. Discovers log sources across Orleans, stack services, Kafka, Nginx, MongoDB, PostgreSQL, RabbitMQ, and Redis. Supports live multi-file follow mode with rotation detection. |\n\n## Docs and data\n\n| File | Description |\n| ---- | ----------- |\n| [all-mesh-boxes.json](all-mesh-boxes.json) | Bounding box data for all game element meshes, generated by MeshDump. |\n| [du-tests.md](du-tests.md) | Authoritative live-test and truth-model guide for DuMcpBridge + ModUiToolbox work. Covers sequencing rules, board-runtime validation, visual-vs-chat precedence, and common live-debugging traps. |\n| [du-visual-subagent.md](du-visual-subagent.md) | Probe-first dev-process note for using a screenshot-capable helper subagent during live Dual Universe work. Describes when to capture the `Dual Universe` window, when not to, and how to handle `Escape`/retry fallbacks. |\n\n## Mod Requirements\n\nTools are written in C# (.NET 6 / .NET 8), Python 3, and Rust. Server mods target `net6.0` for compatibility with the myDU runtime. Standalone tools target `net8.0`.\n\nMost C# tools reference DLLs from the myDU server install at `D:\\MyDUserver\\wincs\\all` (configurable via `DUExternalLibDir` build property). See each tool's README for specific build and run instructions.\n\nFor the main live-work mod, `ModUiToolbox`, the compiled `ModUIToolbox.dll` must be copied into `MyDUserver\\wincs\\all\\Mods` on whatever drive your myDU server is installed. That deployment is required for the Lua editor enhancements, Lua Painter runtime plugin, and in-game probing/bridge workflow in general.\n\nMandatory for `ModUiToolbox`: always build with `Release`. `Debug` builds are not a supported workflow for deployment, live testing, or handoff.\n\nFor `ModUiToolbox`, the authoritative build/deploy/live-test workflow is [`ModUiToolbox/README.md`](./ModUiToolbox/README.md). Follow that file, not memory. In particular: `Release` only, and if the live DLL may be locked by the running server, stop and ask the user to handle the restart/unlock step instead of inventing an alternate deploy path.\n\n## Live DU Workflow Note\n\nFor live Dual Universe work, the repository can also use an optional external Windows screenshot MCP server alongside `DuMcpBridge`.\n\n- Optional installation source: `https://github.com/tobitege/screenshotnet`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobitege%2Fdu-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftobitege%2Fdu-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobitege%2Fdu-tools/lists"}