Introduction
Building Plug-in Bundles
Format of the
Root File
Installation Read Mes
Folder Structure Conventions
Creating Bundles in a Project
Example Files
To simplify distribution, plug-ins can be packaged into a .seplugin file, which is an archive that bundles together all of the files that make up the plug-in. The file can be in one of three formats:
Alternatively, the ZIP file can be placed in a special "Web-safe" wrapper that is easier for end users to download. (The wrapped format also makes it possible to support possible high compression formats in the future.) Both compiled class and script file plug-ins can be distributed in as plug-in bundles. At start-up, Strange Eons will search for plug-in bundles in the following folders:
Note: to prevent multiple copies of script plug-ins from being launched, it is recommended that you use a single folder to store all of your plug-ins. The SE Plug-in Manager normally installs all plug-ins to the .strange-eons-plugins folder, so it is best if you do the same. The other options are provided for debugging purposes and for advanced uses such as sharing plug-ins between multiple users.
When a .seplugin or .seext file is found, SE looks inside of it for a file named eons-plugin, which lists the plug-ins that it contains. If it exists, the plug-in file will be added to the class path, and the plug-ins inside will be started automatically unless they appear on the list of uninstalled-plugins in the user's settings. This means that new plug-ins can be installed by simply copying them to one of the above folders, which is useful during debugging.
When the user installs an .seplugin file from the Toolbox Manager (or by dragging and dropping on the SE application window), the plug-in file is first copied to the one of the above locations (they are tried in the order listed, which means that they are normally installed to .strange-eons-plugins). If this succeeds, then the plug-ins it contains will be removed from the user's uninstalled-plugins list (if they are on it), and the plug-in directories re-scanned. When the user uninstalls a plug-in, it will be added to the uninstalled-plugins list, which prevents it from being "discovered" during a plug-in folder scan. Plug-ins on this list will therefore not be started automatically even if the .seplugin file could not be deleted.
Plug-in bundles are normal ZIP files with two special rules: first, they must include the special text file eons-plugin that lists the plug-in classes that the bundle provides, and second, they use the extension .seplugin (or .seext for extension plug-ins). A command-line tool for creating bundles, pack, is included in the tools folder. Alternatively, you can use any program that creates ZIP archives. Just zip up the plug-in list file along with the script. Make sure that the plug-in list is not stored inside a folder: it must be in the root directory of the archive.
Lines whose first non-space character is a "#" or "!" are considered comments. Each non-empty, non-comment line names one plug-in. Classes are listed as their fully qualified class name (package1.package2.Class), while scripts are listed by following the prefix script: with the path to the script file, relative to the root of the ZIP file (folder1/folder2/Script.js). It is generally best to stick to one plug-in per bundle, as this makes .
An installation read me is an optional HTML file that may be included in a plug-in bundle. When the plug-in is installed by the user, the installation read me is automatically displayed in a small window (starting with 2.00a16). (This occurs only if the plug-in is installed using Strange Eons, not if it is copied to a plug-in folder). To create an installation read me for a plug-in bundle, simply include a file named install.html in the root folder. You can also include localized versions of the read me by including additional files with names of the form install_xx.html, where xx is the language code for the language of the localized file. SE will prefer a read me with a language code that matches the UI language. If that is not found, it will use install.html instead.
In SE, most references to resources are made relative to the resources folder. Therefore, you will want to place most of your plug-in files inside a resources folder within your bundle. When the plug-in is loaded, its content is added to the class path, which effectively merges the contents of your bundle with SE's own files. To avoid name conflicts, create a subfolder within resources and place all of your plug-in's data files within that folder. It is recommended that you choose a folder name based on your name, initials, or the name of the plug-in to minimize the likelihood that your folder name will clash with other plug-ins or future versions of SE.
If you are developing your plug-in using a project task in Strange Eons, you can right click on the task folder and choose the Make Bundle command to create a bundle from the task folder. The project system also provides an easy to use editor for root files.