Skip to content

Releases: heaven-hm/project-igi-editor

v3.6.7-pre — Fog Intensity (0-200%) + Lightmap Crash Fixes

Choose a tag to compare

@haseeb-heaven haseeb-heaven released this 08 Jul 07:24

✨ New Feature

  • Fog Intensity spinner in Terrain Options, Fog Intensity [-] [N%] [+], under the existing Fog checkbox in the pause menu's expanded "Terrain Options" section. Value is a percentage, 0-200%, step 10, defaults to 200% (maximum thickness) — persists to qedconfig.qsc as FogIntensity and scales fog distance live, no level reload needed.
  • 100% = the level's original fog distance, 0% = 2x distance (thinnest), 200% = 0.05x distance (thickest, clamped so the fog shader's far - near never hits zero). Pure CPU-side distance scaling — no shader changes.

🐛 Bug Fixes

  • Fixed fog scale inverted at low percentages. An earlier build's 100/percent formula made the (then-)default 20% setting push fog five times farther away instead of thickening it, making fog effectively invisible. Replaced with a linear scale anchored at 100% = unchanged, and changed the shipped default to 200% (thickest) enabled by default.
  • Fixed pause-menu mouse hit-test offset. Input_OnMouse's local menu_h had drifted out of sync with the actual rendered menu height after the Fog Intensity row was added, misaligning every click target below it by ~19px.
  • Fixed Lightmaps checkbox silently doing nothing on large levels. A hardcoded targets.size() > 350 guard skipped the entire bulk lightmap bake on levels with more than 350 objects (e.g. level1 = 481). Removed entirely — all objects are now processed regardless of level size.
  • Fixed crash on very large levels (e.g. level 13, 1023 targets) during bulk lightmap bake. igi1ed.exe is a 32-bit process; baking lightmaps for 1000+ objects could exhaust its virtual address space and crash. The bulk bake now checks available virtual memory before each object and stops gracefully with headroom to spare instead of racing toward a crash.

📦 Assets

  • igi1ed.exe — editor binary only
  • igi-editor-3.6.7-pre-win32.zip / .7z — full release folder (igi1ed.exe, freeglut.dll, glew32.dll, editor/ runtime files)

Full changelog: see CHANGELOGS.md in the repo.

v3.6.0-pre — Animations, Music, Lightmapping & More

Choose a tag to compare

@haseeb-heaven haseeb-heaven released this 29 Jun 15:37

v3.6.0-pre — Animations, Music, Lightmapping & More

✨ Major Highlights

  • 🤖 AI Auto-Playing Animations — Every eligible AI animates automatically at level load, all in parallel across worker threads.
  • 🔫 AI Held Weapons — Soldiers now hold their assigned weapon in-hand, attached to the right hand bone.
  • 🎵 Level Music + Escape-Menu Toggle — Level-specific .wav auto-plays on load with seamless looping.
  • 💡 Full Lightmap Bake-Apply Pipeline — Select an object, click Calculate Light Mapping, and the editor bakes a ray-traced lightmap and applies it live.
  • 🎮 Escape-Menu Fog Controls — Fog On/Off toggle + Fog Intensity spinner (0–200%).
  • 🖥️ Developer Mode & Automated Screenshots — --developer-mode flag enables headless command polling.
  • 🔧 Cross-Level Foreign Model Extraction — Fixed .mef/.tex extraction for models from other levels.

v3.4.1-pre — Live Graph Sync, Exact-ID Find & AI Script Notepad

Choose a tag to compare

@haseeb-heaven haseeb-heaven released this 21 Jun 04:19

IGI Editor v3.4.1-pre

Pre-release build of the IGI Editor. All file conversion is now routed through the bundled igi1conv.exe (v1.7.0); see the igi1conv release notes for the matching converter release.

3.4.1-pre — Live Graph Sync, Exact-ID Find & AI Script Notepad

