How will this help?
You can create a script, which can essentially perform a sequence of in-game actions (e.g keystrokes, mouse clicks, delays etc) which are triggered by a specific key that you can assign while creating it.
By using a script, you can further enhance existing key controls. It is a powerful feature to enhance your gameplay experience using which you can define any action sequence as you want and activate them using your own special key.
Click on the links below to learn more about how to use scripts effectively.
What commands are used for running scripts on BlueStacks?
Commands available for scripts on BlueStacks
Keyword |
Syntax |
Short Description |
# |
# this is a comment |
Comments begin with #. Everything until the end of the line is considered a comment and is ignored.
A comment can be on a line by itself or can be placed at the end of a command on the same line. |
keyDown |
keyDown key
e.g. keyDown TAB |
Key is pressed and is not released until the keyup command is encountered for the same key.
Mapping for the key is executed if one exists. Otherwise, the keyDown input is forwarded to android. |
keyDown2 |
keyDown2 key
e.g. keyDown2 TAB |
Key is pressed and is not released until the keyUp is encountered for the same key.
Mapping is not executed and key down input is forwarded to android. |
keyUp |
keyUp key
e.g. keyup TAB |
Key is released. Mapping is executed if one exists; otherwise, keyUp input is forwarded to android. |
keyUp2 |
keyup2 key
e.g. keyup2 TAB |
Key is released. Mapping is not executed and keyUp input is forwarded to android. |
mouseDown |
mouseDown x y
e.g. mouseDown 44.0 55.5 |
The left button of the mouse is pressed at location x, y. All locations are in screen percentages so that the same script can work across different resolutions. |
mouseUp |
mouseUp |
The left button of the mouse is released. No coordinates are required. |
mouseMove |
mouseMove x y
e.g. mouseMove 4.56 5.67 |
Mouse moves to new location x, y |
touch |
touch x1 y1 x2 y2 x3 y3
e.g. # 3 fingers touch 4 5 6 7 8 9
# 3rd finger lifted touch 4 5 6 7
# fingers 1 and 2 move touch 5 6 7 8
# fingers 1 and 2 lifted touch |
Touch input with the current set of touchpoints specified. Series of touch commands can be used to create arbitrary multi-touch input.
Up to 16 touchpoints are supported. But keep in mind that other touchpoints from other controls are aggregated before sending to android. |
text |
text “text” text backspace 2 e.g. text “hello world” |
Send text input to android. This can be in any language. The format should be utf8. |
mouseWheel |
mouseWheel x y d mouseWheel 44.0 55.5 1 mouseWheel 44.0 55.5 -1 |
Send mousewheel event to keymapping which will convert it to zoom or scroll accordingly |
wait |
wait msecs
e.g. wait 24 |
Waits for the specified number of milliseconds before executing the next command. |
Higher Level Primitives
Keyword |
Syntax |
Short Description |
onMouseMove |
onMouseMove |
This provides finer control over execution of script. Different sets of commands can be provided for executing when the mouse is moved.
Commands following the onMouseMove command are executed when the trigger key is pressed and the mouse cursor is moved
|
abort |
abort |
It aborts the execution of a script.
|
onRelease
|
onRelease
|
This provides finer control over the execution of the script. A different set of commands can be provided for executing when the trigger key is pressed and released.
All commands from the top of the script until the onRelease command are executed for as long as the trigger key is pressed.
Commands following the onRelease command are executed when the trigger key is released.
|
dTouch
|
onMouseMove
dTouch x+a y+b x+c y+d… x+u x+v
# take two touch points x+3 y x-3 y
dTouch x+3 y x-3 y
onRelease
abort
|
The dTouch command is specific to the mouse movement. Hence, it is necessary to use onMouseMove command at the start of the script.
dTouch can be used to make a touch gesture on-screen with offset to current mouse location x y. Multiple points may be specified to generate the touch point.
a,b,c,d are offsets of the touch points from the current mouse location x y.
onRelease abort command ensures that the script stops as soon as the trigger key is released.
|
tap |
tap x1 y1 x2 y2 … xn yn delay |
This does a tap gesture. Single or multiple touchpoints can be specified. The touchpoint(s) are held for a specified delay. If the delay is not specified it is assumed to be 50msec.
Delay is specified in milliseconds. This is the amount of time the entire swipe gesture takes.
Up to 16 touchpoints are supported. But keep in mind that other touchpoints from other controls are aggregated before sending to android.
|
swipe |
swipe x1 y1 x2 y2 … xn yn delay
e.g. # swipe 4,5 to 40,45 # take 100msecs swipe 4 5 40 45 100 |
Do a swipe gesture. Multiple points may be specified which the swipe goes through.
Delay is specified in milliseconds. This is the amount of time the entire swipe gesture takes. |
loop / loopEnd |
loop n . . loopEnd
onRelease
abort
|
Commands following loop command until loopEnd are executed n times.
If n is not specified, the loop continues indefinitely or until the script trigger key is released.
The onRelease abort command ensures that the script stops running when the trigger key is released.
|
enterShoot |
enterShoot |
Enter shooting mode used to play FPS games. If a Pan control does not exist in the current scheme this is ignored. If shooting mode is already enabled this has no effect. |
exitShoot |
exitShoot |
Exit shooting mode. If a Pan control does not exist in the current scheme this is ignored. If shooting mode is disabled this is ignored. |
toggleShoot |
toggleShoot |
Toggle shooting mode. If a Pan control does not exist in the current scheme this is ignored. |
How can I create a script?
As an example we will show you how to create a script in Free Fire MAX to open the Bag and exit Shooting mode.
1. First, launch the game on BlueStacks for which you want to create scripts.
2. After the game launches, click on the "Game controls" icon from the Side Toolbar and select "Controls editor" from the dropdown menu.
3. To create a script, drag the script button and drop it on a functional area. As an example, let us drop it beside the Bag button at the left side of your screen, as illustrated below.
NOTE: You can drag and place the script key control anywhere on the screen.
4. Now, assign a key for this function. Here, the "CapsLock" key is assigned to initiate the command added as a script.
5. Click on the "<\>" icon under the script button to start adding the commands for this Script.
6. Now right-click on a spot on the screen for the in-game action for which you are adding the Script. Here, the right-click was done on the Bag button, as shown below.
Once you right-click on a spot on the screen, the coordinates for that point will be shown in the Script editor on the right side of your screen, as displayed below.
7. You can start adding scripting commands next to the coordinates in the Script editor, as shown below.
- The command "tap" against the coordinates means that when we press CapsLock, it will tap once on the Bag button.
- The command "exitShoot" against the coordinates means that when we press CapsLock, it will exit Shooting mode in the game.
After adding the commands, click on "Done".
8. On the next screen, click on "Save". Once the changes are saved, you can close the Controls Editor.
9. You can now see the changes reflect in the game.
The illustration below shows the player is in Shooting mode. Upon pressing Tab, the Bag button is tapped and the player exits shooting mode.
Thank you for choosing BlueStacks. We hope you enjoy using it. Happy Gaming!