Arma 3 Scripting

CT OBJECT CONTAINER

Topic · Markdown · JSON · original wiki page

Introduction

See CT_OBJECT for more information on the basics of object dialogs. In addition to CT_OBJECT this control type supports the addition of controls inside of a predefined area of the object which means that if the object moves so do the controls inside of it.

Note

For an object with selections one can use user texture. For example "\A3\Misc_F\Helpers\UserTexture1m.p3d" has selections: usertexture, usertexture TL,usertexture TR, usertexture BL.

Alphabetical Order

Note

TokenNames common to most controls, such as x, y, w, h, text, idc... can be found here.

Warning

Not all of the listed attributes might have an effect nor might the list be complete. All attributes were gathered with this config crawler.

#define CT_OBJECT_CONTAINER 82

A

Areas

Type: Class

Description: n/a

class Areas
{
    class Usertexture
    {
        selection = "display";
        class Controls
        {
        };
    };
};

D

direction

Type: Array

Description: n/a

direction[] = {0,0,1};

E

enableZoom

Type: Number

Description: n/a

enableZoom = 1;

I

inBack

Type: Number

Description: n/a

inBack = 0;

M

model

Type: String

Description: n/a

model = "\core\notepad\notepad.p3d";

P

paper1

Type: String

Description: n/a

paper1 = "#(argb,8,8,3)color(1,1,1,1)";

paper2

Type: String

Description: n/a

paper2 = "#(argb,8,8,3)color(1,1,1,1)";

paper3

Type: String

Description: n/a

paper3 = "#(argb,8,8,3)color(1,1,1,1)";

paper4

Type: String

Description: n/a

paper4 = "#(argb,8,8,3)color(1,1,1,1)";

paper5

Type: String

Description: n/a

paper5 = "#(argb,8,8,3)color(1,1,1,1)";

paper6

Type: String

Description: n/a

paper6 = "#(argb,8,8,3)color(1,1,1,1)";

paper7

Type: String

Description: n/a

paper7 = "#(argb,8,8,3)color(1,1,1,1)";

position

Type: Array

Description: n/a

position[] = {-0.08,0,0.32};

positionBack

Type: Array

Description: n/a

positionBack[] = {-0.325,0.197,0.8};

S

scale

Type: Number

Description: n/a

scale = 1.2;

selectionPaper

Type: String

Description: n/a

selectionPaper = "paper";

U

up

Type: Array

Description: n/a

up[] = {0,1,0};

X

xBack

Type: String

Description: n/a

xBack = "25 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";

Y

yBack

Type: String

Description: n/a

yBack = "12 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";

Z

z

Type: Number

Description: n/a

z = 1;

zBack

Type: Number

Description: n/a

zBack = 2;

zoomDuration

Type: Number

Description: n/a

zoomDuration = 0.5;

Default Classes

Note

Arma 3: AddOns: Classes need to be initialised first with class SomeClass;


Missions: Since Arma 3 v2.02 one can use import SomeClass; to initialise a class (see the import keyword).

In older versions, use "Default" call BIS_fnc_exportGUIBaseClasses; and paste the result into the description.ext.

None

Other Examples

class MyDrink
{

    idd = -1;
    movingEnable = 0;
    enableSimulation = 1;

    class Objects
    {

        class Can
        {

            onObjectMoved = "systemChat str _this";

            idc = -1;
            type = 82;
            model = "\A3\Structures_F\Items\Food\Can_V3_F.p3d";
            scale = 1;

            direction[] = {0, -0.35, -0.65};
            up[] = {0, 0.65, -0.35};

            //position[] = {0,0,0.2}; optional

            x = 0.5;
            y = 0.5;
            z = 0.2;

            //positionBack[] = {0,0,1.2}; optional

            xBack = 0.5;
            yBack = 0.5;
            zBack = 1.2;

            inBack = 1;
            enableZoom = 1;
            zoomDuration = 0.001;
            class Areas
            {
                class Something1
                {
                    selection = "Area_1";
                    // game will expect "Area_1 TL", "Area_1 TR", "Area_1 BL" memory points (Top Left, Top Right, Bottom Left) to be present in memory LOD. Basing on that surface will be created for rendering your controls

                    // Only controls are supported (no object in object)
                    class Controls
                    {
                    };
                };
                // Multiple areas are supported
                class Something2
                {
                    selection = "Area_2";
                    // game will expect "Area_2 TL", "Area_2 TR", "Area_2 BL" memory points (Top Left, Top Right, Bottom Left) to be present in memory LOD. Basing on that surface will be created for rendering your controls
                    class Controls
                    {
                    };
                };
            };
        };
    };
};