• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver
PPPoker

Quest / Event PPPoker v3.38

No permission to download
Changes since v3.34:

3.35 - Mount picker with levitation detectionA dropdown now appears in the UI (below Commemoratives, above Debug panel) listing all keyring mounts. Levitating mounts — detected via HasSPA[57] on the item's clicky spell (SPA 57 = SE_Levitation, confirmed in game) — appear in orange with a (levitates) label and tooltip warning. Non-levitating mounts show a green tooltip. Your choice is saved to pppoker_settings.lua by mount name and restored on next launch. If the saved mount is removed from your keyring, the picker resets. Single-mount characters are auto-selected silently with no prompt. Multiple mounts with no selection show a yellow "Choose Mount" advisory.

3.36 - Invis before zoning into NeriakPreviously, invisibility was only applied after arriving in Neriak via ensureSpeedAndInvisInNeriak(). For low-level characters, Neriak gate guards killed them at zone-in before invis could land. Fix: prepCityTravel() now applies invis before /travelto neriaka when the destination is Neriak Foreign Quarter or Neriak Commons, controlled by the existing TRAVEL_INVIS_BEFORE_NERIAK flag. Invis is still confirmed after zone-in as before.

3.37 - Mount counts as movement buffpppokerMovementBuffPresent() was scanning buff slots for SPA 3 (movement speed effect) but keyring mounts provide speed through the mount system itself — no spell buff ever appears in the buff bar. This caused a false "movement buff missing" warning and unnecessary Worn Totem attempt on every cycle while mounted. Fix: checks Me.Mount.ID() first; if mounted, returns true immediately without scanning buffs.

3.38 - Nav stuck detection and auto-unstuckThe moving() wait loop now samples Me.X/Y every 500ms while navigation is active. If position hasn't changed more than 3 units in 3 seconds, the script strafes left for 500ms (/keypress strafe_left hold + release — the same pattern used in astone for precise movement) to clear geometry clips. Matches the manual Ctrl+Left Arrow fix for the PoK anniversary tent area. Only fires when nav is truly moving (not paused for buff upkeep), so no false triggers during the nav pause block.
Changes since v3.26:

3.27 - Level check before memspellLow-level characters no longer attempt to memorize spells they can't cast. A level 12 NEC won't try to mem level 55 Skin of the Shadow — the script now checks MinCasterLevel before /memspell in both the movement and invis spell pipelines, skipping to the next spell on the list instead.

3.28 - Movement item reuse guardWorn Totem and other movement items now check the reuse timer before clicking, matching the existing invis item behavior. When on cooldown the item is skipped rather than clicking dead. Prevents dropping invis for a no-op click. New config: MOVEMENT_SKIP_ITEM_IF_NOT_READY (default true).

3.29 - Remove legacy Worn Totem functionpppokerUseWornTotemIfAvailable was a hardcoded legacy path duplicating the MOVEMENT_ITEM_NAMES list with a different wait time (12s vs 6s). Removed — Worn Totem is now handled exclusively by the standard movement item pipeline like any other item.

3.30 - Fix objective loop crashv3.27 used Spell.ClassLevel which is not exposed in MQ Lua bindings. Caused "attempt to call field 'ClassLevel' (a nil value)" on every objective loop iteration, spamming the console and blocking progress. Fixed using Spell.MinCasterLevel() which is confirmed working in game.

3.31 - Cleaner console output"CWTN pause skipped" no longer prints an orange timestamped line to EQ console on every run start when no CWTN plugin is loaded (normal for most characters). Now goes to the debug panel only.

3.32 - Console text fixEm dashes (—) rendered as ??? in MQ's EQ font (3-byte UTF-8 character, each byte shows as ?). All 205 instances replaced with plain hyphens throughout the script.

3.33 / 3.34 - Universal movement buff detectionpppokerMovementBuffPresent() previously only recognized named class spells and AA buff names. Worn Totem's buff ("Blessing of Swiftness") was not in any list, causing a false "movement buff missing" warning on every upkeep tick even with the buff active. Fixed using EQ's SPA 3 (SE_MovementSpeed) effect code — the function now scans all 42 buff slots and checks HasSPA[3] on each. Works for any movement source (class spells, AAs, item clickies) with zero configuration. Bard Selo songs handled separately via the existing bardSeloActive() check since songs live in Me.Song not Me.Buff.

Changes since v3.16​

3.26 — Buff upkeep unified nav-pause block: Worn Totem and invis both now properly stop navigation before applying (movement items and spells were being interrupted mid-cast during nav). One combined /nav pause when either buff is needed, movement applied first then invis, single /nav pause off after both. Proactive invis refresh enabled by default — recasts at 8 ticks (~48s) remaining instead of waiting for it to drop entirely.

3.25 — Fix invis not recasting and mana not medding to 50% during navigation. Root cause: script blocked all spell casts while moving (allowSpellCast=false), so neither the invis recast nor the med check ever ran. Fix: upkeep now pauses nav, casts with spells allowed, resumes nav. Guard flag prevents re-entry during the cast window.

3.24 — Mana safety buffer + death respawn. Mana meditation now targets max(spell cost, 50% of MaxMana) instead of just the spell cost — avoids the pattern of medding for one cast, running off with low mana, invis fading with nothing left to recast. Death handler added: detects dead state, waits for respawn window, clicks bind point, waits for revival before resuming.

3.23 — Invis-before-movement guard in upkeep. If invis is currently active and the movement buff expired, movement re-application is skipped that tick — Worn Totem and movement spells drop invis in EQ. Movement is applied on the next tick after invis naturally drops, then invis follows.

3.22 — Two latent fixes: (1) warn forward declaration so texture load failures don't crash on a nil call. (2) Task slot cache — previously scanned up to 30 tasks × 16 objectives (480 TLO reads) on every progress refresh; now cached after first successful scan.

3.21 — Gate spell mana check: reads actual spell mana cost before each cast attempt and meds to that amount first. Fixes low-level casters silently failing Gate casts after spending mana on invis.

3.20 — Gate fizzle recovery: replaced 90-second flat wait after a failed gate cast with gem-ready polling. Script now exits the wait as soon as the gate gem/AA is ready again (~3-5s on fizzle/collapse vs up to 90s before).

3.19 — Low-level Highpass safe gate: characters below level 40 (configurable) navigate to a safe spot outside the Tiger room before gating, so the gate landing doesn't drop invis near guard clusters.

3.18 — Objective timeout no longer kills the run. Timeouts now warn and retry the same objective on the next loop iteration instead of hard-failing. Gate errors (fail()) also caught and retried.

3.17 — Mana med threshold fix: med target was hardcoded to 40 mana in spell-cast paths. Low-level casters with more than 40 mana but less than the spell cost would skip sitting and silently fail. Now uses actual spell cost as the floor. Stop requests honored inside the med loop.
Back
Top
Cart