Asked
In the settings section of the Personality Generator skill in Synthiam ARC, there is a checkbox labeled "Disable While Moving" located just below the timing interval settings. Can someone explain what happens when this box is checked? Specifically, does it pause all other scripts within this skill while a current script is executing, or does it only pause scripts when a motor movement is occurring?
I am asking because I have multiple scripts within the Personality Generator skill, and each script runs different motors, servos, and other animations. My goal is to prevent the other scripts from executing while one is currently running. How does this checkbox affect that process?
Related Hardware EZ-B v4
Related Controls
Personality Generator
Sabertooth Kangaroo

Short answer
Explanation + recommended fixes
How to guarantee only one personality action runs at a time If you want to ensure no other personality scripts run while one is active, use a global lock (variable) in each personality script. Also check movement if you want to respect the Movement Panel. Example JavaScript you can paste into the Personality Generator commands (or call as a script):
Notes about the example
Alternative strategies
Where to edit this in ARC
Would you like:
Tell me which behavior you prefer and whether you want pure JavaScript or Python and I’ll provide the exact script to drop into your Personality Generator.
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
Thanks for the information and the work around idea and script. I don't want commands sent to the robot to move or say anything other then what the personality script is preforming at the time. Keeps problems and odd things happening down to a minimum. All my motor movements commands are sent through scripts. I don't use movement panels.
You won't need to check whether another script is already running, since only one script can run at a time. Athena's code would only be helpful if each script ran individually and included long-running scripts. When a new script runs, it stops/cancels the previous script.
Thanks - good details. Since you do not use Movement Panels and all motion is issued from scripts, the strategy is simple: prevent other scripts (including other Personality Generator entries) from starting while one personality action is executing.
Two reliable approaches you can use (or combine):
Recommended robust pattern (combine both): Pause the Personality Generator, set a lock, perform actions, then clear the lock and unpause. Put this at the top/bottom of each Personality Generator script entry so nothing else in the Personality Generator interrupts or triggers while your action runs.
JavaScript template to paste into a Personality Generator script (edit your actions in the ACTIONS block):
Notes and important caveats
How to add this into ARC
Documentation links
Want me to:
Tell me which and I’ll drop the exact script.
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
Here's what I have in the Personality Generator (PG) and my concerns. Kind of thinking out loud here.
I have about 12 individual scripts in the personality generator. Most of the scripts sends speed and position commands to one or two Sabretooth motor controllers that have a Kangaroo's attached. Some of these scrips are long running and the motor movement runs longer then the script does (through the ST/Kangaroo)
I don't want the Personality Generator to start another script and send more then one command to any Sabretooth/Kangaroo that is already running a movement command from a previous script started by the PG.
As you probably recall I'm having disconnects on one of my EZB's. I've slowed down the PG's time interval to not trigger any of it's scripts until the longest running script I have in there would end. I actually had it set to trigger scripts fairly often. 60sec min / 120 sec max. slowing it down to two minuets Min / 3 minuets max has actually seemed to have helped the disconnect issue (fingers crossed). I haven't experienced one disconnect today since I made the change.
In addition, as a fail safe, I thought I'd add the check and script stop for each script in the PG so the scripts wouldn't overlap and send mutable commands to the Sabretooth's. However you say the PG will stop the first script if a second one is triggered. I'm still concerned about sending a movement command to the Sabretooth that is already moving a motor.
Thinking this through, I guess the PG wouldn't know when the Sabretooth is running or has stopped. It would only know when one of it's own script is finished. I have some ST/Kangaroo motor movements that finish long after the script that commanded the ST has ended.
Furthermore, I guess I need to contact Dimension Engineering to see what happens to the controller when a second command is sent while the controller is already moving. You would think they have an exception for this and it's not even an issue.
Good summary - you have the exact concern: the Personality Generator (PG) can start a new personality script while hardware motion (commanded earlier) is still active on the Sabertooth/Kangaroo. Because your motion is driven entirely from scripts (not a Movement Panel) the PG only knows when its script finishes - it does not automatically know whether the motor controller is still driving motors after that script exits.
You have three practical options to prevent "overlapping" motor commands to the Sabertooth/Kangaroo. I’ll give the tradeoffs and drop-in JavaScript templates you can paste into each Personality Generator entry (via the kebab menu) so the PG will not send a second command while hardware is still moving.
Links
Options - choose one or combine
Use this if you don’t have reliable hardware feedback or don’t want to poll the Kangaroo.
JavaScript (paste into each PG entry; edit MAX_MS as needed):
How to implement
Generic polling JS skeleton (replace the query / parser with your controller specifics):
If you paste Kangaroo serial command examples or tell me how you send the Sabertooth/Kangaroo commands (Hardware UART / Software Serial / PC COM / ControlCommand to a Sabertooth skill), I will supply the exact query bytes and parse logic.
Example (place at top of other scripts):
Other useful techniques and notes
Next steps - tell me:
Tell me those details and I’ll produce exact JavaScript you can paste into each Personality Generator entry (or a Python version if you prefer).
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.