TTLG|Thief|Bioshock|System Shock|Deus Ex|Mobile
Results 1 to 4 of 4

Thread: Properties created automatically on concrete objects

  1. #1
    Member
    Registered: Oct 2004
    Location: Ireland/Poland

    Properties created automatically on concrete objects

    Hi,
    I have a question to Dromed veterans...

    When you create an object in your mission, that is - you create an instance of an object's archetype - some of the properties get created automatically - copied from the archetype onto the instance. There's always Position property, as it needs to be unique. Some of them are related to Physics - like Physics > Model > Attributes, Controls, Dimensions, State and Type. And some of them are related to Doors or Keys etc..

    Initially I thought, that these instance-specific properties are marked with this icon of '3 dots connected with two lines', as opposed to just 'one black dot', but that's not always consistent.
    For example: Physics > Misc > Collision Type has a 'black dot' icon.

    So, my question is - is there somewhere a definitive list of those properties? I was going through a number of objects and came up with a list of almost 50, but it's becoming tedious to test every object and every single property. So, I'm hoping, somebody had already gone through that...

  2. #2
    Dóttirin klęšist oft móšur möttli
    Registered: Apr 2015
    Here's a property list. Is the 'flag' what you're looking for?
    You can see some more symbols if you you enable dev mode in lg.ini (see instructions there)

    Code:
    ObjProp "Transient"          // type BOOL                      , flags 0x0001 , editor name: "Object System: Transient"
    {
        "" : bool
    }
    
    
    ObjProp "Immobile"           // type BOOL                      , flags 0x0000 , editor name: "Object System: Immobile"
    {
        "" : bool
    }
    
    
    ObjProp "DonorType"          // type int                       , flags 0x00C1 , editor name: "Object System: Donor Type"
    {
        "" : int
    }
    
    
    ObjProp "SymName"            // type string                    , flags 0x00C1 , editor name: "Object System: Symbolic Name"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "CombineType"        // type Label                     , flags 0x0000 , editor name: "Engine Features: Combine Type"
    {
        "" : string    // max 15 characters long
    }
    
    
    ObjProp "StackCount"         // type int                       , flags 0x0000 , editor name: "Engine Features: Stack Count"
    {
        "" : int
    }
    
    
    ObjProp "arSrcScale"         // type float                     , flags 0x0000 , editor name: "Act/React: Source Scale"
    {
        "" : float
    }
    
    
    ObjProp "DeathStage"         // type int                       , flags 0x0001 , editor name: "Game: Damage Model: Death Stage"
    {
        "" : int
    }
    
    
    ObjProp "WeaponDamage"       // type int                       , flags 0x0000 , editor name: "Game: Damage Model: Weapon Damage"
    {
        "" : int
    }
    
    
    ObjProp "WeaponType"         // type int                       , flags 0x0000 , editor name: "Game: Damage Model: Weapon Type"
    {
        "" : int
    }
    
    
    ObjProp "SlayResult"         // type eSlayResult               , flags 0x0000 , editor name: "Game: Damage Model: Slay Result"
    {
        "Effect" : enum    // enums: "Normal", "No Effect", "Terminate", "Destroy"
    }
    
    
    ObjProp "Culpable"           // type BOOL                      , flags 0x0000 , editor name: "Game: Damage Model: Culpable"
    {
        "" : bool
    }
    
    
    ObjProp "InvType"            // type eInventoryType            , flags 0x0000 , editor name: "Inventory: Type"
    {
        "" : enum    // enums: "Junk", "Item", "Weapon"
    }
    
    
    ObjProp "InvCycleOrder"      // type string                    , flags 0x0000 , editor name: "Inventory: Cycle Order"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "Scale"              // type Vector                    , flags 0x0011 , editor name: "Shape: Scale"
    {
        "" : vector
    }
    
    
    ObjProp "ModelName"          // type Label                     , flags 0x0000 , editor name: "Shape: Model Name"
    {
        "" : string    // max 15 characters long
    }
    
    
    ObjProp "CollisionType"      // type CollType                  , flags 0x0010 , editor name: "Physics: Misc: Collision Type"
    {
        "" : bitflags    // flags: "Bounce", "Destroy on Impact", "Slay on Impact", "No Collision Sound", "No Result", "Full Collision Sound"
    }
    
    
    ObjProp "Particle"           // type int                       , flags 0x0000 , editor name: "SFX: Particle"
    {
        "" : int
    }
    
    
    ObjProp "Position"           // type Position                  , flags 0x0115 , editor name: "Position"
    {
        "Location" : vector
        "Heading" : uint_hex
        "Pitch" : uint_hex
        "Bank" : uint_hex
    }
    
    
    ObjProp "Light"              // type sLightProp                , flags 0x0011 , editor name: "Renderer: Light"
    {
        "brightness" : float
        "offset from object" : vector
        "radius (0 for infinite)" : float
        "inner radius (0 for none)" : float
        "quad lit" : bool
    }
    
    
    ObjProp "LightColor"         // type ColorInfo                 , flags 0x0000 , editor name: "Renderer: LightColor"
    {
        "hue" : float
        "saturation" : float
    }
    
    
    ObjProp "Spotlight"          // type Vector                    , flags 0x0000 , editor name: "Renderer: Spotlight"
    {
        "" : vector
    }
    
    
    ObjProp "SpotAmb"            // type Vector                    , flags 0x0000 , editor name: "Renderer: SpotlightAndAmbient"
    {
        "" : vector
    }
    
    
    ObjProp "LBAlpha"            // type cLightBasedAlpha          , flags 0x0000 , editor name: "Renderer: Light-based transparency"
    {
        "Active" : bool
        "Min alpha" : float
        "Max alpha" : float
        "Light level (0-100) for min" : int
        "Light level (0-100) for max" : int
    }
    
    
    ObjProp "AnimLight"          // type sAnimLightProp            , flags 0x0011 , editor name: "Renderer: Anim Light"
    {
        "Mode" : enum    // enums: "flip between min & max", "slide smoothly", "random", "minimum brightness", "maximum brightness", "zero brightness", "smoothly brighten", "smoothly dim", "random but coherent", "flicker min/max"
        "millisecs to brighten" : int
        "millisecs to dim" : int
        "max brightness" : float
        "min brightness" : float
        "radius (0 for infinite)" : float
        "inner radius (0 for none)" : float
        "quad lit" : bool
        "offset from object" : vector
        "currently rising?" : bool
        "current countdown" : int
        "inactive" : bool
        "Dynamic Light" : bool
    }
    
    
    ObjProp "ExtraLight"         // type sExtraLightProp           , flags 0x0011 , editor name: "Renderer: Extra Light"
    {
        "Amount (-1..1)" : float
        "Additive?" : bool
    }
    
    
    ObjProp "Scripts"            // type sScriptProp               , flags 0x0200
    {
        "Script 0" : string    // max 31 characters long
        "Script 1" : string    // max 31 characters long
        "Script 2" : string    // max 31 characters long
        "Script 3" : string    // max 31 characters long
        "Don't Inherit" : bool
    }
    
    
    ObjProp "HitPoints"          // type int                       , flags 0x0000 , editor name: "Game: Damage Model: Hit Points"
    {
        "" : int
    }
    
    
    ObjProp "MAX_HP"             // type int                       , flags 0x0000 , editor name: "Game: Damage Model: Max Hit Points"
    {
        "" : int
    }
    
    
    ObjProp "TrapFlags"          // type TrapFlags                 , flags 0x0000 , editor name: "Script: Trap Control Flags"
    {
        "" : bitflags    // flags: "Once", "Invert", "NoOn", "NoOff"
    }
    
    
    ObjProp "Z-Bias"             // type int                       , flags 0x0000 , editor name: "Renderer: Z-Bias"
    {
        "" : int
    }
    
    
    ObjProp "Bump Map"           // type BOOL                      , flags 0x0011 , editor name: "Renderer: Bump Map"
    {
        "" : bool
    }
    
    
    ObjProp "SelfLit"            // type int                       , flags 0x0011 , editor name: "Renderer: Dynamic Light"
    {
        "" : int
    }
    
    
    ObjProp "SelfLitRad"         // type float                     , flags 0x0011 , editor name: "Renderer: Dynamic Light Radius"
    {
        "" : float
    }
    
    
    ObjProp "Shadow"             // type int                       , flags 0x0011 , editor name: "Renderer: Shadow"
    {
        "" : int
    }
    
    
    ObjProp "HeatDisks"          // type sHeatDiskCluster          , flags 0x0011 , editor name: "SFX: Heat Disks"
    {
        "start offset x" : float
        "start offset y" : float
        "start offset z" : float
        "start radius" : float
        "end offset x" : float
        "end offset y" : float
        "end offset z" : float
        "end radius" : float
        "bottom jitter" : float
        "top jitter" : float
        "number of blobs" : int
        "max disks/blob" : int
        "height of effects" : float
        "Z-compare" : bool
    }
    
    
    ObjProp "Spark"              // type sSpark                    , flags 0x0011 , editor name: "SFX: Spark"
    {
        "flags" : bitflags
        "color" : short
        "angle offset 1" : short
        "angle offset 2" : short
        "angle offset 3" : short
        "angle jitter" : short
        "size 1" : float
        "size 2" : float
        "size 3" : float
        "size jitter" : float
        "light (0-1)" : float
        "light jitter" : float
    }
    
    
    ObjProp "MeshAttach"         // type sMeshAttach               , flags 0x0011 , editor name: "Renderer: Mesh Attach"
    {
        "attached obj 1" : int
        "joint of skeleton" : int
        "x angle (0-65535)" : short
        "y angle (0-65535)" : short
        "z angle (0-65535)" : short
        "offset" : vector
        "attached obj 2" : int
        "joint of skeleton"[1] : int
        "x angle (0-65535)"[1] : short
        "y angle (0-65535)"[1] : short
        "z angle (0-65535)"[1] : short
        "offset"[1] : vector
        "attached obj 3" : int
        "joint of skeleton"[2] : int
        "x angle (0-65535)"[2] : short
        "y angle (0-65535)"[2] : short
        "z angle (0-65535)"[2] : short
        "offset"[2] : vector
        "attached obj 4" : int
        "joint of skeleton"[3] : int
        "x angle (0-65535)"[3] : short
        "y angle (0-65535)"[3] : short
        "z angle (0-65535)"[3] : short
        "offset"[3] : vector
    }
    
    
    ObjProp "Firer"              // type int                       , flags 0x0001
    {
        "" : int
    }
    
    
    ObjProp "LauncherMass"       // type float                     , flags 0x0000 , editor name: "Physics: Projectile: Launcher Mass"
    {
        "" : float
    }
    
    
    ObjProp "PrjSound"           // type string                    , flags 0x0000 , editor name: "Sound: Projectile Sound"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "FrobInfo"           // type sFrobInfo                 , flags 0x0000 , editor name: "Engine Features: FrobInfo"
    {
        "World Action" : bitflags    // flags: "Move", "Script", "Delete", "Ignore", "FocusScript", "Tool Cursor", "Use Ammo", "Default", "Deselect"
        "Inv Action" : bitflags    // flags: "Move", "Script", "Delete", "Ignore", "FocusScript", "Tool Cursor", "Use Ammo", "Default", "Deselect"
        "Tool Action" : bitflags    // flags: "Move", "Script", "Delete", "Ignore", "FocusScript", "Tool Cursor", "Use Ammo", "Default", "Deselect"
    }
    
    
    ObjProp "FrobHandler"        // type eFrobHandler              , flags 0x0000 , editor name: "Networking: Frob Handler"
    {
        "" : enum    // enums: "Host", "Local Only", "All Machines"
    }
    
    
    ObjProp "PhysType"           // type cPhysTypeProp             , flags 0x0011 , editor name: "Physics: Model: Type"
    {
        "Type" : enum    // enums: "OBB", "Sphere", "Sphere Hat", "None"
        "# Submodels" : int
        "Remove on Sleep" : bool
        "Special" : bool
    }
    
    
    ObjProp "RotDoor"            // type sRotDoorProp              , flags 0x0011 , editor name: "Door: Rotating"
    {
        "Closed Angle" : float
        "Open Angle" : float
        "Base Speed" : float
        "Axis" : enum    // enums: "X-Axis", "Y-Axis", "Z-Axis"
        "Status" : enum    // enums: "Closed", "Open", "Closing", "Opening", "Halted"
        "Hard Limits?" : bool
        "Blocks Vision?" : bool
        "Blocks Sound %" : float
        "Lean Blocks Sound %" : float
        "Push Mass" : float
        "Clockwise?" : bool
    }
    
    
    ObjProp "TransDoor"          // type sTransDoorProp            , flags 0x0011 , editor name: "Door: Translating"
    {
        "Closed Position" : float
        "Open Position" : float
        "Base Speed" : float
        "Axis" : enum    // enums: "X-Axis", "Y-Axis", "Z-Axis"
        "Status" : enum    // enums: "Closed", "Open", "Closing", "Opening", "Halted"
        "Hard Limits?" : bool
        "Blocks Vision?" : bool
        "Blocks Sound %" : float
        "Lean Blocks Sound %" : float
        "Push Mass" : float
    }
    
    
    ObjProp "DoorStaticLight"    // type BOOL                      , flags 0x0000 , editor name: "Door: Static Light Pos"
    {
        "" : bool
    }
    
    
    ObjProp "CfgTweqScale"       // type sTweqVectorConfig         , flags 0x0000 , editor name: "Tweq: Scale"
    {
        "Halt" : enum    // enums: "Destroy Obj", "Remove Prop", "Stop Tweq", "Continue", "Slay Obj"
        "AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "MiscC" : bitflags    // flags: "Anchor", "Scripts", "Random", "Grav", "ZeroVel", "TellAi", "PushOut", "NegativeLogic", "Relative Velocity", "NoPhysics", "AnchorVhot", "HostOnly", "CreatureScale", "Use Model 5", "LinkRel"
        "CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "Primary Axis" : int
        "x rate-low-high" : vector
        "y rate-low-high" : vector
        "z rate-low-high" : vector
    }
    
    
    ObjProp "CfgTweqRotate"      // type sTweqVectorConfig         , flags 0x0000 , editor name: "Tweq: Rotate"
    {
        "Halt" : enum    // enums: "Destroy Obj", "Remove Prop", "Stop Tweq", "Continue", "Slay Obj"
        "AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "MiscC" : bitflags    // flags: "Anchor", "Scripts", "Random", "Grav", "ZeroVel", "TellAi", "PushOut", "NegativeLogic", "Relative Velocity", "NoPhysics", "AnchorVhot", "HostOnly", "CreatureScale", "Use Model 5", "LinkRel"
        "CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "Primary Axis" : int
        "x rate-low-high" : vector
        "y rate-low-high" : vector
        "z rate-low-high" : vector
    }
    
    
    ObjProp "CfgTweqJoints"      // type sTweqJointsConfig         , flags 0x0000 , editor name: "Tweq: Joints"
    {
        "Halt" : enum    // enums: "Destroy Obj", "Remove Prop", "Stop Tweq", "Continue", "Slay Obj"
        "AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "MiscC" : bitflags    // flags: "Anchor", "Scripts", "Random", "Grav", "ZeroVel", "TellAi", "PushOut", "NegativeLogic", "Relative Velocity", "NoPhysics", "AnchorVhot", "HostOnly", "CreatureScale", "Use Model 5", "LinkRel"
        "CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "Primary Joint" : int
        "Joint1AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "Joint1CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "    rate-low-high" : vector
        "Joint2AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "Joint2CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "    rate-low-high2" : vector
        "Joint3AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "Joint3CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "    rate-low-high3" : vector
        "Joint4AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "Joint4CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "    rate-low-high4" : vector
        "Joint5AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "Joint5CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "    rate-low-high5" : vector
        "Joint6AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "Joint6CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "    rate-low-high6" : vector
    }
    
    
    ObjProp "CfgTweqModels"      // type sTweqModelsConfig         , flags 0x0000 , editor name: "Tweq: Models"
    {
        "Halt" : enum    // enums: "Destroy Obj", "Remove Prop", "Stop Tweq", "Continue", "Slay Obj"
        "AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "MiscC" : bitflags    // flags: "Anchor", "Scripts", "Random", "Grav", "ZeroVel", "TellAi", "PushOut", "NegativeLogic", "Relative Velocity", "NoPhysics", "AnchorVhot", "HostOnly", "CreatureScale", "Use Model 5", "LinkRel"
        "CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "Rate" : ushort
        "Model 0" : string    // max 15 characters long
        "Model 1" : string    // max 15 characters long
        "Model 2" : string    // max 15 characters long
        "Model 3" : string    // max 15 characters long
        "Model 4" : string    // max 15 characters long
        "Model 5" : string    // max 15 characters long
    }
    
    
    ObjProp "CfgTweqDelete"      // type sTweqSimpleConfig         , flags 0x0000 , editor name: "Tweq: Delete"
    {
        "Halt" : enum    // enums: "Destroy Obj", "Remove Prop", "Stop Tweq", "Continue", "Slay Obj"
        "AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "MiscC" : bitflags    // flags: "Anchor", "Scripts", "Random", "Grav", "ZeroVel", "TellAi", "PushOut", "NegativeLogic", "Relative Velocity", "NoPhysics", "AnchorVhot", "HostOnly", "CreatureScale", "Use Model 5", "LinkRel"
        "CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "Rate" : ushort
    }
    
    
    ObjProp "CfgTweqBlink"       // type sTweqSimpleConfig         , flags 0x0000 , editor name: "Tweq: Flicker"
    {
        "Halt" : enum    // enums: "Destroy Obj", "Remove Prop", "Stop Tweq", "Continue", "Slay Obj"
        "AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "MiscC" : bitflags    // flags: "Anchor", "Scripts", "Random", "Grav", "ZeroVel", "TellAi", "PushOut", "NegativeLogic", "Relative Velocity", "NoPhysics", "AnchorVhot", "HostOnly", "CreatureScale", "Use Model 5", "LinkRel"
        "CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "Rate" : ushort
    }
    
    
    ObjProp "CfgTweqEmit"        // type sTweqEmitterConfig        , flags 0x0000 , editor name: "Tweq: Emit"
    {
        "Halt" : enum    // enums: "Destroy Obj", "Remove Prop", "Stop Tweq", "Continue", "Slay Obj"
        "AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "MiscC" : bitflags    // flags: "Anchor", "Scripts", "Random", "Grav", "ZeroVel", "TellAi", "PushOut", "NegativeLogic", "Relative Velocity", "NoPhysics", "AnchorVhot", "HostOnly", "CreatureScale", "Use Model 5", "LinkRel"
        "CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "Rate" : ushort
        "Max frames" : int
        "Emit what" : string    // max 15 characters long
        "Velocity" : vector
        "Angle Random" : vector
    }
    
    
    ObjProp "CfgTweqLock"        // type sTweqLockConfig           , flags 0x0000 , editor name: "Tweq: Lock"
    {
        "Halt" : enum    // enums: "Destroy Obj", "Remove Prop", "Stop Tweq", "Continue", "Slay Obj"
        "AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "MiscC" : bitflags    // flags: "Anchor", "Scripts", "Random", "Grav", "ZeroVel", "TellAi", "PushOut", "NegativeLogic", "Relative Velocity", "NoPhysics", "AnchorVhot", "HostOnly", "CreatureScale", "Use Model 5", "LinkRel"
        "CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "Lock Joint" : int
        "    rate-low-highJoint" : vector
    }
    
    
    ObjProp "CfgTweq2Emit"       // type sTweqEmitterConfig        , flags 0x0000 , editor name: "Tweq: Emit2"
    {
        "Halt" : enum    // enums: "Destroy Obj", "Remove Prop", "Stop Tweq", "Continue", "Slay Obj"
        "AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "MiscC" : bitflags    // flags: "Anchor", "Scripts", "Random", "Grav", "ZeroVel", "TellAi", "PushOut", "NegativeLogic", "Relative Velocity", "NoPhysics", "AnchorVhot", "HostOnly", "CreatureScale", "Use Model 5", "LinkRel"
        "CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "Rate" : ushort
        "Max frames" : int
        "Emit what" : string    // max 15 characters long
        "Velocity" : vector
        "Angle Random" : vector
    }
    
    
    ObjProp "CfgTweq3Emit"       // type sTweqEmitterConfig        , flags 0x0000 , editor name: "Tweq: Emit3"
    {
        "Halt" : enum    // enums: "Destroy Obj", "Remove Prop", "Stop Tweq", "Continue", "Slay Obj"
        "AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "MiscC" : bitflags    // flags: "Anchor", "Scripts", "Random", "Grav", "ZeroVel", "TellAi", "PushOut", "NegativeLogic", "Relative Velocity", "NoPhysics", "AnchorVhot", "HostOnly", "CreatureScale", "Use Model 5", "LinkRel"
        "CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "Rate" : ushort
        "Max frames" : int
        "Emit what" : string    // max 15 characters long
        "Velocity" : vector
        "Angle Random" : vector
    }
    
    
    ObjProp "CfgTweq4Emit"       // type sTweqEmitterConfig        , flags 0x0000 , editor name: "Tweq: Emit4"
    {
        "Halt" : enum    // enums: "Destroy Obj", "Remove Prop", "Stop Tweq", "Continue", "Slay Obj"
        "AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "MiscC" : bitflags    // flags: "Anchor", "Scripts", "Random", "Grav", "ZeroVel", "TellAi", "PushOut", "NegativeLogic", "Relative Velocity", "NoPhysics", "AnchorVhot", "HostOnly", "CreatureScale", "Use Model 5", "LinkRel"
        "CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "Rate" : ushort
        "Max frames" : int
        "Emit what" : string    // max 15 characters long
        "Velocity" : vector
        "Angle Random" : vector
    }
    
    
    ObjProp "CfgTweq5Emit"       // type sTweqEmitterConfig        , flags 0x0000 , editor name: "Tweq: Emit5"
    {
        "Halt" : enum    // enums: "Destroy Obj", "Remove Prop", "Stop Tweq", "Continue", "Slay Obj"
        "AnimC" : bitflags    // flags: "NoLimit", "Sim", "Wrap", "OneBounce", "SimSmallRad", "SimLargeRad", "OffScreen"
        "MiscC" : bitflags    // flags: "Anchor", "Scripts", "Random", "Grav", "ZeroVel", "TellAi", "PushOut", "NegativeLogic", "Relative Velocity", "NoPhysics", "AnchorVhot", "HostOnly", "CreatureScale", "Use Model 5", "LinkRel"
        "CurveC" : bitflags    // flags: "JitterLow", "JitterHi", "Mul", "Pendulum(/BounceHi)", "Bounce"
        "Rate" : ushort
        "Max frames" : int
        "Emit what" : string    // max 15 characters long
        "Velocity" : vector
        "Angle Random" : vector
    }
    
    
    ObjProp "StTweqScale"        // type sTweqVectorState          , flags 0x0011 , editor name: "Tweq: ScaleState"
    {
        "AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "MiscS" : bitflags    // flags: "Null"
        "Axis 1AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "Axis 2AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "Axis 3AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
    }
    
    
    ObjProp "StTweqRotate"       // type sTweqVectorState          , flags 0x0011 , editor name: "Tweq: RotateState"
    {
        "AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "MiscS" : bitflags    // flags: "Null"
        "Axis 1AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "Axis 2AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "Axis 3AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
    }
    
    
    ObjProp "StTweqJoints"       // type sTweqJointsState          , flags 0x0011 , editor name: "Tweq: JointsState"
    {
        "AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "MiscS" : bitflags    // flags: "Null"
        "Joint1AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "Joint2AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "Joint3AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "Joint4AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "Joint5AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "Joint6AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
    }
    
    
    ObjProp "StTweqModels"       // type sTweqSimpleState          , flags 0x0011 , editor name: "Tweq: ModelsState"
    {
        "AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "MiscS" : bitflags    // flags: "Null"
        "Cur Time" : ushort
        "Frame #" : short
    }
    
    
    ObjProp "StTweqDelete"       // type sTweqSimpleState          , flags 0x0011 , editor name: "Tweq: DeleteState"
    {
        "AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "MiscS" : bitflags    // flags: "Null"
        "Cur Time" : ushort
        "Frame #" : short
    }
    
    
    ObjProp "StTweqEmit"         // type sTweqSimpleState          , flags 0x0011 , editor name: "Tweq: EmitterState"
    {
        "AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "MiscS" : bitflags    // flags: "Null"
        "Cur Time" : ushort
        "Frame #" : short
    }
    
    
    ObjProp "StTweqBlink"        // type sTweqSimpleState          , flags 0x0011 , editor name: "Tweq: FlickerState"
    {
        "AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "MiscS" : bitflags    // flags: "Null"
        "Cur Time" : ushort
        "Frame #" : short
    }
    
    
    ObjProp "StTweqLock"         // type sTweqLockState            , flags 0x0011 , editor name: "Tweq: LockState"
    {
        "AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "MiscS" : bitflags    // flags: "Null"
        "Target Angle" : float
        "Cur Stage" : int
    }
    
    
    ObjProp "StTweq2Emit"        // type sTweqSimpleState          , flags 0x0011 , editor name: "Tweq: Emitter2State"
    {
        "AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "MiscS" : bitflags    // flags: "Null"
        "Cur Time" : ushort
        "Frame #" : short
    }
    
    
    ObjProp "StTweq3Emit"        // type sTweqSimpleState          , flags 0x0011 , editor name: "Tweq: Emitter3State"
    {
        "AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "MiscS" : bitflags    // flags: "Null"
        "Cur Time" : ushort
        "Frame #" : short
    }
    
    
    ObjProp "StTweq4Emit"        // type sTweqSimpleState          , flags 0x0011 , editor name: "Tweq: Emitter4State"
    {
        "AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "MiscS" : bitflags    // flags: "Null"
        "Cur Time" : ushort
        "Frame #" : short
    }
    
    
    ObjProp "StTweq5Emit"        // type sTweqSimpleState          , flags 0x0011 , editor name: "Tweq: Emitter5State"
    {
        "AnimS" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
        "MiscS" : bitflags    // flags: "Null"
        "Cur Time" : ushort
        "Frame #" : short
    }
    
    
    ObjProp "BaseWpnDmg"         // type int                       , flags 0x0011 , editor name: "Weapon: BaseDamage"
    {
        "" : int
    }
    
    
    ObjProp "CurWpnDmg"          // type int                       , flags 0x0084 , editor name: "Weapon: CurDamage"
    {
        "" : int
    }
    
    
    ObjProp "WpnExposure"        // type int                       , flags 0x0000 , editor name: "Weapon: Exposure"
    {
        "" : int
    }
    
    
    ObjProp "SwingExpose"        // type int                       , flags 0x0000 , editor name: "Weapon: SwingExpose"
    {
        "" : int
    }
    
    
    ObjProp "WpnTerrColl"        // type BOOL                      , flags 0x0000 , editor name: "Weapon: Collides With Terrain"
    {
        "" : bool
    }
    
    
    ObjProp "ModeChangeMeta"     // type string                    , flags 0x0010 , editor name: "Weapon: Mode Change Metaproperty"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "ModeUnchngeMeta"    // type string                    , flags 0x0010 , editor name: "Weapon: Mode Change-back Metaproperty"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "Locked"             // type BOOL                      , flags 0x0000 , editor name: "Engine Features: Locked"
    {
        "" : bool
    }
    
    
    ObjProp "LockCnt"            // type int                       , flags 0x0080
    {
        "" : int
    }
    
    
    ObjProp "KeySrc"             // type sKeyInfo                  , flags 0x0011 , editor name: "Engine Features: KeySrc"
    {
        "MasterBit" : bool
        "RegionMask" : bitflags
        "LockID" : uint
    }
    
    
    ObjProp "KeyDst"             // type sKeyInfo                  , flags 0x0011 , editor name: "Engine Features: KeyDst"
    {
        "MasterBit" : bool
        "RegionMask" : bitflags
        "LockID" : uint
    }
    
    
    ObjProp "InvLimbModel"       // type Label                     , flags 0x0000 , editor name: "Inventory: Limb Model"
    {
        "" : string    // max 15 characters long
    }
    
    
    ObjProp "InvRendType"        // type sInvRenderType            , flags 0x0000 , editor name: "Inventory: Render Type"
    {
        "Type" : enum    // enums: "Default", "Alternate Model", "Alternate Bitmap"
        "Resource" : string    // max 15 characters long
    }
    
    
    ObjProp "TextureRadius"      // type float                     , flags 0x0000 , editor name: "Engine Features: Retexture Radius"
    {
        "" : float
    }
    
    
    ObjProp "PickBias"           // type float                     , flags 0x0000 , editor name: "Inventory: Pick Bias"
    {
        "" : float
    }
    
    
    ObjProp "PickDist"           // type float                     , flags 0x0000 , editor name: "Inventory: Max Pick Distance"
    {
        "" : float
    }
    
    
    ObjProp "ContainInherit"     // type BOOL                      , flags 0x0010 , editor name: "Engine Features: Inherit Contains"
    {
        "" : bool
    }
    
    
    ObjProp "SuspObj"            // type sSuspiciousInfo           , flags 0x0000 , editor name: "Engine Features: Suspicious"
    {
        "Is Suspicious" : bool
        "Suspicious Type" : string    // max 31 characters long
        "Minimum Light Level" : float
    }
    
    
    ObjProp "FromBriefcase"      // type BOOL                      , flags 0x0000 , editor name: "Engine Features: From Briefcase?"
    {
        "" : bool
    }
    
    
    ObjProp "AutoVBR"            // type Label                     , flags 0x0000 , editor name: "Editor: Auto-Multibrush"
    {
        "" : string    // max 15 characters long
    }
    
    
    ObjProp "FlowGroup"          // type int                       , flags 0x0081 , editor name: "Renderer: Flow Group"
    {
        "" : int
    }
    
    
    ObjProp "BashFactor"         // type float                     , flags 0x0000 , editor name: "Game: Bash Factor"
    {
        "" : float
    }
    
    
    ObjProp "BashParams"         // type sBashParamsProp           , flags 0x0000 , editor name: "Game: Bash Params"
    {
        "Threshold" : float
        "Coefficient" : float
    }
    
    
    ObjProp "Preload"            // type BOOL                      , flags 0x0000 , editor name: "Engine Features: Preload"
    {
        "" : bool
    }
    
    
    ObjProp "CSArrow"            // type Label                     , flags 0x0000
    {
        "" : string    // max 15 characters long
    }
    
    
    ObjProp "CSProjectile"       // type Label                     , flags 0x0000
    {
        "" : string    // max 15 characters long
    }
    
    
    ObjProp "CSProperty"         // type Label                     , flags 0x0000
    {
        "" : string    // max 15 characters long
    }
    
    
    ObjProp "AmbientHacked"      // type AmbientSound              , flags 0x0015
    {
        "Radius" : int
        "Override Volume" : int
        "Flags" : bitflags    // flags: "Environmental", "NoSharpCurve", "TurnedOff", "RemoveProp (OneShot)", "Music", "Synch", "NoFade", "DestroyObj", "DoAutoOff"
        "Schema Name" : string    // max 15 characters long
        "Aux Schema 1" : string    // max 15 characters long
        "Aux Schema 2" : string    // max 15 characters long
    }
    
    
    ObjProp "MotActorTagList"    // type sMotActorTagList          , flags 0x0000 , editor name: "Motions: ActorTagList"
    {
        "tags" : string    // max 799 characters long
    }
    
    
    ObjProp "MotorController"    // type tMotorControllerType      , flags 0x0000 , editor name: "Motions: Motor Controller"
    {
        "" : enum    // enums: "GroundLoco", "Combat", "GroundAction", "PlayerArm", "PlayerBow", "Single"
    }
    
    
    ObjProp "TimeWarp"           // type float                     , flags 0x0000 , editor name: "Creature: Time Warp"
    {
        "" : float
    }
    
    
    ObjProp "SwordActionType"    // type eMSwordActionType         , flags 0x0000 , editor name: "Motions: Sword Action Type"
    {
        "" : enum    // enums: "Swing", "General Block", "Directed Block"
    }
    
    
    ObjProp "MotPhysLimits"      // type sMotPhysLimits            , flags 0x0000 , editor name: "Motions: Phys Limits"
    {
        "Foo 1" : int
        "Foo 2" : int
    }
    
    
    ObjProp "MotGaitDesc"        // type sMGaitSkillData           , flags 0x0000 , editor name: "Motions: Gait Desc"
    {
        "LeftMotOff" : int
        "RightMotOff" : int
        "MaxAscend" : float
        "MaxDescend" : float
        "TimeWarp" : float
        "Stretch" : float
        "MaxAngVel" : int
        "TurnTolerance" : int
        "MaxVel" : float
        "MinVel" : float
        "NumTurns" : int
        "Turn 1 Angle" : int
        "Turn 1 MotOff" : int
        "Turn 2 Angle" : int
        "Turn 2 MotOff" : int
        "Turn 3 Angle" : int
        "Turn 3 MotOff" : int
        "Stride Duration Noise" : float
    }
    
    
    ObjProp "MotPlyrLimbOff"     // type sMPlayerLimbOffsets       , flags 0x0000 , editor name: "Motions: Player Limb Offsets"
    {
        "Arm Pos Offset" : vector
        "Arm Ang Offset" : vector
    }
    
    
    ObjProp "AI_NGOBB"           // type BOOL                      , flags 0x0000 , editor name: "AI: Utility: Path Exact OBB"
    {
        "" : bool
    }
    
    
    ObjProp "AI_TrackM"          // type BOOL                      , flags 0x0000 , editor name: "AI: Utility: Track Medium"
    {
        "" : bool
    }
    
    
    ObjProp "AI_UseWater"        // type BOOL                      , flags 0x0000 , editor name: "AI: Utility: Path Water"
    {
        "" : bool
    }
    
    
    ObjProp "AI_IsBig"           // type BOOL                      , flags 0x0000 , editor name: "AI: AI Core: AI Needs Big Doors"
    {
        "" : bool
    }
    
    
    ObjProp "AI_IgCam"           // type BOOL                      , flags 0x0000 , editor name: "AI: Utility: Ignores Cameras"
    {
        "" : bool
    }
    
    
    ObjProp "AI"                 // type sAIProp                   , flags 0x0000 , editor name: "AI: AI Core: AI"
    {
        "Behavior set" : string    // max 31 characters long
    }
    
    
    ObjProp "AI_Efficiency"      // type sAIEfficiency             , flags 0x0000 , editor name: "AI: AI Core: Efficiency settings"
    {
        "Enabled" : bool
        "Super effic. Enter dist sq." : float
        "Super effic. Enter Z" : float
        "Super effic. Exit dist sq." : float
        "Super effic. Exit Z" : float
        "Effic. Enter dist sq." : float
        "effic. Enter Z" : float
        "Effic. Exit dist sq." : float
        "Effic. Exit Z" : float
        "Flags" : bitflags    // flags: "Allow Effic. While Visible", "Allow Effic. While Combat"
    }
    
    
    ObjProp "AI_MoveZOffset"     // type float                     , flags 0x0000 , editor name: "AI: AI Core: Movement: z offset"
    {
        "" : float
    }
    
    
    ObjProp "AI_MoveSpeed"       // type float                     , flags 0x0000 , editor name: "AI: AI Core: Movement: max speed"
    {
        "" : float
    }
    
    
    ObjProp "AI_TurnRate"        // type float                     , flags 0x0000 , editor name: "AI: AI Core: Movement: turn rate"
    {
        "" : float
    }
    
    
    ObjProp "AI_Team"            // type eAITeam                   , flags 0x0000 , editor name: "AI: AI Core: Team"
    {
        "" : enum    // enums: "Good", "Neutral", "Bad 1", "Bad 2", "Bad 3", "Bad 4", "Bad 5"
    }
    
    
    ObjProp "AI_VisJoint"        // type VisionJoint               , flags 0x0000 , editor name: "AI: AI Core: Vision Joint"
    {
        "joint" : enum    // enums: "N/A", "Head", "Neck", "Abdomen", "Butt", "Left Shoulder", "Right Shoulder", "Left Elbow", "Right Elbow", "Left Wrist", "Right Wrist", "Left Fingers", "Right Fingers", "Left Hip", "Right Hip", "Left Knee", "Right Knee", "Left Ankle", "Right Ankle", "Left Toe", "Right Toe", "Tail"
    }
    
    
    ObjProp "AI_StandTags"       // type string                    , flags 0x0000 , editor name: "AI: AI Core: Standing motion tags"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "AI_SndTags"         // type string                    , flags 0x0000 , editor name: "AI: AI Core: Sound tags"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "AI_MotTags"         // type string                    , flags 0x0000 , editor name: "AI: AI Core: Motion tags"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "AI_NoGhost"         // type BOOL                      , flags 0x0000 , editor name: "AI: AI Core: No Multiplayer Ghost"
    {
        "" : bool
    }
    
    
    ObjProp "AI_NoHandoff"       // type BOOL                      , flags 0x0000 , editor name: "AI: AI Core: No Multiplayer Handoff"
    {
        "" : bool
    }
    
    
    ObjProp "AI_IsProxy"         // type BOOL                      , flags 0x0000 , editor name: "AI: AI Core: Handed-off proxy"
    {
        "" : bool
    }
    
    
    ObjProp "AI_InfNow"          // type BOOL                      , flags 0x0000 , editor name: "AI: Utility: Immediate inform"
    {
        "" : bool
    }
    
    
    ObjProp "AI_InfFrm"          // type BOOL                      , flags 0x0000 , editor name: "AI: Utility: inform from last seen"
    {
        "" : bool
    }
    
    
    ObjProp "AI_IsSmall"         // type BOOL                      , flags 0x0000 , editor name: "AI: Utility: small creature"
    {
        "" : bool
    }
    
    
    ObjProp "AI_Alertness"       // type sAIAlertness              , flags 0x0010 , editor name: "AI: State: Current alertness"
    {
        "Level" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "Peak" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
    }
    
    
    ObjProp "AI_AlertCap"        // type sAIAlertCap               , flags 0x0000 , editor name: "AI: AI Core: Alertness cap"
    {
        "Max level" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "Min level" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "Min relax after peak" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
    }
    
    
    ObjProp "AI_AwrDel2"         // type sAIAwareDelay             , flags 0x0000 , editor name: "AI: AI Core: Awareness delay (react time)"
    {
        "Reaction time to two" : int
        "Reaction time to three" : int
        "Retrigger two delay" : int
        "Retrigger three delay" : int
        "Ignore delay range" : int
    }
    
    
    ObjProp "AI_Mode"            // type eAIMode                   , flags 0x0010 , editor name: "AI: State: Current mode"
    {
        "" : enum    // enums: "Asleep", "Super efficient", "Efficient", "Normal", "Combat", "Dead"
    }
    
    
    ObjProp "AI_Frustrated"      // type sAIFrustrated             , flags 0x0000 , editor name: "AI: Utility: Is Frustrated"
    {
        "Source" : int
        "Dest" : int
    }
    
    
    ObjProp "AI_VisDesc"         // type sAIVisionDesc             , flags 0x0000 , editor name: "AI: AI Core: Vision description"
    {
        "Z Offset" : float
        "Cone 1: Flags" : bitflags    // flags: "Active", "No alert 0", "No alert 1", "No alert 2", "No alert 3", "Peripheral", "Omni", "Night vision", "Behind"
        "Cone 1: Angle" : int
        "Cone 1: Z angle" : int
        "Cone 1: Range" : int
        "Cone 1: Acuity" : int
        "Cone 2: Flags" : bitflags    // flags: "Active", "No alert 0", "No alert 1", "No alert 2", "No alert 3", "Peripheral", "Omni", "Night vision", "Behind"
        "Cone 2: Angle" : int
        "Cone 2: Z angle" : int
        "Cone 2: Range" : int
        "Cone 2: Acuity" : int
        "Cone 3: Flags" : bitflags    // flags: "Active", "No alert 0", "No alert 1", "No alert 2", "No alert 3", "Peripheral", "Omni", "Night vision", "Behind"
        "Cone 3: Angle" : int
        "Cone 3: Z angle" : int
        "Cone 3: Range" : int
        "Cone 3: Acuity" : int
        "Cone 4: Flags" : bitflags    // flags: "Active", "No alert 0", "No alert 1", "No alert 2", "No alert 3", "Peripheral", "Omni", "Night vision", "Behind"
        "Cone 4: Angle" : int
        "Cone 4: Z angle" : int
        "Cone 4: Range" : int
        "Cone 4: Acuity" : int
        "Cone 5: Flags" : bitflags    // flags: "Active", "No alert 0", "No alert 1", "No alert 2", "No alert 3", "Peripheral", "Omni", "Night vision", "Behind"
        "Cone 5: Angle" : int
        "Cone 5: Z angle" : int
        "Cone 5: Range" : int
        "Cone 5: Acuity" : int
        "Cone 6: Flags" : bitflags    // flags: "Active", "No alert 0", "No alert 1", "No alert 2", "No alert 3", "Peripheral", "Omni", "Night vision", "Behind"
        "Cone 6: Angle" : int
        "Cone 6: Z angle" : int
        "Cone 6: Range" : int
        "Cone 6: Acuity" : int
        "Cone 7: Flags" : bitflags    // flags: "Active", "No alert 0", "No alert 1", "No alert 2", "No alert 3", "Peripheral", "Omni", "Night vision", "Behind"
        "Cone 7: Angle" : int
        "Cone 7: Z angle" : int
        "Cone 7: Range" : int
        "Cone 7: Acuity" : int
        "Cone 8: Flags" : bitflags    // flags: "Active", "No alert 0", "No alert 1", "No alert 2", "No alert 3", "Peripheral", "Omni", "Night vision", "Behind"
        "Cone 8: Angle" : int
        "Cone 8: Z angle" : int
        "Cone 8: Range" : int
        "Cone 8: Acuity" : int
        "Cone 9: Flags" : bitflags    // flags: "Active", "No alert 0", "No alert 1", "No alert 2", "No alert 3", "Peripheral", "Omni", "Night vision", "Behind"
        "Cone 9: Angle" : int
        "Cone 9: Z angle" : int
        "Cone 9: Range" : int
        "Cone 9: Acuity" : int
        "Cone 10: Flags" : bitflags    // flags: "Active", "No alert 0", "No alert 1", "No alert 2", "No alert 3", "Peripheral", "Omni", "Night vision", "Behind"
        "Cone 10: Angle" : int
        "Cone 10: Z angle" : int
        "Cone 10: Range" : int
        "Cone 10: Acuity" : int
    }
    
    
    ObjProp "AI_VisModifier"     // type sAIVisibilityMods         , flags 0x0000 , editor name: "AI: AI Core: Visibility Modifier"
    {
        "Vis Type 0 Mod" : float
        "Vis Type 1 Mod" : float
        "Vis Type 2 Mod" : float
        "Vis Type 3 Mod" : float
        "Vis Type 4 Mod" : float
        "Vis Type 5 Mod" : float
    }
    
    
    ObjProp "AI_VisType"         // type int                       , flags 0x0000 , editor name: "AI: AI Core: Vision Type"
    {
        "" : int
    }
    
    
    ObjProp "AI_VisCtrl"         // type sAIVisibilityControl      , flags 0x0000 , editor name: "AI: Utility: Visibility control"
    {
        "Low light" : int
        "Mid light" : int
        "High light" : int
        "Slow" : float
        "Fast" : float
        "Slow mod" : int
        "Norm mod" : int
        "Fast mod" : int
        "Wall dist" : float
        "Crouch mod" : int
        "Wall mod" : int
        "Corner lean mod" : float
    }
    
    
    ObjProp "AI_AwareCap"        // type sAIAwareCapacitor         , flags 0x0000 , editor name: "AI: AI Core: Awareness capacitor"
    {
        "Discharge time 1" : int
        "Discharge time 2" : int
        "Discharge time 3" : int
    }
    
    
    ObjProp "AI_AlSnMul"         // type sAIAlertSenseMults        , flags 0x0000 , editor name: "AI: AI Core: Alertness sense multipliers"
    {
        "Alert 0: XY angle mult" : float
        "Alert 0: Z angle mult" : float
        "Alert 0: Range mult" : float
        "Alert 0: Knowledge mult" : float
        "Alert 1: XY angle mult" : float
        "Alert 1: Z angle mult" : float
        "Alert 1: Range mult" : float
        "Alert 1: Knowledge mult" : float
        "Alert 2: XY angle mult" : float
        "Alert 2: Z angle mult" : float
        "Alert 2: Range mult" : float
        "Alert 2: Knowledge mult" : float
        "Alert 3: XY angle mult" : float
        "Alert 3: Z angle mult" : float
        "Alert 3: Range mult" : float
        "Alert 3: Knowledge mult" : float
        "Combat knowledge mult" : float
    }
    
    
    ObjProp "AI_Device"          // type cAIDeviceParams           , flags 0x0000 , editor name: "AI: Ability Settings: Device: parameters"
    {
        "Activate Joint" : int
        "Inactive Posn" : float
        "Active Posn" : float
        "Activate Speed" : float
        "Rotational Joint" : int
        "Facing Epsilon" : float
        "Rotate to Activate" : bool
    }
    
    
    ObjProp "AI_Turret"          // type cAITurretParams           , flags 0x0000 , editor name: "AI: Ability Settings: Turret: parameters"
    {
        "Fire Epsilon" : float
        "Fire Pause" : int
        "Pitch Epsilon" : float
        "Max Range" : float
    }
    
    
    ObjProp "AI_Camera"          // type cAICameraParams           , flags 0x0000 , editor name: "AI: Ability Settings: Camera: parameters"
    {
        "Scan Angle 1 (deg)" : float
        "Scan Angle 2" : float
        "Scan Speed (deg/msec)" : float
    }
    
    
    ObjProp "AI_Converation"     // type cAIConversationDesc       , flags 0x0000 , editor name: "AI: Conversations: Conversation"
    {
        "Actor" : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags" : bitflags    // flags: "Don't Block"
        "Conversation: Action 0" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1" : string    // max 63 characters long
        "   Argument 2" : string    // max 63 characters long
        "   Argument 3" : string    // max 63 characters long
        "Actor"[1] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[1] : bitflags    // flags: "Don't Block"
        "Conversation: Action 1" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[1] : string    // max 63 characters long
        "   Argument 2"[1] : string    // max 63 characters long
        "   Argument 3"[1] : string    // max 63 characters long
        "Actor"[2] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[2] : bitflags    // flags: "Don't Block"
        "Conversation: Action 2" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[2] : string    // max 63 characters long
        "   Argument 2"[2] : string    // max 63 characters long
        "   Argument 3"[2] : string    // max 63 characters long
        "Actor"[3] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[3] : bitflags    // flags: "Don't Block"
        "Conversation: Action 3" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[3] : string    // max 63 characters long
        "   Argument 2"[3] : string    // max 63 characters long
        "   Argument 3"[3] : string    // max 63 characters long
        "Actor"[4] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[4] : bitflags    // flags: "Don't Block"
        "Conversation: Action 4" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[4] : string    // max 63 characters long
        "   Argument 2"[4] : string    // max 63 characters long
        "   Argument 3"[4] : string    // max 63 characters long
        "Actor"[5] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[5] : bitflags    // flags: "Don't Block"
        "Conversation: Action 5" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[5] : string    // max 63 characters long
        "   Argument 2"[5] : string    // max 63 characters long
        "   Argument 3"[5] : string    // max 63 characters long
        "Actor"[6] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[6] : bitflags    // flags: "Don't Block"
        "Conversation: Action 0"[1] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[6] : string    // max 63 characters long
        "   Argument 2"[6] : string    // max 63 characters long
        "   Argument 3"[6] : string    // max 63 characters long
        "Actor"[7] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[7] : bitflags    // flags: "Don't Block"
        "Conversation: Action 1"[1] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[7] : string    // max 63 characters long
        "   Argument 2"[7] : string    // max 63 characters long
        "   Argument 3"[7] : string    // max 63 characters long
        "Actor"[8] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[8] : bitflags    // flags: "Don't Block"
        "Conversation: Action 2"[1] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[8] : string    // max 63 characters long
        "   Argument 2"[8] : string    // max 63 characters long
        "   Argument 3"[8] : string    // max 63 characters long
        "Actor"[9] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[9] : bitflags    // flags: "Don't Block"
        "Conversation: Action 3"[1] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[9] : string    // max 63 characters long
        "   Argument 2"[9] : string    // max 63 characters long
        "   Argument 3"[9] : string    // max 63 characters long
        "Actor"[10] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[10] : bitflags    // flags: "Don't Block"
        "Conversation: Action 4"[1] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[10] : string    // max 63 characters long
        "   Argument 2"[10] : string    // max 63 characters long
        "   Argument 3"[10] : string    // max 63 characters long
        "Actor"[11] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[11] : bitflags    // flags: "Don't Block"
        "Conversation: Action 5"[1] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[11] : string    // max 63 characters long
        "   Argument 2"[11] : string    // max 63 characters long
        "   Argument 3"[11] : string    // max 63 characters long
        "Actor"[12] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[12] : bitflags    // flags: "Don't Block"
        "Conversation: Action 0"[2] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[12] : string    // max 63 characters long
        "   Argument 2"[12] : string    // max 63 characters long
        "   Argument 3"[12] : string    // max 63 characters long
        "Actor"[13] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[13] : bitflags    // flags: "Don't Block"
        "Conversation: Action 1"[2] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[13] : string    // max 63 characters long
        "   Argument 2"[13] : string    // max 63 characters long
        "   Argument 3"[13] : string    // max 63 characters long
        "Actor"[14] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[14] : bitflags    // flags: "Don't Block"
        "Conversation: Action 2"[2] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[14] : string    // max 63 characters long
        "   Argument 2"[14] : string    // max 63 characters long
        "   Argument 3"[14] : string    // max 63 characters long
        "Actor"[15] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[15] : bitflags    // flags: "Don't Block"
        "Conversation: Action 3"[2] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[15] : string    // max 63 characters long
        "   Argument 2"[15] : string    // max 63 characters long
        "   Argument 3"[15] : string    // max 63 characters long
        "Actor"[16] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[16] : bitflags    // flags: "Don't Block"
        "Conversation: Action 4"[2] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[16] : string    // max 63 characters long
        "   Argument 2"[16] : string    // max 63 characters long
        "   Argument 3"[16] : string    // max 63 characters long
        "Actor"[17] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[17] : bitflags    // flags: "Don't Block"
        "Conversation: Action 5"[2] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[17] : string    // max 63 characters long
        "   Argument 2"[17] : string    // max 63 characters long
        "   Argument 3"[17] : string    // max 63 characters long
        "Actor"[18] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[18] : bitflags    // flags: "Don't Block"
        "Conversation: Action 0"[3] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[18] : string    // max 63 characters long
        "   Argument 2"[18] : string    // max 63 characters long
        "   Argument 3"[18] : string    // max 63 characters long
        "Actor"[19] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[19] : bitflags    // flags: "Don't Block"
        "Conversation: Action 1"[3] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[19] : string    // max 63 characters long
        "   Argument 2"[19] : string    // max 63 characters long
        "   Argument 3"[19] : string    // max 63 characters long
        "Actor"[20] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[20] : bitflags    // flags: "Don't Block"
        "Conversation: Action 2"[3] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[20] : string    // max 63 characters long
        "   Argument 2"[20] : string    // max 63 characters long
        "   Argument 3"[20] : string    // max 63 characters long
        "Actor"[21] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[21] : bitflags    // flags: "Don't Block"
        "Conversation: Action 3"[3] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[21] : string    // max 63 characters long
        "   Argument 2"[21] : string    // max 63 characters long
        "   Argument 3"[21] : string    // max 63 characters long
        "Actor"[22] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[22] : bitflags    // flags: "Don't Block"
        "Conversation: Action 4"[3] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[22] : string    // max 63 characters long
        "   Argument 2"[22] : string    // max 63 characters long
        "   Argument 3"[22] : string    // max 63 characters long
        "Actor"[23] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[23] : bitflags    // flags: "Don't Block"
        "Conversation: Action 5"[3] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[23] : string    // max 63 characters long
        "   Argument 2"[23] : string    // max 63 characters long
        "   Argument 3"[23] : string    // max 63 characters long
        "Actor"[24] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[24] : bitflags    // flags: "Don't Block"
        "Conversation: Action 0"[4] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[24] : string    // max 63 characters long
        "   Argument 2"[24] : string    // max 63 characters long
        "   Argument 3"[24] : string    // max 63 characters long
        "Actor"[25] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[25] : bitflags    // flags: "Don't Block"
        "Conversation: Action 1"[4] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[25] : string    // max 63 characters long
        "   Argument 2"[25] : string    // max 63 characters long
        "   Argument 3"[25] : string    // max 63 characters long
        "Actor"[26] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[26] : bitflags    // flags: "Don't Block"
        "Conversation: Action 2"[4] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[26] : string    // max 63 characters long
        "   Argument 2"[26] : string    // max 63 characters long
        "   Argument 3"[26] : string    // max 63 characters long
        "Actor"[27] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[27] : bitflags    // flags: "Don't Block"
        "Conversation: Action 3"[4] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[27] : string    // max 63 characters long
        "   Argument 2"[27] : string    // max 63 characters long
        "   Argument 3"[27] : string    // max 63 characters long
        "Actor"[28] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[28] : bitflags    // flags: "Don't Block"
        "Conversation: Action 4"[4] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[28] : string    // max 63 characters long
        "   Argument 2"[28] : string    // max 63 characters long
        "   Argument 3"[28] : string    // max 63 characters long
        "Actor"[29] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[29] : bitflags    // flags: "Don't Block"
        "Conversation: Action 5"[4] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[29] : string    // max 63 characters long
        "   Argument 2"[29] : string    // max 63 characters long
        "   Argument 3"[29] : string    // max 63 characters long
        "Actor"[30] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[30] : bitflags    // flags: "Don't Block"
        "Conversation: Action 0"[5] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[30] : string    // max 63 characters long
        "   Argument 2"[30] : string    // max 63 characters long
        "   Argument 3"[30] : string    // max 63 characters long
        "Actor"[31] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[31] : bitflags    // flags: "Don't Block"
        "Conversation: Action 1"[5] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[31] : string    // max 63 characters long
        "   Argument 2"[31] : string    // max 63 characters long
        "   Argument 3"[31] : string    // max 63 characters long
        "Actor"[32] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[32] : bitflags    // flags: "Don't Block"
        "Conversation: Action 2"[5] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[32] : string    // max 63 characters long
        "   Argument 2"[32] : string    // max 63 characters long
        "   Argument 3"[32] : string    // max 63 characters long
        "Actor"[33] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[33] : bitflags    // flags: "Don't Block"
        "Conversation: Action 3"[5] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[33] : string    // max 63 characters long
        "   Argument 2"[33] : string    // max 63 characters long
        "   Argument 3"[33] : string    // max 63 characters long
        "Actor"[34] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[34] : bitflags    // flags: "Don't Block"
        "Conversation: Action 4"[5] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[34] : string    // max 63 characters long
        "   Argument 2"[34] : string    // max 63 characters long
        "   Argument 3"[34] : string    // max 63 characters long
        "Actor"[35] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[35] : bitflags    // flags: "Don't Block"
        "Conversation: Action 5"[5] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[35] : string    // max 63 characters long
        "   Argument 2"[35] : string    // max 63 characters long
        "   Argument 3"[35] : string    // max 63 characters long
        "Actor"[36] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[36] : bitflags    // flags: "Don't Block"
        "Conversation: Action 0"[6] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[36] : string    // max 63 characters long
        "   Argument 2"[36] : string    // max 63 characters long
        "   Argument 3"[36] : string    // max 63 characters long
        "Actor"[37] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[37] : bitflags    // flags: "Don't Block"
        "Conversation: Action 1"[6] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[37] : string    // max 63 characters long
        "   Argument 2"[37] : string    // max 63 characters long
        "   Argument 3"[37] : string    // max 63 characters long
        "Actor"[38] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[38] : bitflags    // flags: "Don't Block"
        "Conversation: Action 2"[6] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[38] : string    // max 63 characters long
        "   Argument 2"[38] : string    // max 63 characters long
        "   Argument 3"[38] : string    // max 63 characters long
        "Actor"[39] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[39] : bitflags    // flags: "Don't Block"
        "Conversation: Action 3"[6] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[39] : string    // max 63 characters long
        "   Argument 2"[39] : string    // max 63 characters long
        "   Argument 3"[39] : string    // max 63 characters long
        "Actor"[40] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[40] : bitflags    // flags: "Don't Block"
        "Conversation: Action 4"[6] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[40] : string    // max 63 characters long
        "   Argument 2"[40] : string    // max 63 characters long
        "   Argument 3"[40] : string    // max 63 characters long
        "Actor"[41] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[41] : bitflags    // flags: "Don't Block"
        "Conversation: Action 5"[6] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[41] : string    // max 63 characters long
        "   Argument 2"[41] : string    // max 63 characters long
        "   Argument 3"[41] : string    // max 63 characters long
        "Actor"[42] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[42] : bitflags    // flags: "Don't Block"
        "Conversation: Action 0"[7] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[42] : string    // max 63 characters long
        "   Argument 2"[42] : string    // max 63 characters long
        "   Argument 3"[42] : string    // max 63 characters long
        "Actor"[43] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[43] : bitflags    // flags: "Don't Block"
        "Conversation: Action 1"[7] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[43] : string    // max 63 characters long
        "   Argument 2"[43] : string    // max 63 characters long
        "   Argument 3"[43] : string    // max 63 characters long
        "Actor"[44] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[44] : bitflags    // flags: "Don't Block"
        "Conversation: Action 2"[7] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[44] : string    // max 63 characters long
        "   Argument 2"[44] : string    // max 63 characters long
        "   Argument 3"[44] : string    // max 63 characters long
        "Actor"[45] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[45] : bitflags    // flags: "Don't Block"
        "Conversation: Action 3"[7] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[45] : string    // max 63 characters long
        "   Argument 2"[45] : string    // max 63 characters long
        "   Argument 3"[45] : string    // max 63 characters long
        "Actor"[46] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[46] : bitflags    // flags: "Don't Block"
        "Conversation: Action 4"[7] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[46] : string    // max 63 characters long
        "   Argument 2"[46] : string    // max 63 characters long
        "   Argument 3"[46] : string    // max 63 characters long
        "Actor"[47] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[47] : bitflags    // flags: "Don't Block"
        "Conversation: Action 5"[7] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[47] : string    // max 63 characters long
        "   Argument 2"[47] : string    // max 63 characters long
        "   Argument 3"[47] : string    // max 63 characters long
        "Actor"[48] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[48] : bitflags    // flags: "Don't Block"
        "Conversation: Action 0"[8] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[48] : string    // max 63 characters long
        "   Argument 2"[48] : string    // max 63 characters long
        "   Argument 3"[48] : string    // max 63 characters long
        "Actor"[49] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[49] : bitflags    // flags: "Don't Block"
        "Conversation: Action 1"[8] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[49] : string    // max 63 characters long
        "   Argument 2"[49] : string    // max 63 characters long
        "   Argument 3"[49] : string    // max 63 characters long
        "Actor"[50] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[50] : bitflags    // flags: "Don't Block"
        "Conversation: Action 2"[8] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[50] : string    // max 63 characters long
        "   Argument 2"[50] : string    // max 63 characters long
        "   Argument 3"[50] : string    // max 63 characters long
        "Actor"[51] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[51] : bitflags    // flags: "Don't Block"
        "Conversation: Action 3"[8] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[51] : string    // max 63 characters long
        "   Argument 2"[51] : string    // max 63 characters long
        "   Argument 3"[51] : string    // max 63 characters long
        "Actor"[52] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[52] : bitflags    // flags: "Don't Block"
        "Conversation: Action 4"[8] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[52] : string    // max 63 characters long
        "   Argument 2"[52] : string    // max 63 characters long
        "   Argument 3"[52] : string    // max 63 characters long
        "Actor"[53] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[53] : bitflags    // flags: "Don't Block"
        "Conversation: Action 5"[8] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[53] : string    // max 63 characters long
        "   Argument 2"[53] : string    // max 63 characters long
        "   Argument 3"[53] : string    // max 63 characters long
        "Actor"[54] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[54] : bitflags    // flags: "Don't Block"
        "Conversation: Action 0"[9] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[54] : string    // max 63 characters long
        "   Argument 2"[54] : string    // max 63 characters long
        "   Argument 3"[54] : string    // max 63 characters long
        "Actor"[55] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[55] : bitflags    // flags: "Don't Block"
        "Conversation: Action 1"[9] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[55] : string    // max 63 characters long
        "   Argument 2"[55] : string    // max 63 characters long
        "   Argument 3"[55] : string    // max 63 characters long
        "Actor"[56] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[56] : bitflags    // flags: "Don't Block"
        "Conversation: Action 2"[9] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[56] : string    // max 63 characters long
        "   Argument 2"[56] : string    // max 63 characters long
        "   Argument 3"[56] : string    // max 63 characters long
        "Actor"[57] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[57] : bitflags    // flags: "Don't Block"
        "Conversation: Action 3"[9] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[57] : string    // max 63 characters long
        "   Argument 2"[57] : string    // max 63 characters long
        "   Argument 3"[57] : string    // max 63 characters long
        "Actor"[58] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[58] : bitflags    // flags: "Don't Block"
        "Conversation: Action 4"[9] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[58] : string    // max 63 characters long
        "   Argument 2"[58] : string    // max 63 characters long
        "   Argument 3"[58] : string    // max 63 characters long
        "Actor"[59] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[59] : bitflags    // flags: "Don't Block"
        "Conversation: Action 5"[9] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[59] : string    // max 63 characters long
        "   Argument 2"[59] : string    // max 63 characters long
        "   Argument 3"[59] : string    // max 63 characters long
        "Actor"[60] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[60] : bitflags    // flags: "Don't Block"
        "Conversation: Action 0"[10] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[60] : string    // max 63 characters long
        "   Argument 2"[60] : string    // max 63 characters long
        "   Argument 3"[60] : string    // max 63 characters long
        "Actor"[61] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[61] : bitflags    // flags: "Don't Block"
        "Conversation: Action 1"[10] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[61] : string    // max 63 characters long
        "   Argument 2"[61] : string    // max 63 characters long
        "   Argument 3"[61] : string    // max 63 characters long
        "Actor"[62] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[62] : bitflags    // flags: "Don't Block"
        "Conversation: Action 2"[10] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[62] : string    // max 63 characters long
        "   Argument 2"[62] : string    // max 63 characters long
        "   Argument 3"[62] : string    // max 63 characters long
        "Actor"[63] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[63] : bitflags    // flags: "Don't Block"
        "Conversation: Action 3"[10] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[63] : string    // max 63 characters long
        "   Argument 2"[63] : string    // max 63 characters long
        "   Argument 3"[63] : string    // max 63 characters long
        "Actor"[64] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[64] : bitflags    // flags: "Don't Block"
        "Conversation: Action 4"[10] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[64] : string    // max 63 characters long
        "   Argument 2"[64] : string    // max 63 characters long
        "   Argument 3"[64] : string    // max 63 characters long
        "Actor"[65] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[65] : bitflags    // flags: "Don't Block"
        "Conversation: Action 5"[10] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[65] : string    // max 63 characters long
        "   Argument 2"[65] : string    // max 63 characters long
        "   Argument 3"[65] : string    // max 63 characters long
        "Actor"[66] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[66] : bitflags    // flags: "Don't Block"
        "Conversation: Action 0"[11] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[66] : string    // max 63 characters long
        "   Argument 2"[66] : string    // max 63 characters long
        "   Argument 3"[66] : string    // max 63 characters long
        "Actor"[67] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[67] : bitflags    // flags: "Don't Block"
        "Conversation: Action 1"[11] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[67] : string    // max 63 characters long
        "   Argument 2"[67] : string    // max 63 characters long
        "   Argument 3"[67] : string    // max 63 characters long
        "Actor"[68] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[68] : bitflags    // flags: "Don't Block"
        "Conversation: Action 2"[11] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[68] : string    // max 63 characters long
        "   Argument 2"[68] : string    // max 63 characters long
        "   Argument 3"[68] : string    // max 63 characters long
        "Actor"[69] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[69] : bitflags    // flags: "Don't Block"
        "Conversation: Action 3"[11] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[69] : string    // max 63 characters long
        "   Argument 2"[69] : string    // max 63 characters long
        "   Argument 3"[69] : string    // max 63 characters long
        "Actor"[70] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[70] : bitflags    // flags: "Don't Block"
        "Conversation: Action 4"[11] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[70] : string    // max 63 characters long
        "   Argument 2"[70] : string    // max 63 characters long
        "   Argument 3"[70] : string    // max 63 characters long
        "Actor"[71] : enum    // enums: "Unused", "ActorOne", "ActorTwo", "ActorThree", "ActorFour", "ActorFive", "ActorSix"
        "Flags"[71] : bitflags    // flags: "Don't Block"
        "Conversation: Action 5"[11] : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[71] : string    // max 63 characters long
        "   Argument 2"[71] : string    // max 63 characters long
        "   Argument 3"[71] : string    // max 63 characters long
        "Abort level" : enum    // enums: "(0) Lowers", "(1) Low", "(2) Moderate", "(3) High", "None"
        "Abort priority" : enum    // enums: "Default/None", "Very low", "Low", "Normal", "High", "Very high", "Absolute"
    }
    
    
    ObjProp "AI_SaveConverse"    // type BOOL                      , flags 0x0000 , editor name: "AI: Conversations: SaveConversation" , help text: "Should this conversation be restarted from the beginning after load"
    {
        "" : bool
    }
    
    
    ObjProp "AI_Vision"          // type eAIRating                 , flags 0x0000 , editor name: "AI: Attributes: Vision"
    {
        "" : enum    // enums: "Null", "Well Below Average", "Below Average", "Average", "Above Average", "Well Above Average"
    }
    
    
    ObjProp "AI_Hearing"         // type eAIRating                 , flags 0x0000 , editor name: "AI: Attributes: Hearing"
    {
        "" : enum    // enums: "Null", "Well Below Average", "Below Average", "Average", "Above Average", "Well Above Average"
    }
    
    
    ObjProp "AI_Aggression"      // type eAIRating                 , flags 0x0000 , editor name: "AI: Attributes: Aggression"
    {
        "" : enum    // enums: "Null", "Well Below Average", "Below Average", "Average", "Above Average", "Well Above Average"
    }
    
    
    ObjProp "AI_Dodginess"       // type eAIRating                 , flags 0x0000 , editor name: "AI: Attributes: Dodginess"
    {
        "" : enum    // enums: "Null", "Well Below Average", "Below Average", "Average", "Above Average", "Well Above Average"
    }
    
    
    ObjProp "AI_Sloth"           // type eAIRating                 , flags 0x0000 , editor name: "AI: Attributes: Sloth"
    {
        "" : enum    // enums: "Null", "Well Below Average", "Below Average", "Average", "Above Average", "Well Above Average"
    }
    
    
    ObjProp "AI_Verbosity"       // type eAIRating                 , flags 0x0000 , editor name: "AI: Attributes: Verbosity"
    {
        "" : enum    // enums: "Null", "Well Below Average", "Below Average", "Average", "Above Average", "Well Above Average"
    }
    
    
    ObjProp "AI_Defensive"       // type eAIRating                 , flags 0x0000 , editor name: "AI: Attributes: Defensive"
    {
        "" : enum    // enums: "Null", "Well Below Average", "Below Average", "Average", "Above Average", "Well Above Average"
    }
    
    
    ObjProp "AI_Aptitude"        // type eAIRating                 , flags 0x0000 , editor name: "AI: Attributes: Aptitude"
    {
        "" : enum    // enums: "Null", "Well Below Average", "Below Average", "Average", "Above Average", "Well Above Average"
    }
    
    
    ObjProp "AI_Patrol"          // type BOOL                      , flags 0x0000 , editor name: "AI: Ability Settings: Patrol: Does patrol"
    {
        "" : bool
    }
    
    
    ObjProp "AI_PtrlRnd"         // type BOOL                      , flags 0x0000 , editor name: "AI: Ability Settings: Patrol: Random sequence"
    {
        "" : bool
    }
    
    
    ObjProp "AI_Fidget"          // type BOOL                      , flags 0x0000 , editor name: "AI: Ability Settings: Idling: Should fidget"
    {
        "" : bool
    }
    
    
    ObjProp "AI_InvKnd"          // type eAIInvestKind             , flags 0x0000 , editor name: "AI: Ability Settings: Investigation: Style"
    {
        "" : enum    // enums: "Normal", "Don't investigate"
    }
    
    
    ObjProp "AI_NonHst"          // type eAINonHostility           , flags 0x0000 , editor name: "AI: Ability Settings: Combat: Non-hostile"
    {
        "" : enum    // enums: "Never", "Always to player", "To player until damaged", "To player until threatened", "Until damaged", "Until threatened", "Always"
    }
    
    
    ObjProp "AI_NCDmgRsp"        // type cAINonCombatDmgResp       , flags 0x0000 , editor name: "AI: Ability Settings: Non-combat: Dmg Response Params"
    {
        "Wound Threshold" : int
        "Severe Threshold" : int
        "Response Chance (%)" : int
    }
    
    
    ObjProp "AIRCProp"           // type sAIRangedCombatProp       , flags 0x0011 , editor name: "AI: Ranged Combat: Ranged Combat"
    {
        "Minimum Distance" : int
        "Ideal Distance" : int
        "Firing Delay" : float
        "Cover Desire" : enum    // enums: "Very Low", "Low", "Moderate", "High", "Very High"
        "Decay Speed" : float
        "Fire While Moving" : enum    // enums: "Never", "Very Rarely", "Rarely", "Sometimes", "Often", "Very Often"
        "Contain Projectile" : bool
    }
    
    
    ObjProp "AI_SndType"         // type sAISoundType              , flags 0x0000 , editor name: "AI: Utility: Sound value"
    {
        "Type" : enum    // enums: "None", "Inform", "Minor anomaly", "Major anomaly", "Non-combat high", "Combat high"
        "Signal" : string    // max 31 characters long
    }
    
    
    ObjProp "StimKO"             // type BOOL                      , flags 0x0000 , editor name: "AI: Utility: Is Knockout"
    {
        "" : bool
    }
    
    
    ObjProp "AIFiresThrough"     // type BOOL                      , flags 0x0000 , editor name: "AI: Utility: AI Fires Through"
    {
        "" : bool
    }
    
    
    ObjProp "AIVantagePt"        // type sVantagePtProp            , flags 0x0011 , editor name: "AI: Utility: Marker: Vantage Point"
    {
        "Value" : int
        "Decay Speed" : float
    }
    
    
    ObjProp "AICoverPt"          // type sCoverPtProp              , flags 0x0011 , editor name: "AI: Utility: Marker: Cover Point"
    {
        "Value" : int
        "Decay Speed" : float
        "Can Duck" : bool
    }
    
    
    ObjProp "AngleLimit"         // type sAngleLimitProp           , flags 0x0011 , editor name: "AI: Utility: Angle Limits"
    {
        "Start" : float
        "End" : float
    }
    
    
    ObjProp "AI_CbtTiming"       // type sAICombatTiming           , flags 0x0000 , editor name: "AI: Ability Settings: Combat: Timing"
    {
        "No contact create period" : int
        "No contact drop period" : int
        "Lost contact min delay" : int
        "Lost contact max delay" : int
    }
    
    
    ObjProp "RangedAudioResp"    // type Vector                    , flags 0x0000 , editor name: "AI: Ability Settings: RangedCombat: Audio Response"
    {
        "" : vector
    }
    
    
    ObjProp "RngdGruntAlways"    // type BOOL                      , flags 0x0000 , editor name: "AI: Ability Settings: RangedCombat: Grunt Always"
    {
        "" : bool
    }
    
    
    ObjProp "AIRCRanges"         // type sAIRangedRanges           , flags 0x0000 , editor name: "AI: Ranged Combat: Ranged Combat Ranges"
    {
        "Minimum Distance" : float
        "Short Distance" : float
        "Long Distance" : float
        "Maximum Distance" : float
    }
    
    
    ObjProp "AIRCWound"          // type cAIRangedWound            , flags 0x0000 , editor name: "AI: Ranged Combat: Ranged Combat Wound Motion"
    {
        "Wound Threshold" : int
        "Severe Threshold" : int
        "Response Chance (%)" : int
    }
    
    
    ObjProp "AIRCWndSnd"         // type cAIRangedWound            , flags 0x0000 , editor name: "AI: Ranged Combat: Ranged Combat Wound Sound"
    {
        "Wound Threshold" : int
        "Severe Threshold" : int
        "Response Chance (%)" : int
    }
    
    
    ObjProp "AI_RngApps"         // type sAIRangedApplicabilities  , flags 0x0000 , editor name: "AI: Ranged Combat: Ranged Combat Applicabilities"
    {
        "Idle" : enum    // enums: "None", "Minimum", "VeryLow", "Low", "Normal", "High", "VeryHigh"
        "Close" : enum    // enums: "None", "Minimum", "VeryLow", "Low", "Normal", "High", "VeryHigh"
        "Backup" : enum    // enums: "None", "Minimum", "VeryLow", "Low", "Normal", "High", "VeryHigh"
        "Wound" : enum    // enums: "None", "Minimum", "VeryLow", "Low", "Normal", "High", "VeryHigh"
        "Vantage" : enum    // enums: "None", "Minimum", "VeryLow", "Low", "Normal", "High", "VeryHigh"
        "Left" : enum    // enums: "None", "Minimum", "VeryLow", "Low", "Normal", "High", "VeryHigh"
        "Right" : enum    // enums: "None", "Minimum", "VeryLow", "Low", "Normal", "High", "VeryHigh"
    }
    
    
    ObjProp "AI_RngFlee"         // type sAIRangedFleeParams       , flags 0x0000 , editor name: "AI: Ranged Combat: Ranged Combat Flee"
    {
        "Very Short" : enum    // enums: "None", "Minimum", "VeryLow", "Low", "Normal", "High", "VeryHigh"
        "Short" : enum    // enums: "None", "Minimum", "VeryLow", "Low", "Normal", "High", "VeryHigh"
        "Angle Range" : float
        "Number Points" : int
        "Distance" : float
        "Clearance" : float
    }
    
    
    ObjProp "AI_RngShoot"        // type sAIRangedShootParams      , flags 0x0000 , editor name: "AI: Ranged Combat: Ranged Combat Shoot"
    {
        "Very Short" : enum    // enums: "None", "Minimum", "VeryLow", "Low", "Normal", "High", "VeryHigh"
        "Short" : enum    // enums: "None", "Minimum", "VeryLow", "Low", "Normal", "High", "VeryHigh"
        "Ideal" : enum    // enums: "None", "Minimum", "VeryLow", "Low", "Normal", "High", "VeryHigh"
        "Long" : enum    // enums: "None", "Minimum", "VeryLow", "Low", "Normal", "High", "VeryHigh"
        "Very Long" : enum    // enums: "None", "Minimum", "VeryLow", "Low", "Normal", "High", "VeryHigh"
        "Confirm Range" : bool
        "Confirm LOF" : bool
        "Rotation Speed" : int_hex
        "Launch Offset" : vector
    }
    
    
    ObjProp "HTHAudioResp"       // type Vector                    , flags 0x0000 , editor name: "AI: Ability Settings: HtoHCombat: Audio Response"
    {
        "" : vector
    }
    
    
    ObjProp "HTHMotionResp"      // type Vector                    , flags 0x0000 , editor name: "AI: Ability Settings: HtoHCombat: Motion Response"
    {
        "" : vector
    }
    
    
    ObjProp "HTHGruntAlways"     // type BOOL                      , flags 0x0000 , editor name: "AI: Ability Settings: HtoHCombat: Grunt Always"
    {
        "" : bool
    }
    
    
    ObjProp "HTHModeOverride"    // type int                       , flags 0x0000 , editor name: "AI: Debug: HtoHModeOverride"
    {
        "" : int
    }
    
    
    ObjProp "AI_FleePoint"       // type int                       , flags 0x0010 , editor name: "AI: Utility: Flee point"
    {
        "" : int
    }
    
    
    ObjProp "AI_FleeConds"       // type sAIFleeConditions         , flags 0x0000 , editor name: "AI: Ability Settings: Flee: Condition for flee"
    {
        "Condition" : enum    // enums: "Never", "On low alert", "On moderate alert", "On high alert", "On low hitpoints", "On threat", "On Frustration"
        "Pct Hitpoints" : int
        "Not if # of friends >=" : int
    }
    
    
    ObjProp "AI_FleeAwr"         // type BOOL                      , flags 0x0000 , editor name: "AI: Ability Settings: Flee: If Aware of AI/Player"
    {
        "" : bool
    }
    
    
    ObjProp "AI_WtchPnt"         // type sAIWatchPoint             , flags 0x0000 , editor name: "AI: Utility: Watch: Watch link defaults"
    {
        "Watch kind" : enum    // enums: "Player intrusion", "Self entry"
        "Priority" : enum    // enums: "Default/None", "Very low", "Low", "Normal", "High", "Very high", "Absolute"
        "Trigger: Radius" : int
        "         Height" : int
        "         Required awareness" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "         Line requirement" : enum    // enums: "None", "Line of sight", "Raycast"
        "         Minimum alertness" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "         Maximum alertness" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "Exit: Link kill option" : enum    // enums: "Don't kill", "After trigger", "After completion"
        "      Kill like links" : bool
        "      No test once triggered" : bool
        "      Reuse delay" : int
        "      Reset delay" : int
        "Response: Step 1" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1" : string    // max 63 characters long
        "   Argument 2" : string    // max 63 characters long
        "   Argument 3" : string    // max 63 characters long
        "Response: Step 2" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[1] : string    // max 63 characters long
        "   Argument 2"[1] : string    // max 63 characters long
        "   Argument 3"[1] : string    // max 63 characters long
        "Response: Step 3" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[2] : string    // max 63 characters long
        "   Argument 2"[2] : string    // max 63 characters long
        "   Argument 3"[2] : string    // max 63 characters long
        "Response: Step 4" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[3] : string    // max 63 characters long
        "   Argument 2"[3] : string    // max 63 characters long
        "   Argument 3"[3] : string    // max 63 characters long
        "Response: Step 5" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[4] : string    // max 63 characters long
        "   Argument 2"[4] : string    // max 63 characters long
        "   Argument 3"[4] : string    // max 63 characters long
        "Response: Step 6" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[5] : string    // max 63 characters long
        "   Argument 2"[5] : string    // max 63 characters long
        "   Argument 3"[5] : string    // max 63 characters long
        "Response: Step 7" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[6] : string    // max 63 characters long
        "   Argument 2"[6] : string    // max 63 characters long
        "   Argument 3"[6] : string    // max 63 characters long
        "Response: Step 8" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[7] : string    // max 63 characters long
        "   Argument 2"[7] : string    // max 63 characters long
        "   Argument 3"[7] : string    // max 63 characters long
        "Response: Step 9" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[8] : string    // max 63 characters long
        "   Argument 2"[8] : string    // max 63 characters long
        "   Argument 3"[8] : string    // max 63 characters long
        "Response: Step 10" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[9] : string    // max 63 characters long
        "   Argument 2"[9] : string    // max 63 characters long
        "   Argument 3"[9] : string    // max 63 characters long
        "Response: Step 11" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[10] : string    // max 63 characters long
        "   Argument 2"[10] : string    // max 63 characters long
        "   Argument 3"[10] : string    // max 63 characters long
        "Response: Step 12" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[11] : string    // max 63 characters long
        "   Argument 2"[11] : string    // max 63 characters long
        "   Argument 3"[11] : string    // max 63 characters long
        "Response: Step 13" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[12] : string    // max 63 characters long
        "   Argument 2"[12] : string    // max 63 characters long
        "   Argument 3"[12] : string    // max 63 characters long
        "Response: Step 14" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[13] : string    // max 63 characters long
        "   Argument 2"[13] : string    // max 63 characters long
        "   Argument 3"[13] : string    // max 63 characters long
        "Response: Step 15" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[14] : string    // max 63 characters long
        "   Argument 2"[14] : string    // max 63 characters long
        "   Argument 3"[14] : string    // max 63 characters long
        "Response: Step 16" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[15] : string    // max 63 characters long
        "   Argument 2"[15] : string    // max 63 characters long
        "   Argument 3"[15] : string    // max 63 characters long
    }
    
    
    ObjProp "AI_IdleDirs"        // type sAIIdleDirs               , flags 0x0000 , editor name: "AI: Ability Settings: Idling: Directions"
    {
        "Min. facing switch time" : int
        "Max. facing switch time" : int
        "Facing 1: direction" : int
        "               weight" : int
        "Facing 2: direction" : int
        "               weight"[1] : int
        "Facing 3: direction" : int
        "               weight"[2] : int
    }
    
    
    ObjProp "AI_IdleOrgn"        // type sAIIdleOrigin             , flags 0x0010 , editor name: "AI: State: Idling: Origin"
    {
        "Original Location" : vector
        "Original Facing" : float
    }
    
    
    ObjProp "AI_IdlRetOrg"       // type BOOL                      , flags 0x0000 , editor name: "AI: Ability Settings: Idle: Returns to origin"
    {
        "" : bool
    }
    
    
    ObjProp "AI_FreeKnow"        // type int                       , flags 0x0000 , editor name: "AI: AI Core: Free sense knowledge"
    {
        "" : int
    }
    
    
    ObjProp "AI_SeesPrj"         // type BOOL                      , flags 0x0000 , editor name: "AI: AI Core: Sees projectiles"
    {
        "" : bool
    }
    
    
    ObjProp "AI_NoticeDmg"       // type BOOL                      , flags 0x0000 , editor name: "AI: AI Core: Notices Damage"
    {
        "" : bool
    }
    
    
    ObjProp "AI_OnlyPlayer"      // type BOOL                      , flags 0x0000 , editor name: "AI: AI Core: Only Notices Player"
    {
        "" : bool
    }
    
    
    ObjProp "AI_NtcBody"         // type BOOL                      , flags 0x0000 , editor name: "AI: AI Core: Notices Bodies"
    {
        "" : bool
    }
    
    
    ObjProp "AI_LaunchVis"       // type BOOL                      , flags 0x0000 , editor name: "AI: AI Core: Projectile: Visible launch"
    {
        "" : bool
    }
    
    
    ObjProp "AI_BcstSet"         // type sAIBroadcastSettings      , flags 0x0000 , editor name: "AI: AI Core: Broadcast customization"
    {
        "Broadcasts disabled" : bool
        "Custom 1: Broadcast" : enum    // enums: "", "Sleeping", "Alert zero broadcast", "Alert one broadcast", "Alert two broadcast", "Alert three broadcast", "Alert to one", "Alert to two", "Alert to three", "Spot player", "Alert down from one", "Lost contact", "Charge", "Shoot", "Flee", "Friend", "Alarm", "Find Friend", "Attack", "Attack success", "Block success", "Detect block", "Blocked", "Hit no damage", "Hit high damage", "Hit low damage", "Hit ambush", "Die loud", "Die soft", "Found body", "Something mising", "Security breach", "Small anomaly", "Large anomaly", "Found robot", "Saw intruder", "Saw body", "Saw missing", "Saw something unspecific", "Saw recent dead robot", "Out of reach"
        "               Type" : enum    // enums: "Normal", "No broadcast", "Custom concept"
        "               Custom concept" : string    // max 15 characters long
        "               Additional tags" : string    // max 63 characters long
        "Custom 2: Broadcast" : enum    // enums: "", "Sleeping", "Alert zero broadcast", "Alert one broadcast", "Alert two broadcast", "Alert three broadcast", "Alert to one", "Alert to two", "Alert to three", "Spot player", "Alert down from one", "Lost contact", "Charge", "Shoot", "Flee", "Friend", "Alarm", "Find Friend", "Attack", "Attack success", "Block success", "Detect block", "Blocked", "Hit no damage", "Hit high damage", "Hit low damage", "Hit ambush", "Die loud", "Die soft", "Found body", "Something mising", "Security breach", "Small anomaly", "Large anomaly", "Found robot", "Saw intruder", "Saw body", "Saw missing", "Saw something unspecific", "Saw recent dead robot", "Out of reach"
        "               Type"[1] : enum    // enums: "Normal", "No broadcast", "Custom concept"
        "               Custom concept"[1] : string    // max 15 characters long
        "               Additional tags"[1] : string    // max 63 characters long
        "Custom 3: Broadcast" : enum    // enums: "", "Sleeping", "Alert zero broadcast", "Alert one broadcast", "Alert two broadcast", "Alert three broadcast", "Alert to one", "Alert to two", "Alert to three", "Spot player", "Alert down from one", "Lost contact", "Charge", "Shoot", "Flee", "Friend", "Alarm", "Find Friend", "Attack", "Attack success", "Block success", "Detect block", "Blocked", "Hit no damage", "Hit high damage", "Hit low damage", "Hit ambush", "Die loud", "Die soft", "Found body", "Something mising", "Security breach", "Small anomaly", "Large anomaly", "Found robot", "Saw intruder", "Saw body", "Saw missing", "Saw something unspecific", "Saw recent dead robot", "Out of reach"
        "               Type"[2] : enum    // enums: "Normal", "No broadcast", "Custom concept"
        "               Custom concept"[2] : string    // max 15 characters long
        "               Additional tags"[2] : string    // max 63 characters long
        "Custom 4: Broadcast" : enum    // enums: "", "Sleeping", "Alert zero broadcast", "Alert one broadcast", "Alert two broadcast", "Alert three broadcast", "Alert to one", "Alert to two", "Alert to three", "Spot player", "Alert down from one", "Lost contact", "Charge", "Shoot", "Flee", "Friend", "Alarm", "Find Friend", "Attack", "Attack success", "Block success", "Detect block", "Blocked", "Hit no damage", "Hit high damage", "Hit low damage", "Hit ambush", "Die loud", "Die soft", "Found body", "Something mising", "Security breach", "Small anomaly", "Large anomaly", "Found robot", "Saw intruder", "Saw body", "Saw missing", "Saw something unspecific", "Saw recent dead robot", "Out of reach"
        "               Type"[3] : enum    // enums: "Normal", "No broadcast", "Custom concept"
        "               Custom concept"[3] : string    // max 15 characters long
        "               Additional tags"[3] : string    // max 63 characters long
        "Custom 5: Broadcast" : enum    // enums: "", "Sleeping", "Alert zero broadcast", "Alert one broadcast", "Alert two broadcast", "Alert three broadcast", "Alert to one", "Alert to two", "Alert to three", "Spot player", "Alert down from one", "Lost contact", "Charge", "Shoot", "Flee", "Friend", "Alarm", "Find Friend", "Attack", "Attack success", "Block success", "Detect block", "Blocked", "Hit no damage", "Hit high damage", "Hit low damage", "Hit ambush", "Die loud", "Die soft", "Found body", "Something mising", "Security breach", "Small anomaly", "Large anomaly", "Found robot", "Saw intruder", "Saw body", "Saw missing", "Saw something unspecific", "Saw recent dead robot", "Out of reach"
        "               Type"[4] : enum    // enums: "Normal", "No broadcast", "Custom concept"
        "               Custom concept"[4] : string    // max 15 characters long
        "               Additional tags"[4] : string    // max 63 characters long
        "Custom 6: Broadcast" : enum    // enums: "", "Sleeping", "Alert zero broadcast", "Alert one broadcast", "Alert two broadcast", "Alert three broadcast", "Alert to one", "Alert to two", "Alert to three", "Spot player", "Alert down from one", "Lost contact", "Charge", "Shoot", "Flee", "Friend", "Alarm", "Find Friend", "Attack", "Attack success", "Block success", "Detect block", "Blocked", "Hit no damage", "Hit high damage", "Hit low damage", "Hit ambush", "Die loud", "Die soft", "Found body", "Something mising", "Security breach", "Small anomaly", "Large anomaly", "Found robot", "Saw intruder", "Saw body", "Saw missing", "Saw something unspecific", "Saw recent dead robot", "Out of reach"
        "               Type"[5] : enum    // enums: "Normal", "No broadcast", "Custom concept"
        "               Custom concept"[5] : string    // max 15 characters long
        "               Additional tags"[5] : string    // max 63 characters long
        "Custom 7: Broadcast" : enum    // enums: "", "Sleeping", "Alert zero broadcast", "Alert one broadcast", "Alert two broadcast", "Alert three broadcast", "Alert to one", "Alert to two", "Alert to three", "Spot player", "Alert down from one", "Lost contact", "Charge", "Shoot", "Flee", "Friend", "Alarm", "Find Friend", "Attack", "Attack success", "Block success", "Detect block", "Blocked", "Hit no damage", "Hit high damage", "Hit low damage", "Hit ambush", "Die loud", "Die soft", "Found body", "Something mising", "Security breach", "Small anomaly", "Large anomaly", "Found robot", "Saw intruder", "Saw body", "Saw missing", "Saw something unspecific", "Saw recent dead robot", "Out of reach"
        "               Type"[6] : enum    // enums: "Normal", "No broadcast", "Custom concept"
        "               Custom concept"[6] : string    // max 15 characters long
        "               Additional tags"[6] : string    // max 63 characters long
        "Custom 8: Broadcast" : enum    // enums: "", "Sleeping", "Alert zero broadcast", "Alert one broadcast", "Alert two broadcast", "Alert three broadcast", "Alert to one", "Alert to two", "Alert to three", "Spot player", "Alert down from one", "Lost contact", "Charge", "Shoot", "Flee", "Friend", "Alarm", "Find Friend", "Attack", "Attack success", "Block success", "Detect block", "Blocked", "Hit no damage", "Hit high damage", "Hit low damage", "Hit ambush", "Die loud", "Die soft", "Found body", "Something mising", "Security breach", "Small anomaly", "Large anomaly", "Found robot", "Saw intruder", "Saw body", "Saw missing", "Saw something unspecific", "Saw recent dead robot", "Out of reach"
        "               Type"[7] : enum    // enums: "Normal", "No broadcast", "Custom concept"
        "               Custom concept"[7] : string    // max 15 characters long
        "               Additional tags"[7] : string    // max 63 characters long
    }
    
    
    ObjProp "AI_SigRsp"          // type sAISignalResponse         , flags 0x0000 , editor name: "AI: Responses: Signal response"
    {
        "Signal" : string    // max 31 characters long
        "Priority" : enum    // enums: "Default/None", "Very low", "Low", "Normal", "High", "Very high", "Absolute"
        "Response: Step 1" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1" : string    // max 63 characters long
        "   Argument 2" : string    // max 63 characters long
        "   Argument 3" : string    // max 63 characters long
        "Response: Step 2" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[1] : string    // max 63 characters long
        "   Argument 2"[1] : string    // max 63 characters long
        "   Argument 3"[1] : string    // max 63 characters long
        "Response: Step 3" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[2] : string    // max 63 characters long
        "   Argument 2"[2] : string    // max 63 characters long
        "   Argument 3"[2] : string    // max 63 characters long
        "Response: Step 4" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[3] : string    // max 63 characters long
        "   Argument 2"[3] : string    // max 63 characters long
        "   Argument 3"[3] : string    // max 63 characters long
        "Response: Step 5" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[4] : string    // max 63 characters long
        "   Argument 2"[4] : string    // max 63 characters long
        "   Argument 3"[4] : string    // max 63 characters long
        "Response: Step 6" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[5] : string    // max 63 characters long
        "   Argument 2"[5] : string    // max 63 characters long
        "   Argument 3"[5] : string    // max 63 characters long
        "Response: Step 7" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[6] : string    // max 63 characters long
        "   Argument 2"[6] : string    // max 63 characters long
        "   Argument 3"[6] : string    // max 63 characters long
        "Response: Step 8" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[7] : string    // max 63 characters long
        "   Argument 2"[7] : string    // max 63 characters long
        "   Argument 3"[7] : string    // max 63 characters long
        "Response: Step 9" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[8] : string    // max 63 characters long
        "   Argument 2"[8] : string    // max 63 characters long
        "   Argument 3"[8] : string    // max 63 characters long
        "Response: Step 10" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[9] : string    // max 63 characters long
        "   Argument 2"[9] : string    // max 63 characters long
        "   Argument 3"[9] : string    // max 63 characters long
        "Response: Step 11" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[10] : string    // max 63 characters long
        "   Argument 2"[10] : string    // max 63 characters long
        "   Argument 3"[10] : string    // max 63 characters long
        "Response: Step 12" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[11] : string    // max 63 characters long
        "   Argument 2"[11] : string    // max 63 characters long
        "   Argument 3"[11] : string    // max 63 characters long
        "Response: Step 13" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[12] : string    // max 63 characters long
        "   Argument 2"[12] : string    // max 63 characters long
        "   Argument 3"[12] : string    // max 63 characters long
        "Response: Step 14" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[13] : string    // max 63 characters long
        "   Argument 2"[13] : string    // max 63 characters long
        "   Argument 3"[13] : string    // max 63 characters long
        "Response: Step 15" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[14] : string    // max 63 characters long
        "   Argument 2"[14] : string    // max 63 characters long
        "   Argument 3"[14] : string    // max 63 characters long
        "Response: Step 16" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[15] : string    // max 63 characters long
        "   Argument 2"[15] : string    // max 63 characters long
        "   Argument 3"[15] : string    // max 63 characters long
    }
    
    
    ObjProp "AI_ThrtRsp"         // type sAIThreatResponse         , flags 0x0000 , editor name: "AI: Responses: Threat response"
    {
        "Threat" : enum    // enums: "Raised weapon", "Damage"
        "Response: Step 1" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1" : string    // max 63 characters long
        "   Argument 2" : string    // max 63 characters long
        "   Argument 3" : string    // max 63 characters long
        "Response: Step 2" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[1] : string    // max 63 characters long
        "   Argument 2"[1] : string    // max 63 characters long
        "   Argument 3"[1] : string    // max 63 characters long
        "Response: Step 3" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[2] : string    // max 63 characters long
        "   Argument 2"[2] : string    // max 63 characters long
        "   Argument 3"[2] : string    // max 63 characters long
        "Response: Step 4" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[3] : string    // max 63 characters long
        "   Argument 2"[3] : string    // max 63 characters long
        "   Argument 3"[3] : string    // max 63 characters long
        "Response: Step 5" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[4] : string    // max 63 characters long
        "   Argument 2"[4] : string    // max 63 characters long
        "   Argument 3"[4] : string    // max 63 characters long
        "Response: Step 6" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[5] : string    // max 63 characters long
        "   Argument 2"[5] : string    // max 63 characters long
        "   Argument 3"[5] : string    // max 63 characters long
        "Response: Step 7" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[6] : string    // max 63 characters long
        "   Argument 2"[6] : string    // max 63 characters long
        "   Argument 3"[6] : string    // max 63 characters long
        "Response: Step 8" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[7] : string    // max 63 characters long
        "   Argument 2"[7] : string    // max 63 characters long
        "   Argument 3"[7] : string    // max 63 characters long
        "Response: Step 9" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[8] : string    // max 63 characters long
        "   Argument 2"[8] : string    // max 63 characters long
        "   Argument 3"[8] : string    // max 63 characters long
        "Response: Step 10" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[9] : string    // max 63 characters long
        "   Argument 2"[9] : string    // max 63 characters long
        "   Argument 3"[9] : string    // max 63 characters long
        "Response: Step 11" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[10] : string    // max 63 characters long
        "   Argument 2"[10] : string    // max 63 characters long
        "   Argument 3"[10] : string    // max 63 characters long
        "Response: Step 12" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[11] : string    // max 63 characters long
        "   Argument 2"[11] : string    // max 63 characters long
        "   Argument 3"[11] : string    // max 63 characters long
        "Response: Step 13" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[12] : string    // max 63 characters long
        "   Argument 2"[12] : string    // max 63 characters long
        "   Argument 3"[12] : string    // max 63 characters long
        "Response: Step 14" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[13] : string    // max 63 characters long
        "   Argument 2"[13] : string    // max 63 characters long
        "   Argument 3"[13] : string    // max 63 characters long
        "Response: Step 15" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[14] : string    // max 63 characters long
        "   Argument 2"[14] : string    // max 63 characters long
        "   Argument 3"[14] : string    // max 63 characters long
        "Response: Step 16" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[15] : string    // max 63 characters long
        "   Argument 2"[15] : string    // max 63 characters long
        "   Argument 3"[15] : string    // max 63 characters long
    }
    
    
    ObjProp "AI_AlrtRsp"         // type sAIAlertResponse          , flags 0x0000 , editor name: "AI: Responses: Alert response"
    {
        "Alert level" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "Priority" : enum    // enums: "Default/None", "Very low", "Low", "Normal", "High", "Very high", "Absolute"
        "Response: Step 1" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1" : string    // max 63 characters long
        "   Argument 2" : string    // max 63 characters long
        "   Argument 3" : string    // max 63 characters long
        "Response: Step 2" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[1] : string    // max 63 characters long
        "   Argument 2"[1] : string    // max 63 characters long
        "   Argument 3"[1] : string    // max 63 characters long
        "Response: Step 3" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[2] : string    // max 63 characters long
        "   Argument 2"[2] : string    // max 63 characters long
        "   Argument 3"[2] : string    // max 63 characters long
        "Response: Step 4" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[3] : string    // max 63 characters long
        "   Argument 2"[3] : string    // max 63 characters long
        "   Argument 3"[3] : string    // max 63 characters long
        "Response: Step 5" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[4] : string    // max 63 characters long
        "   Argument 2"[4] : string    // max 63 characters long
        "   Argument 3"[4] : string    // max 63 characters long
        "Response: Step 6" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[5] : string    // max 63 characters long
        "   Argument 2"[5] : string    // max 63 characters long
        "   Argument 3"[5] : string    // max 63 characters long
        "Response: Step 7" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[6] : string    // max 63 characters long
        "   Argument 2"[6] : string    // max 63 characters long
        "   Argument 3"[6] : string    // max 63 characters long
        "Response: Step 8" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[7] : string    // max 63 characters long
        "   Argument 2"[7] : string    // max 63 characters long
        "   Argument 3"[7] : string    // max 63 characters long
        "Response: Step 9" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[8] : string    // max 63 characters long
        "   Argument 2"[8] : string    // max 63 characters long
        "   Argument 3"[8] : string    // max 63 characters long
        "Response: Step 10" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[9] : string    // max 63 characters long
        "   Argument 2"[9] : string    // max 63 characters long
        "   Argument 3"[9] : string    // max 63 characters long
        "Response: Step 11" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[10] : string    // max 63 characters long
        "   Argument 2"[10] : string    // max 63 characters long
        "   Argument 3"[10] : string    // max 63 characters long
        "Response: Step 12" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[11] : string    // max 63 characters long
        "   Argument 2"[11] : string    // max 63 characters long
        "   Argument 3"[11] : string    // max 63 characters long
        "Response: Step 13" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[12] : string    // max 63 characters long
        "   Argument 2"[12] : string    // max 63 characters long
        "   Argument 3"[12] : string    // max 63 characters long
        "Response: Step 14" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[13] : string    // max 63 characters long
        "   Argument 2"[13] : string    // max 63 characters long
        "   Argument 3"[13] : string    // max 63 characters long
        "Response: Step 15" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[14] : string    // max 63 characters long
        "   Argument 2"[14] : string    // max 63 characters long
        "   Argument 3"[14] : string    // max 63 characters long
        "Response: Step 16" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[15] : string    // max 63 characters long
        "   Argument 2"[15] : string    // max 63 characters long
        "   Argument 3"[15] : string    // max 63 characters long
    }
    
    
    ObjProp "AI_BodyRsp"         // type sAIBodyResponse           , flags 0x0000 , editor name: "AI: Responses: Body response"
    {
        "Priority" : enum    // enums: "Default/None", "Very low", "Low", "Normal", "High", "Very high", "Absolute"
        "Response: Step 1" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1" : string    // max 63 characters long
        "   Argument 2" : string    // max 63 characters long
        "   Argument 3" : string    // max 63 characters long
        "Response: Step 2" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[1] : string    // max 63 characters long
        "   Argument 2"[1] : string    // max 63 characters long
        "   Argument 3"[1] : string    // max 63 characters long
        "Response: Step 3" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[2] : string    // max 63 characters long
        "   Argument 2"[2] : string    // max 63 characters long
        "   Argument 3"[2] : string    // max 63 characters long
        "Response: Step 4" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[3] : string    // max 63 characters long
        "   Argument 2"[3] : string    // max 63 characters long
        "   Argument 3"[3] : string    // max 63 characters long
        "Response: Step 5" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[4] : string    // max 63 characters long
        "   Argument 2"[4] : string    // max 63 characters long
        "   Argument 3"[4] : string    // max 63 characters long
        "Response: Step 6" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[5] : string    // max 63 characters long
        "   Argument 2"[5] : string    // max 63 characters long
        "   Argument 3"[5] : string    // max 63 characters long
        "Response: Step 7" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[6] : string    // max 63 characters long
        "   Argument 2"[6] : string    // max 63 characters long
        "   Argument 3"[6] : string    // max 63 characters long
        "Response: Step 8" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[7] : string    // max 63 characters long
        "   Argument 2"[7] : string    // max 63 characters long
        "   Argument 3"[7] : string    // max 63 characters long
        "Response: Step 9" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[8] : string    // max 63 characters long
        "   Argument 2"[8] : string    // max 63 characters long
        "   Argument 3"[8] : string    // max 63 characters long
        "Response: Step 10" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[9] : string    // max 63 characters long
        "   Argument 2"[9] : string    // max 63 characters long
        "   Argument 3"[9] : string    // max 63 characters long
        "Response: Step 11" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[10] : string    // max 63 characters long
        "   Argument 2"[10] : string    // max 63 characters long
        "   Argument 3"[10] : string    // max 63 characters long
        "Response: Step 12" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[11] : string    // max 63 characters long
        "   Argument 2"[11] : string    // max 63 characters long
        "   Argument 3"[11] : string    // max 63 characters long
        "Response: Step 13" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[12] : string    // max 63 characters long
        "   Argument 2"[12] : string    // max 63 characters long
        "   Argument 3"[12] : string    // max 63 characters long
        "Response: Step 14" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[13] : string    // max 63 characters long
        "   Argument 2"[13] : string    // max 63 characters long
        "   Argument 3"[13] : string    // max 63 characters long
        "Response: Step 15" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[14] : string    // max 63 characters long
        "   Argument 2"[14] : string    // max 63 characters long
        "   Argument 3"[14] : string    // max 63 characters long
        "Response: Step 16" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[15] : string    // max 63 characters long
        "   Argument 2"[15] : string    // max 63 characters long
        "   Argument 3"[15] : string    // max 63 characters long
    }
    
    
    ObjProp "AI_SuspRsp"         // type sAISuspiciousResponse     , flags 0x0000 , editor name: "AI: Responses: Suspicious response"
    {
        "Priority" : enum    // enums: "Default/None", "Very low", "Low", "Normal", "High", "Very high", "Absolute"
        "Response: Step 1" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1" : string    // max 63 characters long
        "   Argument 2" : string    // max 63 characters long
        "   Argument 3" : string    // max 63 characters long
        "Response: Step 2" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[1] : string    // max 63 characters long
        "   Argument 2"[1] : string    // max 63 characters long
        "   Argument 3"[1] : string    // max 63 characters long
        "Response: Step 3" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[2] : string    // max 63 characters long
        "   Argument 2"[2] : string    // max 63 characters long
        "   Argument 3"[2] : string    // max 63 characters long
        "Response: Step 4" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[3] : string    // max 63 characters long
        "   Argument 2"[3] : string    // max 63 characters long
        "   Argument 3"[3] : string    // max 63 characters long
        "Response: Step 5" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[4] : string    // max 63 characters long
        "   Argument 2"[4] : string    // max 63 characters long
        "   Argument 3"[4] : string    // max 63 characters long
        "Response: Step 6" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[5] : string    // max 63 characters long
        "   Argument 2"[5] : string    // max 63 characters long
        "   Argument 3"[5] : string    // max 63 characters long
        "Response: Step 7" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[6] : string    // max 63 characters long
        "   Argument 2"[6] : string    // max 63 characters long
        "   Argument 3"[6] : string    // max 63 characters long
        "Response: Step 8" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[7] : string    // max 63 characters long
        "   Argument 2"[7] : string    // max 63 characters long
        "   Argument 3"[7] : string    // max 63 characters long
        "Response: Step 9" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[8] : string    // max 63 characters long
        "   Argument 2"[8] : string    // max 63 characters long
        "   Argument 3"[8] : string    // max 63 characters long
        "Response: Step 10" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[9] : string    // max 63 characters long
        "   Argument 2"[9] : string    // max 63 characters long
        "   Argument 3"[9] : string    // max 63 characters long
        "Response: Step 11" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[10] : string    // max 63 characters long
        "   Argument 2"[10] : string    // max 63 characters long
        "   Argument 3"[10] : string    // max 63 characters long
        "Response: Step 12" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[11] : string    // max 63 characters long
        "   Argument 2"[11] : string    // max 63 characters long
        "   Argument 3"[11] : string    // max 63 characters long
        "Response: Step 13" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[12] : string    // max 63 characters long
        "   Argument 2"[12] : string    // max 63 characters long
        "   Argument 3"[12] : string    // max 63 characters long
        "Response: Step 14" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[13] : string    // max 63 characters long
        "   Argument 2"[13] : string    // max 63 characters long
        "   Argument 3"[13] : string    // max 63 characters long
        "Response: Step 15" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[14] : string    // max 63 characters long
        "   Argument 2"[14] : string    // max 63 characters long
        "   Argument 3"[14] : string    // max 63 characters long
        "Response: Step 16" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[15] : string    // max 63 characters long
        "   Argument 2"[15] : string    // max 63 characters long
        "   Argument 3"[15] : string    // max 63 characters long
    }
    
    
    ObjProp "AI_ObjAvoid"        // type sAIObjectAvoid            , flags 0x0000 , editor name: "AI: Utility: Path avoid"
    {
        "Flags" : bitflags    // flags: "Block pathfind", "Repel"
    }
    
    
    ObjProp "AI_ObjPathable"     // type BOOL                      , flags 0x0000 , editor name: "AI: Utility: Pathable object"
    {
        "" : bool
    }
    
    
    ObjProp "AI_InfRsp"          // type sAIInformResponse         , flags 0x0000 , editor name: "AI: Ability Settings: Inform: Response options"
    {
        "Ignore informs" : bool
        "No default investigate" : bool
        "Response: Step 1" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1" : string    // max 63 characters long
        "   Argument 2" : string    // max 63 characters long
        "   Argument 3" : string    // max 63 characters long
        "Response: Step 2" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[1] : string    // max 63 characters long
        "   Argument 2"[1] : string    // max 63 characters long
        "   Argument 3"[1] : string    // max 63 characters long
    }
    
    
    ObjProp "AI_InfOtr"          // type BOOL                      , flags 0x0000 , editor name: "AI: Ability Settings: Inform: Inform others"
    {
        "" : bool
    }
    
    
    ObjProp "AI_InfMxP"          // type int                       , flags 0x0000 , editor name: "AI: Ability Settings: Inform: Max. Passes"
    {
        "" : int
    }
    
    
    ObjProp "AI_InfDly"          // type int                       , flags 0x0000 , editor name: "AI: Ability Settings: Inform: Inform delay"
    {
        "" : int
    }
    
    
    ObjProp "AI_InfDst"          // type int                       , flags 0x0000 , editor name: "AI: Ability Settings: Inform: Min. dist to informed"
    {
        "" : int
    }
    
    
    ObjProp "AI_InfExp"          // type int                       , flags 0x0000 , editor name: "AI: Ability Settings: Inform: Expiration"
    {
        "" : int
    }
    
    
    ObjProp "AI_CbtRsp"          // type sAISenseCombatResponse    , flags 0x0000 , editor name: "AI: Responses: Sense combat response"
    {
        "Response: Step 1" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1" : string    // max 63 characters long
        "   Argument 2" : string    // max 63 characters long
        "   Argument 3" : string    // max 63 characters long
        "Response: Step 2" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[1] : string    // max 63 characters long
        "   Argument 2"[1] : string    // max 63 characters long
        "   Argument 3"[1] : string    // max 63 characters long
        "Response: Step 3" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[2] : string    // max 63 characters long
        "   Argument 2"[2] : string    // max 63 characters long
        "   Argument 3"[2] : string    // max 63 characters long
        "Response: Step 4" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[3] : string    // max 63 characters long
        "   Argument 2"[3] : string    // max 63 characters long
        "   Argument 3"[3] : string    // max 63 characters long
        "Response: Step 5" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[4] : string    // max 63 characters long
        "   Argument 2"[4] : string    // max 63 characters long
        "   Argument 3"[4] : string    // max 63 characters long
        "Response: Step 6" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[5] : string    // max 63 characters long
        "   Argument 2"[5] : string    // max 63 characters long
        "   Argument 3"[5] : string    // max 63 characters long
        "Response: Step 7" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[6] : string    // max 63 characters long
        "   Argument 2"[6] : string    // max 63 characters long
        "   Argument 3"[6] : string    // max 63 characters long
        "Response: Step 8" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[7] : string    // max 63 characters long
        "   Argument 2"[7] : string    // max 63 characters long
        "   Argument 3"[7] : string    // max 63 characters long
        "Response: Step 9" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[8] : string    // max 63 characters long
        "   Argument 2"[8] : string    // max 63 characters long
        "   Argument 3"[8] : string    // max 63 characters long
        "Response: Step 10" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[9] : string    // max 63 characters long
        "   Argument 2"[9] : string    // max 63 characters long
        "   Argument 3"[9] : string    // max 63 characters long
        "Response: Step 11" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[10] : string    // max 63 characters long
        "   Argument 2"[10] : string    // max 63 characters long
        "   Argument 3"[10] : string    // max 63 characters long
        "Response: Step 12" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[11] : string    // max 63 characters long
        "   Argument 2"[11] : string    // max 63 characters long
        "   Argument 3"[11] : string    // max 63 characters long
        "Response: Step 13" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[12] : string    // max 63 characters long
        "   Argument 2"[12] : string    // max 63 characters long
        "   Argument 3"[12] : string    // max 63 characters long
        "Response: Step 14" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[13] : string    // max 63 characters long
        "   Argument 2"[13] : string    // max 63 characters long
        "   Argument 3"[13] : string    // max 63 characters long
        "Response: Step 15" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[14] : string    // max 63 characters long
        "   Argument 2"[14] : string    // max 63 characters long
        "   Argument 3"[14] : string    // max 63 characters long
        "Response: Step 16" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[15] : string    // max 63 characters long
        "   Argument 2"[15] : string    // max 63 characters long
        "   Argument 3"[15] : string    // max 63 characters long
    }
    
    
    ObjProp "AI_Frozen"          // type sAIFrozen                 , flags 0x0010 , editor name: "AI: State: Frozen"
    {
        "StartTime" : int
        "Duration" : int
    }
    
    
    ObjProp "AI_UsesDoors"       // type BOOL                      , flags 0x0000 , editor name: "AI: AI Core: Uses doors"
    {
        "" : bool
    }
    
    
    ObjProp "AI_NCDmRsp"         // type BOOL                      , flags 0x0000 , editor name: "AI: Ability Settings: Non-combat: Respond to damage"
    {
        "" : bool
    }
    
    
    ObjProp "AISuprise"          // type Vector                    , flags 0x0000 , editor name: "AI: AI Core: Suprise [0, 1, Rad]"
    {
        "" : vector
    }
    
    
    ObjProp "HTHCombatDist"      // type Vector                    , flags 0x0000 , editor name: "AI: Ability Settings: HtoHCombat: Distances"
    {
        "" : vector
    }
    
    
    ObjProp "AI_BlkVis"          // type BOOL                      , flags 0x0000 , editor name: "AI: Utility: Blocks AI Vision"
    {
        "" : bool
    }
    
    
    ObjProp "Acoustics"          // type sAcousticsProperty        , flags 0x0004 , editor name: "Room: Acoustics"
    {
        "EAX Reverb Code" : enum    // enums: "Generic", "PaddedCell", "Room", "Bathroom", "LivingRoom", "StoneRoom", "Auditorium", "ConcertHall", "Cave", "Arena", "Hangar", "CarpetedHallway", "Hallway", "StoneCorridor", "Alley", "Forest", "City", "Mountains", "Quarry", "Plain", "ParkingLot", "SewerPipe", "UnderWater", "Drugged", "Dizzy", "Psychotic"
        "Dampening Factor" : int
        "Height Override" : int
    }
    
    
    ObjProp "Ambient"            // type sAmbientProperty          , flags 0x0004 , editor name: "Room: Ambient"
    {
        "Schema Name" : string    // max 63 characters long
        "Volume" : int
    }
    
    
    ObjProp "RoomGrav"           // type int                       , flags 0x0004 , editor name: "Room: Gravity %"
    {
        "" : int
    }
    
    
    ObjProp "LoudRoom"           // type float                     , flags 0x0000 , editor name: "Room: Loud Room"
    {
        "" : float
    }
    
    
    ObjProp "RoomRend"           // type sRoomRendProps            , flags 0x0000 , editor name: "Room: Render Options" , help text: "render options for a room"
    {
        "Flags" : bitflags    // flags: "See-through"
        "Env Zone" : int
    }
    
    
    ObjProp "PhysAttr"           // type cPhysAttrProp             , flags 0x0011 , editor name: "Physics: Model: Attributes"
    {
        "Gravity %" : float
        "Mass" : float
        "Density" : float
        "Elasticity" : float
        "Base Friction" : float
        "COG Offset" : vector
        "Climbable Sides" : bitflags    // flags: "+X Axis", "+Y Axis", "+Z Axis", "-X Axis", "-Y Axis", "-Z Axis"
        "Flags" : bitflags    // flags: "Is Edge Trigger", "Apply Platform Friction", "Pushing Vator Attachments"
        "Rotation Axes" : bitflags    // flags: "X Axis", "Y Axis", "Z Axis"
        "Rest Axes" : bitflags    // flags: "+X Axis", "+Y Axis", "+Z Axis", "-X Axis", "-Y Axis", "-Z Axis"
    }
    
    
    ObjProp "PhysState"          // type cPhysStateProp            , flags 0x0011 , editor name: "Physics: Model: State"
    {
        "Location" : vector
        "Facing" : vector
        "Velocity" : vector
        "Rot Velocity" : vector
    }
    
    
    ObjProp "PhysControl"        // type cPhysControlProp          , flags 0x0011 , editor name: "Physics: Model: Controls"
    {
        "Controls Active" : bitflags    // flags: "Axis Velocity", "Velocity", "Rot Velocity", "Location", "Rotation"
        "AxisVelocity" : vector
        "Velocity" : vector
        "RotationalVelocity" : vector
    }
    
    
    ObjProp "PhysDims"           // type cPhysDimsProp             , flags 0x0011 , editor name: "Physics: Model: Dimensions"
    {
        "Size" : vector
        "Radius 1" : float
        "Radius 2" : float
        "Offset 1" : vector
        "Offset 2" : vector
        "Point vs Terrain" : bool
        "Point vs Not Special" : bool
    }
    
    
    ObjProp "PhysCanMant"        // type BOOL                      , flags 0x0000 , editor name: "Physics: Model: Mantleable"
    {
        "" : bool
    }
    
    
    ObjProp "ConveyorVel"        // type Vector                    , flags 0x0000 , editor name: "Physics: Model: ConveyorVelocity"
    {
        "" : vector
    }
    
    
    ObjProp "MovingTerrain"      // type cMovingTerrainProp        , flags 0x0011 , editor name: "Physics: Misc: MovingTerrain"
    {
        "Active" : bool
    }
    
    
    ObjProp "Friction"           // type float                     , flags 0x0000 , editor name: "Physics: Terrain: Friction"
    {
        "" : float
    }
    
    
    ObjProp "Elasticity"         // type float                     , flags 0x0000 , editor name: "Physics: Terrain: Elasticity"
    {
        "" : float
    }
    
    
    ObjProp "Climbability"       // type float                     , flags 0x0000 , editor name: "Physics: Terrain: Climbability"
    {
        "" : float
    }
    
    
    ObjProp "CanAttach"          // type tCanAttachType            , flags 0x0000 , editor name: "Physics: Terrain: Can Attach"
    {
        "Flags" : bitflags    // flags: "Rope", "Vine"
    }
    
    
    ObjProp "PhysExplode"        // type sPhysExplodeProp          , flags 0x0010 , editor name: "Physics: Projectile: Explode Me"
    {
        "Magnitude" : int
        "Radius (squared)" : float
    }
    
    
    ObjProp "PhysInitVel"        // type Vector                    , flags 0x0010 , editor name: "Physics: Projectile: Initial Velocity"
    {
        "" : vector
    }
    
    
    ObjProp "PhysFaceVel"        // type BOOL                      , flags 0x0011 , editor name: "Physics: Projectile: Faces Velocity"
    {
        "" : bool
    }
    
    
    ObjProp "PhysRope"           // type sPhysRopeProp             , flags 0x0011 , editor name: "Physics: Misc: Rope"
    {
        "Desired Length" : float
        "Length" : float
        "Deployed" : bool
        "Calc Correct Len" : bool
    }
    
    
    ObjProp "PhysPPlate"         // type sPhysPPlateProp           , flags 0x0011 , editor name: "Physics: Misc: Pressure Plate"
    {
        "Activation Weight" : float
        "Travel" : float
        "Speed" : float
        "Pause" : float
        "Blocks Vision" : bool
    }
    
    
    ObjProp "PhysAIColl"         // type BOOL                      , flags 0x0000 , editor name: "Physics: Misc: AI Collides With"
    {
        "" : bool
    }
    
    
    ObjProp "Borrowing"          // type BOOL                      , flags 0x0080 , editor name: "Networking: Pending Borrow"
    {
        "" : bool
    }
    
    
    ObjProp "Borrowed"           // type BOOL                      , flags 0x0080 , editor name: "Networking: Borrowed For Push"
    {
        "" : bool
    }
    
    
    ObjProp "NoBorrow"           // type BOOL                      , flags 0x0000 , editor name: "Networking: Disallow Borrow"
    {
        "" : bool
    }
    
    
    ObjProp "Book"               // type string                    , flags 0x0000 , editor name: "Book: Text"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "BookArt"            // type string                    , flags 0x0000 , editor name: "Book: Art"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "TerrRepOff"         // type string                    , flags 0x0000 , editor name: "Script: TerrReplaceOff"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "TerrRepOn"          // type string                    , flags 0x0000 , editor name: "Script: TerrReplaceOn"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "TerrRepDestroy"     // type string                    , flags 0x0000 , editor name: "Script: TerrReplaceDestroy"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "DesignNote"         // type string                    , flags 0x0000 , editor name: "Editor: Design Note"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "TrapQVar"           // type string                    , flags 0x0000 , editor name: "Trap: Quest Var"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "ScriptTiming"       // type int                       , flags 0x0000 , editor name: "Script: Timing"
    {
        "" : int
    }
    
    
    ObjProp "Creature"           // type sCreatureHandle           , flags 0x0244 , editor name: "Creature: Creature Type"
    {
        "Type" : enum    // enums: "Humanoid", "PlayerArm", "PlayerBowArm", "Burrick", "Spider", "BugBeast", "Crayman", "Constantine", "Apparition", "Sweel", "Rope", "Zombie", "Small Spider", "Frog", "Cutty", "Avatar", "Robot", "Small Robot", "Spider Bot"
    }
    
    
    ObjProp "NonPhysCreature"    // type BOOL                      , flags 0x0000 , editor name: "Creature: Is Non-Physical"
    {
        "" : bool
    }
    
    
    ObjProp "CretPose"           // type sCreaturePose             , flags 0x0000 , editor name: "Creature: Current Pose"
    {
        "Type" : enum    // enums: "Tags", "Motion Name"
        "Motion" : string    // max 79 characters long
        "Frac" : float
        "Model scale" : float
        "Ballistic" : bool
    }
    
    
    ObjProp "CretScale"          // type float                     , flags 0x0000 , editor name: "Creature: Creature Scale"
    {
        "" : float
    }
    
    
    ObjProp "CretHTrack"         // type BOOL                      , flags 0x0000 , editor name: "Creature: Disable Head Track"
    {
        "" : bool
    }
    
    
    ObjProp "PickSrc"            // type PickSrc                   , flags 0x0000 , editor name: "Dark GameSys: PickSrc"
    {
        "PickBits" : bitflags
    }
    
    
    ObjProp "AdvPickTransCfg"    // type sAdvPickTransCfg          , flags 0x0000 , editor name: "Dark Gamesys: AdvPickTransCfg"
    {
        "Next State Pick 1-0" : int
        "Next State Pick 2-0" : int
        "Next State Pick 3-0" : int
        "Next State Pick 1-1" : int
        "Next State Pick 2-1" : int
        "Next State Pick 3-1" : int
        "Next State Pick 1-2" : int
        "Next State Pick 2-2" : int
        "Next State Pick 3-2" : int
        "Next State Pick 1-3" : int
        "Next State Pick 2-3" : int
        "Next State Pick 3-3" : int
        "Next State Pick 1-4" : int
        "Next State Pick 2-4" : int
        "Next State Pick 3-4" : int
        "Next State Pick 1-5" : int
        "Next State Pick 2-5" : int
        "Next State Pick 3-5" : int
        "Next State Pick 1-6" : int
        "Next State Pick 2-6" : int
        "Next State Pick 3-6" : int
        "Next State Pick 1-7" : int
        "Next State Pick 2-7" : int
        "Next State Pick 3-7" : int
        "Next State Pick 1-8" : int
        "Next State Pick 2-8" : int
        "Next State Pick 3-8" : int
    }
    
    
    ObjProp "AdvPickSoundCfg"    // type sAdvPickSoundCfg          , flags 0x0000 , editor name: "Dark Gamesys: AdvPickSoundCfg"
    {
        "Sound Pick 1-0" : string    // max 23 characters long
        "Sound Pick 2-0" : string    // max 23 characters long
        "Sound Pick 3-0" : string    // max 23 characters long
        "Sound Pick 1-1" : string    // max 23 characters long
        "Sound Pick 2-1" : string    // max 23 characters long
        "Sound Pick 3-1" : string    // max 23 characters long
        "Sound Pick 1-2" : string    // max 23 characters long
        "Sound Pick 2-2" : string    // max 23 characters long
        "Sound Pick 3-2" : string    // max 23 characters long
        "Sound Pick 1-3" : string    // max 23 characters long
        "Sound Pick 2-3" : string    // max 23 characters long
        "Sound Pick 3-3" : string    // max 23 characters long
        "Sound Pick 1-4" : string    // max 23 characters long
        "Sound Pick 2-4" : string    // max 23 characters long
        "Sound Pick 3-4" : string    // max 23 characters long
        "Sound Pick 1-5" : string    // max 23 characters long
        "Sound Pick 2-5" : string    // max 23 characters long
        "Sound Pick 3-5" : string    // max 23 characters long
        "Sound Pick 1-6" : string    // max 23 characters long
        "Sound Pick 2-6" : string    // max 23 characters long
        "Sound Pick 3-6" : string    // max 23 characters long
        "Sound Pick 1-7" : string    // max 23 characters long
        "Sound Pick 2-7" : string    // max 23 characters long
        "Sound Pick 3-7" : string    // max 23 characters long
        "Sound Pick 1-8" : string    // max 23 characters long
        "Sound Pick 2-8" : string    // max 23 characters long
        "Sound Pick 3-8" : string    // max 23 characters long
    }
    
    
    ObjProp "AdvPickStateCfg"    // type sAdvPickStateCfg          , flags 0x0000 , editor name: "Dark Gamesys: AdvPickStateCfg"
    {
        "Enable Advanced System" : bool
        "First Pick Src" : bitflags
        "Second Pick Src" : bitflags
        "Third Pick Src" : bitflags
        "Time 0" : int
        "Time 1" : int
        "Time 2" : int
        "Time 3" : int
        "Time 4" : int
        "Time 5" : int
        "Time 6" : int
        "Time 7" : int
        "Time 8" : int
    }
    
    
    ObjProp "PickCfg"            // type sPickCfg                  , flags 0x0000 , editor name: "Dark GameSys: PickCfg"
    {
        "LockBits 1" : bitflags
        "Pins 1" : int
        "TimePct 1" : int
        "Flags 1" : bitflags    // flags: "Reset On Fail", "Randomize Time"
        "LockBits 2" : bitflags
        "Pins 2" : int
        "TimePct 2" : int
        "Flags 2" : bitflags    // flags: "Reset On Fail", "Randomize Time"
        "LockBits 3" : bitflags
        "Pins 3" : int
        "TimePct 3" : int
        "Flags 3" : bitflags    // flags: "Reset On Fail", "Randomize Time"
    }
    
    
    ObjProp "PickState"          // type sPickState                , flags 0x0000 , editor name: "Dark GameSys: PickState"
    {
        "CurTumbler/State" : int
        "Pin" : int
        "Done" : bool
        "RandTime" : int
        "TotalTime" : int
        "StageTime" : int
        "Picker" : int
    }
    
    
    ObjProp "BeltLink"           // type sBeltLink                 , flags 0x0000 , editor name: "Dark GameSys: BeltLinkLocation"
    {
        "Mesh Joint" : int
        "X Rotation" : int
        "Y Rotation" : int
        "Z Rotation" : int
        "Offset" : vector
    }
    
    
    ObjProp "AltLink"            // type sAltLink                  , flags 0x0000 , editor name: "Dark GameSys: AltLinkLocation"
    {
        "Mesh Joint" : int
        "X Rotation" : int
        "Y Rotation" : int
        "Z Rotation" : int
        "Offset" : vector
    }
    
    
    ObjProp "NoFlash"            // type BOOL                      , flags 0x0000 , editor name: "Dark GameSys: FlashInvuln"
    {
        "" : bool
    }
    
    
    ObjProp "Fungus"             // type BOOL                      , flags 0x0010 , editor name: "Prox: Fungus"
    {
        "" : bool
    }
    
    
    ObjProp "Blood"              // type BOOL                      , flags 0x0010 , editor name: "Prox: Blood"
    {
        "" : bool
    }
    
    
    ObjProp "GameName"           // type string                    , flags 0x0000 , editor name: "Inventory: Object Name"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "ToolReach"          // type float                     , flags 0x0000 , editor name: "Inventory: Tool Reach"
    {
        "" : float
    }
    
    
    ObjProp "InvBeingTaken"      // type BOOL                      , flags 0x0080 , editor name: "Inventory: Being Taken"
    {
        "" : bool
    }
    
    
    ObjProp "NoDrop"             // type BOOL                      , flags 0x0000 , editor name: "Inventory: Can't Drop This"
    {
        "" : bool
    }
    
    
    ObjProp "BreathConfig"       // type sBreathConfig             , flags 0x0000 , editor name: "Dark Gamesys: Breath Config"
    {
        "Max Air (ms)" : int
        "Drown Freq (ms)" : int
        "Drown Damage" : int
        "Recover rate" : float
    }
    
    
    ObjProp "AirSupply"          // type int                       , flags 0x0010 , editor name: "Dark Gamesys: Air Supply"
    {
        "" : int
    }
    
    
    ObjProp "ParticleType"       // type string                    , flags 0x0000 , editor name: "SFX: Particle Type"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "BloodType"          // type string                    , flags 0x0000 , editor name: "Game: Dark: BloodType"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "BloodCause"         // type BOOL                      , flags 0x0000 , editor name: "Game: Dark: BloodCause"
    {
        "" : bool
    }
    
    
    ObjProp "BloodMaxDmg"        // type int                       , flags 0x0000 , editor name: "Game: Dark: BloodMaxDamage"
    {
        "" : int
    }
    
    
    ObjProp "BaseGunDesc"        // type cBaseGunDescs             , flags 0x0000 , editor name: "Gun: Base Gun Description"
    {
        "Number of Settings" : int
        "Setting 0: Burst" : int
        "Setting 0: Clip" : int
        "Setting 0: Spray" : int
        "Setting 0: Stim Mult" : float
        "Setting 0: Burst Interval" : int
        "Setting 0: Shot Interval" : int
        "Setting 0: Ammo Usage" : int
        "Setting 0: Speed Mult" : float
        "Setting 0: Reload Time" : int
        "Setting 0: Zoom Factor" : float
        "Setting 1: Burst" : int
        "Setting 1: Clip" : int
        "Setting 1: Spray" : int
        "Setting 1: Stim Mult" : float
        "Setting 1: Burst Interval" : int
        "Setting 1: Shot Interval" : int
        "Setting 1: Ammo Usage" : int
        "Setting 1: Speed Mult" : float
        "Setting 1: Reload Time" : int
        "Setting 1: Zoom Factor" : float
        "Setting 2: Burst" : int
        "Setting 2: Clip" : int
        "Setting 2: Spray" : int
        "Setting 2: Stim Mult" : float
        "Setting 2: Burst Interval" : int
        "Setting 2: Shot Interval" : int
        "Setting 2: Ammo Usage" : int
        "Setting 2: Speed Mult" : float
        "Setting 2: Reload Time" : int
        "Setting 2: Zoom Factor" : float
    }
    
    
    ObjProp "AIGunDesc"          // type sAIGunDesc                , flags 0x0000 , editor name: "Gun: AI Gun Description"
    {
        "AI Max Range (Not used)" : float
        "Fire Offset" : vector
        "Start Lag" : int
        "Burst Lag" : int
        "End Lag" : int
        "Aim Error" : ang
    }
    
    
    ObjProp "GunState"           // type sGunState                 , flags 0x0010 , editor name: "Gun: Gun State"
    {
        "Ammo" : int
        "Condition (%)" : float
        "Silencing (%)" : float
        "Setting" : int
        "Modification" : int
    }
    
    
    ObjProp "Projectile"         // type sProjectile               , flags 0x0000 , editor name: "Gun: Projectile Description"
    {
        "Spray" : int
        "Spread" : int_hex
    }
    
    
    ObjProp "Loot"               // type sLootProp                 , flags 0x0000 , editor name: "Dark Gamesys: Loot"
    {
        "Gold" : int
        "Gems" : int
        "Art" : int
        "Special" : bitflags    // flags: "Special 1", "Special 2", "Special 3", "Special 4", "Special 5", "Special 6", "Special 7", "Special 8"
    }
    
    
    ObjProp "Fixture"            // type BOOL                      , flags 0x0000 , editor name: "Object System: Fixture"
    {
        "" : bool
    }
    
    
    ObjProp "Automap"            // type sAutomapProperty          , flags 0x0000 , editor name: "Room: Automap"
    {
        "Page" : int
        "Location" : int
    }
    
    
    ObjProp "ItemStore"          // type BOOL                      , flags 0x0011 , editor name: "Inventory: Store"
    {
        "" : bool
    }
    
    
    ObjProp "SalePrice"          // type int                       , flags 0x0000 , editor name: "Inventory: Purchase Price"
    {
        "" : int
    }
    
    
    ObjProp "GameDesc"           // type string                    , flags 0x0000 , editor name: "Inventory: Long Description"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "BlockFrob"          // type BOOL                      , flags 0x0000 , editor name: "Inventory: Block Frob?"
    {
        "" : bool
    }
    
    
    ObjProp "DiffDestroy"        // type tQVarVal                  , flags 0x0011 , editor name: "Difficulty: Destroy"
    {
        "quest var values" : bitflags    // flags: "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
    }
    
    
    ObjProp "DiffRemoveProp"     // type sDiffRemoveProp           , flags 0x0011 , editor name: "Difficulty: Remove Properties"
    {
        "quest var values" : bitflags    // flags: "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
        "alt quest var values" : bitflags    // flags: "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
        "Properties" : string    // max 31 characters long
    }
    
    
    ObjProp "DiffPermit"         // type tQVarVal                  , flags 0x0011 , editor name: "Difficulty: Permit"
    {
        "quest var values" : bitflags    // flags: "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
    }
    
    
    ObjProp "DiffLock"           // type tQVarVal                  , flags 0x0011 , editor name: "Difficulty: Lock (Unlock)"
    {
        "quest var values" : bitflags    // flags: "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
    }
    
    
    ObjProp "DiffClose"          // type tQVarVal                  , flags 0x0011 , editor name: "Difficulty: Close (Open) Door"
    {
        "quest var values" : bitflags    // flags: "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
    }
    
    
    ObjProp "DiffTurnOn"         // type tQVarVal                  , flags 0x0011 , editor name: "Difficulty: Turn On (Off)"
    {
        "quest var values" : bitflags    // flags: "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
    }
    
    
    ObjProp "DiffScript"         // type tQVarVal                  , flags 0x0011 , editor name: "Difficulty: Script"
    {
        "quest var values" : bitflags    // flags: "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
    }
    
    
    ObjProp "DAI_FrogExpl"       // type float                     , flags 0x0000 , editor name: "AI: Ability Settings: Frog-beast: Explode range"
    {
        "" : float
    }
    
    
    ObjProp "DarkStat"           // type tDarkStat                 , flags 0x0000 , editor name: "Dark GameSys: Stats"
    {
        "" : bitflags    // flags: "Innocent", "Enemy", "Hidden", "FoundBody", "Robot"
    }
    
    
    ObjProp "SchLoopParams"      // type sSchemaLoopParams         , flags 0x0000 , editor name: "Schema: Loop Params"
    {
        "Flags" : bitflags
        "Max Samples" : int
        "Interval Min" : int
        "Interval Max" : int
    }
    
    
    ObjProp "SchPlayParams"      // type sSchemaPlayParams         , flags 0x0000 , editor name: "Schema: Play Params"
    {
        "Flags" : bitflags    // flags: "Retrigger", "Pan position", "Pan Range", "No Repeat", "No Cache", "Stream", "Play Once", "No Combat", "Net Ambient", "Local Spatial", "", "", "", "", "", "", "Noise", "Speech", "Ambient", "Music", "MetaUI"
        "Volume" : int
        "Initial Delay" : short
        "Pan" : int
        "Fade" : int
    }
    
    
    ObjProp "SchPriority"        // type int                       , flags 0x0000 , editor name: "Schema: Priority"
    {
        "" : int
    }
    
    
    ObjProp "SchMsg"             // type Label                     , flags 0x0000 , editor name: "Schema: Message"
    {
        "" : string    // max 15 characters long
    }
    
    
    ObjProp "SchActionSnd"       // type Label                     , flags 0x0000 , editor name: "Schema: Action"
    {
        "" : string    // max 15 characters long
    }
    
    
    ObjProp "SchAttFac"          // type float                     , flags 0x0000 , editor name: "Schema: Attenuation Factor"
    {
        "" : float
    }
    
    
    ObjProp "SpchVoice"          // type Label                     , flags 0x0000 , editor name: "Speech: Voice"
    {
        "" : string    // max 15 characters long
    }
    
    
    ObjProp "MinSpchPause"       // type int                       , flags 0x0000 , editor name: "Speech: Pause Min"
    {
        "" : int
    }
    
    
    ObjProp "MaxSpchPause"       // type int                       , flags 0x0000 , editor name: "Speech: Pause Max"
    {
        "" : int
    }
    
    
    ObjProp "VoiceIdx"           // type int                       , flags 0x0000 , editor name: "Speech: Voice Index"
    {
        "" : int
    }
    
    
    ObjProp "Class Tags"         // type sESndTagList              , flags 0x0000 , editor name: "Schema: Class Tags"
    {
        "1: Tags" : string    // max 251 characters long
    }
    
    
    ObjProp "Material Tags"      // type sESndTagList              , flags 0x0000 , editor name: "Schema: Material Tags"
    {
        "1: Tags" : string    // max 251 characters long
    }
    
    
    ObjProp "OTxtRepr0"          // type string                    , flags 0x0000 , editor name: "Shape: TxtRepl r0"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "OTxtRepr1"          // type string                    , flags 0x0000 , editor name: "Shape: TxtRepl r1"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "OTxtRepr2"          // type string                    , flags 0x0000 , editor name: "Shape: TxtRepl r2"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "OTxtRepr3"          // type string                    , flags 0x0000 , editor name: "Shape: TxtRepl r3"
    {
        "" : string    // max 2047 characters long
    }
    
    
    ObjProp "HasRefs"            // type BOOL                      , flags 0x0051 , editor name: "Renderer: Has Refs"
    {
        "" : bool
    }
    
    
    ObjProp "RenderType"         // type tRendType                 , flags 0x0000 , editor name: "Renderer: Render Type"
    {
        "" : enum    // enums: "Normal", "Not Rendered", "Unlit", "Editor Only", "Corona Only"
    }
    
    
    ObjProp "RenderOrder"        // type tRendOrder                , flags 0x0000 , editor name: "Renderer: Render Order"
    {
        "Pass" : enum    // enums: "Pre Opaque 1 (first)", "Pre Opaque 2", "Pre Opaque 3", "Pre Opaque 4", "Post Opaque 1 (first)", "Post Opaque 2", "Post Opaque 3", "Post Opaque 4"
        "Flags" : bitflags    // flags: "No Z-Write"
    }
    
    
    ObjProp "BlendMode"          // type tBlendMode                , flags 0x0000 , editor name: "Renderer: Alpha Blend Mode"
    {
        "" : enum    // enums: "Normal", "Add", "Multiply Dest", "Multiply Dest and Add", "Multiply Inv Dest", "Multiply Inv Dest and Add", "Multiply Dest 2X"
    }
    
    
    ObjProp "CameraOverlay"      // type sCamOverlayProp           , flags 0x0000 , editor name: "Renderer: Camera Overlay"
    {
        "Active" : bool
        "Bitmap scale mode" : enum    // enums: "Scale to fit screen", "Fit 4:3, mask w. color", "Fit 4:3, mask w. edge", "Crop 16:9, mask w. color", "Crop 16:9, mask w. edge"
        "Filter color" : rgb
        "Alpha" : uint
        "Mask color" : rgb
        "Bitmap name" : string    // max 15 characters long
        "Ani frame time (ms)" : int
    }
    
    
    ObjProp "DistAlpha"          // type sDistAlphaProp            , flags 0x0000 , editor name: "Renderer: Distance Alpha"
    {
        "Near Alpha" : float
        "Far Alpha" : float
        "Near Distance" : float
        "Far Distance" : float
        "Falloff Type" : enum    // enums: "Linear", "Smoother at Near", "Smoother at Far"
        "Anim Light" : int
    }
    
    
    ObjProp "ModelLOD"           // type sModelLodProp             , flags 0x0000 , editor name: "Shape: Model LOD"
    {
        "LOD 0 Model" : string    // max 15 characters long
        "LOD 1 Model" : string    // max 15 characters long
        "LOD 2 Model" : string    // max 15 characters long
        "LOD 0->1 Dist" : float
        "LOD 1->2 Dist" : float
    }
    
    
    ObjProp "JointPos"           // type sJointPos                 , flags 0x0011 , editor name: "Shape: Joint Positions"
    {
        "Joint 1" : float
        "Joint 2" : float
        "Joint 3" : float
        "Joint 4" : float
        "Joint 5" : float
        "Joint 6" : float
    }
    
    
    ObjProp "RenderAlpha"        // type float                     , flags 0x0000 , editor name: "Renderer: Transparency (alpha)"
    {
        "" : float
    }
    
    
    ObjProp "RendAlphaRef"       // type float                     , flags 0x0000 , editor name: "Renderer: Alpha Test Threshold"
    {
        "" : float
    }
    
    
    ObjProp "SelfIllum"          // type float                     , flags 0x0000 , editor name: "Renderer: Self Illumination"
    {
        "" : float
    }
    
    
    ObjProp "ObjShad"            // type BOOL                      , flags 0x0000 , editor name: "Renderer: Runtime Object Shadow"
    {
        "" : bool
    }
    
    
    ObjProp "StatShad"           // type BOOL                      , flags 0x0000 , editor name: "Renderer: Force Static Shadow"
    {
        "" : bool
    }
    
    
    ObjProp "PGLaunchInfo"       // type ParticleLaunchInfo        , flags 0x0011 , editor name: "SFX: Particle Launch Info"
    {
        "Launch Type" : enum    // enums: "Bounding Box", "Sphere", "Cylinder"
        "Box Min" : vector
        "Box Max" : vector
        "Min Radius" : float
        "Max Radius" : float
        "Loc unrotated?" : bool
        "Velocity Min" : vector
        "Velocity Max" : vector
        "Vel unrotated?" : bool
        "Min time" : float
        "Max time" : float
    }
    
    
    ObjProp "ParticleGroup"      // type ParticleGroup             , flags 0x0011 , editor name: "SFX: Particles"
    {
        "Active" : bool
        "Particle Render Type" : enum    // enums: "Single-colored pixels", "Multi-colored pixels", "Single-colored squares", "Multi-colored squares", "Single-colored disk", "Scaled bitmap", "Bitmap disk"
        "Particle Animation" : enum    // enums: "Launched one-shot", "Launched continually", "Rotating hollow sphere", "Rotating sphere", "Rotating hollow cube", "Rotating cube", "Rotating disk", "Rotating circle", "Rotating pyramid"
        "Particle Group Motion" : enum    // enums: "Immobile", "Move with velocity", "Move with vel&gravity", "Trailing object", "Attached to object", "Fire and forget"
        "number of particles" : int
        "size of particle" : float
        "bitmap name" : string    // max 15 characters long
        "velocity" : vector
        "gravity vector" : vector
        "color (palettized)" : uint
        "2nd color" : uint
        "3rd color" : uint
        "alpha" : uint
        "fixed-group radius" : float
        "spin / pulse group" : bool
        "spin speed" : vector
        "pulse magnitude" : float
        "pulse cycle time ms" : int
        "particle fade time" : sfloat
        "launch period" : sfloat
        "animation offset ms" : int
        "Group-scale velocity" : float
        "bm-disk flags" : bitflags    // flags: "Use Lighting", "Fade-in at Birth", "Grow-in at Birth", "Random Start Frame", "Play Ani Once", "Use RGB Colors", "Fade RGB->2nd", "Fade RGB->2nd->3rd"
        "bm-disk birth time" : sfloat
        "bm-disk rot (vel, offs, rand)" : vector
        "bm-disk ani frame time" : sfloat
        "bm-disk grow speed" : float
        "bm-disk rgb" : rgb
        "bm-disk 2nd rgb" : rgb
        "bm-disk 3rd rgb" : rgb
        "always simulate (slow)" : bool
        "always simulate group" : bool
        "particles start launched" : bool
        "alpha subpixel particles" : bool
        "skip subpixel particles" : bool
        "ignore attachment refs" : bool
        "force matching unrefs" : bool
    }
    
    
    ObjProp "FrameAniState"      // type FrameAnimationState       , flags 0x0011 , editor name: "SFX: FrameAnimationState"
    {
        "current frame" : int
    }
    
    
    ObjProp "FrameAniConfig"     // type FrameAnimationConfig      , flags 0x0000 , editor name: "SFX: FrameAnimationConfig"
    {
        "frames per second" : float
        "one-shot" : bool
        "bounce" : bool
        "frame-limit" : bool
        "kill when finished" : bool
    }
    
    
    ObjProp "RenderFlash"        // type FlashbombRender           , flags 0x0010 , editor name: "SFX: FlashBombInfo"
    {
        "flash color r" : int
        "flash color g" : int
        "flash color b" : int
        "world flash duration" : int
        "max screen flash duration (ms)" : int
        "after-effect duration (ms)" : int
        "range" : float
    }
    
    
    ObjProp "BitmapWorld"        // type sBitmapWorldspace         , flags 0x0000 , editor name: "Renderer: Bitmap Worldspace" , help text: "bitmap not always facing camera"
    {
        "x size (feet)" : float
        "y size (feet)" : float
        "x feet per tile" : float
        "y feet per tile" : float
        "Flags" : bitflags    // flags: "Double sided", "Flip backside UV", "Lit", "Face camera (axial)", "No UV Tiling"
        "Axial Fade" : float
    }
    
    
    ObjProp "BitmapAnimation"    // type tBitmapAnimationType      , flags 0x0010 , editor name: "Renderer: Bitmap Animation"
    {
        "Flags" : bitflags    // flags: "Kill on completion"
    }
    
    
    ObjProp "BitmapColor"        // type tBitmapColor              , flags 0x0000 , editor name: "Renderer: Bitmap Color"
    {
        "" : rgb
    }
    
    
    ObjProp "INVISIBLE"          // type int                       , flags 0x0000 , editor name: "Renderer: Invisible"
    {
        "" : int
    }
    
    
    ObjProp "AnimTex"            // type sAnimTexProp              , flags 0x0000 , editor name: "Renderer: Texture Anim Data"
    {
        "Rate" : uint
        "Flags" : bitflags    // flags: "Wrap", "Randing", "Reverse", "Portal"
    }
    
    
    ObjProp "WaterColor"         // type sRGBA                     , flags 0x0000 , editor name: "Renderer: Water Texture Color"
    {
        "Color" : rgb
        "Alpha" : float
    }
    
    
    ObjProp "FlowColor"          // type int                       , flags 0x0000 , editor name: "Renderer: Water Flow Color Index"
    {
        "" : int
    }
    
    
    ObjProp "Weather"            // type sWeather                  , flags 0x0000 , editor name: "Weather: Local Weather" , help text: "weather for a room"
    {
        "fog" : enum    // enums: "Disabled", "Global Fog", "Zone 1", "Zone 2", "Zone 3", "Zone 4", "Zone 5", "Zone 6", "Zone 7", "Zone 8"
        "precipitation" : bool
        "ambient lighting" : enum    // enums: "Global Ambient", "Zone 1", "Zone 2", "Zone 3", "Zone 4", "Zone 5", "Zone 6", "Zone 7", "Zone 8"
    }
    
    
    ObjProp "MeshTex"            // type sMeshTexRemap             , flags 0x0000 , editor name: "Renderer: Mesh Textures" , help text: "Mesh Texture Substitution"
    {
        "texture in model" : string    // max 15 characters long
        "replace with" : string    // max 15 characters long
        "texture in model"[1] : string    // max 15 characters long
        "replace with"[1] : string    // max 15 characters long
        "texture in model"[2] : string    // max 15 characters long
        "replace with"[2] : string    // max 15 characters long
        "texture in model"[3] : string    // max 15 characters long
        "replace with"[3] : string    // max 15 characters long
        "texture in model"[4] : string    // max 15 characters long
        "replace with"[4] : string    // max 15 characters long
        "texture in model"[5] : string    // max 15 characters long
        "replace with"[5] : string    // max 15 characters long
        "texture in model"[6] : string    // max 15 characters long
        "replace with"[6] : string    // max 15 characters long
        "texture in model"[7] : string    // max 15 characters long
        "replace with"[7] : string    // max 15 characters long
        "texture in model"[8] : string    // max 15 characters long
        "replace with"[8] : string    // max 15 characters long
        "texture in model"[9] : string    // max 15 characters long
        "replace with"[9] : string    // max 15 characters long
        "texture in model"[10] : string    // max 15 characters long
        "replace with"[10] : string    // max 15 characters long
        "texture in model"[11] : string    // max 15 characters long
        "replace with"[11] : string    // max 15 characters long
    }
    
    
    ObjProp "Face"               // type sFaceNames                , flags 0x0000 , editor name: "Renderer: Face Textures" , help text: "What you looking at BOY?"
    {
        "texture to replace" : string    // max 15 characters long
        "Neutral" : string    // max 15 characters long
        "Smile" : string    // max 15 characters long
        "Wince" : string    // max 15 characters long
        "Surprise" : string    // max 15 characters long
        "Stunned" : string    // max 15 characters long
    }
    
    
    ObjProp "Face State"         // type sFaceState                , flags 0x0011 , editor name: "Renderer: Face State" , help text: "State of a particular dude's face"
    {
        "Talking?" : bool
        "Current visage" : enum    // enums: "Neutral", "Smile", "Wince", "Surprise", "Stunned"
        "Priority of visage" : int
        "End time of visage" : int
    }
    
    
    ObjProp "Face Pos"           // type BOOL                      , flags 0x0000 , editor name: "Sound: Face Motions" , help text: "Do we find mouth positions for this schema?"
    {
        "" : bool
    }
    
    
    ObjProp "Corona"             // type sCoronaLight              , flags 0x0011 , editor name: "Renderer: Corona" , help text: "glow rendered in front of a light"
    {
        "flags" : bitflags    // flags: "Blend Add", "Use Spotlight Cone", "Track Moving Object", "Detail Attached Proxy"
        "radius up close" : float
        "radius at max dist" : float
        "max. dist. visible" : float
        "alpha" : float
        "texture" : string    // max 15 characters long
        "color" : vector
        "spot angle scale" : float
    }
    
    
    ObjProp "NoBlockCoronas"     // type BOOL                      , flags 0x0000 , editor name: "Renderer: Never Block Coronas"
    {
        "" : bool
    }
    
    
    ObjProp "NetworkCategory"    // type eNetworkCategory          , flags 0x0000 , editor name: "Networking: Network Category"
    {
        "" : enum    // enums: "Local Only", "Hosted", "Obsolete"
    }
    
    
    ObjProp "Heartbeat"          // type int                       , flags 0x0000 , editor name: "Networking: Heartbeat" , help text: "Approximate number of millisecs between position updates"
    {
        "" : int
    }
    
    
    ObjProp "AvatarZOffset"      // type float                     , flags 0x0000 , editor name: "Networking: Avatar Height Offset" , help text: "Difference in height between player & this obj as an avatar"
    {
        "" : float
    }
    
    
    ObjProp "LocalCopy"          // type BOOL                      , flags 0x0080 , editor name: "Networking: Local Copy" , help text: "TRUE iff this object is a local pseudo-proxy for a remote obj"
    {
        "" : bool
    }
    
    
    ObjProp "DistinctAvatar"     // type BOOL                      , flags 0x0000 , editor name: "Networking: Distinct Avatar" , help text: "TRUE iff this object is used to proxy a different kind of object"
    {
        "" : bool
    }
    
    
    ObjProp "HandoffNumber"      // type int                       , flags 0x0080 , editor name: "Networking: Handoff Number" , help text: "The number of times this object has been handed off"
    {
        "" : int
    }
    
    
    ObjProp "HasBrush"           // type BOOL                      , flags 0x0000 , editor name: "Editor: Has Brush"
    {
        "" : bool
    }
    
    
    ObjProp "EdComment"          // type string                    , flags 0x0000 , editor name: "Editor: Editor Comments"
    {
        "" : string    // max 2047 characters long
    }
    
    
    
    
    ------------------------------------------------------------------------------
    LINK TYPES
    ------------------------------------------------------------------------------
    
    
    Link "Contains"             // type ContainRelType            , flags 0x0000
    {
        "" : enum    // enums: "Alternate", "Hand", "Belt", "Generic Contents"
    }
    
    
    Link "Corpse"               // type Propagate Source Scale?   , flags 0x0000
    {
        "Propagate Source Scale?" : bool
    }
    
    
    Link "Flinderize"           // type sFlinder                  , flags 0x0000
    {
        "Count" : int
        "Impulse" : float
        "Scatter?" : bool
        "Offset" : vector
    }
    
    
    Link "CulpableFor"          // type None                      , flags 0x0020
    
    
    Link "HostObj"              // type int                       , flags 0x0010
    {
        "" : int
    }
    
    
    Link "FrobProxy"            // type FrobProxyInfo             , flags 0x0000
    {
        "FrobProxyMask" : bitflags    // flags: "Do Inv", "No World", "Do ToolSrc", "No ToolDst", "AllowDirect"
    }
    
    
    Link "CurWeapon"            // type int                       , flags 0x0010
    {
        "" : int
    }
    
    
    Link "WeaponOffset"         // type sWeaponOffset             , flags 0x0010
    {
        "Weapon Modes" : bitflags    // flags: "BLOCK", "MELEE", "RANGED", "IDLE"
        "Transform1" : vector
        "Transform2" : vector
        "Transform3" : vector
        "Transform4" : vector
        "Launch Joint" : enum    // enums: "N/A", "Head", "Neck", "Abdomen", "Butt", "Left Shoulder", "Right Shoulder", "Left Elbow", "Right Elbow", "Left Wrist", "Right Wrist", "Left Fingers", "Right Fingers", "Left Hip", "Right Hip", "Left Knee", "Right Knee", "Left Ankle", "Right Ankle", "Left Toe", "Right Toe", "Tail"
    }
    
    
    Link "Weapon"               // type None                      , flags 0x0000
    
    
    Link "Lock"                 // type int                       , flags 0x0000
    {
        "" : int
    }
    
    
    Link "PlayerFactory"        // type int                       , flags 0x0000
    {
        "" : int
    }
    
    
    Link "AIConversationActor"  // type Actor ID                  , flags 0x0010
    {
        "Actor ID" : int
    }
    
    
    Link "AIProjectile"         // type sAIProjectileRel          , flags 0x0010
    {
        "Constraint Type" : enum    // enums: "None", "# others", "# misses (not implemented)"
        "Constraint Data" : int
        "Targeting Method" : enum    // enums: "Straight-Line", "Arcing", "Reflecting", "Overhead"
        "Selection Desire" : enum    // enums: "Very Low", "Low", "Moderate", "High", "Very High"
        "Firing Delay" : float
        "Ammo" : int
        "Burst Count" : int
        "Accuracy" : enum    // enums: "Very Low", "Low", "Moderate", "High", "Very High"
        "Leads Target" : bool
        "Launch Joint" : enum    // enums: "N/A", "Head", "Neck", "Abdomen", "Butt", "Left Shoulder", "Right Shoulder", "Left Elbow", "Right Elbow", "Left Wrist", "Right Wrist", "Left Fingers", "Right Fingers", "Left Hip", "Right Hip", "Left Knee", "Right Knee", "Left Ankle", "Right Ankle", "Left Toe", "Right Toe", "Tail"
    }
    
    
    Link "AIPtDibs"             // type None                      , flags 0x0010
    
    
    Link "AIPatrol"             // type None                      , flags 0x0010
    
    
    Link "AICurrentPatrol"      // type None                      , flags 0x0010
    
    
    Link "AIAttack"             // type eAIPriority               , flags 0x0020
    {
        "" : enum    // enums: "Default/None", "Very low", "Low", "Normal", "High", "Very high", "Absolute"
    }
    
    
    Link "AITarget"             // type None                      , flags 0x0000
    
    
    Link "AIRangedWeapon"       // type None                      , flags 0x0010
    
    
    Link "AIFleeSource"         // type None                      , flags 0x0010
    
    
    Link "AIFleeDest"           // type sAIFleeDest               , flags 0x0010
    {
        "Reached" : bool
        "Expiration" : int
    }
    
    
    Link "AINoFlee"             // type sAINoFleeLink             , flags 0x0010
    {
        "Expiration" : int
    }
    
    
    Link "AIFleeTo"             // type None                      , flags 0x0010
    
    
    Link "AIWatchObj"           // type sAIWatchPoint             , flags 0x0010
    {
        "Watch kind" : enum    // enums: "Player intrusion", "Self entry"
        "Priority" : enum    // enums: "Default/None", "Very low", "Low", "Normal", "High", "Very high", "Absolute"
        "Trigger: Radius" : int
        "         Height" : int
        "         Required awareness" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "         Line requirement" : enum    // enums: "None", "Line of sight", "Raycast"
        "         Minimum alertness" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "         Maximum alertness" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "Exit: Link kill option" : enum    // enums: "Don't kill", "After trigger", "After completion"
        "      Kill like links" : bool
        "      No test once triggered" : bool
        "      Reuse delay" : int
        "      Reset delay" : int
        "Response: Step 1" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1" : string    // max 63 characters long
        "   Argument 2" : string    // max 63 characters long
        "   Argument 3" : string    // max 63 characters long
        "Response: Step 2" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[1] : string    // max 63 characters long
        "   Argument 2"[1] : string    // max 63 characters long
        "   Argument 3"[1] : string    // max 63 characters long
        "Response: Step 3" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[2] : string    // max 63 characters long
        "   Argument 2"[2] : string    // max 63 characters long
        "   Argument 3"[2] : string    // max 63 characters long
        "Response: Step 4" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[3] : string    // max 63 characters long
        "   Argument 2"[3] : string    // max 63 characters long
        "   Argument 3"[3] : string    // max 63 characters long
        "Response: Step 5" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[4] : string    // max 63 characters long
        "   Argument 2"[4] : string    // max 63 characters long
        "   Argument 3"[4] : string    // max 63 characters long
        "Response: Step 6" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[5] : string    // max 63 characters long
        "   Argument 2"[5] : string    // max 63 characters long
        "   Argument 3"[5] : string    // max 63 characters long
        "Response: Step 7" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[6] : string    // max 63 characters long
        "   Argument 2"[6] : string    // max 63 characters long
        "   Argument 3"[6] : string    // max 63 characters long
        "Response: Step 8" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[7] : string    // max 63 characters long
        "   Argument 2"[7] : string    // max 63 characters long
        "   Argument 3"[7] : string    // max 63 characters long
        "Response: Step 9" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[8] : string    // max 63 characters long
        "   Argument 2"[8] : string    // max 63 characters long
        "   Argument 3"[8] : string    // max 63 characters long
        "Response: Step 10" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[9] : string    // max 63 characters long
        "   Argument 2"[9] : string    // max 63 characters long
        "   Argument 3"[9] : string    // max 63 characters long
        "Response: Step 11" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[10] : string    // max 63 characters long
        "   Argument 2"[10] : string    // max 63 characters long
        "   Argument 3"[10] : string    // max 63 characters long
        "Response: Step 12" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[11] : string    // max 63 characters long
        "   Argument 2"[11] : string    // max 63 characters long
        "   Argument 3"[11] : string    // max 63 characters long
        "Response: Step 13" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[12] : string    // max 63 characters long
        "   Argument 2"[12] : string    // max 63 characters long
        "   Argument 3"[12] : string    // max 63 characters long
        "Response: Step 14" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[13] : string    // max 63 characters long
        "   Argument 2"[13] : string    // max 63 characters long
        "   Argument 3"[13] : string    // max 63 characters long
        "Response: Step 15" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[14] : string    // max 63 characters long
        "   Argument 2"[14] : string    // max 63 characters long
        "   Argument 3"[14] : string    // max 63 characters long
        "Response: Step 16" : enum    // enums: "Nothing()", "Script message(Message,MsgData1,MsgData2)", "Play sound/motion(Sound Concept,Sound Tags,Motion Tags)", "Alert (unimplemented)", "Become hostile()", "Enable investigate()", "Goto object(Object,Speed,Motion Tags)", "Frob object(Target Object,With Object)", "Wait(Time(ms),Motion Tags)", "Mprint(text)", "Add/Remove Meta-property(Add/Remove,Mprop name,Target Objects)", "Add link(Flavor,Destination(s),Source(s))", "Remove link(Flavor,Destination(s),Source(s))", "Face(Angle,Object(-1 for angle relative to self))", "Signal(Signal,Target(s),Max Distance)", "Dest. Script Message(Message,MsgData1,MsgData2)"
        "   Argument 1"[15] : string    // max 63 characters long
        "   Argument 2"[15] : string    // max 63 characters long
        "   Argument 3"[15] : string    // max 63 characters long
    }
    
    
    Link "AIDefendObj"          // type sAIDefendPoint            , flags 0x0010
    {
        "Return speed" : enum    // enums: "Stopped", "Very slow", "Slow", "Normal", "Fast", "Very fast"
        "Range 1: Radius" : int
        "         Height" : int
        "         Minimum alertness" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "         Maximum alertness" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "Range 2: Radius" : int
        "         Height"[1] : int
        "         Minimum alertness"[1] : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "         Maximum alertness"[1] : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "Range 3: Radius" : int
        "         Height"[2] : int
        "         Minimum alertness"[2] : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "         Maximum alertness"[2] : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
    }
    
    
    Link "AICamera"             // type sAICameraLinkData         , flags 0x0010
    {
        "Msg" : string    // max 31 characters long
        "Data1" : string    // max 31 characters long
        "Data2" : string    // max 31 characters long
        "Data3" : string    // max 31 characters long
    }
    
    
    Link "AIFollowObj"          // type sAIFollowLink             , flags 0x0010
    {
        "Vector 1: Angle" : float
        "               Distance" : int
        "Vector 2: Angle" : float
        "               Distance"[1] : int
        "Vector 3: Angle" : float
        "               Distance"[2] : int
    }
    
    
    Link "AIDoor"               // type int                       , flags 0x0010
    {
        "" : int
    }
    
    
    Link "AIInvest"             // type None                      , flags 0x0010
    
    
    Link "AIAwareness"          // type sAIAwareness              , flags 0x0010
    {
        "Flags" : bitflags    // flags: "Seen", "Heard", "CanRaycast", "HaveLOS", "Blind", "Deaf", "Highest", "FirstHand"
        "Level" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "Peak Level" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "Level enter time" : int
        "Time last contact" : int
        "Pos last contact" : vector
        "Last pulse level" : enum    // enums: "(0) None", "(1) Low", "(2) Moderate", "(3) High"
        "Vision cone" : int
        "Time last update" : int
        "Time last update LOS" : int
        "Last true contact" : int
        "Freshness" : int
    }
    
    
    Link "AISuspiciousLink"     // type sAISuspiciousLink         , flags 0x0000
    {
        "Time Seen" : int
    }
    
    
    Link "TPath"                // type sTerrainPath              , flags 0x0010
    {
        "Speed" : float
        "Pause (ms)" : int
        "Path Limit?" : bool
    }
    
    
    Link "TPathInit"            // type None                      , flags 0x0010
    
    
    Link "PhysAttach"           // type sPhysAttachData           , flags 0x0000
    {
        "Offset" : vector
    }
    
    
    Link "SoundDescription"     // type None                      , flags 0x0000
    
    
    Link "ControlDevice"        // type None                      , flags 0x0000
    
    
    Link "Route"                // type None                      , flags 0x0000
    
    
    Link "ScriptParams"         // type Label                     , flags 0x0000
    {
        "" : string    // max 15 characters long
    }
    
    
    Link "Owns"                 // type None                      , flags 0x0000
    
    
    Link "Population"           // type None                      , flags 0x0000
    
    
    Link "Transmute"            // type None                      , flags 0x0000
    
    
    Link "OldConversation"      // type None                      , flags 0x0000
    
    
    Link "CreatureAttachment"   // type sCreatureAttachInfo       , flags 0x0000
    {
        "Joint" : enum    // enums: "N/A", "Head", "Neck", "Abdomen", "Butt", "Left Shoulder", "Right Shoulder", "Left Elbow", "Right Elbow", "Left Wrist", "Right Wrist", "Left Fingers", "Right Fingers", "Left Hip", "Right Hip", "Left Knee", "Right Knee", "Left Ankle", "Right Ankle", "Left Toe", "Right Toe", "Tail"
        "Rot Mode" : enum    // enums: "Default", "Always Use Joint Rotation", "Never Use Joint Rotation"
    }
    
    
    Link "CorpsePart"           // type None                      , flags 0x0000
    
    
    Link "RenderFlash"          // type None                      , flags 0x0000
    
    
    Link "Projectile"           // type sProjectileData           , flags 0x0000
    {
        "Setting" : int
        "Order" : int
    }
    
    
    Link "GunFlash"             // type sFlashData                , flags 0x0000
    {
        "VHot" : int
        "Flags" : bitflags    // flags: "Projectile Flash", "Random Bank"
    }
    
    
    Link "VoiceOver"            // type sVoiceData                , flags 0x0000
    {
        "Events" : bitflags    // flags: "World Hilight", "Pick Up"
    }
    
    
    Link "VoiceLink"            // type None                      , flags 0x0010
    
    
    Link "DetailAttachement"    // type sDetailAttachLinkData     , flags 0x0000
    {
        "Type" : enum    // enums: "Object", "Vhot", "Joint", "Submodel", "Subobject", "Transparent Decal"
        "vhot/sub #" : uint
        "joint" : enum    // enums: "N/A", "Head", "Neck", "Abdomen", "Butt", "Left Shoulder", "Right Shoulder", "Left Elbow", "Right Elbow", "Left Wrist", "Right Wrist", "Left Fingers", "Right Fingers", "Left Hip", "Right Hip", "Left Knee", "Right Knee", "Left Ankle", "Right Ankle", "Left Toe", "Right Toe", "Tail"
        "rel pos" : vector
        "rel rot" : angvec
        "decal plane norm" : packednormal_hex
        "decal plane dist" : float
        "Flags" : bitflags    // flags: "No Auto-Delete", "No Joint Rot"
    }
    
    
    Link "ParticleAttachement"  // type sParticleAttachLinkData   , flags 0x0000
    {
        "Type" : enum    // enums: "Object", "Vhot", "Joint", "Submodel"
        "vhot #" : int
        "joint" : enum    // enums: "N/A", "Head", "Neck", "Abdomen", "Butt", "Left Shoulder", "Right Shoulder", "Left Elbow", "Right Elbow", "Left Wrist", "Right Wrist", "Left Fingers", "Right Fingers", "Left Hip", "Right Hip", "Left Knee", "Right Knee", "Left Ankle", "Right Ankle", "Left Toe", "Right Toe", "Tail"
        "submod #" : int
    }
    
    
    
    
    ------------------------------------------------------------------------------
    RECEPTRON EFFECTS
    ------------------------------------------------------------------------------
    
    
    Effect "Abort"              // type None                      , flags 0x0008 , editor name: "Abort"
    
    
    Effect "Amplify"            // type sAmplifyParam             , flags 0x0000 , editor name: "Amplify"
    {
        "Multiply by" : float
        "Then add" : float
    }
    
    
    Effect "WeakPoint"          // type sWeakPointParam           , flags 0x0000 , editor name: "Weak Point"
    {
        "Multiply by" : float
        "Then add" : float
        "X Offset" : float
        "Y Offset" : float
        "Z Offset" : float
        "Radius" : float
        "Parent Joint" : enum    // enums: "N/A", "Head", "Neck", "Abdomen", "Butt", "Left Shoulder", "Right Shoulder", "Left Elbow", "Right Elbow", "Left Wrist", "Right Wrist", "Left Fingers", "Right Fingers", "Left Hip", "Right Hip", "Left Knee", "Right Knee", "Left Ankle", "Right Ankle", "Left Toe", "Right Toe", "Tail"
    }
    
    
    Effect "stimulate"          // type sStimulateParam           , flags 0x0006 , editor name: "Stimulate Object"
    {
        "Stimulus" : string    // max 15 characters long
        "Multiply By" : float
        "Then Add" : float
    }
    
    
    Effect "stim_script_msg"    // type sStimMsgParam             , flags 0x0000 , editor name: "Send to Scripts"
    {
        "Flags" : bitflags    // flags: "(Created By Script)"
    }
    
    
    Effect "tweq_control"       // type sTweqControl              , flags 0x000A , editor name: "Tweq Control"
    {
        "Type" : enum    // enums: "TweqScale", "TweqRotate", "TweqJoints", "TweqModels", "TweqDelete", "TweqEmitter", "TweqFlicker", "TweqLock", "TweqAll", "TweqNull"
        "Action" : enum    // enums: "DoDefault", "DoActivate", "DoHalt", "DoReset", "DoContinue", "DoForward", "DoReverse"
        "XtraBits" : bitflags    // flags: "On", "Reverse", "ReSynch", "GoEdge", "LapOne"
    }
    
    
    Effect "weapon_hit"         // type None                      , flags 0x0006 , editor name: "Weapon Hit"
    
    
    Effect "weapon_block"       // type None                      , flags 0x0006 , editor name: "Weapon Block"
    
    
    Effect "SetQvar"            // type sQVarParam                , flags 0x0000 , editor name: "Set Quest Variable"
    {
        "Quest Variable" : string    // max 27 characters long
        "Operation" : enum    // enums: "Set To", "Add", "Multiply By", "Divide By", "Bitwise Or", "Bitwise And", "Bitwise XOR"
        "Operand" : int
    }
    
    
    Effect "impact_result"      // type sCollParam                , flags 0x0000 , editor name: "Impact Result"
    {
        "Result" : enum    // enums: "Bounce", "Stick", "Slay"
    }
    
    
    Effect "permeate"           // type sPermeate                 , flags 0x0002 , editor name: "Permeate Into Container"
    {
        "Coefficient" : float
        "Minimum Magnitude" : float
    }
    
    
    Effect "Freeze"             // type sFreezeReactionParam      , flags 0x0000 , editor name: "Freeze AI"
    {
        "Duration Multiplier" : int
    }
    
    
    Effect "add_prop"           // type sPropAddParam             , flags 0x0006 , editor name: "Set Property"
    {
        "Prop Name" : string    // max 15 characters long
    }
    
    
    Effect "rem_prop"           // type sPropRemParam             , flags 0x0002 , editor name: "Remove Property"
    {
        "Prop Name" : string    // max 15 characters long
    }
    
    
    Effect "add_metaprop"       // type None                      , flags 0x0006 , editor name: "Add MetaProperty"
    
    
    Effect "rem_metaprop"       // type None                      , flags 0x0006 , editor name: "Remove MetaProperty"
    
    
    Effect "create_obj"         // type sObjCreateParam           , flags 0x0006 , editor name: "Create Object"
    {
        "Position" : vector
        "Heading" : float
        "Pitch" : float
        "Bank" : float
    }
    
    
    Effect "destroy_obj"        // type None                      , flags 0x0002 , editor name: "Destroy Object"
    
    
    Effect "clone_props"        // type None                      , flags 0x0006 , editor name: "Clone Properties"
    
    
    Effect "move_obj"           // type sObjMoveParam             , flags 0x0006 , editor name: "Teleport Object"
    {
        "Position" : vector
        "Heading" : float
        "Pitch" : float
        "Bank" : float
    }
    
    
    Effect "damage"             // type sDamageParam              , flags 0x000E , editor name: "Damage Object"
    {
        "Damage Type" : int
        "Use stimulus as type" : bool
        "Multiply By" : float
        "Then Add" : int
    }
    
    
    Effect "spoofdamage"        // type sSpoofDamageParam         , flags 0x000E , editor name: "Poke Object"
    {
        "Use stimulus as type" : bool
    }
    
    
    Effect "slay"               // type None                      , flags 0x0006 , editor name: "Slay Object"
    
    
    Effect "set_model"          // type sSetModelParam            , flags 0x0002 , editor name: "Change Object Model"
    {
        "Model Name" : string    // max 15 characters long
    }
    
    
    Effect "frob_obj"           // type None                      , flags 0x0002 , editor name: "Frob Object"
    
    
    Effect "Knockout"           // type None                      , flags 0x0006 , editor name: "Knockout"
    
    
    Effect "AwareFilter"        // type sAware                    , flags 0x0006 , editor name: "Awareness Filter"
    {
        "Abort Unless" : bitflags    // flags: "Can't see culprit", "Can't hear culprit", "Stunned", "Not an AI"
    }
    
    
    Effect "EnvSound"           // type sEnvSoundReactionParam    , flags 0x0000 , editor name: "EnvSound"
    {
        "Tags" : string    // max 31 characters long
    }
    
    
    
    
    ------------------------------------------------------------------------------
    STIM SOURCE PROPAGATORS
    ------------------------------------------------------------------------------
    
    
    Propagator "Contact"            // flags 0x0001
    {
        Shape // type sContactSourceShape
        {
            "Contact Types" : bitflags    // flags: "Collision", "Frob in World", "Frob in Inv", "Frob Inv -> World", "Frob Inv -> Inv", "Frob World -> World", "Frob World -> Inv", "Weapon Swing Low", "Weapon Swing Med", "Weapon Swing High", "Weapon Block"
            "Velocity Coeff" : float
            "Frob Time Coeff" : float
        }
    }
    
    
    Propagator "Radius"             // flags 0x0001
    {
        Shape // type sRadiusSourceShape
        {
            "Radius" : float
            "Flags" : bitflags    // flags: "Line of Sight (raycast)"
            "Dispersion" : enum    // enums: "None", "Linear", "Inverse Quadratic", "Quadratic"
        }
        Life // type sPeriodicLifeCycle
        {
            "Flags" : bitflags    // flags: "No Max Firings", "Destroy Object on Completion"
            "Period" : uint
            "Max Firings" : int
            "Intensity Slope" : float
        }
    }
    
    
    Propagator "Flow"               // flags 0x0001
    {
        Life // type sPeriodicLifeCycle
        {
            "Flags" : bitflags    // flags: "No Max Firings", "Destroy Object on Completion"
            "Period" : uint
            "Max Firings" : int
            "Intensity Slope" : float
        }
    }
    
    
    Propagator "Script"             // flags 0x0001
    {
        Life // type sPeriodicLifeCycle
        {
            "Flags" : bitflags    // flags: "No Max Firings", "Destroy Object on Completion"
            "Period" : uint
            "Max Firings" : int
            "Intensity Slope" : float
        }
    }
    
    
    
    
    ------------------------------------------------------------------------------
    
    
    Type definitions:
    
    
    int          = integer number
    uint         = positive integer number
    int_hex      = hexadecimal integer number (0xABCD0123)
    uint_hex     = positive hexadecimal number (0xABCD0123)
    bool         = one of: 0, 1, true, false, yes, no, on, off
    short        = integer number -32768 to 32767
    ushort       = positive hexadecimal number 0x0 to 0xFFFF
    short_hex    = integer hexadecimal -0x8000 to 0x7FFF
    ushort_hex   = positive integer number 0 to 65535
    bitflags     = comma separated list of unquoted flag/bit names
    enum         = enum/value name
    string       = string
    Point        = comma separated x, y int pair
    vector       = comma separated x, y, z float triplet (if color then r g b values 0.0 - 1.0)
    float        = floating point number
    sfloat       = floating point number -32768.0 to 32767.0
    sfloatvec    = space separated x y z sfloat triplet
    rgb          = comma separated r, g, b triplet with int values 0 - 255
    ang          = angle 0.0 to 360.0
    angvec       = comma separated heading, pitch, bank ang triplet
    packednormal = 32-bit integer number with an encoded unit length vector, similar to normal maps, with 3 MSB aligned 10-bit signed vals [X:10 Y:10 Z:10 unused:2]
    packednormal_hex = same as packednormal but as a hexadecimal number

  3. #3
    Dóttirin klęšist oft móšur möttli
    Registered: Apr 2015
    This is the monolog printed short version

    Code:
    Object System\Transient = TransientObject System\Immobile = Immobile
    Object System\Donor Type = DonorType
    Object System\Symbolic Name = SymName
    Engine Features\Combine Type = CombineType
    Engine Features\Stack Count = StackCount
    Act/React\Source Scale = arSrcScale
    Game: Damage Model\Death Stage = DeathStage
    Game: Damage Model\Weapon Damage = WeaponDamage
    Game: Damage Model\Weapon Type = WeaponType
    Game: Damage Model\Slay Result = SlayResult
    Game: Damage Model\Culpable = Culpable
    Inventory\Type = InvType
    Inventory\Cycle Order = InvCycleOrder
    Shape\Scale = Scale
    Shape\Model Name = ModelName
    ModelNumber
    Physics: Misc\Collision Type = CollisionType
    SFX\Particle = Particle
    \Position = Position
    Renderer\Light = Light
    Renderer\LightColor = LightColor
    Renderer\Spotlight = Spotlight
    Renderer\SpotlightAndAmbient = SpotAmb
    Renderer\Light-based transparency = LBAlpha
    Renderer\Anim Light = AnimLight
    Renderer\Extra Light = ExtraLight
    Scripts
    Game: Damage Model\Hit Points = HitPoints
    Game: Damage Model\Max Hit Points = MAX_HP
    Script\Trap Control Flags = TrapFlags
    Renderer\Z-Bias = Z-Bias
    Renderer\Bump Map = Bump Map
    Renderer\Dynamic Light = SelfLit
    Renderer\Dynamic Light Radius = SelfLitRad
    Renderer\Shadow = Shadow
    SFX\Heat Disks = HeatDisks
    SFX\Spark = Spark
    Renderer\Mesh Attach = MeshAttach
    Firer
    Physics: Projectile\Launcher Mass = LauncherMass
    Sound\Projectile Sound = PrjSound
    Engine Features\FrobInfo = FrobInfo
    Networking\Frob Handler = FrobHandler
    Physics: Model\Type = PhysType
    Door\Rotating = RotDoor
    Door\Translating = TransDoor
    Door\Static Light Pos = DoorStaticLight
    Tweq\Scale = CfgTweqScale
    Tweq\Rotate = CfgTweqRotate
    Tweq\Joints = CfgTweqJoints
    Tweq\Models = CfgTweqModels
    Tweq\Delete = CfgTweqDelete
    Tweq\Flicker = CfgTweqBlink
    Tweq\Emit = CfgTweqEmit
    Tweq\Lock = CfgTweqLock
    Tweq\Emit2 = CfgTweq2Emit
    Tweq\Emit3 = CfgTweq3Emit
    Tweq\Emit4 = CfgTweq4Emit
    Tweq\Emit5 = CfgTweq5Emit
    Tweq\ScaleState = StTweqScale
    Tweq\RotateState = StTweqRotate
    Tweq\JointsState = StTweqJoints
    Tweq\ModelsState = StTweqModels
    Tweq\DeleteState = StTweqDelete
    Tweq\EmitterState = StTweqEmit
    Tweq\FlickerState = StTweqBlink
    Tweq\LockState = StTweqLock
    Tweq\Emitter2State = StTweq2Emit
    Tweq\Emitter3State = StTweq3Emit
    Tweq\Emitter4State = StTweq4Emit
    Tweq\Emitter5State = StTweq5Emit
    Weapon\BaseDamage = BaseWpnDmg
    Weapon\CurDamage = CurWpnDmg
    Weapon\Exposure = WpnExposure
    Weapon\SwingExpose = SwingExpose
    Weapon\Collides With Terrain = WpnTerrColl
    Weapon\Mode Change Metaproperty = ModeChangeMeta
    Weapon\Mode Change-back Metaproperty = ModeUnchngeMeta
    Engine Features\Locked = Locked
    LockCnt
    Engine Features\KeySrc = KeySrc
    Engine Features\KeyDst = KeyDst
    Inventory\Limb Model = InvLimbModel
    Inventory\Render Type = InvRendType
    Engine Features\Retexture Radius = TextureRadius
    Inventory\Pick Bias = PickBias
    Inventory\Max Pick Distance = PickDist
    Engine Features\Inherit Contains = ContainInherit
    Engine Features\Suspicious = SuspObj
    Engine Features\From Briefcase? = FromBriefcase
    Editor\Auto-Multibrush = AutoVBR
    Renderer\Flow Group = FlowGroup
    Game\Bash Factor = BashFactor
    Game\Bash Params = BashParams
    Engine Features\Preload = Preload
    CSArrow
    CSProjectile
    CSProperty
    AmbientHacked
    Motions\ActorTagList = MotActorTagList
    Motions\Motor Controller = MotorController
    Creature\Time Warp = TimeWarp
    Motions\Sword Action Type = SwordActionType
    Motions\Phys Limits = MotPhysLimits
    Motions\Gait Desc = MotGaitDesc
    Motions\Player Limb Offsets = MotPlyrLimbOff
    Puppet
    AI: Utility\Path Exact OBB = AI_NGOBB
    AI: Utility\Track Medium = AI_TrackM
    AI: Utility\Path Water = AI_UseWater
    AI: AI Core\AI Needs Big Doors = AI_IsBig
    AI: Utility\Ignores Cameras = AI_IgCam
    AI: AI Core\AI = AI
    AI: AI Core\Efficiency settings = AI_Efficiency
    AI: AI Core\Movement: z offset = AI_MoveZOffset
    AI: AI Core\Movement: max speed = AI_MoveSpeed
    AI: AI Core\Movement: turn rate = AI_TurnRate
    AI: AI Core\Team = AI_Team
    AI: AI Core\Vision Joint = AI_VisJoint
    AI: AI Core\Standing motion tags = AI_StandTags
    AI: AI Core\Sound tags = AI_SndTags
    AI: AI Core\Motion tags = AI_MotTags
    AI: AI Core\No Multiplayer Ghost = AI_NoGhost
    AI: AI Core\No Multiplayer Handoff = AI_NoHandoff
    AI: AI Core\Handed-off proxy = AI_IsProxy
    AI: Utility\Immediate inform = AI_InfNow
    AI: Utility\inform from last seen = AI_InfFrm
    AI: Utility\small creature = AI_IsSmall
    AI: State\Current alertness = AI_Alertness
    AI: AI Core\Alertness cap = AI_AlertCap
    AI: AI Core\Awareness delay (react time) = AI_AwrDel2
    AI: State\Current visibility = AI_Visibility
    AI: State\Current mode = AI_Mode
    AI: Utility\Is Frustrated = AI_Frustrated
    AI: AI Core\Vision description = AI_VisDesc
    AI: AI Core\Visibility Modifier = AI_VisModifier
    AI: AI Core\Vision Type = AI_VisType
    AI: Utility\Visibility control = AI_VisCtrl
    AI: AI Core\Awareness capacitor = AI_AwareCap
    AI: AI Core\Alertness sense multipliers = AI_AlSnMul
    AI: Ability Settings\Device: parameters = AI_Device
    AI: Ability Settings\Turret: parameters = AI_Turret
    AI: Ability Settings\Camera: parameters = AI_Camera
    AI: Conversations\Conversation = AI_Converation
    AI: Conversations\SaveConversation = AI_SaveConverse
    AI: Attributes\Vision = AI_Vision
    AI: Attributes\Hearing = AI_Hearing
    AI: Attributes\Aggression = AI_Aggression
    AI: Attributes\Dodginess = AI_Dodginess
    AI: Attributes\Sloth = AI_Sloth
    AI: Attributes\Verbosity = AI_Verbosity
    AI: Attributes\Defensive = AI_Defensive
    AI: Attributes\Aptitude = AI_Aptitude
    AI: Ability Settings\Patrol: Does patrol = AI_Patrol
    AI: Ability Settings\Patrol: Random sequence = AI_PtrlRnd
    AI: Ability Settings\Idling: Should fidget = AI_Fidget
    AI: Ability Settings\Investigation: Style = AI_InvKnd
    AI: Ability Settings\Combat: Non-hostile = AI_NonHst
    AI: Ability Settings\Non-combat: Dmg Response Params = AI_NCDmgRsp
    AI: Ranged Combat\Ranged Combat = AIRCProp
    AI: Utility\Sound value = AI_SndType
    AI: Utility\Is Knockout = StimKO
    AI: Utility\AI Fires Through = AIFiresThrough
    AI: Utility\Marker: Vantage Point = AIVantagePt
    AI: Utility\Marker: Cover Point = AICoverPt
    AI: Utility\Angle Limits = AngleLimit
    AI: Ability Settings\Combat: Timing = AI_CbtTiming
    AI: Ability Settings\RangedCombat: Audio Response = RangedAudioResp
    AI: Ability Settings\RangedCombat: Grunt Always = RngdGruntAlways
    AI: Ranged Combat\Ranged Combat Ranges = AIRCRanges
    AI: Ranged Combat\Ranged Combat Wound Motion = AIRCWound
    AI: Ranged Combat\Ranged Combat Wound Sound = AIRCWndSnd
    AI: Ranged Combat\Ranged Combat Applicabilities = AI_RngApps
    AI: Ranged Combat\Ranged Combat Flee = AI_RngFlee
    AI: Ranged Combat\Ranged Combat Shoot = AI_RngShoot
    AI: Ability Settings\HtoHCombat: Audio Response = HTHAudioResp
    AI: Ability Settings\HtoHCombat: Motion Response = HTHMotionResp
    AI: Ability Settings\HtoHCombat: Grunt Always = HTHGruntAlways
    AI: Debug\HtoHModeOverride = HTHModeOverride
    AI: Utility\Flee point = AI_FleePoint
    AI: Ability Settings\Flee: Condition for flee = AI_FleeConds
    AI: Ability Settings\Flee: If Aware of AI/Player = AI_FleeAwr
    AI: Utility\Watch: Watch link defaults = AI_WtchPnt
    AI: Ability Settings\Idling: Directions = AI_IdleDirs
    AI: State\Idling: Origin = AI_IdleOrgn
    AI: Ability Settings\Idle: Returns to origin = AI_IdlRetOrg
    AI: AI Core\Free sense knowledge = AI_FreeKnow
    AI: AI Core\Sees projectiles = AI_SeesPrj
    AI: AI Core\Notices Damage = AI_NoticeDmg
    AI: AI Core\Only Notices Player = AI_OnlyPlayer
    AI: AI Core\Notices Bodies = AI_NtcBody
    AI: AI Core\Projectile: Visible launch = AI_LaunchVis
    AI: AI Core\Broadcast customization = AI_BcstSet
    AI: Responses\Signal response = AI_SigRsp
    AI: Responses\Threat response = AI_ThrtRsp
    AI: Responses\Alert response = AI_AlrtRsp
    AI: Responses\Body response = AI_BodyRsp
    AI: Responses\Suspicious response = AI_SuspRsp
    AI: Utility\Path avoid = AI_ObjAvoid
    AI: Utility\Pathable object = AI_ObjPathable
    AI: Ability Settings\Inform: Response options = AI_InfRsp
    AI: Ability Settings: Inform\Inform others = AI_InfOtr
    AI: Ability Settings: Inform\Max. Passes = AI_InfMxP
    AI: Ability Settings: Inform\Inform delay = AI_InfDly
    AI: Ability Settings: Inform\Min. dist to informed = AI_InfDst
    AI: Ability Settings: Inform\Expiration = AI_InfExp
    AI: Responses\Sense combat response = AI_CbtRsp
    AI: State\Frozen = AI_Frozen
    AI: AI Core\Uses doors = AI_UsesDoors
    AI: Ability Settings\Non-combat: Respond to damage = AI_NCDmRsp
    AI: AI Core\Suprise [0, 1, Rad] = AISuprise
    AI: Ability Settings\HtoHCombat: Distances = HTHCombatDist
    AI: Utility\Blocks AI Vision = AI_BlkVis
    Room\Acoustics = Acoustics
    Room\Ambient = Ambient
    Room\Gravity % = RoomGrav
    Room\Loud Room = LoudRoom
    Room\Render Options = RoomRend
    Physics: Model\Attributes = PhysAttr
    Physics: Model\State = PhysState
    Physics: Model\Controls = PhysControl
    Physics: Model\Dimensions = PhysDims
    Physics: Model\Mantleable = PhysCanMant
    Physics: Model\ConveyorVelocity = ConveyorVel
    Physics: Misc\MovingTerrain = MovingTerrain
    Physics: Terrain\Friction = Friction
    Physics: Terrain\Elasticity = Elasticity
    Physics: Terrain\Climbability = Climbability
    Physics: Terrain\Can Attach = CanAttach
    Physics: Projectile\Explode Me = PhysExplode
    Physics: Projectile\Initial Velocity = PhysInitVel
    Physics: Projectile\Faces Velocity = PhysFaceVel
    Physics: Misc\Rope = PhysRope
    Physics: Misc\Pressure Plate = PhysPPlate
    Physics: Misc\AI Collides With = PhysAIColl
    Networking\Pending Borrow = Borrowing
    Networking\Borrowed For Push = Borrowed
    Networking\Disallow Borrow = NoBorrow
    Book\Text = Book
    Book\Art = BookArt
    Script\TerrReplaceOff = TerrRepOff
    Script\TerrReplaceOn = TerrRepOn
    Script\TerrReplaceDestroy = TerrRepDestroy
    Editor\Design Note = DesignNote
    Trap\Quest Var = TrapQVar
    Script\Timing = ScriptTiming
    Creature\Creature Type = Creature
    Creature\Is Non-Physical = NonPhysCreature
    Creature\Current Pose = CretPose
    Creature\Creature Scale = CretScale
    Creature\Disable Head Track = CretHTrack
    Dark GameSys\PickSrc = PickSrc
    Dark Gamesys\AdvPickTransCfg = AdvPickTransCfg
    Dark Gamesys\AdvPickSoundCfg = AdvPickSoundCfg
    Dark Gamesys\AdvPickStateCfg = AdvPickStateCfg
    Dark GameSys\PickCfg = PickCfg
    Dark GameSys\PickState = PickState
    Dark GameSys\BeltLinkLocation = BeltLink
    Dark GameSys\AltLinkLocation = AltLink
    Dark GameSys\FlashInvuln = NoFlash
    Prox\Fungus = Fungus
    Prox\Blood = Blood
    Inventory\Object Name = GameName
    Inventory\Tool Reach = ToolReach
    Inventory\Being Taken = InvBeingTaken
    Inventory\Can't Drop This = NoDrop
    Dark Gamesys\Breath Config = BreathConfig
    Dark Gamesys\Air Supply = AirSupply
    SFX\Particle Type = ParticleType
    Game: Dark\BloodType = BloodType
    Game: Dark\BloodCause = BloodCause
    Game: Dark\BloodMaxDamage = BloodMaxDmg
    Gun\Base Gun Description = BaseGunDesc
    Gun\AI Gun Description = AIGunDesc
    Gun\Gun State = GunState
    Gun\Projectile Description = Projectile
    Dark Gamesys\Loot = Loot
    Object System\Fixture = Fixture
    Room\Automap = Automap
    Inventory\Store = ItemStore
    Inventory\Purchase Price = SalePrice
    Inventory\Long Description = GameDesc
    Inventory\Block Frob? = BlockFrob
    Difficulty\Destroy = DiffDestroy
    Difficulty\Remove Properties = DiffRemoveProp
    Difficulty\Permit = DiffPermit
    Difficulty\Lock (Unlock) = DiffLock
    Difficulty\Close (Open) Door = DiffClose
    Difficulty\Turn On (Off) = DiffTurnOn
    Difficulty\Script = DiffScript
    AI: Ability Settings\Frog-beast: Explode range = DAI_FrogExpl
    Dark GameSys\Stats = DarkStat
    Schema\Loop Params = SchLoopParams
    Schema\Play Params = SchPlayParams
    Schema\Priority = SchPriority
    Schema\Message = SchMsg
    Schema\Action = SchActionSnd
    Schema\Last Sample = SchLastSample
    Schema\Attenuation Factor = SchAttFac
    Speech\Current Speech = Speech
    Speech\Last Played = SpchNextPlay
    Speech\Voice = SpchVoice
    Speech\Pause Min = MinSpchPause
    Speech\Pause Max = MaxSpchPause
    Speech\Voice Index = VoiceIdx
    Schema\Class Tags = Class Tags
    Schema\Material Tags = Material Tags
    Shape\TxtRepl r0 = OTxtRepr0
    Shape\TxtRepl r1 = OTxtRepr1
    Shape\TxtRepl r2 = OTxtRepr2
    Shape\TxtRepl r3 = OTxtRepr3
    Renderer\Has Refs = HasRefs
    Renderer\Render Type = RenderType
    Renderer\Render Order = RenderOrder
    Renderer\Alpha Blend Mode = BlendMode
    Renderer\Camera Overlay = CameraOverlay
    Renderer\Distance Alpha = DistAlpha
    Shape\Model LOD = ModelLOD
    Shape\Model LOD State = ModelLODState
    Shape\Joint Positions = JointPos
    Renderer\Transparency (alpha) = RenderAlpha
    Renderer\Alpha Test Threshold = RendAlphaRef
    Renderer\Self Illumination = SelfIllum
    Renderer\Runtime Object Shadow = ObjShad
    Renderer\Force Static Shadow = StatShad
    SFX\Particle Launch Info = PGLaunchInfo
    SFX\Particles = ParticleGroup
    SFX\FrameAnimationState = FrameAniState
    SFX\FrameAnimationConfig = FrameAniConfig
    SFX\FlashBombInfo = RenderFlash
    Renderer\Bitmap Worldspace = BitmapWorld
    Renderer\Bitmap Animation = BitmapAnimation
    Renderer\Bitmap Color = BitmapColor
    Renderer\Invisible = INVISIBLE
    Renderer\Texture Anim Data = AnimTex
    Renderer\Water Texture Color = WaterColor
    Renderer\Water Flow Color Index = FlowColor
    Texture\Index = TextureID
    Weather\Local Weather = Weather
    Renderer\Mesh Textures = MeshTex
    Renderer\Face Textures = Face
    Renderer\Face State = Face State
    Sound\Face Motions = Face Pos
    Renderer\Corona = Corona
    Renderer\Never Block Coronas = NoBlockCoronas
    Networking\Network Category = NetworkCategory
    Networking\Heartbeat = Heartbeat
    Networking\Avatar Height Offset = AvatarZOffset
    Networking\Local Copy = LocalCopy
    Networking\Distinct Avatar = DistinctAvatar
    Networking\Handoff Number = HandoffNumber
    Networking\NetPlayer = NetPlayer
    Editor\Brush Name = Brush
    Editor\Has Brush = HasBrush
    Editor\Editor Comments = EdComment

  4. #4
    Member
    Registered: Oct 2004
    Location: Ireland/Poland
    Quote Originally Posted by Unna Oertdottir View Post
    Here's a property list. Is the 'flag' what you're looking for?
    Thanks Unna - I think that's it! It looks like it's the fifth bit of the flag, e.g values 0x0010, 0x0011 or 0x0051

    You can see some more symbols if you you enable dev mode in lg.ini (see instructions there)
    Thanks for that too - somehow I missed that ini file before! Shocking!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •