Skip to content

fix(questhelper): open doors on the way to Juliet's stairs - #2119

Merged
chsami merged 1 commit into
developmentfrom
claude/err-questhelper-romeojuliet-closed-door-stall
Oct 25, 2026
Merged

chsami merged 1 commit into
developmentfrom
claude/err-questhelper-romeojuliet-closed-door-stall

Conversation

@chsami

@chsami chsami commented Oct 25, 2026

Copy link
Copy Markdown
Owner

Problem

A player reported on Discord that in Quest Helper's Romeo and Juliet run, the script walks up to Juliet's house and then does nothing. It only carries on after the player opens the door to the stairs by hand.

Root cause

RomeoAndJuliet.climbToJulietWithPotion called Rs2Walker.walkFastCanvas(JULIET_STAIR_ORIGIN) and returned false until the player was on that exact tile. walkFastCanvas (it ends in dispatchCanvasWalk) sends a single "Walk here" click on the scene or minimap and never opens doors. When the house door was closed, the player stopped outside and the script clicked the same tile every tick. Returning false also skipped QuestScript's default step handling. leaveJulietRoomForRomeo on the upper floor used the same pattern.

Change

  • The walk to the ground-floor stair tile now uses Rs2Walker.walkTo(JULIET_STAIR_ORIGIN, 0).
  • The walk to the upstairs stair tile now uses Rs2Walker.walkTo(JULIET_TOP_STAIR, 4).

walkTo opens doors along the path. The arrival distances are unchanged (exact tile on the ground floor, within 4 tiles upstairs). With distance 0, the arrival check compares tiles for equality, so the existing distanceTo2D > 0 gate cannot loop. The Climb-up/Climb-down interactions and the return values are unchanged. The same file already uses walkTo for Romeo and the cadava bush. No version bump, since QuestHelper is a client plugin.

Validation

  • New RomeoAndJulietWalkTest (2 cases). With the quest step stubbed and the player outside the house (plane 0) or upstairs away from the stairs (plane 1), each case checks that walkTo is called with the right tile and distance and that walkFastCanvas is never called.
  • :client:runUnitTests --tests '*RomeoAndJulietWalkTest' passes 2/2. With the source change reverted, the test fails 2/2.
  • :client:runUnitTests --tests '*RomeoAndJulietWalkTest' --tests '*QuestScript*' passes: RomeoAndJulietWalkTest 2/2, QuestScriptCoinsRequirementTest 4/4, QuestScriptGrandExchangeBatchTest 4/4, QuestScriptItemActionTest 5/5. I checked the result XML files.
  • Code review and player-experience review both approved the change.

Known gaps

  • Not tested in game.
  • walkTo's pre-flight check returns UNREACHABLE if the collision map marks (3159,3436,0) as not walkable at distance 0. The old exact-tile Climb-up flow reportedly worked once the door was open, which suggests the tile can be stood on. A quick live check with the door closed is still worth doing.

🤖 Generated with Claude Code

Romeo and Juliet custom logic walked to the staircase tiles with
Rs2Walker.walkFastCanvas, which issues a single Walk here click and never
opens doors. With the house door closed the player stopped outside and the
script re-clicked the same tile every tick until the door was opened by hand.

Walk to both staircase tiles with Rs2Walker.walkTo, which routes through
and opens doors, keeping the same arrival distances.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 7 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 66bf7428-0a3c-4915-b17e-4148b36e9e2d
Commits

Reviewing files that changed from the base of the PR and between a89ebd0 and 5de8aaf.

Files selected for processing: 2
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/questhelper/logic/RomeoAndJuliet.java
  • runelite-client/src/test/java/net/runelite/client/plugins/microbot/questhelper/logic/RomeoAndJulietWalkTest.java
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chsami
chsami merged commit 454c6e7 into development Oct 25, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant