# Methods and Properties

{% hint style="info" %}

## If you are using visual studio the best way to see all the methods, properties and variables is to use the Object Browser:

{% endhint %}

{% embed url="<https://streamable.com/3ba20p>" %}

{% hint style="warning" %}
Below is a list of the most commonly used variables and methods - use the above method in the video to view ALL of the available variables and methods in Animal Controller and HAP!
{% endhint %}

## Public Variables&#x20;

### `public List<State> states;`

> List of the States of the animal. Locomotion, Idle, Fall etc

### `public List<Mode> modes;`

> List of the Modes of the animal. Attack, Actions, Hits etc

### `public List<Stance> Stances;`

> List of the Stances of the animal. Sneak,Crouch, Alert, Wounded etc

### `public List<EnterExitEvent> OnEnterExitStates;`&#x20;

> List of Events to used on the States. Invoked when a State Enters or Exit.

### `public List<EnterExitEvent> OnEnterExitStances;`

> &#x20;List of Events to Use on when entering on exiting a Stance. Invoked when a StanceEnters or Exit.

### `public StateID OverrideStartState;`&#x20;

> Use this method to[ override the starting state ](https://malbersanimations.gitbook.io/animal-controller/main-components/states#general)of the Animal. Use it if you need the Character to be on a different state On Enabled.

### `public FloatReference AnimatorSpeed`

> Global Animator Speed for the Animal in FloatReference type. Use it to change the speed of the Animator.

##

## Properties

### `public static List<MAnimal> Animals`&#x20;

> Returns a list of all the active animals on the scene

### `public static MAnimal MainAnimal`&#x20;

> Returns the Animal that has the Player parameter set to true

### `public State LastState {get}`

> Return the Last state the animal played

### `public State ActiveState {get}`

> Return the Current State the animal is

### `public StateID ActiveStateID {get}`

> Return the Current State ID the animal is

### `public bool AlwaysForward {get set}`

> The animal will always move forward

### `public bool UseCameraInput {get set}`

> The Animal uses the Camera Forward Direction to Move

### `public bool UseCameraUp {get set}`

> Use the Camera Up Vector to Move while Flying or Swimming Underwater (When Grounded = false)

## General Methods

### `void SetMainPlayer()`

> Set an Animal as the Main Player and set to false the current Player Animal, if it were one.

### `void DisableMainPlayer()`

> Disables the animal as the Main Player in case it was.

### `void Teleport(Transform newPos)`

> Teleports the Animal to a new position using a transform as a reference

### `void Teleport(Vector3 newPos)`

> Teleports the Animal to a new position using a vector position

### `void TeleportRot(Transform newPos)`

> Teleports the Animal to a new position using a transform as a reference and also orients the animal to the Transform reference rotation

### `void ResetGravityDirection()`

> Resets the gravity to the default Vector.Down value

### `void GroundChangesGravity(bool value)`

> If the value is **true,** the ground negative Normal will be the Gravity Direction

## Stance Methods

### `void Stance_Toggle(int NewStance)`

> Toggle the New Stance with the Default Stance using and Int ID. If the active Stance is the same, then it will activate the default Stance

### `void StanceToggle(StanceID NewStance)`

> Toggle the **New Stance** with the **Default Stance** using and [**StanceID**](https://malbersanimations.gitbook.io/animal-controller/scriptable-architecture/scriptables/scriptable-ids#stances-ids)

### `void Stance_Set(int ID) || void Stance_Set(StanceID ID)`

> Set a new Stance using the ID Value.

### `void Stance_RestoreDefault()`

> Restore the Default Stance to its original value.&#x20;

### `void Stance_SetDefault(StanceID id)`

> Changes the value of the Default Stance.&#x20;

###

### `void GroundChangesGravity(bool value)`

> If the is **true,** the ground negative Normal will be the Gravity Direction

##

## State Methods

### `void State_SetFloat(float value)`

> Set the StateFloat value and pass it to the StateFloat parameter on the Animator

### `void State_Replace(State NewState)`

> Find an old State and replace it for a new one at Runtime

### `void State_Force(StateID ID) || void State_Force(int ID)`

> Force the Activation of an state regarding if is enable or not

### `bool HasState(StateID ID) || bool HasState(int ID)`

> Returns if the Animal has a state by its ID

### `void State_SetStatus(int status)`

> &#x20;Set the StateStatus value and pass it to the StateStatus parameter on the Animator

### `void State_Enable(StateID ID) || void State_Enable(int ID)`

> &#x20;Enable a State by its ID

### `void State_Disable(StateID ID) || void State_Disable(int ID)`

> &#x20;Disable a State by its ID

### `State_AllowExit(StateID ID)`

> &#x20;Allow Lower States on the states list to be activated

### `State_InputTrue(StateID ID)`

> Find a State by its ID and set its Input value to **true**

### `State_InputFalse(StateID ID)`

> Find a State by its ID and set its Input value to **false**

### `void State_Activate(StateID ID)`

> Activates an State by its ID. If the State is Disabled it won't be activated

### `State_TryActivate(int ID)`

> Try to Activate a State by its ID, Checking the necessary conditions for activation

### `State State_Get(int ID) || State State_Get(StateID ID)`

> Return a State by its ID value

## Mode Methods

### `Mode Mode_Get(ModeID ModeID) || Mode Mode_Get(int ModeID)`

> Returns a Mode using its ID value.

### `void Mode_Activate(ModeID ModeID)`

> Activates a mode using its ID value and plays a Random Animation

### `void Mode_Activate(ModeID ID, int AbilityIndex)`

> Activates a mode using its ID value and plays an specific Ability by its Index

### `void Mode_Activate(Int ID, int AbilityIndex)`

> Activates a mode using its ID integer value and plays an specific Ability by its Index

### `bool Mode_TryActivate(int ModeID, int AbilityIndex)`

> Tries to activate a mode by checking all the conditions to activate a mode. Returns true if success and false if it could not activated

### `void Mode_Activate(Int Combined)`

> This is a special way to activate a mode and an ability all at once.
>
> E.g. To Activate any Action Mode simply call **`Mode_Activate(4).`**
>
> But if you want to play an specific Ability inside the Action mode, E.g. Sleep; call instead **`Mode_Activate(4006)`** which is the Mode ID (4)\*1000 + Ability Index(6).&#x20;

### `void Mode_Stop()`

> Stop All Modes

### `void Mode_Interrupt()`

> Set IntID to -2 to exit the playing Mode Animation. IntID = -2 is the Interrupt Condition for all modes

### `void Mode_Pin(ModeID ID)`

> Pin a mode to activate later. Store the Mode in the Pin\_Mode variable

### `void Mode_Pin_Ability(int AbilityIndex)`

> Pin an Ability on the Pin\_Mode to Activate later

### `void Mode_Pin_Status(int status)`

> Changes the Pin\_Mode Status

### `void Mode_Pin_Time(float time)`

> Changes the Pin\_Mode time when using Hold by time Status

### `void Mode_Pin_Input(bool input)`

> Changes the Input Value of the Pin\_Mode

### `void Mode_Pin_Activate()`

> Tries to Activate the Pin\_Mode

### `void Mode_Pin_AbilityActivate(int AbilityIndex)`

> Tries to Activate the Pin Mode with an Ability

## Speed Methods

### `void SetSprint(bool value)`

> Enable/Disable sprinting on the animal

### `void Speed_Change_Lock(bool value)`

> Lock speed changes on the animal. Disable changing from walk to run..etc

### `void Speed_CurrentIndex_Set(int index)`

> &#x20;Set an specific speed on the currentSpeedModifier set
>
> E.g. if the animal is using the SpeedSet "Ground" it will change the current speed modifier inside that set (Walk,Run) using an index

### `MSpeed Speed_GetModifier(string set, int index)`

> Returns a speed modifier, using the name of the set and an index.
>
> E.g. MAnimal.Speed\_GetModifier("Ground",1) will return the Walk SpeedModifier

### `void Speed_SetTopIndex(int index)`

> &#x20;Change the Top Index of a Speed Set.

### `void Speed_SetTopIndex(string setname ,int index)`

> &#x20;Change the Top Index of a Speed Set using the `setname` &#x20;

### void SpeedSet\_Set\_Active(string setName, string activeSpeed)

> &#x20;Change the Speed of a Speed Set

### void SpeedDown()

> &#x20;Changes to the previous speed on the current speed set modifier

### void SpeedUp()

> &#x20;Changes to the next speed on the current speed set modifier


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://malbersanimations.gitbook.io/animal-controller/main-components/manimal-controller/m-p-animal.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