🐛 Bug Fixes

  • Live graph-overlay sync (F7 view follows the AIGraph task live). Moving the AIGraph task via the TaskTree property panel, the 2D position pad / Z slider, or Undo / Redo updates the renderer's graph_overlay_offset_ immediately so the 3D nodes and edges stay anchored to the task.
  • Exact-match TaskFindByTaskID. Task IDs are pixel-perfect — typing "7" now matches only the task with id "7", not "73", "700", or any other id containing "7". Other find modes (TextInTask, ByNote, TaskNameTypeId) keep their substring behaviour.
  • AI Script editor Ctrl shortcuts work. GLUT sends the ASCII control-character code for Ctrl+letter (1=SOH/A, 3=ETX/C, 0x18=CAN/X, 0x16=SYN/V, 0x19=EM/Y, 0x1A=SUB/Z), not the letter itself. The handler now matches on both forms.
  • AI Script selection highlight draws on the right line. OpenGL Y is bottom-up; the blue band now wraps its vertices in gl_y() so it sits on the selected characters, not at the top of the screen.

✨ New Features

  • AI Script editor — full notepad surface, scoped to the AI Script text only. Gated on prop_text_edit_field_ == kAIScriptTextField so other property text fields, the find bar, Ctrl+N, save bindings, and Ctrl+H keep working unchanged.
    • Ctrl+A Select all
    • Ctrl+C / Ctrl+X / Ctrl+V Copy / cut / paste via Windows clipboard
    • Ctrl+Z Undo (AI-script-local stack, capped at 100 entries)
    • Ctrl+Y / Ctrl+Shift+Z Redo
    • Shift+Left/Right/Up/Down/Home/End Extend selection
    • Ctrl+Home / Ctrl+End Start / end of buffer
    • Backspace / Delete / Enter / printable typing — replace the active selection
    • Mouse: click places caret and clears selection; Shift+Click extends from existing anchor; Click+Drag is live drag-selection with auto-scroll at the box edges; clicking elsewhere drops the selection.
  • AI Script editor — local undo/redo. Each mutating op (insert, paste, cut, delete, replace) pushes a full-text snapshot so Ctrl+Z / Ctrl+Y are O(1) and byte-perfect. Edits stay in the live buffer; only Ctrl+S / Ctrl+W (existing save bindings) commit to the .qvm on disk.

⌨️ New Keybindings (AI Script editor only)

Event Binding Action
AiScriptSelectAll Ctrl+A Select all in the AI Script text
AiScriptCopy Ctrl+C Copy selection (or whole buffer) to clipboard
AiScriptCut Ctrl+X Cut selection (or whole buffer) to clipboard
AiScriptPaste Ctrl+V Paste from clipboard at caret
AiScriptUndo Ctrl+Z Undo last AI Script edit
AiScriptRedo Ctrl+Y / Ctrl+Shift+Z Redo last undone edit
AiScriptExtendSel Shift+Left/Right/Up/Down/Home/End Extend selection (no auto-commit)
AiScriptDragSel Click+Drag in AI Script text Live drag-selection with edge auto-scroll

3.4.0-pre — igi1conv-Only Parsers Migration

🛠️ Refactor

  • Removed source/parsers/ folder entirely. Every file-conversion call in the editor now goes through the bundled igi1conv.exe (v1.7.0, located at editor/tools/igi1conv/). The new source/utils_igi1conv.{h,cpp} shared runner is the single spawner used by every consumer.
  • Single source of truth for asset conversion. dat export, mtp dump, qvm decompile, qsc compile, res list/extract/append, graph export, tex to-png/to-tga, mef export, fnt export, terrain export-lmp/export-ctr.
  • In-process loaders kept only where no CLI subcommand can supply the runtime data the editor needs every frame:
    • mef_nativesource/renderer/ (raw ParsedGeometry for GL upload)
    • fnt_parsersource/renderer/ (per-glyph UV/advance for HUD draw)
    • qsc_lexer, qsc_parsersource/level/ (AI script token/AST walk)
    • terrain_filessource/level/ (LMP/CTR runtime loaders)
    • qvm_parser, qvm_compiler, qvm_decompilersource/level/ (used by verify_level_core, --run-tests, and the qvm roundtrip gtest)
  • Writer classes relocated to consumer folders (read side replaced by igi1conv; write side kept in C++): dat_writer, graph_writer, mtp_writer, tex_writer, res_writer, res_compiler.
  • Dead code removed: mef_parser, mef_exporter, mtp_tool.

📦 New API

  • igi1conv:: namespace in source/utils_igi1conv.h exposes high-level wrappers for every subcommand the editor needs: ResList, ResExtract, ResAppend, ResPack, DatExportJson, DatToMtp, MtpDumpJson, MtpInfo, GraphExportJson, GraphInfo, TexDecode, TexToPng, TexToTga, TexInfo, QvmDecompile, QvmInfo, QvmDisasm, QscCompile, QscValidate, FntExportPng, FntInfo, TerrainExportLmp, TerrainExportCtr, TerrainInfo, MefExportObj, MefInfo.

