Skip to content
This repository was archived by the owner on Oct 11, 2026. It is now read-only.

Release V2.0.1

Choose a tag to compare

@gennro gennro released this 05 Sep 14:47
· 84 commits to main since this release

2026-09-05

  • Project Version Bump (v2.01) (triune.lua, triune_updater.lua, README.md, tests/test_pure_logic.lua).

    • Synchronized version bump to 2.01 across the main suite (triune.lua), the standalone release updater (triune_updater.lua), repository documentation (README.md), and regression test suites.
  • Hostile Target Self-Healing & Beneficial Spell Target Correction (triune.lua, tests/test_pure_logic.lua).

    • Hostile NPC Targeting Retention for Self-Directed Heals (runtime.castGem, runtime.useClickie, runtime.fireAA): When casting single-target heals or beneficial spells on oneself (id == mq.TLO.Me.ID()) while currently attacking or targeting a hostile NPC (isHostileTarget(Target.ID())), Triune no longer changes target to the player. In EverQuest, casting a beneficial spell while targeting a hostile entity automatically redirects the spell onto the player without losing target on the enemy.
    • Target Lock Override Prevention (getActiveTargetRequiredCastingId): Updated active casting target resolution to return nil instead of Me.ID() whenever the player has a hostile NPC targeted during a self-cast heal or buff. This prevents combatTick's mid-cast target lock from dispatching /target id <Me.ID>, which previously broke auto-attack melee combat, cleared target from the engaged mob, and left the character idling on itself post-cast.
    • Context-Aware Beneficial Ally Targeting: Retained explicit target switching to Me.ID() only when the active target is a friendly ally or pet, ensuring self-heals do not accidentally land on group members while idle or between pulls.
    • Post-Cast Target Restoration Safety: Ensured post-cast restoration logic preserves the hostile mob target throughout the cast, keeping auto-attack active without interruption.
    • Automated Regression Prevention (Suite 46): Added unit test assertions verifying that self-healing while targeting an enemy NPC sets targetRequired = false, returns nil from getActiveTargetRequiredCastingId(), and retains target lock on the hostile mob throughout the cast.
  • Plugin Command Guards for MQ2Map & MQ2FOV (triune.lua).

    • MQ2Map Plugin Gate (runtime.mapLoaded, runtime.clearMapRadiusVisuals, runtime.updateMapRadiusVisuals): Added runtime.mapLoaded() probe checking mq.TLO.Map and mq.TLO.Plugin('mq2map') before executing map drawing commands. If MQ2Map is not loaded, Triune gracefully suppresses /mapfilter and /maploc execution, eliminating DoCommand - Couldn't parse '/maploc remove' and /mapfilter red chat errors when running without the map plugin.
    • MQ2FOV Plugin Gate (runtime.fovLoaded, runtime.applyFov): Added runtime.fovLoaded() probe checking mq.TLO.Plugin('mq2fov') before dispatching /fov <val> commands. Prevents DoCommand - Couldn't parse '/fov 150' red errors on MacroQuest installations that do not have the legacy FOV plugin loaded.
    • Settings UI Status Indicators: Added telemetry notices in the Settings tab indicating when MQ2Map or MQ2FOV are not loaded, providing clear feedback on feature availability.

📦 Installation & Updating Instructions

🆕 New Installation

  1. Go here and grab the latest macroquest release https://github.com/macroquest/macroquest/releases and extract under your user folder.
  2. Download TriuneAutocombat-full.zip below and extract contents of TAC into the root of your macroquest folder.
  3. Start MacroQuest.exe before launching EverQuest.
  • **Existing install
    • Download TriuneAutocombat-Update.zip from the Assets below.
    • Extract the TAC folder to the root of your macroquest folder.
    • Note: Your personal settings and saved loadouts in triune_loadout.lua are preserved and will never be overwritten.