This property lists which scripts are present on the current object or archetype. The scripts could be in any currently loaded .osm module; typically, gen.osm and convict.osm are always loaded, but in many cases a mission-specific module (e.g. miss10.osm) or, more commonly these days, a custom script module may be loaded also. Examples of custom modules include custom scripts by NamelessVoice, Telliamed and the older scripts by Gaylesaver (Vadim Kokielov).
There are only four boxes available for scripts on a given object or archetype. However, the hierarchy is enforced, meaning that scripts present in the S→Scripts property on all parents of a given archetype are also active for that archetype.
When more than four scripts are needed on an archetype, generally the first four are placed on one, and a child archetype is created containing up to the next four, etc. Look at the Human archetype and its children in dark.gam for an example.
This inheritance chain can be broken by ticking the ”
Don’t Inherit” checkbox under this property. In essence, doing so means that the only scripts active on the given object are those in its Scripts property. Children of an archetype with ”
Don’t Inherit” checked will have as active their own scripts, and those on all archetypes between and including the one with ”
Don’t Inherit” checked. All scripts on archetypes above the one with ”
Don’t Inherit” checked are not active for that child archetype.
The parent Scripts properties are read first from the metaproperties (and parents of the metaproperties). Then the scripts from the immediate parent are read. If the ”
Don’t Inherit” flag is on when a property is read, then no more properties will be read. For this reason, you should not use ”
Don’t Inherit” in metaproperties.
If a listed script is not found in any loaded modules, no error is given, not even in the monolog.