> For the complete documentation index, see [llms.txt](https://docs.expression-library.bearstudios.co.uk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.expression-library.bearstudios.co.uk/adding-custom-controls/example-expression/expression-with-thislayer-controls.md).

# Expression with thisLayer Controls

{% hint style="info" %}
for thisLayer you do not need to include a variable declaring it. However, for best practises I always find it a good idea to include it so the expression is easily editable in the future.
{% endhint %}

### Example 1:

Property: position\
Controls: Slider\
Description: adjusts position with an x slider and y slider

```javascript
/*
===expression.lib functions===
addSliderControl('thisLayer','X Position',0);
addSliderControl('thisLayer','Y Position',0);
===expression.lib end functions===
*/
//set target
var target = thisLayer;
//get effects from target
var xSlider = target.effect("X Position")("Slider");
var ySlider = target.effect("Y Position")("Slider");
//set x Position
var x = value[0] + xSlider;
//set y position
var y = value[1] + ySlider;
[x,y]
```

### Example 2:

Property: rotation\
Controls: Slider, Angle\
Description: Sets the rotation to the angle \* the slider

```javascript
/*
===expression.lib functions===
addSliderControl('thisLayer','multiplier',0);
addAngleControl('thisLayer','rotation',10);
===expression.lib end functions===
*/
//set target
var target = thisLayer;
//get effects from target
var multi = target.effect("multiplier")("Slider");
var rot = target.effect("rotation")("Angle");
//set rotation
rot*multi
```

### Example 3:

Property: scale\
Controls: Slider, Checkbox\
Description: Add the slider value to base value when checkbox is ticked.&#x20;

```javascript
/*
===expression.lib functions===
addSliderControl('thisLayer','Increase Amount',100);
addCheckboxControl('thisLayer','Size Increase',0);
===expression.lib end functions===
*/
//set target
var target = thisLayer;
//get effects from target
var checkbox = target.effect("Size Increase")("Checkbox");
var increase = target.effect("Increase Amount")("Slider");
//set scale
if ( checkbox == 1 ) {	
    [value[0] + increase, value[1] + increase]
}else {	
    value;
}
```
