Input TAG Pragma - theRAPTLab/gsgo GitHub Wiki

Make sure you read the Input Overview first!


You can define different Input controls for agents.

Setting the input source is handled via GEMSCRIPT.

The # TAG pragma is used to define project parameters, including the Input source.

# TAG currently supports three keys:

  • isCharControllable
  • isPTrackControllable
  • isPozyxControllable

It works like a Map/Dictionary object where you set a key and a value

# TAG <key> <value>

e.g.

# TAG isCharControllable true

Typically you would insert TAGS right after the BLUEPRINT pragma. For example, if you wanted Fish to be controllable by CharControl, PTrack, AND Pozyx, use:

# BLUEPRINT Fish
# TAG isCharControllable true
# TAG isPTrackControllable true
# TAG isPozyxControllable true

You can use multiple TAGs in a single blueprint.

Convert old is****Controllable settings.

If you have old *.gemprj files that still use JSON to define inputs, you'll need to convert them. For each of your old *.gemprj files, you're going to want to remove all the key/value pairs and replace them with TAG statements.

e.g. from this:

    {
      "id": "Worm",
      "label": "Worm",
      "isCharControllable": true,
      "isPozyxControllable": true,
      "scriptText": `# BLUEPRINT Worm
# PROGRAM DEFINE
...

to this:

    {
      "id": "Worm",
      "label": "Worm",
      "scriptText": `# BLUEPRINT Worm
# TAG isCharControllable true
# TAG isPozyxControllable true
# PROGRAM DEFINE
...
⚠️ **GitHub.com Fallback** ⚠️