Version: 1.0.110407

Layered modo Config Setup


BACKGROUND


This article will show you how to setup and configure modo so you can work with the same configuration on several computers. It will also show how users can share configs, scripts and tools. This setup is designed to work for single users as well as at large studios. It will also allow you to maintain all your configurations when switching between modo versions.

This setup will also allow you to have a shared Asset folder that everyone at the studio will be able to access.

CONCEPT


The modo config architecture allows for a layered custom setup. This allows for different setups depending on user. For example, you may have one setup for all modelers, one for all animators etc. but also one base resource setup that every user will have access to.

1-You'll have one area that is going to be imported by all users. Here you're going to place scripts, plugins, layouts and other configurations that all users are going to be accessing. This folder is going to be placed on a server, network drive or other shared location.

2-You'll have one area that's going to be private for each users, where personalized tools and layouts are going to be stored. This folder is also going to be placed on a server, network drive or other shared location. This is so you can access this folder both from a pc, mac or your laptop.

You'll also have one locally stored area. Here you'll have, temp files, auto saved scenes, render buckets and more.

To be able to remap modo to each of these areas/paths you'll have two options, either you'll be making environment variables or some kind of script (either a shell-script or a python-script).

HIERARCHY


Keep in mind that you're free to make your own folder structure. But here's one example.

This is how the hierarchy at the server is going to look like:
_Library > modo > resources users
In the resource folder you'll be storing configs that every user will be importing and in the users folder you're going to have configs that are specific for each user.

Lets take a closer look at the resource folder:
resources > 501 > configs scripts plugins
And this is how the users folder looks like, here all different modo users will have one folder each (fs = Fredrik Stenson) :
users > 501 > fs > _Laptop_osx > os_spec _Laptop_win > os_spec _Tower_osx > os_spec _Tower_win > os_spec Configs Scripts Plugins License Startup
All the folders with a underscore "_" in front of the name is either computer or OS specific. In these folders your user config file is going to be saved every time you close modo. In this file modo saves everything, layouts, keys, last used tool, etc. (These are the things you want to extract to individual config files.) In the same folder you'll have a folder called os_spec that's going to import files that are specific for each system, i.e. temp folders, render buckets folder etc. In this folder I also have config files that tell modo other system specific things. Like which layout to start up with, due to that I want one layout on my laptop and another on my workstation.

The Configs and Scripts is the user:scripts and users:configs folder. Which by default are placed:
On OSX: <user name>/Library/Application Support/Luxology/
On Windows: C:\Documents and Settings\<user name>\Application Data\Luxology\

In the Startup folder you'll have startup scripts to launch modo and remap modo to all of these custom paths.

You'll also have a set of folders stored locally on the computer. This is due to the fact that these files needs to be written and accessed with as high speed as possible, so it's not ideal to have them on a server or network drive.

In the root of my main HDD I have a modo folder:
modo > autoSave buckets frames temp
modo will save files to these folders that it needs quick access to or needs to be able to write fast to.

IMPORT


By default modo is going to be looking in the users Config folder _Library > modo > users > fs > 501 > Configs. So this where we'll place a config file that will import the recourse folder. In the os_spec folder we'll be importing all the locally stored folders. And in the resource > Config folder you'll be able to import KITs from the Asset folder that all users have licenses for.

The config files that are importing folders will be called app_paths.cfg. Lets take a look at how these files are looking in each folder.

- _Laptop_osx > os_spec > app_paths.cfg Here you can see that all import paths are pointing to a local place on my HDD.

- User > Config > app_paths.cfg Here I'm importing the resource folder. Every import here is a relative path so it's doesn’t matter if you are on a pc or mac, modo will always find these folders.

- Resources > 501 > configs > app_paths.cfg Here I'm importing the os_spec folder, because all the user is going to need this folder. This way I don't need to add that import command to every user, I just add it once and everyone gets their os_spec folder imported. Here you can also import kits from the asset library, that every user has licenses for.

START UP


This is the final part of our custom layered config setup. How to remap modo's default paths. We have two ways to do this. The easiest way is to create some sort of shell script with startup flags, that points modo to the paths we want. The second way is to use environment variables, with this way you're not limited to start modo through a script. You can instead just double click on either the executable or a lxo file. But at the same time it's useful to have a script, if you want to launch modo on a computer with either no environment variables set or with the variables pointing to the wrong user directory. The script with startup flags are overwriting the environment variables so if you're using another computer you could still get your personalized configs.

These are the modo paths that need to be remaped:
License - This is where modo finds the license files.
Prefs - This is where modo is going to save the user config file when modo closes.
User - This is where modo will find the user Configs and Scripts folders.
Temp - This is where modo writes all temp files.
Asset - This path is to the modo asset folder.
Content - This path is to the modo content folder.

If you're using the hierarchy I've shown, your paths should be mapped as following:
License - server > _Library > modo > Users > fs > 501 > License
Prefs - server > _Library > modo > Users > fs > 501 > _Laptop_osx
User - server > _Library > modo > Users > fs > 501
Temp - modo > temp
Asset - server > _Library > Assets
Content - server > _Library > Assets > Content

Here you can download python scripts that will launch modo with a startup flag that will remap all of modo's search paths. You need to open it in a text editor and make sure all the paths are pointing to the the right places.
Download

The environment variables are pretty easy to setup, the thing to know is what they're called:
NEXUS_LICENSE - This is where modo will find the license files.
NEXUS_USER - This is where modo will find the user Configs and Scripts folders.
NEXUS_PREFS - This is where modo is going to save the user config file when modo closes.
NEXUS_TEMP - This is where modo write all temp files.
NEXUS_ASSET - This path is to the modo asset folder.
NEXUS_CONTENT - This path is to the modo content folder.

The way to declare these variables on windows is by going to:
Click Start
Right-click Computer and select Properties
Select Advanced System Settings
Environment Variables button

You want to add the NEXUS variables as user variables, and it's in the value that you want to add the path to the different folders.

On osx you need to add a folder in your home directory, where you add a plist file with the NEXUS variables. So this is the path to the file:
~/.MacOSX/environment.plist

And this is what the file should contain: I've created a python script that will automate this process, before running the python script you need to edit the environment.plist to point to the right folders, then run the script. Now the folder will be created in the home directory and the environment.plist will be copied to that pah.
Download