# Range replicator won't accept expression

**URL:** <https://mworks.discourse.group/t/range-replicator-wont-accept-expression/419>\
**Category:** Support\
**Created:** [April 10, 2017, 9:59am UTC](https://mworks.discourse.group/t/range-replicator-wont-accept-expression/419 "2017-04-10T09:59:20Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![cstawarz](https://yyz1.discourse-cdn.com/flex031/user_avatar/mworks.discourse.group/cstawarz/32/3_2.png) [@cstawarz](https://mworks.discourse.group/u/cstawarz)\
**Post date:** [April 10, 2017, 9:59am UTC](https://mworks.discourse.group/t/range-replicator-wont-accept-expression/419/1 "2017-04-10T09:59:20Z")

</div>

Hi Christopher,

hope you’re fine.

We are currently running an experiment on 6 different servers at one time and we need to load different stimuli per each monitor.  
We would love to do this in a way that does not require to create six separate protocols.

My idea was to index image names as: “monitor$monitornumber\_image$imagenumber” and store the reference to “monitornumber” somewhere, i.e. among the saved variables. This way you could save a different monitornumber per server and load easily the correct batch of stimuli.  
However, this is not allowed since you cannot (of course) save local variables outside the protocol. Moreover, range\_replicator won’t accept either global variables or expressions.

Is there a way i’m missing to do this?  
Please ask me about any doubt you may have

Thanks in advance!  
Rosilari

---

<div class="post-metadata">

**Author:** ![cstawarz](https://yyz1.discourse-cdn.com/flex031/user_avatar/mworks.discourse.group/cstawarz/32/3_2.png) [@cstawarz](https://mworks.discourse.group/u/cstawarz)\
**Post date:** [April 12, 2017, 1:31pm UTC](https://mworks.discourse.group/t/range-replicator-wont-accept-expression/419/2 "2017-04-12T13:31:19Z")

</div>

Hi Rosilari,

The attached example demonstrates one possible alternative. It defines a top-level stimulus group (`images`) that contains a nested stimulus group for each monitor. The monitors are enumerated explicitly, but the images for each monitor are defined via range replicators. The protocol uses a global variable (`monitornumber`) to select the image set to use. This value of this variable can be saved to and loaded from saved variable sets.

This isn’t as elegant as your original idea. It also forces you to load the images for _every_ monitor every time you run. However, it does save you from having to create a separate protocol for every monitor.

If you have any questions, please let me know.

Chris

---

<div class="post-metadata">

**Author:** ![cstawarz](https://yyz1.discourse-cdn.com/flex031/user_avatar/mworks.discourse.group/cstawarz/32/3_2.png) [@cstawarz](https://mworks.discourse.group/u/cstawarz)\
**Post date:** [April 12, 2017, 1:31pm UTC](https://mworks.discourse.group/t/range-replicator-wont-accept-expression/419/3 "2017-04-12T13:31:19Z")

</div>

Attachment: [example.zip](https://mworks.discourse.group/uploads/short-url/jT3fxVkBtlBf7ZTI3GfSZTm2gzi.zip) (48.3 KB)

---

<div class="post-metadata">

**Author:** ![cstawarz](https://yyz1.discourse-cdn.com/flex031/user_avatar/mworks.discourse.group/cstawarz/32/3_2.png) [@cstawarz](https://mworks.discourse.group/u/cstawarz)\
**Post date:** [July 19, 2022, 9:59pm UTC](https://mworks.discourse.group/t/range-replicator-wont-accept-expression/419/4 "2022-07-19T21:59:31Z")

</div>

Closed on July 19, 2022, 9:59pm UTC


