Name
OPTIONS -- configure miscellaneous options (V4.5)
Synopsis
@OPTIONS table
Function
This preprocessor command allows you configure miscellaneous general options. You have to pass a table to this command that specifies which things you want to configure.

The following tags are currently recognized by @OPTIONS:

LockSettings:
This tag is obsolete since Hollywood 11. It has the same function as the console argument with the same name but since Hollywood 11 will always lock the settings by default, it doesn't make much sense to use it any longer. See the EnableArgs tag below which allows you to control console argument handling in Hollywood 11 and up.

SoftTimer:
If you set this tag to True, Hollywood will use a low resolution software timer instead of the high resolution hardware timer. This is sometimes necessary because with certain older Windows XP hardware, the timer may occassionally leap which can cause unexpected behaviour. This tag is only supported on the Windows platform. (V5.3)

NoCommodity:
If you set this tag to True, Hollywood will not add itself to the system's list of commodities on AmigaOS. This tag is only supported on AmigaOS and compatibles. Defaults to False. (V6.0)

RegisterApplication:
If you set this tag to True, Hollywood will register itself as an AmigaOS 4 application on startup through application.library. This is necessary if you want to call functions that deal with AmigaOS 4 application objects like SendApplicationMessage() or if you want your application to appear in AmiDock. To change the icon that is shown in AmiDock, use the @APPICON preprocessor command. This tag is only available on AmigaOS 4. Defaults to False. (V6.0)

DockyContextMenu:
This tag allows you to specify the identifier of a menu strip that should be used as a context menu for your application's docky in AmigaOS 4's AmiDock system. The menu strip you specify here must only contain a single menu tree without any sub menus. Hotkeys inside the menu strip are not supported either because they don't make sense in a context menu that isn't always visible. Please note that setting this tag will automatically make your application appear as an app docky in AmiDock. See AmiDock information for details on the difference between app and standard dockies. This tag is only recognized if RegisterApplication has been set to True and it is obviously only supported on AmigaOS 4. (V6.0)

DockyBrush:
This tag allows you to specify the identifier of a brush that should be shown as your application's icon in AmiDock on AmigaOS 4. Normally, you would use the @APPICON preprocessor command to configure your application's AmiDock icon but the DockyBrush tag can come in handy in one of the following situations: First, DockyBrush allows you to specify an arbitrary brush and thus you are not restricted to the predefined sizes made available by @APPICON. Instead, your application's docky icon can be of any size you want. Second, if you use DockyBrush Hollywood will automatically create an app docky for you whereas using @APPICON would create a standard docky (as long as your docky does not have a context menu attached). See AmiDock information for more details on the difference between app and standard dockies. This tag is only recognized if RegisterApplication has been set to True and it is obviously only supported on AmigaOS 4. (V6.0)

NoDocky:
If this tag is set to True, Hollywood will not show your application in AmiDock. This tag is useful if you would like to have an invisible application that can use all the application functionality like the message mechanism and Ringhio but doesn't appear in AmiDock. This tag is only recognized if RegisterApplication has been set to True and it is obviously only supported on AmigaOS 4. (V6.0)

Encoding:
This tag can be used to set the script's character encoding. Note that you have to put this statement at the very beginning of your script or there will be problems. The following character encodings are currently supported:

#ENCODING_UTF8:
Script's character encoding is UTF-8 (with or without BOM). This is also the default and should be used whenever and whereever possible.

#ENCODING_ISO8859_1:
Script's character encoding is ISO 8859-1. Note that due to historical reasons Hollywood will not use ISO 8859-1 character encoding on AmigaOS and compatibles but whatever is the system's default character encoding. #ENCODING_ISO8859_1 will put Hollywood in legacy mode and should make your script fully compatible with Hollywood versions older than 7.0. However, since ISO 8859-1 mode has several drawbacks, it isn't recommended to use this legacy mode permanently. Instead, you should adapt your scripts to work correctly in Unicode mode.

Note that it isn't recommended to use #ENCODING_ISO8859_1 because Hollywood will only run correctly on locales compatible with Western European languages then. You should always use #ENCODING_UTF8 because this will put Hollywood in Unicode mode and make sure that Hollywood runs correctly on all locales. Since #ENCODING_UTF8 is also the default, you normally don't have to use the Encoding tag at all.

