Feature Request: Max4Live / MaxMSP Outliner

Dirk Schiller's icon

Hi all, is there some kind of Outliner in MaxMSP / Max4Live ? Especially when working with UI and having many elements / controls which lay partly on top of each other it is very hard to select the desired element to manipulate it. i am looking for a kind of Outliner like in Figma, Photoshop, Blender, etc. Does Max has something similar ?

Figma Outliner

Outliner in Figma

Blender Outliner

Outliner in Blender

Roman Thilenius's icon

you could build yourself one based on the scripting names of the objects (wouldnt that feature need scripting names anway?).
assigning these scripting names by script-creating the objects in question ("opaqueslider01", "opaqueslider02",...) should work best for that.

as soon as everything has names you can have routines such as bringing all elements behind others to the front so that you can select them using a mouseclick...

Dirk Schiller's icon

Hey Roman, giving names via Scripting Name is a great idea but bringing stuff to the front to make it selectable and then back to the back is a nightmare as those elements / controls have a specific order, the moment you change that you have a very hard time to restore that order as there are only two options in Max, Bring to front and Send to back but nothing in between, that's why, apps use so called Outliner's. i am pretty sure for Cycling '74 it wouldn't be so hard to implement such Outliner in Max as they already need to handle layers anyways to make the Front and Back Konami work. And also the moment you implement functions like Bring to front and Send to back you have to think about a kind of layer system / Outliner otherwise you missed something fundamentally.

Marc Assenmacher's icon

I don't really know, what you mean by Outliner. Do you mean a form of grouping? I use [patcher] and [bpatcher] for this.

But I see the layer problem as well. Look at one of my patches – it is certainly possible, but keeping the [bringtofront] and [sendtoback] order right can really be a pain:


Dirk Schiller's icon

Great example, Marc! This really highlights how users are finding creative but cumbersome workarounds for the lack of an Outliner in Max. Instead of everyone reinventing the wheel, it would be far more efficient if Max itself provided this as a built-in feature.

Marc you can see Outliner in my first Message, the images from Blender and Figma. An Outliner is a Tree view that let you see and select items.

An Outliner isn’t just a convenience - it’s a fundamental tool in UI-heavy workflows. Other creative software like Figma, Photoshop, and Blender all include Outliners / Layers Overview for a reason: they make working with layered elements much faster, more intuitive, and less error-prone and even enable features that otherwise wouldn't be possible or very hard to archive.

Since Max already manages UI layering behind the scenes (evident in the "Bring to Front" and "Send to Back" functions), implementing an Outliner wouldn’t just improve usability - it would be a natural extension of the existing system.

Cycling ‘74, is this something you’d consider adding? It would be a game-changer for many users!

Roman Thilenius's icon

of course you are right about the order of elements issue, but i was really thinking only about situations where you have for example 2 rows of 16 GUI elements, and in these cases it should be possible to script-create them and then keep their order, i.e. not moving them around and exchange the fifth for the seventh. :)

actually i do not see how a built-in, automatic listing of objects could do that better, with such a feature in max you would also have the problem that you do not know which button is which when there are hundreds and the numbering system got scrambled.

for only two layers of objects 1. selecting all by dragging the mouse onto them 2. deselecting the higher level by shift-clicking on them individually and 3. moving the lower level stuff by 15 pixels in order to change something works well.

i know that for 3 layers it is more complicated.

how much GUI objects do you have in your patches? are you aware of bpatcher? are you aware of object grouping?

Dirk Schiller's icon

Hey Roman,

the problem you mention, that you don't know which button is which, gets resolved the moment you click that button in the Outliner, then it gets selected and focused in the patcher and you exactly know which one it is. Maybe you should give it a try and work with some Outliners to understand their concepts.

In my current prototype i have 50 GUI objects. And yes i am aware of the object grouping feature but that does not solve the issue. Also i checked bpatcher but that only wraps and injects another patcher, not sure how that should solve the layering issue. Not sure what you mean with automatic listing, an Outliner shows the order of elements in the patcher and let you select elements that otherwise wouldn't be selectable because another element is on top of it.

There is one shortcut in Max the helps a bit to reach elements that otherwise are not selectable, on macOS one can use the key combination cmd + arrow keys to navigate through all elements inside a patcher. That works okish but one has to navigate a lot with that as it sometimes is unpredictable which element it will choose next, depending on what arrow key you press. Also it seems there are commands like Bring Forward and Bring Backward - didn't see them. Those at least bring a bit more flexibility - would be nice to see those commands also in the right-click context-menu.

And thank you for your support Roman and Marc! Very appreciated.

Roman Thilenius's icon

uzi 100
sprintf samename%s
prepend script bringtofront

Dirk Schiller's icon

And yes if you want to group elements one can use bpatcher but an Outliner is not any kind of grouping it is a UI concept brought by the Application you are using, in this case Max and it let you control elements in a streamlined way.

An Outliner is a hierarchical list of all elements in a scene, workspace, patcher, or project. It is commonly found in software like Photoshop, Blender, Figma and others and is essential for handling and controlling elements efficiently.

Other examples for apps that use Outliners: Adobe Illustrator, 3ds Max & Maya, Unity & Unreal Engine, TouchDesigner, Houdini

What is an Outliner?

An Outliner is a dedicated panel that displays a structured list of all objects, layers, or nodes within a project. It allows users to:

  • Select elements easily without clicking directly on them.

  • Reorder elements in the stacking/layer order.

  • Show, hide, or lock elements to control visibility and editing.

  • Rename elements for better organization.

  • Group and ungroup objects for structured workflows.

How It Works in Other Applications

  • Photoshop: The Layers panel acts as an Outliner, letting users control the visibility, stacking order, and properties of layers

  • Blender: The Outliner panel lists objects in the 3D scene, allowing easy selection, parenting, and toggling of properties

  • Figma: The Layers panel functions as an Outliner, displaying UI components and design elements in a structured way

Why Max Should Have an Outliner

In MaxMSP/Max for Live, handling UI elements can become difficult, especially when elements overlap or are deeply nested. An Outliner would:

  • Allow users to select elements precisely, avoiding accidental clicks

  • Provide a clear overview of all UI elements in a patch

  • Offer ordering control beyond "Bring to Front" or "Send to Back"

  • Make debugging complex patches easier by organizing elements in a structured way

An Outliner is not just about grouping elements but about managing and navigating them efficiently. Many modern creative applications already use this approach, and it would significantly improve workflow in Max.

This is a general idea of what an Outliner looks like and how it is intended to function

You don’t necessarily need to stick to the term Outliner - it’s just one way to describe the desired functionality. Similar features exist under different names in various applications, such as Layers, Elements, Scene Explorer, Hierarchy, or Node Tree. The important part is not the name but the ability to efficiently view, organize, select, and manage elements within a project. Whether it's for UI components, objects in a 3D scene, or elements in a design tool, this kind of structured overview greatly improves workflow and usability.

i am pretty sure if someone from Cycling '74 would read this post they immediately understand the concept and know what is talked about.