Table of Contents

Every extension declares the version of Transcendence that it is compatible with. This allows the Transcendence engine to maintain the greatest level of compatibility while still adding new features and evolving the API.

Starting with Transcendence version 1.08e, the method for declaring the compatibility version has itself changed. An extension using 1.1+ features must declare itself compatible by adding a new property in its root element:

<TranscendenceExtension ...
   apiVersion="{version}"
   ...
   >
...

Where {version} is a the version number of the API that the extension is compatible with. If the extension runs on an earlier engine that doesn't support the given API version, then the engine will refuse to load the extension. Conversely, if the extension runs on a later engine with a later API, the engine will try to preserve API compatibility with the extension's declared API version.

For example, an extension with apiVersion=“13” is declaring that it requires Transcendence 1.2 Alpha 1 to run. And that if it runs on a later version, it should use API version 13 compatibility (even if later versions change the API in some way).

Extensions may still use the older version property to specify that they wish to be compatible with older versions.

The following API versions are implemented:

API Version 34

Transcendence 1.7 Beta 5

Full API spec on Ministry

API Version 33

Transcendence 1.7 Beta 4

Full API spec on Ministry

API Version 32

Transcendence 1.7 Beta 3

Full API spec on Ministry

API Version 31

Transcendence 1.7 Beta 1

Full API spec on Ministry

API Version 30

Transcendence 1.7 Alpha 2

Full API spec on Ministry

API Version 29

Transcendence 1.7 stream

Full API spec on Ministry

API Version 27

API Version 26

API Version 25

API Version 24

API Version 23

API Version 22

API Version 22

Transcendence 1.3 and above.

API Version 14

Transcendence 1.2 Beta 1 and above.

Dynamic Effects

Dynamic effects are visual effects whose parameters are modified at runtime. A dynamic effect uses the <GetParameters> event on an <EventType> to dynamically set the effect parameters. For example:

<EffectType UNID="..."
      instance="creator"
      >
   <Effect>
      <Ray
         style="..."
         ...
         >
         
         <Events>
            <GetParameters>
               (block Nil
                  ...
            
                  {
                     length: ...
                     width: ...
                     intensity: ...
                     }
                  )
            </GetParameters>
         </Events>
      </Ray>
   </Effect>
</EffectType>

In the above example, the parameters for the <Ray> effect are being set by the <GetParameters> function, which returns a struct. Each field in the struct represents a parameter in the <Ray> element to be set.

The instance parameter on <EffectType> defines when <GetParameters> is called to set the effect parameters. The valid instances are:

NOTE: As of API version 14, only the <Ray> effect supports dynamic effects.

Enhancement Devices

In previous APIs the <EnhancerDevice> element was used to define a device that could enhance other devices (weapons, shields, etc.) In API version 14 there is a new element, called <EnhancementAbilities> that may be added to any device class (e.g., a <Shields> device).

The <EnhancementAbilities> element may contain zero or more <Enhance> sub-elements, each of which defines an enhancement conferred on other devices. The <Enhance> sub-element has the following parameters:

New Functions

Updated Functions

Global Events

Missions

Object Ascension

Object ascension is used to move objects (stations and ship) across systems. At any time while in a system, you may call (sysAscendObject obj) on any object (except the player ship). The object will disappear from the current system and remain in the “ascended region”. While an object is ascended, it cannot be manipulated (the previous object pointer becomes invalid).

At any time in any other system, you may call (sysDescendObject objID pos) on a previously ascended object (you must use an object ID, returned by objGetID, instead of the object pointer). The ascended object will descend to the current system and continue operating as normal.

There is a new AI setting parameter: ascendOnGate=“true”. If set to true, an object will automatically ascend when it gates out. You may set this on a <AISettings> element on a <ShipClass> or dynamically set it with (shpSetAISetting obj 'ascendOnGate True).

Object Events

Object Properties

Ship Classes

Ship Interior

For capital ships and freighters you may use an <Interior> element to specify internal hit points and structure. Normally, a ship is destroyed whenever damage penetrates through any single armor segment. If a ship has interior structure, any damage that gets past the armor will be inflicted on the interior.

The interior of a ship consists of one or more compartments (defined by a <Compartment> sub-element). Each compartment starts with a number of hit points (defined by the hitPoints= parameter). A compartment may optionally define a size and position (using posX, posY, sizeX, sizeY in the same coordinate system as ship thruster effects). If a compartment does not specify a size and position, it is assumed to encompass the whole ship.

When damage penetrates the ship's armor, we check to see which compartment it hit (by position). That compartment takes the damage. If the compartment at that position already has 0 hit points, or if no compartment could be found at that position, damage passes to any compartment with a null position (any compartment that encompasses the whole ship).

When all compartments reach 0 hit points, the ship is destroyed.

A compartment may specify a type to define its purpose. Depending on the type, additional effects may occur when the compartment is damaged. The following types are implemented in API version 14:

If a ship has interior structure, devices are automatically subject to damage. If a device is hit and if the armor in that position has been reduced to 0, there is a chance that the device will be damaged permanently.

Ship Orders

Miscellaneous

API Version 13

Trascendence 1.2 Alpha 1 and above.

Devices

Stations

System Definition

New and Changed Functions

Miscellanous

Core Libraries

API Version 12

Transcendence 1.08e and above.

API Version 1.1

Transcendence 1.04 and above.

NOTE: You must use version=“1.1” to access this API version.

API Version 1.0

Transcendence 1.0 and above.

NOTE: You must use version=“1.0” to access this API version.