The encoding you specify here is automatically set as the default encoding for both the text and string library using SetDefaultEncoding(). This means that all functions of the string and text libraries will default to this encoding. (V7.0)

NoChDir:
By default, Hollywood will always change the current directory to the directory of the script or applet it is currently running. Pass this argument if you don't want this behaviour. In that case, Hollywood won't change the current directory when running a script. (V7.1)

EnableDebug:
If this tag is set to False, the commands DebugPrint(), DebugPrintNR(), Assert(), DebugOutput() and @WARNING will be ignored. This allows you to globally disable debugging functions with just a single call. When compiling scripts Hollywood will set EnableDebug to False by default. This is the recommended setting because it will prevent people from reverse engineering your projects because they won't be able to activate debug output by specifying the ‘-debugoutput’ console argument. When running scripts, EnableDebug defaults to True to allow you to debug your scripts. (V7.1)

GlobalPlugins:
On AmigaOS and compatibles, plugins can also be globally installed in LIBS:Hollywood. Executables compiled by Hollywood, however, will only look for plugins in the same directory as the executable by default. If you want your compiled executables to look for plugins also in the LIBS:Hollywood directory, set the GlobalPlugins tag to True. Setting this and the AutoLoadPlugins tag to True will make executables compiled by Hollywood load all plugins in LIBS:Hollywood on startup as well, not just the ones in the executable's directory. Obviously, this tag is only supported on AmigaOS and compatible platforms. Defaults to False. (V9.0)

DPIAware:
This tag is only supported on Windows. If you set it to True, Hollywood will start in DPI-aware mode. This means that it will not ask the OS to automatically scale Hollywood to fit to the monitor's DPI. If DPIAware is set to False (which is also the default), Hollywood will automatically apply scaling on high-DPI monitors so that its display doesn't appear too small on them. For example, a display of 640x480 pixels will appear really tiny on a high-DPI monitor. By automatically adapting displays to the monitor's DPI, Hollywood will try to avoid this. However, that scaling can make displays appear blurry on high-DPI monitors. So if you don't want that, set DPIAware to True. Note, however, that you'll need to take care of making sure that your display appears correctly on high-DPI monitors then. You can do this by setting the SystemScale tag in the @DISPLAY preprocessor command, for example. Note that DPIAware is only supported on Windows. On all other platforms Hollywood is always DPI-aware. (V9.0)

ConsoleMode:
If you set this tag to True, Hollywood will compile an executable that runs in console mode on Windows or macOS. On Windows, there is a distinction between console and non-console programs so if you want to compile a program for the console, you will explicitly have to tell Hollywood to do so. You can do that setting this tag to True. On macOS, all applications that have a graphical user interface are normally stored inside a so-called app bundle, which is basically a directory containing the app's main executable as well as some resources like icons and a description of the app. When compiling for macOS and ConsoleMode is set to True, Hollywood won't create such an app bundle for you but instead just a single macOS executable for console use will be compiled. Note, however, that on macOS executables that aren't stored inside an app bundle shouldn't try to use GUI features like opening windows etc., they should be strictly limited to the console. Also note that on arm64 macOS you must codesign executables compiled using the ConsoleMode option because they will always be monolithic (see the description of the ‘-forcemonolithic’ console argument for more information). Note that this tag is obviously only handled when compiling executables for Windows or macOS with Hollywood. Otherwise it is simply ignored. Defaults to False. (V9.0)

Quiet:
If you set this tag to True, Hollywood won't show its traditional startup output but will start quietly. When running Hollywood applets that have Quiet set to True using the Hollywood Player for Amiga and compatibles, the player also won't open its startup window. Defaults to False. (V9.0)

UseWPA:
When running on AmigaOS and setting this tag to True, Hollywood will use device-independent bitmaps instead of standard OS bitmaps. Device-independent bitmaps are normally slower than the standard OS bitmaps with the exception of WinUAE and AROS which both can lock OS bitmaps only pretty inefficiently. Thus, on WinUAE and AROS, UseWPA is activated automatically to speed up Hollywood. If you want to turn this off, set UseWPA to False. Please note: UseWPA is a low-level argument which is primarily here for testing purposes. Normally, you should not have to deal with this directly. This tag is only supported on AmigaOS. Defaults to False, except on WinUAE and AROS where it defaults to True. (V11.0)

