# How to change feature parameters using scripting api

Since v1.6.1, Banuba SDK provides an oportunity to change some feature parameters using scripting engine:

```
    bnb.scene.addFeatureParam(bnb.FeatureID.ID, [])
```

The first parameter is the feature id with a type bnb.FeatureID. The second parameter is the Array of bnb.FeatureParameter. bnb.FeatureParameter is similiar to vector4 type and contains x,y,z,w fields.

## List of all features with changing parameters[​](#list-of-all-features-with-changing-parameters "Direct link to List of all features with changing parameters")

| feature | type name           |
| ------- | ------------------- |
| ring    | bnb.FeatureID.RING  |
| nails   | bnb.FeatureID.NAILS |

## Ring[​](#ring "Direct link to Ring")

As an input, the Ring feature takes only the first element of the array where x is the id of selected finger. At the the moment, this feature supports 4 fingers:

* Index - 0
* Middle - 1
* Ring - 2
* Small - 3

Here is example of how to set the middle finger:

* config.js
* Java
* Swift

```
  let middle_finger_id = 1;

  let param = new bnb.FeatureParameter(middle_finger_id,0,0,0);

  bnb.scene.addFeatureParam(bnb.FeatureID.RING, [param])
```

```
// Effect mCurrentEffect = ...



String script =

    "" "

    let middle_finger_id = 1;

let param = new bnb.FeatureParameter(middle_finger_id, 0, 0, 0);

bnb.scene.addFeatureParam(bnb.FeatureID.RING, [param])

    "" ";



    mCurrentEffect.evalJs(script, null);
```

```
// var currentEffect: BNBEffect = ...

  let script = """

      let middle_finger_id = 1;

      let param = new bnb.FeatureParameter(middle_finger_id,0,0,0);

      bnb.scene.addFeatureParam(bnb.FeatureID.RING, [param])

  """;

  currentEffect?.evalJs(script, resultCallback: nil)
```
