DEdit Objects - WildChargerTV/TRON-2.0-Security-Protocol GitHub Wiki

Objects in DEdit

A World of Brushes can be as vast and complex as you want, but alone, they are simply husks with no substance - an environment that the Player cannot leave, or do anything with. Additionally, they lack critical components that allow the game to process them. This is where DEdit Objects come in.

As the name implies, these are objects used by DEdit to breathe life into your World. A couple are required for a World to process and load properly once compiled; but all of the others serve as your toolbox to making a game out of your game.

Terminology

Before continuing, it's important to address how Objects are referenced inside of DEdit itself. DEdit Objects follow an object-oriented programming approach. Objects are defined as Classes, and upon selecting a Class, an Instance of the Class will be added into your World. However, for the sake of simplicity, this page will typically refer to them as Objects, and only use the aforementioned terms where the context may demand it.

Once instantiated and actively selected, its Properties will appear in the Project window, under the tab of the same name. The official documentation refers to these by a few different names, but in order to keep this documentation consistent, Properties will be assigned specific types corresponding to the type of input they require, although these are generally more complex than primitive entries as seen in the Attributes Files.

Hierarchy

DEdit Objects do indeed have a hierarchy, although very few Objects actually make use of it. The hierarchy is only visible from the World -> Add Object... window (bound to Ctrl+K by default). Take a look at the Prop Object as an example:
image
The Prop serves as a parent to multiple other Objects (most of which aren't used in TRON 2.0). The most notable of the descendants is the Finder Object under PropType - which you may know as the annoying little buggers from Legacy Code or Handshake.

Although this hierarchy isn't strictly necessary to keep track of in practice, it's a convenience for the documentation's sake, since it can prevent redundant Properties from being documented multiple times.

Property Types

Here's a general-purpose reference to all of the Property Types you might encounter in DEdit, ordered alphabetically.

  • Color: Provides a color value to an applicable Object. Opens a color selector pop-up window.
  • Flag: Alias for a Boolean value. A simple button toggles the flag between True and False.
  • Number: A text box input that only accepts numeric values. Properties that allow for floating-point values will show a visible decimal point by default; Properties which only allow integers will prevent the insertion of a decimal point automatically.
  • Object: An input that accepts another Object to establish an assignment or a relationship. You're given the option to type the Object's name manually, or use the B button at the right side of the field to open an Object browser pop-up window. The target Object must exist in the World, or the game may not run it.
  • Rotation: Exclusive to controlling the rotation of an Object in the World. Opens a pop-up window titled 'Rotation', where values for Yaw, Pitch, and Roll can be edited accordingly. It's not known at this time what the 'Auto Apply' field is for.
  • Selection: A drop-down list of options to select from. These can determine a specific relevant Attribute, or modify the behavior of the entire Object. Due to the wide range of contexts, it is best to read the definition for the specific Selection Property you're looking for.
  • Subset: A group of child Properties that contribute to the functionality of one of the Object's primary Properties. By nature, most Subsets are unique - check the definition for the specific Subset you're looking for to receive more insight.
  • Text: A text box input that accepts most alphanumeric characters. DEdit does not discriminate between single- and multi-line text inputs. A small button labeled with a period is provided to access a multi-line text input pop-up window.
    If a Text Property demands a specific input, it will be grouped into one of the below sub-types:
    • Command Text: A text box input that only accepts Commands.
  • Vector: Typically representative of values that position an Object in the World. Opens a pop-up window titled 'Vector Edit', where values for each axis can be edited accordingly. It's not known at this time what the 'Auto Apply' and 'Increment' fields are for.

BaseClass

A BaseClass is the root from which all other Objects are derived. In the Object hierarchy, this Object stands alone at the top level; however, it is for this reason that it will not be treated as on its own tier. All immediate children to this Object will be considered to be on the "first level" of the hierarchy. Additionally, the BaseClass' status as the root means that it has no unique functionality of its own; thus, it has no practical use case, and its direct instantiation is not recommended.

The following four Properties of BaseClasses are shared across all Objects.

  • Name (Text)
    • The Object's name and primary identifier. This input is NOT case-sensitive.
    • It's generally considered good practice to ensure all of your Brushes and Objects carry at least semi-unique names or identifiers; however, there are no restrictions on allowing multiple Objects to have the same name. Do so at your own risk.
  • Pos (Vector)
    • The Object's XYZ position in World coordinates.
    • As per DEdit building requirements, ensure all Objects and Brushes are positioned inside a bounding Brush alongside all other World contents.
  • Rotation (Rotation)
    • The Object's Yaw-Pitch-Roll rotation in the World.
    • Keep in mind that some Objects may ignore rotations for various reasons.
  • RenderGroup (Number)
    • Not to be mistaken for the RenderGroup Object.
    • Further research is needed on RenderGroups.
    • Official Description: The object render group that this object will be placed in. These groups can be turned on or off in order to control high level visibility of objects. Valid values are 0-255 with 0 commonly meaning no group.
    • Buy-n-large, this attribute appears to not be used in TRON 2.0, although this has not been fully researched.

AIInfoVolume

Official Description: Volumes placed to send information to the AI when a player is within the boundaries.

AIInfoVolume serves as the parent of two other Objects. The first, AIInformationVolume, acts as a clone to its parent; and as such, it is recommended for use over AIInfoVolume where possible for specificity. The second, AIVolumePlayerInfo, is defined on the AIVolumes page.

AIInformationVolume

No official description.

A functional clone to AIInfoVolume.

  • Dims (Vector)
    • The Object's XYZ (Length-Height-Width) size in the World.
  • Region (Object)
    • The AIRegion that the Object will send its data to.
  • SenseMask (Custom Attribute)
    • The name of the SenseMask to assign to the Object. SenseMasks are defined in AIButes.
  • On (Boolean)
    • Determines whether the SenseMask will be active when loaded into the World.
      • True: The Object will trigger the SenseMask when the Player enters the boundary.
      • False: The Object will still exist at runtime, but is functionally inert.

AIVolumePlayerInfo

Although too unique to be truly classified as an AIVolume, documentation has conflicts about its classification. Therefore, it has been grouped with the other AIVolumes to prevent confusion. See the AIVolumes page for more information about the AIVolumePlayerInfo.

AINode

See the AINodes page for more information about AINodes.

AIRegion

Official Description: Objects used to group the AI volumes into regions of a level. This divides the level into unique areas for the AI’s search behavior.

An AIRegion is pretty much entirely consistent of the volumes assigned to it; the only Attribute available to customise for a Region to directly control is PermissionSets, which has no observable use to an AI. Permissions dropped by an AI upon derez are assigned as CoreDumpItems, and not something provided to the AI itself.

  • PermissionSet (Permissions)
    • Assumed to provide default permissions to any AI that spawns within one of the Region's Volumes. Probably functional, but not recommended for use at this time.

AIVolume

See the AIVolumes page for more information about AIVolumes.

AmbientOverride

Official Description: You can assign an ambient value to brushes that are placed under this object in the objects properties. Note that individual brush ambient values are ignored when under this object.

Any Brushes that are parented to this Object will ignore default or environmental ambient lighting settings and instead abide by the AmbientLight property of this Object. This does not appear to have any uses in TRON 2.0 due to the nature of its existing lighting system, but remains an option to those who need it.

  • AmbientLight (Color)
    • The color of the ambient lighting to apply to all child Brushes.

AmmoBox

Official Description: AmmoBoxes are placed in the world as a powerup. Each Ammobox can contain up to ten different kinds of ammunition. This item was not used in TRON 2.0.

TRON 2.0 does not use an ammo system. All weapon ammunition is funded by the Player's current Energy level. No documentation will be provided for this Object, and its use is heavily discouraged unless you know what you're doing.

ArchiveBin

Official Description: Archive Bins are placed in the world as a means for the player to acquire subroutines or e-mails. Each item can have a separate energy and permission set requirement.

The official description is likely out of date. In TRON 2.0's Retail release, Archive Bins provide the Player access to Subroutines, E-mails, and Permissions. However, they are also capable of holding most other key items, including help files, procedurals, and primitives. Energy costs can be customized per-item, but the permissions required to access each item cannot vary.

  • ModelTemplate (Custom Attribute)
    • A pre-defined list of ModelTemplates available to use for an Archive Bin.
    • It is not currently known if this list can be manipulated. Further testing reequired. It is recommended at this time to stick with the default value ArchiveBin_1.
  • MoveToFloor (Boolean)
    • Determines whether or not the Archive Bin will attach itself to the closest Brush surface beneath it at runtime. Note that this does not apply any physics to the Object.
      • True: The Archive Bin will align itself with the first Brush it makes contact with beneath it.
      • False: The Archive Bin will remain where it was positioned in DEdit.
  • Radius (Number)
    • The maximum distance that the Player can be from an Archive Bin to permit downloads. Exiting this radius will abort any active downloads and terminate the connection to the Archive Bin.
  • StartCompressed (Boolean)
    • Unknown functionality.
  • OnUseCmd (Command Input)
    • A Command to execute when the Player connects to the Archive Bin.
  • InvalidPSetCommand (Command Input)
    • A Command to execute when the Player attempts to connect to the Archive Bin without the required permissions.
  • Item# (Custom Input)
    • Specifications for an Item to input into the Archive Bin. One Archive Bin can hold up to 6 items at a time.
  • PermissionSets (Permissions)
    • Defines the set of Permissions the Player must have in order to access the Archive Bin.

Item# Custom Input Options

  • Type1 (Custom Attribute)
    • The type of item that will be added to the Archive Bin.

Arena

Official Description: The Arena object is used to identify one of the four arenas for Disc Tournament and Disc Arena. Typically one Arena object is placed at the center of each Arena.

ArenaStartPoint

Official Description: ArenaStartPoints are placed in the multiplayer Disc Tournament and Disc Arena maps to identify points where players will spawn into the world.

BinaryBit

Official Description: The BinaryBit object is a multi-purpose switch of sorts that can be used to trigger events, open doors or send any type of message. A permission set required for activation can be specified.

Brush

No official description.

An Object representation of a DEdit Brush. Do NOT use this Object over an actual Brush; it provides no benefit and is overall less convenient. See the DEdit Brushes page for more information about Brushes.

BuildNote

Official Description: BuildNote objects can be aquired by the player to increase Jet’s version number.

CAI

No official description.

CAIHuman

Official Description: This is the object used to place AI in a level.

Camera

Official Description: Cameras show scenes in the world outside the player.

CameraPoint

Official Description: Camerapoints are used to provide points to move the camera to during cinematics.

CinematicTrigger

Official Description: This is a controller object used for cut scenes and in game dialog.

This Object does not exist in this version of DEdit. It may have existed in prior versions, but for TRON 2.0, regular Triggers just send messages to begin cinematics.

ClientLightFX

Official Description: ClientLightFX allow for the quick creation of complex dynamic lighting effects. However, dynamic lighting must be enabled for these effects to be visible.

CommandObject

Official Description: Objects placed to execute, track and time a series of events and/or commands.

Controller

Official Description: This object controls properties of up to 8 objects.

CThorne

Official Description: CThorne is a special object used to create the Thorne character during cinematics.

DeathmatchPowerup

No official description.

Decal

Official Description: An object to place decal textures under, allowing textures with an alpha channel to be placed overlapping standard textures.

DecisionObject

Official Description: An object placed to give the player multiple choices they can make.

DemoSkyWorldModel

Official Description: DemoSkyWorldModels allow objects to render in the skybox in a single step. A DemoSkyWorldModel is an object that fuses a WorldModel and a SkyPointer. By doing this, binding a brush to the one object allows it to be rendered in the skybox without the need for any additional objects.

Dialogue

Official Description: An object placed to message dialogue for the AI to use.

DirLight

Official Description: DirLights act like a spotlight, shining only within an arc that you specify instead of in a sphere like a regular light. You can aim them to any angle you choose.

DisplayMeter

Official Description: This is an incremental colored bar meter displayed on the screen. It is useful for “boss” fights.

DisplayTimer

Official Description: This object displays a timer on the screen in game.

DynamicOccluderVolume

Official Description: The object used to create a volume by placing a brush under it. When the player is in the volume, the occluders indicated in the volume will be active

EdgeGenerator

Official Description: This object can be used to bevel polygonal faces. In practice, it was rarely used in the creation of TRON worlds as it created too many polies.

EventCounter

Official Description: This object will store up to 5 different "events", with each event containing an integer value and two commands. The idea is that the game code can increment/decrement the EventCounter's value (by sending ”Increment” or “Inc” and ”Decrement” or “Dec” messages). When the counter’s value is equal to one (or more) of the EventXValue (i.e., Event1Value, Event2Value, etc.), either the EventXIncToValCmd or EventXDecToValCmd will be processes. In other words, how the counter gets to the EventXValue determines which command is sent. For example, if Event1Value = 2, and the EventCounter’s staring value is 0, if the EventCounter gets 2 “Inc” messages, the Event1IncToValCmd will be processed. If at this point the “Inc” message is sent again (so the counter is now at 3), and then the “Dec” message is sent to the counter, the Event1DecToValCmd will be processed. This object also understands the “Lock” and “Unlock” commands (Inc/Dec don’t have any effect on the counter if it is locked).

Explosion

Official Description: This is an object used to place explosion effects in the world.

AttachedExplosion

Mine

OptimizerExplosion

FastApproxArea

Fire

Official Description: This is an object used to create fire effects.

GameStartPoint

Official Description: This is the point that the player enters the game world.

GearItem

Official Description: This is an object used to place gear power up items in the world.

Group

Official Description: This is an object used when you wish to send the same message to several different objects at once. It acts as a simple relay.

InfoString

Official Description: The InfoString object causes a line of text to appear on screen when the player’s targeting reticule is trained on the object. For the string to be valid, it must be contained within the cres.dll.

InsideDef

Official Description: This object was not used in the creation of TRON 2.0.

No documentation will be provided for this Object.

IONode

Official Description: This object was used for the IONode dialogue scenes in TRON 2.0.

JumpVolume

Official Description: This object was not used in the creation of TRON 2.0.

No documentation will be provided for this Object.

Key

Official Description: This is an object used to define a point in the path of a keyframed object.

KeyFramer

Official Description: This is an object used to define a point in the path of a keyframed object.

Light

Official Description: This is a basic point light, or omni light object used to light the world.

See also: DirLight, ObjectLight.

LightCycle

Official Description: The Lightcycle object is used to create enemy AI Lightcyclists.

AILightCycle

No official description.

This Object acts as a single Light Cycle NPC. Their behavior is relatively similar to the CAIHuman Object. Although they can be placed to spawn immediately at runtime, this is highly discouraged in favor of using them as templates for Spawner Objects. This ensures a better Control Flow, especially for Light Cycle Maps designed for multiple waves.

  • Template (Boolean)
    • Official Description: Indicates that this object will not exist at runtime, and may be used as an object template for Spawner objects.
  • CycleColor (Custom Attribute)
    • The color (or texture) of the Light Cycle to apply to the AI. CycleColors are defined in LightCycles.
  • RezInFXDoneCommand (Command Input)
    • A Command to execute once the Rez-In FX is complete (in other words, the AI has fully spawned in and has just started moving).
  • Scripted (Boolean)
    • Unknown functionality.
  • StartPaused (Boolean)
    • Unknown functionality.
  • CrashCmd (Command Input)
    • A Command to execute at the moment an AI has crashed their Light Cycle.
  • RemoveCmd (Command Input)
    • A Command to execute once the AI has been derezzed and its Object is being removed from the World.
  • Behavior (Custom Attribute)
    • The preset behavior of the AI. This field has three options which cannot be modified:
      • aggressive: The AI will actively seek out and attempt to derez all opponents.
      • wander: The AI will mind its own business, but can decide to engage an opponent that happens to be nearby.
      • avoid: The AI will actively attempt to avoid confrontation. Any engagement with opponents usually comes about as a defensive measure.
  • NameId (Number)
    • Unknown functionality.
  • GoForward (Boolean)
    • Unknown functionality.

LightCyclePowerup

Official Description: This object is used to place Lightcycle powerups in the world.

LightCycleVolume

Official Description: Similar to an AIVolume, the LightcycleVolume defines where Lightcycle AI can navigate in a map. Unlike regular AI volumes, these volumes define the areas that Lightcycles should not go. For example, if you build a map with a column sticking up in the center, a LightcycleVolume should be placed around it to prevent the Lightcyle AI from colliding with it. These volumes should be placed parallel to the groundplane and flush with it.

LightCycleVolumeCascader

Official Description: When triggered, this object starts triggering the nearest Volumes, moving outward at a fixed rate.

LightGroup

Official Description: This object was not used in the creation of TRON 2.0.

No documentation will be provided for this Object.

Lightning

Official Description: This object was not used in the creation of TRON 2.0.

No documentation will be provided for this Object.

ModItem

Official Description: This object was not used in the creation of TRON 2.0.

No documentation will be provided for this Object.

NodeLine

Official Description: This object was not used in the creation of TRON 2.0.

No documentation will be provided for this Object.

ObjectiveSprite

Official Description: This object was not used in the creation of TRON 2.0.

No documentation will be provided for this Object.

ObjectLight

Official Description: This is a light that only affects models.

ObjectRemover

Official Description: ObjectRemover contains several "groups" of objects. For each group, you may list up to 10 objects. Specify how many groups of objects you wish to keep in the "GroupsToKeep" property.
On the first update, the ObjectRemover will randomly select the groups of objects it will keep (based on how many were specified to keep), and remove all the objects in all the other groups, and then remove itself.

Optimizer

Official Description: The Optimizer provides a means to upgrade a subroutine to the next level. Optimizers can be keyframed to follow paths or stationary.

OutsideDef

Official Description: This object was not used in the creation of TRON 2.0.

No documentation will be provided for this Object.

ParticleSystem

Official Description: Any time you want to spawn a large number of similar simple objects in one location or area, you probably want a ParticleSystem object. Particle systems create a cloud of objects, usually sprites or simple models. They can make the sprites move, determine the area where they appear and how long they remain after being created.

PatchRoutine

Official Description: This object provides a way for the player to replentish Health or Energy.

PlayerLure

Official Description: This object allows the player to be keyframed while still maintaining some degree of control.

Point

Official Description: This object was not used in the creation of TRON 2.0.

No documentation will be provided for this Object.

PolyGrid

Official Description: A polygrid is a grid of triangles that can have an animating surface. They’re used to simulate flags, curtains, water, force fields and many other effects.

PolyGridModifier

Official Description: This object was not used in the creation of TRON 2.0.

No documentation will be provided for this Object.

Prop

Includes sub-Classes: GadgetTarget, PropType (Finder Objects are within PropType) See the Props page for more information about Props.

RandomSpawner

Official Description: The RandomSpawner is used to spawn objects randomly through multiple Spawner objects.

It is not known why this is not a sub-Class of the Spawner object, but this documentation must adhere to the official structure.

RenderGroup

Official Description: Items placed under this object can be triggered to hide and unhide from within a DynamicOccluderVolume.

ScaleSprite

Official Description: ScaleSprites are free-standing textures that don’t need a surface to appear on. ScaleSprites get compounded into a lot of other game objects, but they can be used on their own to make a lot of things happen too. ScaleSprites are used for all kinds of things — halos around lights, floating symbols, decals on walls and objects in the sky.

ScreenShake

Official Description: The ScreenShake object shakes the camera when triggered.

SecRezzerPoint

Official Description: ICs will spawn at these points when the SecRezzer alarm is activated.

SkyPointer

Official Description: SkyPointer objects allow the objects that they target to render in the skybox of the level. Only WorldModel-derived objects and Sprites can appear in the skybox.

SoundButeFX

No official description.

SoundFX

Official Description: This object allows you to place sounds in the world.

Spawner

Official Description: This is a generic object used to “Spawn” objects into the game world.

SecRezzer

No official description.

Speaker

Official Description: This object is used in conversational dialogues in a cinematic trigger. If a character needs to have a conversation with a non-AI object such as an intercom, this is the object that will fill the position of that AI in the conversation.

SpecialFX

Official Description: This object allows of the quick creation of certain special effects.

SpectatorObject

Official Description: SpectatorObjects define viewing points for multiplayer Lightcycle players who have either not yet joined teams or been derezzed.

Sprinkles

Official Description: This object was not used in the creation of TRON 2.0.

No documentation will be provided for this Object.

StartupCommand

Official Description: Placed in a level to give commands to objects within the level when the level is loaded.

StaticSunLight

Official Description: The StaticSunLight object supplies levels that have a skybox with light from a sunlike source. The light radiates into the level through all skyportal brushes as if from an infinitely far point. This sunlight’s direction is determined by the rotation of the StaticSunLight object. Its position doesn’t matter, since the emitted light acts as if it comes from an infinite distance. The StaticSunlight’s position is ignored.

Steam

Official Description: The Steam object is a form of the ParticleSystem object that has been set up to more easily create particle effects resembling jets of steam. The effect created by this object travels down the forward facing vector of the object.

TeleportPoint

Official Description: This object is used to define the position and rotation of a point in space that the player or an AI can be moved to instantly.

TextureFX

Official Description: This object was not used in the creation of TRON 2.0.

No documentation will be provided for this Object.

TransitionArea

No official description.

Trigger

Official Description: Triggers are placed in a level to send messages or commands to other objects when a player or AI enters or passes through them.

ExitTrigger

Official Description: This object is a subclass of the Trigger object. This object is used to trigger the end of a level.

LaserTrigger

No official description.

NoPlayerTrigger

No official description.

PlayerTrigger

No official description.

TronTurret

Official Description: This object is a turret-style AI that was keyframed to create the Tanks.

VolumeBrush

See the VolumeBrushes page for more information about VolumeBrushes.

VolumeEffect

Official Description: Used to place ScatterVolumes and SnowVolumes.

ScatterVolume

No official description.

SnowVolume

No official description.

WeaponItem

Official Description: This is an object used to place Weapon power up items in the world.

WorldModel

See the WorldModels page for more information about WorldModels.

WorldProperties

Official Description: This object is placed in every level to define many of the global properties of the level.

WorldSection

Official Description: This object was not used in the creation of TRON 2.0.

No documentation will be provided for this Object.