ArTchie Studios

Selection Groups

Saves the current Editor selection as a named group of GlobalObjectId strings and recalls it later.

Editor-only. Unity 2021.3+. Lives in Rivet.Editor (includePlatforms: Editor). No extra packages.

Editor window

ArTchie / Rivet / Selection Groups

Control What it does
Name Group name for save / rename.
Save selection Writes GlobalObjectId.GetGlobalObjectIdSlow for each Selection.objects entry into the named group (creates or replaces). Empty selection is allowed here.
Recall Loads any missing scenes additively, then Selection.objects = the objects that still resolve.
Rename Renames the selected group. Refuses if the new name already exists.
Delete Removes the selected group from disk.
Reload / Copy JSON / Write report Re-read the store, clipboard dump, or write <project>/RivetReports/selection-groups.json.

Store file: <project>/ProjectSettings/RivetSelectionGroups.json (created on first save). Missing file = no groups.

Batchmode (CI)

Unity -batchmode -nographics -quit -projectPath <proj> -executeMethod Rivet.SelectionGroups.RunBatch -rivet-action list -rivet-out <file.json>
Arg Meaning
-rivet-out <file.json> Output path. Default: <project>/RivetReports/selection-groups.json
-rivet-fail Exit code 1 if the action failed (also exits 1 on any action error)
-rivet-action list Dump groups (default if omitted)
-rivet-action save -rivet-name <name> Save the current selection under that name
-rivet-action recall -rivet-name <name> Select the stored objects
-rivet-allow-empty Required in batchmode to save a group when nothing is selected

RunBatch only calls EditorApplication.Exit when Application.isBatchMode is true. It logs count= and the output path.

Also accepts -rivet-out=file.json and -rivet-name=Cameras.

Recall of an unknown name, save without -rivet-name, or a batch empty save without -rivet-allow-empty exits 1. Recall of a non-empty group that resolves zero live objects also exits 1.

JSON

Report shape (RivetReports/selection-groups.json):

{
  "tool": "SelectionGroups",
  "generatedUtc": "2026-08-18T02:00:00Z",
  "count": 1,
  "items": [
    {
      "name": "Cameras",
      "ids": ["GlobalObjectId_V1-2-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-1-0"]
    }
  ]
}

On-disk store (ProjectSettings/RivetSelectionGroups.json) is { "groups": [ { "name", "ids" } ] } so it can be parsed without the report wrapper.

Notes

  • Scene objects (identifier type 2) need their scene loaded; recall opens those .unity assets additively.
  • Deleted objects / missing scenes stay in the id list but are skipped on recall.
  • Duplicate names are case-insensitive; save replaces the existing group.
  • Empty projects and a missing ProjectSettings or RivetReports folder are fine.
  • Does not modify scene contents. Does not touch runtime player code.

Source in the box: Assets/ArTchie Studios/ArTchie-Suite/com.artchie.rivet/Documentation/SelectionGroups.md