mmo3 is a simple command-line tool built to manage O3DE (Open 3D Engine) manifests for projects and engines.
If you're working with multiple versions of O3DE engines and their respective manifests, mmo3 allows you to effortlessly switch between them, create new manifest configurations, and manage project setups without manually copying files.
O3DE configurations are stored in JSON files (e.g., o3de_manifest.json), and it's often necessary to use different engine versions, project setups, or attached gems—all of which may require different manifests. MMO3 simplifies the process of switching between and managing these manifests stored in ~/.o3de.
- List available manifests: List all stored manifest files within the
~/.manifestsfolder. - Set active manifest: Switch the active
o3de_manifest.jsonby copying a stored manifest to the required location (~/.o3de/o3de_manifest.json). - Create new manifests: Generate new placeholder manifests that you can customize.
- Open manifests: Open any manifest directly in a text editor (defaults to
nanobut can be customized to another editor likevimorcode). - Duplicate existing manifests: Easily duplicate an existing manifest and give it a new name.
- Version checking: Quickly check the version of the
mmo3tool installed.
- Python 3.x
- Git
- Unix system
sudo apt update
sudo apt install python3 python3-pip
python3 --version
pip3 --version- Clone this repository:
git clone https://github.com/wc-robotec/mmo3.git
cd mmo3- Run the installation script :
sh ./install.shThis will check for the ~/.manifests directory and create it if necessary. It will then copy the mmo3.py script to /usr/local/bin/ for global access and set the appropriate executable permissions.
If you want to install the mmo3 script to a custom location (for example, if you don't have root permissions to write into /usr/local/bin/), specify your desired installation path as an argument to the installation script:
sh ./install.sh /your/custom/directoryEnsure that the specified installation path (e.g., /your/custom/directory) is added to your $PATH. For example, you can add it to your .bashrc or .zshrc:
export PATH=$PATH:/your/custom/directoryRemember to source your configuration file:
source ~/.bashrc # or source ~/.zshrcThe simplest way to start using mmo3 is by running mmo3 -h to check available commands:
mmo3 -h- List all manifests :
mmo3 -list # or mmo3 -lsThis will display all the manifest files stored in ~/.manifests.
- Set an active manifest :
mmo3 -set engine_v2.jsonCopies engine_v2.json from ~/.manifests to ~/.o3de/o3de_manifest.json, making it the currently active manifest.
- Create a new manifest :
mmo3 -new my_new_manifest.jsonCreates a new manifest file with some defaults in the ~/.manifests directory.
- Open a manifest (default nano) :
mmo3 -open engine_v1.jsonThis opens the specified manifest directly in nano for editing. If no specific manifest is provided, it will open the currently active one located in ~/.o3de/o3de_manifest.json.
- Duplicate a manifest :
mmo3 -duplicate engine_v1.jsonDuplicates an existing manifest and lets the user name the duplicated file.
- Check the version :
mmo3 -version- List all manifests when working on multiple projects:
mmo3 -lsOutput:
Available manifests:
- o3de_manifest_temp.json
- o3de_manifest_test.json
- o3de_manifest_2409.json <-- currently used
- o3de_manifest_23101.json- Set an active manifest for project work:
mmo3 -set o3de_manifest_2409.jsonOutput:
The manifest 'o3de_manifest_2409.json' is now set as the active one.- Create a new manifest for a new project you're working on:
mmo3 -n new_project_manifest.jsonOutput:
Created new manifest - 'new_project_manifest.json'mmo3.py manages the o3de_manifest.json required by Open 3D Engine (O3DE). It works by copying and replacing the manifest located at ~/.o3de/o3de_manifest.json with the JSON files stored in a separate directory (~/.manifests).
Here’s a breakdown of the basic functionality:
- Command-line arguments : The script takes arguments (like
-list,-set,-new) to instruct what action to perform. - Manifest directory management : Manifests are stored locally in
~/.manifests. These can be selected, created, and duplicated without manual file copying or renaming. - Active manifest : The active manifest file resides in
~/.o3de/o3de_manifest.json, replaced as needed when you switch between different configurations.
The tool is designed to streamline development across different engine versions, projects, and attached gems, by allowing quick swaps of configuration files.
GNU GENERAL PUBLIC LICENSE.
Everyone is permitted to copy and distribute verbatim copies of this product.
Have ideas for features? Found a bug? Feel free to open an issue or submit a pull request 😊