Table of Contents

GameObject Setup

In order for objects to function in Gang Beasts, they need certain components and settings applied to them, depending on whether they move around (dynamic) or if they cannot be moved around (static).

Eventually, there may be tools for creating and setting these components automatically.

Warning

Settings not listed in the following sections should be left as default unless you know what you're doing.


Dynamic and Static GameObjects

Some scripts are the exact same across any object. They are configured as follows:

Interactable Object

  • Game Object: [Root GameObject]
  • Main Collider [Collider child of root GameObject]
  • Priority Modifier: Low [In most use cases]
  • Grab Modifier: Drain Slow

    Higher values, such as Drain Medium and Drain Fast, will result in shorter amounts of time a beast can hold onto it.

  • Damage Modifier: Default

    Changing this to a value such as "Headbutt" will damage a beast, for example as much as a headbutt would, when a beast collides hard enough with that GameObject.

  • Cached Transform: [Root GameObject]

    This is an optional setting. It will end up assigned in-game regardless.

  • Cached Rigidbody [Rigidbody attached to root GameObject]

    This is an optional setting. It will end up assigned in-game regardless.

  • Cached Colliders: [Colliders child of root GameObject]

    This is an optional setting. It will end up assigned in-game regardless.

Dynamic GameObjects


Non-component settings:

  • Tag: Prop (Low Priority) [in most use cases]
  • Layer: Default/Environment [use Default in most cases]
  • Static: Disabled

Rigidbody

  • Mass: [any]

    Lower values will result in lighter objects. It's best to test out a good mass for your object using Unity Explorer in Gang Beasts itself. For example, the boxes that spawn in Incinerator have a mass of 60. Heavier objects, such as the benches in Aquarium, should have a mass between 120-220.

  • Drag: [0-1]

    Leaving this at its default will work fine. There shouldn't be much of a change, but it's probably best not to go above 1.

  • Angular Drag: 0.05

    Again, leaving this at its default will work fine. There shouldn't be any scenario where it would need to be changed.

  • Use Gravity: Enabled
  • Is Kinematic: Disabled

    Having this enabled will make the GameObject unable to move. More info here, in the Unity docs.

  • Interpolate: Interpolate

    This will prevent some jitter and instability that comes with no interpolation. The reason this must be enabled might have something to do with the game's networking. More info here, in the Unity docs.

  • Collision Detection: Discrete [or] Continuous

    Stuck on figuring out which one to use? Here's how the Unity docs help you decide.

Interactable Object

  • Check Velocity: True

Rigidbody Sync Router

  • Target Child: [Root Transform]
  • Delta Threshold: 0.05

Static GameObjects


Non-component settings:

  • Tag: Untagged
  • Layer: Default
  • Static: Enabled

Rigidbody

  • Use Gravity: Enabled
  • Is Kinematic: Enabled

    Having this enabled will make the GameObject unable to move. More info here, in the Unity docs.

  • Interpolate: Interpolate

    This will prevent some jitter and instability that comes with no interpolation. The reason this must be enabled might have something to do with the game's networking. More info here, in the Unity docs.

  • Collision Detection: Discrete [or] Continuous

    Stuck on figuring out which one to use? Here's how the Unity docs help you decide.