# ActionManager: Picking Order (OnPick, OnLeftPick, OnRightPick)

**URL:** <https://forum.babylonjs.com/t/actionmanager-picking-order-onpick-onleftpick-onrightpick/43074>\
**Category:** Questions\
**Created:** [August 7, 2023, 1:27pm UTC](https://forum.babylonjs.com/t/actionmanager-picking-order-onpick-onleftpick-onrightpick/43074 "2023-08-07T13:27:25Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![zacherl](https://avatars.discourse-cdn.com/v4/letter/z/8dc957/32.png) [@zacherl](https://forum.babylonjs.com/u/zacherl)\
**Post date:** [August 7, 2023, 1:27pm UTC](https://forum.babylonjs.com/t/actionmanager-picking-order-onpick-onleftpick-onrightpick/43074/1 "2023-08-07T13:27:25Z")

</div>

Dear community,

if I register the normal pick triggers (OnPickDown, OnPick, OnPickUp), the triggers are executed in an order I would expect - OnPickDown when the mouse (or touch) is pressed, OnPick and OnPickUp when the mouse is released. However, for OnLeftPick and OnRightPick, the triggers are executed together with OnPickDown instead, so they are firing already when the mouse button is pressed. Is this working as intended or is this a bug?

A PG showing the behavior can be found here: [Babylon.js Playground](https://playground.babylonjs.com/#Q6IQE9)

Kind regards  
Zacherl

---

<div class="post-metadata">

**Author:** ![carolhmj](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/carolhmj/32/25918_2.png) [@carolhmj](https://forum.babylonjs.com/u/carolhmj)\
**Post date:** [August 7, 2023, 1:37pm UTC](https://forum.babylonjs.com/t/actionmanager-picking-order-onpick-onleftpick-onrightpick/43074/2 "2023-08-07T13:37:49Z")

</div>

They are indeed defined with the down pick on code: [https://github.com/BabylonJS/Babylon.js/blob/d96704749b916f5f6ecb4fe500b92b5746f56a55/packages/dev/core/src/Inputs/scene.inputManager.ts#L383](https://github.com/BabylonJS/Babylon.js/blob/d96704749b916f5f6ecb4fe500b92b5746f56a55/packages/dev/core/src/Inputs/scene.inputManager.ts#L383), through I can’t say why it was defined like this 😅

---

<div class="post-metadata">

**Author:** ![zacherl](https://avatars.discourse-cdn.com/v4/letter/z/8dc957/32.png) [@zacherl](https://forum.babylonjs.com/u/zacherl)\
**Post date:** [August 7, 2023, 1:57pm UTC](https://forum.babylonjs.com/t/actionmanager-picking-order-onpick-onleftpick-onrightpick/43074/3 "2023-08-07T13:57:19Z")

</div>

Thank you for your quick answer! At the moment, we simply use the pick trigger and check the event data to derive the mouse button, so it is not a big issue. I’d still love to know if there is some intention behind the implemented behavior.

---

<div class="post-metadata">

**Author:** ![aWeirdo](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/aweirdo/32/52_2.png) [@aWeirdo](https://forum.babylonjs.com/u/aWeirdo)\
**Post date:** [August 7, 2023, 2:13pm UTC](https://forum.babylonjs.com/t/actionmanager-picking-order-onpick-onleftpick-onrightpick/43074/4 "2023-08-07T14:13:09Z")

</div>

I would bet either the person had some sort of drag & drop in mind or simply a mistake 🤔

You can however use pointerObservables to get any behaviour you want

> **[Babylon.js Playground](https://playground.babylonjs.com/#3G10LW)**
>
> Babylon.js playground is a live editor for Babylon.js WebGL 3D scenes