🔧 Build / Toolchain

  • CMakeLists.txt: dropped the file(GLOB SOURCES_PARSERS "source/parsers/*.*") line and the target_include_directories(... source/parsers ...) entry. The igi_tests target_sources list updated to point at the new locations.
  • assets/editor/tools/igi1conv/ ships with v1.7.0.

📁 File-level change summary

  • 14 parsers relocated from source/parsers/ to source/renderer/ or source/level/
  • 3 dead parsers deleted (mef_parser, mef_exporter, mtp_tool)

Tests

  • 275 tests across 28 suites. 273 pass on level 1; the same 2 pre-existing writer byte-roundtrip failures carry over from feature/graph-editor (GraphParserTest.WriteUnchangedIsByteIdentical, MtpWriterTest.PreservesUntouchedChunksByteForByte) and are unrelated to either of these releases.

Quick start

  1. Extract igi1ed_v3.4.1-pre.7z to your IGI install folder.
  2. Make sure editor/tools/igi1conv/igi1conv.exe is present (bundled with the editor).
  3. Run igi1ed.exe --help for CLI options or launch the GUI.

What's in the archive

  • igi1ed.exe — main editor (GUI + headless CLI)
  • igi_tests.exe — standalone GoogleTest binary (no source tree needed at runtime)
  • editor/ — full editor resources (docs, fonts, shaders, igi1conv + Qt runtime)
  • fixtures/ — test fixtures for the gtest suite
  • freeglut.dll, glew32.dll — OpenGL runtime
  • version — version string

v3.3.0-pre

v3.3.0-pre Pre-release
Pre-release

Choose a tag to compare

@haseeb-heaven haseeb-heaven released this 19 Jun 15:52

v3.3.0-pre — Auto-Save, Unified Undo/Redo & AI Script Hotkey Support

✨ New Features

  • Auto-Save System — New pause-menu "Auto Save" row with toggle (Save Enable / Save Disable) and interval spinner (10s steps, 10s–3600s). Toggle with Ctrl+Shift+A, adjust with Ctrl+Shift+] / Ctrl+Shift+[. When enabled the editor auto-saves the current level at the configured interval.
  • SaveState (Ctrl+W) & SaveObjectFile (Ctrl+S) work from qedkeybindings.qsc — All save hotkeys are dispatched via DispatchEventBindings using bindings loaded from editor\qed\qedkeybindings.qsc, no hardcoded keys.
  • AI script saves via Ctrl+W / Ctrl+S — The text editor pre-checks save bindings and commits the in-flight AI edit before letting the key reach the dispatcher. The AI script .qvm is now saved correctly when pressing SaveState while the AI textbox is focused.
  • ESC closing the property panel commits AI script edits — previously ESC discarded the in-flight edit buffer; now it commits to ai_script_text_ with ai_script_dirty_=true.

🐛 Bug Fixes (initial release)

  • AI Script not saved via Ctrl+W / Ctrl+S — text editor was swallowing the key as a printable character.
  • ESC discarded AI script edits — fixed.
  • Undo/Redo broke building ATTA positions — restored ATTA proxies are now re-flushed to the MEF binary.
  • Pause-menu AutoSave row not updating display — missing fields in the pause-mode task_tree_view struct, fixed.
  • ResetLevel did not fully reset graphs / AI / textures — changed to full folder replacement (remove_all + recursive copy) so deleted graph nodes, removed AI scripts, and other stale files are all reverted.
  • AutoSave config not reloaded on startupQEDAutoSaveEnabled and QEDAutoSaveInterval are now parsed on launch.
  • Terrain undo/redo didn't restore heightmap edits — added SnapshotHMP / RestoreHMP that byte-copies the HMP buffer.
  • Editor created a content folder in the install path — all asset cache stamps and terrain extract moved under editor\.

🐛 Bug Fixes (post-release patches)

  • HumanAI not found when nested under a non-AI child (e.g. HumanSoldier → GunM16A2 → HumanAI)LoadAIScriptForSelected() now walks the children tree recursively (BFS, up to 15 levels deep) instead of only checking direct children. If not found within 15 levels a warning is logged with the parent name and taskId.
  • AI script editor section never appeared for HumanSoldiers whose modelId isn't tagged AITYPE_ in IGIModels.json — both LoadAIScriptForSelected() and the renderer's selected_obj_is_ai flag now also check the object type (HumanSoldier, HumanSoldierFemale, HumanPlayer, HumanSoldierRPG, HumanAI) in addition to the ai_model_ids_ set, so the AI Script section renders for every AI container regardless of modelId.
  • AI script load diagnostic logging — on success, the loaded path and resolved HumanAI taskId are logged; when HumanAI is found but its taskId is empty, a warning is logged.

⌨️ Pause Menu Reorder & UI Polish

  • Pause menu now lists rows in this order: Resume → Font → Select Level → Auto Save → Model Search → Terrain Options → Reset Level → Save Level → Quit
  • Row spacing increased from 35px to 38px for a cleaner, less cramped layout; first row starts at a slightly higher position for better top padding
  • Title "IGI EDITOR" and subtitle "PAUSED" are now centered by measured text width (was hardcoded offset)
  • Terrain header and checkbox rows use the same strlen * 4 centering as plain buttons, so all text is consistently aligned
  • Auto Save label shortened from "Auto Save Enable" / "Auto Save Disable" to "Save Enable" / "Save Disable" for a cleaner row
  • Click hit-zones updated to ±16px to match the new 38px row spacing

🎯 Pause Menu Alignment Fixes (post-release)

  • Spinner rows now share identical layout: Font / Select Level / Save Enable all use the same btn_w=22, gap=6, val_w=44, label_gap=14 and compute label width dynamically from strlen(lbl) * 6. The whole label+spinner group is centered in the 460px menu, so the - [val] + group sits at the same horizontal position in every spinner row.
  • Model Search text input box no longer overflows the menu border — the whole label+box group is centered.
  • Centering math corrected: button-label centering was using strlen * 4 (only correct for 6-7 char strings like "PAUSED") which shifted longer strings like "Reset Level" and "Save Level" off-center. Changed to strlen * 3 (half of the 6px font width) so all plain buttons center correctly relative to the menu's vertical axis. Title "IGI EDITOR" and subtitle "PAUSED" use the same correct formula.

⌨️ New Keybindings

Event Binding Action
ToggleAutoSave <Ctrl><Shift><A> Toggle auto-save on/off
AutoSaveIntervalUp <Ctrl><Shift><]> Increase auto-save interval by 10s
AutoSaveIntervalDown <Ctrl><Shift><[> Decrease auto-save interval by 10s

📦 Download

Extract igi1ed_v3.3.0-pre.zip into your IGI1 install path (or use the editor's editor/ tree). The release zip intentionally excludes igi_tests.exe and the fixtures/ test folder — it contains the editor binary, DLLs, version file, and the full editor/ tree. See README.md for setup.

v3.2.0-pre — Graph Link Editing, Legacy Format & Edge Visibility

Choose a tag to compare

@haseeb-heaven haseeb-heaven released this 19 Jun 00:47

3.2.0-pre — Graph Link Editing, Legacy Format & Edge Visibility

✨ New Features

  • Add/Remove Links (Two-Step Workflow): Navigation edges between graph nodes can now be added and removed interactively. Select node A, press Alt++ to mark it as the link source (green double-ring indicator), select node B, press Alt++ again to create the link. Use Alt+- to remove a link the same way.
  • Node Label Toggle: On-screen node ID labels can now be toggled on/off with Alt+L. The title banner shows [labels off] when disabled.
  • Legacy Graph Format Support: Added a parser, full writer, and position-patch saver for the undocumented alternate tagged graph format (1-byte type tags: 0x05=int32, 0x06=float, 0x08=Vec3d, 0x09=string, no magic number). This fixes the "bad magic" error that prevented level 8's graph1.dat and graph7.dat (and other legacy graphs) from loading and displaying.

🐛 Bug Fixes

  • Fixed: "Bad magic" error on level 8 graph1: Graph files using the legacy tagged format (no 0xFFEEDDCC magic) are now auto-detected and parsed transparently — both standard and legacy formats produce the same editable GraphFile and support full add/remove/edit/save.
  • Fixed: Links not visible / not above ground: Edge lines were drawn at node Z (ground level), getting buried under terrain. Edges now render at the vertical centre of the node boxes (z + H) so they sit above ground and are clearly visible.

⌨️ New Keybindings

Event Binding Action
AddGraphLink <Alt><Plus> Two-step: mark source node, then link to target node
RemoveGraphLink <Alt><Minus> Two-step: mark source node, then unlink target node
ToggleGraphNodeLabels <Alt><L> Toggle on-screen node ID labels

🧪 Tests

  • Added 4 new tests for the legacy graph format: parse validity, node data sanity, write round-trip, and position-patch save.
  • 31/32 graph tests pass (1 pre-existing failure in WriteUnchangedIsByteIdentical, unrelated to this release).

📦 Build

  • Built as 32-bit (Win32/x86) Release with CMake + VS 2022.
  • igi1ed.exe deployed to D:\IGI1\.

3.1.0-pre - 3D Graph Editor

Pre-release

Choose a tag to compare

@haseeb-heaven haseeb-heaven released this 13 Jun 21:42

Visual 3D Graph Editor

  • Added: Visual 3D Graph Editor (interactive 3D nodes, material color coding, and path/edge rendering via F3 overlay).
  • Added: Binary parser, patch saver, and full writer serialization for AI navigation graph .dat files.
  • Added: Config option QGraphNodeSize to control node box sizing.
  • Fixed: Terrain sculpting vs object selection click conflicts, right-click triggers.
  • Fixed: Syncing of level graph subdirectories to backup folders.

IGI Editor v3.0.0 — igi1conv Qt Integration & Bug Fixes

Choose a tag to compare

@haseeb-heaven haseeb-heaven released this 12 Jun 13:00
dcb1872

IGI Editor v3.0.0 — igi1conv Qt Integration, Module Refactor & Bug Fixes

🔧 igi1conv — Standalone Asset Converter (Qt)

  • Developed at project-igi-conv — ships with GUI and headless CLI mode
  • Full Qt5 runtime bundled (editor/tools/igi1conv/) — no separate Qt install needed
  • Updated to igi1conv v1.6.0 with improved conversion accuracy
  • Native MTP generation via igi1conv dat to-mtp fixes transparent/wrong-texture issues on model import

🗂️ Module Refactor

  • renderer_objects split into picking, mesh, visual, metadata, texture, ATTA subsystems
  • app split into input (mouse/keyboard/dispatch), editor, view, lookup, level, UI modules
  • terrain split into terrain_io, terrain_lod, terrain_mesh, terrain_query

🖥️ UI Improvements

  • Level spinner in pause menu for quick level switching
  • Texture panel removed from pause menu
  • Editor file verification on launch with clear error dialog

🐛 Bug Fixes

  • Arrow keys no longer move camera without SHIFT+ALT
  • Weapon/ammo model orientation corrected
  • ESC menu re-open regression fixed
  • Terrain rings appear immediately on right-click
  • DAT round-trip data loss fixed
  • matCount bounds guard added
  • terrain_lod stack underflow fixed (stack_size < 0 changed to <= 0)
  • Switch object modelId serialize/parse index mismatch fixed (index 11 to 17)
  • Wrong error message in HeightMap loader corrected
  • Boundary-aware texture matching fixed
  • JSON parser edge-case crash fixed

📦 Installation

  1. Extract the zip to your Project IGI game folder (alongside igi.exe)
  2. Run: igi1ed.exe -level 1 -draw_parts 49 -stick_to_ground

Requires a legally licensed copy of Project I.G.I.

Release 2.9.0

Choose a tag to compare

@haseeb-heaven haseeb-heaven released this 09 Jun 11:40

2.9.0 — New Terrain Editor, Foreign Models Support & UI Fixes

This release introduces a new Terrain editor, support for loading and adding foreign models from other levels, and critical bug fixes to the pause menu layout and viewport interaction.

🗺️ New Terrain Editor

  • Interactive Terrain Tools — Enhanced level design capabilities with the new terrain editor interface and brush controls.

📦 Foreign Model Support

  • Cross-Level Assets — Added the ability to import and add foreign models from different game levels directly into the current level.

🔧 Pause Menu & UI Bug Fixes

  • Terrain Options Expand/Collapse — Fixed the list in Terrain Options in the Pause menu to properly expand and collapse when clicked.
  • Immediate 3D Rings Refresh — When terrain is selected via right-click, the 3D brush rings now display immediately in the viewport without delay by forcing immediate frame redisplays.

v2.8.0 — AI Script Editor, Object List, Terrain Editor

Choose a tag to compare

@haseeb-heaven haseeb-heaven released this 04 Jun 10:30

🤖 IGI Editor v2.8.0 — Pre-Release

This release brings a full inline AI Script Editor embedded inside the property panel, a proper mini-notepad text editor with scrolling and arrow-key navigation, a complete autocomplete overhaul that makes Ctrl+N/Ctrl+Space work in every textbox, and three keyboard shortcut fixes in the find system.


✨ What's New

🤖 Inline AI Script Editor

The biggest feature of this release. When you select any HumanSoldier or HumanAI task and open its properties, the panel now shows a dedicated AI Script section at the bottom:

  • AI Script Path — Editable textbox showing the resolved .qvm file path (e.g. D:\IGI1\missions\location0\level1\ai\2203.qvm). Change the path and press Enter to load a different script file.
  • AI Script — Tall multiline textbox showing the fully decompiled QSC source of the AI behaviour script. Edit it like a text file.
  • Correct task ID — The path correctly uses the HumanAI child task's ID (e.g. 2203), not the parent HumanSoldier's ID.
  • Compile-on-Save — Changes compile back to .qvm only when you save the level (F3 / Save button). An orange "modified — save to compile" label appears when unsaved edits exist.
  • Round-trip validation — After compiling, the written .qvm is parsed back to catch silent corruption before it reaches the game.

📝 Mini-Notepad Text Editor

The AI script textbox is a real text editor — not just a display:

Feature Detail
Vertical scrolling Mouse wheel + PageUp / PageDown
Arrow key navigation ← → by character · ↑ ↓ by visual line (column preserved across wrapped lines)
Mouse click positioning Click anywhere in the box to move the caret to that character
Horizontal scroll (path box) Path textbox scrolls horizontally as you type or move the caret
Proper line wrapping \n-aware: each logical line renders on its own row; long lines wrap at box width
Active border Box highlights with a yellow border when focused for editing
Autocomplete Ctrl+N opens keyword picker, Ctrl+Space inline-completes the word at cursor

🔡 Autocomplete Overhaul — Works Everywhere Now

Root cause fixed: A stale prop_text_edit_field_ < 0 guard was silently blocking Ctrl+N, Ctrl+Space, and Ctrl+O in every text field. All guards now correctly check == -1 (the actual "no field" sentinel), so AI field IDs (-10, -11) no longer get blocked.

Shortcut What it does
Ctrl+N Opens keyword picker — INSERT at cursor in AI script, REPLACE in standard fields
Ctrl+Space Inline autocomplete — completes the word before the cursor in any text box
Ctrl+O Model ID picker — unchanged, still working as before

Caret-preserving insert: When Ctrl+N opens the picker, the cursor position is saved. Confirming a pick inserts the keyword exactly where your cursor was in the script — the code before and after the cursor is preserved.

Example: Type WEAPON_ID_AK → press Ctrl+Space → auto-completes to WEAPON_ID_AK47


⌨️ Find Shortcut Fixes

Shortcut Fix
Ctrl+Shift+X TaskFindTextInTask — rebound from Ctrl+H (was permanently blocked by ASCII backspace)
Ctrl+Shift+N TaskFindByTaskNote — was consumed by Ctrl+N autocomplete intercept; now correctly fires
Ctrl+Shift+F TaskFindAgain — now scrolls and highlights the found task in the tree after each press

📦 Installation

  1. Download IGI Editor v2.8.0 (Windows x86) below
  2. Extract to your Project IGI game directory (next to igi.exe)
  3. Run igi1ed.exe

Requires: Project IGI installed at a known path. The editor auto-detects the IGI root from its own directory.


🗒️ Full Changelog

See CHANGELOGS.md for the complete change log.


Compatibility: Fully backward compatible — existing levels and configurations work without modification.

v2.6.0

v2.6.0 Pre-release
Pre-release

Choose a tag to compare

@haseeb-heaven haseeb-heaven released this 03 Jun 06:40

IGI Editor v2.6.0 is here!

• Added Properties Editor with a new UI.
• Added support for editable Attachments objects.
• Fixed Road Tracks SplineObjs.
• Added Editor Fonts and Sprites.
• Fixed more bugs and improved stability.

Try it out and let me know what you think!