NoPlananarama:
By default, Hollywood will activate the Plananarama plugin when it is running on a non-RTG screen on AmigaOS 3. This is a convenience feature so that you can simply run all scripts without any modifications on non-RTG screens on AmigaOS as well as long as you have Plananarama installed. If you don't want Hollywood to activate Plananarama automatically on non-RTG screens for some reason, set this tag to True. Of course this tag is only meaningful on AmigaOS 3. Defaults to False. (V11.0)

EnableArgs:
By default, programs compiled by Hollywood won't handle any of Hollywood's standard console arguments. If you don't want that, set the EnableArgs tag to True. If you do that, programs compiled by Hollywood will handle Hollywood's standard console arguments which makes it possible, for example, to change the display mode from the command line by passing either the ‘-window’ or the ‘-fullscreen’ arguments and it's also possible to configure various other things like window style, backfill settings, and so on. If you want to allow all that, set EnableArgs to True. Defaults to False. (V11.0)

AutoLoadPlugins:
Starting with Hollywood 11, only the plugins that the script has explicitly declared as required by using respective calls to the @REQUIRE preprocessor command will be loaded by default. If you want your script to automatically load all installed plugins, set this tag to True. This tag also affects compiled programs. By default, programs compiled by Hollywood won't load any plugins that are stored in the same directory as the program's executable unless they have been declared as required using the @REQUIRE preprocessor command. If you don't want that, set this tag to True. In that case, all plugins that are stored in the same directory as your program's executable will automatically be loaded on startup. This can be useful if you want to allow the user of your program to dynamically add or remove plugins as he wishes. On AmigaOS and compatibles you may, additionally, also want to set the GlobalPlugins tag to True. In that case, compiled programs will also automatically load all plugins from the LIBS:Hollywood directory. Defaults to False. (V11.0)

CompressToTmp:
When running compressed applets or executables, Hollywood will use your system's memory for uncompressing the data. Normally, this shouldn't be a problem but in case your project is very big and the memory on the target platform is limited (e.g. on AmigaOS 3), you can set this tag to True. In that case, Hollywood will store the uncompressed applet in a temporary file on HD instead of uncompressing to memory. Defaults to False. (V11.0)

NumChannels:
By default, Hollywood allocates 8 audio channels for sound playback. This means that Hollywood will run out of channels in case your script tries to play more than 8 different samples, music objects, or video streams at a time. If your script needs more than 8 channels for some particular reasons, you can use this argument to tell Hollywood how many channels it should allocate. Defaults to 8. (V11.0)

LegacyAudio:
This is only supported on AmigaOS. Starting with Hollywood 6.0, the AmigaOS versions of Hollywood come with a new audio driver. The old audio driver is still supported and can be enabled by setting this tag to True. Please note that on Amiga OS 3.x the old audio driver is enabled by default due to performance reasons. If you would like to use the new audio driver on AmigaOS 3.x too, you have set this tag to False. On AmigaOS 3.x this tag defaults to True, on the other AmigaOS compatible platforms it defaults to False. (V11.0)

ForceMonolithic:
When compiling executables for macOS arm64 and this tag is set to True, Hollywood will link all data files to the executable instead of storing them separately in the app bundle, which is the default behaviour when compiling for arm64 macOS to work around the problem that all executables on macOS arm64 must be codesigned, which is not possible in a platform-independent way but must be done on a macOS system using Apple's proprietary tools. So if you set this tag to True, remember that you must manually codesign the executable generated by Hollywood or macOS will refuse to run it. Note that for all other platforms (including the PowerPC, x86 and x64 targets for macOS) Hollywood will always create monolithic executables, i.e. executables that have all data files linked to them. It's only the arm64 platform of macOS which is not monolithic by default because those executables need to be codesigned and if Hollywood linked data to them, the old code signature would become invalid, which is why Hollywood doesn't do that by default but works around it by storing the data files externally. Defaults to False. (V11.0)

Compress:
If this tag is set to True, Hollywood's compiler will compress the applets and executables it generates. This is especially effective when using Miniwood because all Miniwood libraries linked to the executable will be compressed as well which can significantly reduce the executable size. Defaults to False. (V11.0)

Inputs
table
table specifying desired options (see above)

Show TOC