If this template helps then use it. If not then just delete and start from scratch.
OS (e.g. Win10): macOS Big Sur 11.6
PsychoPy version (e.g. 1.84.x): v2020.2.10
Standard Standalone? (y/n) If not then what?: y
What are you trying to achieve?:
I have two types of stimuli shown (long or short). Participants must respond “z” for long and “m” for short. I would like to provide feedback after some responses, but not all.
If they correctly respond for long, then I want there to be a 60% chance that a “correct +50 points” message appears afterwards.
If they correctly respond for short, then I want there to be a 20% chance that a “correct +50 points” message appears afterwards.
If they are incorrect, no message should appear and it continues to the next trial.
If they miss a response, I want there to be a “Too slow” message.
What did you try to make it work?:
In my feedback routine, I created a code component with the following code at each part of the experiment:
Begin experiment tab:
import random
rewarded = [ ]
msg = '.'
Begin Routine tab:
randomNumReward= random.randint(0,100)
if not userAnswer.keys:
msg="Too Slow"
rewarded=False
elif userAnswer.corr and smile_stimulus=="long" and randomNumReward <=60:
msg="Correct! + 50 points"
rewarded=True
elif userAnswer.corr and smile_stimulus=="short" and randomNumReward <= 20:
msg="Correct! + 50 points"
rewarded = True
else:
msg=None
rewarded = False
thisExp.addData('rewarded', rewarded)
Next, I added a text component (below the code component) in the same routine, where in the “Text” box I put “$msg” and set it to “set every repeat”.
Note: userAnswer and smile_stimulus are from the previous routine. “short” and “long” are in my conditions file under a column titled “stimulus”, which I entered in the smile_stimulus image box as $stimulus (set every repeat).
What specifically went wrong when you tried that?:
The experiment runs, but there are two problems:
- The message shown is always “default text” unless,
- When I purposefully omit a response, the text “Too Slow” appears, but on every subsequent trial, no matter what I respond, the “Too Slow” message appears
I’ve used a similar set up in previous experiments using the same version of psychopy/OS and did not run into this issue, so I’m a bit at a loss at what’s happening here. I’ve also read a few other similar posts, but didn’t find a solution that worked for me.
Side note: I already have a functioning version of this task written in python using the coder, but I need to run it on Pavlovia and ran into major problems with generating PsychoJS. I tried to sync a version to Pavlovia by copy-pasting the python code from the coder into a code component in the builder, but kept receiving syntax errors in the JS columns (even though it runs). So in the end, I decided to recreate it using the builder.
Any insight would be wonderful, thank you in advance