Robot Traits

Trait Guide

Simple Traits

Hostile

Marker for robots considered to be hostile / enemies.

{
    trait: "hostile"
}

Friendly

Marker for friendly robots.
May apply for other players robots (e.g. Aliance).

{
    trait: "friendly"
}

Target Traits

Complex Traits

Role Trait

Role of the robot.

primaryRole describes the main role of the robot.
secondaryRole describes the secondary Role of the Robot if needed.
example use of secondaryRole would be commander, a role that commands other robots.

Sample Roles:

  • “miner”
    • Mining of resources
  • “fighter”
    • Fighting other robots
  • “scout”
    • Exploring the map
  • “commander”
    • Commanding other robots
{
    trait: "role",
    data: {
        primaryRole: string
        secondaryRole: string | undefined
    }
}

Roles

Similar to Role if a robot has multiple roles it fullfils

{
    trait: "roles",
    data: {
        roles : string[]
    }
}

State Trait

Defines the current actions a robot is doing

sample states:

  • “mining”
  • “fleeing”
  • “trading”
  • “upgrading”
  • “moving”
{
    trait: "state",
    data: {
        state : string
    }
}

Status

Current Status Information of the robot

sample Status:

  • “fullCargo”
  • “lowHealth”
  • “lowEnergy”
{
    trait: "status",
    data: {
        status: string
    }
}

Example Usage on how Robot Traits can be used

Hostile / Friendly

Different contexts can be used to determine which Robots are considered as friendly or hostile from multiple perspectives.

[
    {
        "trait": "hostile",
        "context": "Player1"
    },
        {
        "trait": "friendly",
        "context": "Player2"
    },
    {
        "trait": "hostile",
        "context": "Player1_priority_attack_targets"
    },
]

Role / Roles

Roles can be used depending on the data to visualize Robots differently. Example usages is to have different Models depending on the combination of Roles, or just as simple to highlight those through a search Option

{
    "trait": "role",
    "data": {
        "primaryRole": "miner",
        "secondaryRole": "commander"
    }
}
{
    "trait": "roles",
    "data": {
        "roles": [
            "miner",
            "commander"
        ]
    }
}
Last modified February 4, 2025: fix go & npm dependencies (8ff1fa0)