Skip to content

Character Files

devyndamonster edited this page Mar 30, 2021 · 28 revisions

Basic Character Info

DisplayName

Type: String

Sets what the characters name is in the TNH menu


CharacterGroup

Type: Int

Sets what category the character shows up in, with 0 being daring defaults


Description

Type: String

This is the text that appears below the characters name in the TNH menu


TableID

Type: String

The name of the score board group. Usually sufficient to make this the same as characters name


StartingTokens

Type: Int

Sets the number of tokens a character starts with


ForceAllAgentWeapons

Type: Bool

Unknown what this does, but is normally set to false


ForceDisableOutfitFunctionality

Type: Bool

When true, sosig clothing such as balaklavas will not turn the sosig invisible


UsesPurchasePriceIncrement

Type: Bool

If true, then when the player purchases an item it costs one more token to purchase that item again


HasPrimaryWeapon

Type: Bool

If true, the player will spawn with an item chosen from the PrimaryWeapon pool


HasSecondaryWeapon

Type: Bool

If true, the player will spawn with an item chosen from the SecondaryWeapon pool


HasTertiaryWeapon

Type: Bool

If true, the player will spawn with an item chosen from the TertiaryWeapon pool


HasPrimaryItem

Type: Bool

If true, the player will spawn with an item chosen from the PrimaryItem pool


HasSecondaryItem

Type: Bool

If true, the player will spawn with an item chosen from the SecondaryItem pool


HasTertiaryItem

Type: Bool

If true, the player will spawn with an item chosen from the TertiaryItem pool


HasShield

Type: Bool

If true, the player will spawn with an item chosen from the Shield pool


ValidAmmoEras

Type: List<FVRObject.OTagEra>

A list of eras which ammo can spawn from

Options:

  • None
  • Colonial
  • WildWest
  • TurnOfTheCentury
  • WW1
  • WW2
  • PostWar
  • Modern
  • Futuristic
  • Medieval

ValidAmmoSets

Type: List<FVRObject.OTagSet>

A list of sets which ammo can spawn from

Options:

  • Real
  • GroundedFictional
  • SciFiFictional
  • Meme
  • MF
  • Holiday
  • TNH

GlobalAmmoBlacklist

Type: List<String>

A list of ObjectID strings which will prevent given ammo objects from spawning during TNH. This can be used to prevent ammo such as 12G flares from spawning


MagazineBlacklist

Type: List<MagazineBlacklistEntry>

A list of blacklist entries, which will prevent given magazines and clips from spawning with a given gun

Here is an example of preventing SKS magazines from spawning with a default SKS

"MagazineBlacklist": [
  {
    "FirearmID": "SKSClassic",
    "MagazineBlacklist": [
      "MagazineSKSModern10rnd",
      "MagazineSKSModern20rnd"
    ],
    "ClipBlacklist": []
  }
]

RequireSightTable

Type: EquipmentGroup

Any guns or items that are set to require sights (such as rifles with no iron sights) will spawn with a sight from this equipment group


PrimaryWeapon

Type: LoadoutEntry

When TNH begins, an item from this loadout entry will spawn in the starting room

Note: Items from this pool will spawn in a large weapons case


EquipmentPool{ }

Type: EquipmentPoolDef

An object which contains all of the equipment pools that can spawn at a TNH item spawner


Progressions[ ]

Type: List<TNH_Progression>

A list of progressions that this character can go through

NOTE: Most characters will only have one entry in this list


Progressions_Endless[ ]

Type: List<TNH_Progression>

Currently un-tested where this slots into progression (at start of run or after last level of normal progression?)

Starting Loadouts

Starting loadouts are objects which decide what weapons and items the player starts with. These objects are properties of the character, just like the properties listed above. You can have the following starting loadout objects:

  1. Weapon_Primary{ }
  2. Weapon_Secondary{ }
  3. Weapon_Tertiary{ }
  4. Item_Primary{ }
  5. Item_Secondary{ }
  6. Item_Tertiary{ }
  7. Item_Shield{ }

Below are the properties of a starting loadout:


ListOverride[]

Type: List<FVRObject>

This is currently unused (for now), but must still be declared in the character file


Num_Mags_SL_Clips=

Type: Int

Sets the number of magazines or speed loaders the weapon starts with


Num_Rounds=

Type: Int

Sets the number of bullets a weapon starts with (possibly unused if spawned weapon takes magazines)


TableDefs[ ]

Type: List<ObjectTableDef>

A list of object tables which are used to determine what equipment could possibly spawn

Progression

Progressions contain properties relating to the holds, supply points, and patrols of each level. Generally, there is only one progression entry in the Progressions[ ] list, and then entries in the Levels[ ] list is where the actual level-by-level properties are set.

Inside a progression entry is the following:


Levels[ ]

Type: List<Level>

The list of levels that the character will go through (in order)


Inside a level entry is the following:


NumOverrideTokensForHold=

Type: Int

The number of tokens the character is rewarded for completing the levels TakeChallenge{ }


@AdditionalSupplyPoints=

Type: Int

The number of additional supply points that will be spawned on top of the normal amount


TakeChallenge{ }

Type: TNH_TakeChallenge

An object with properties for the defenses that are spawned at a hold point


HoldChallenge{ }

Type: TNH_HoldChallenge

An object with properties for holding the hold point, such as encryptions and attacking waves


SupplyChallenge{ }

Type: TNH_TakeChallenge

An object with properties for defenses spawned at supply points


PatrolChallenge{ }

Type: TNH_PatrolChallenge

An object with properties for patrols that spawn


TrapsChallenge{ }

Type: TNH_TrapsChallenge

An object with properties for... traps? I didn't know TNH had traps, but it's here, and you should still declare it just in case

Take Challenges

The TakeChallenge{ } object is used for both defenses spawned at hold points, as well as defenses spawned at supply points. It has the following properties:


NumGuards=

Type: Int

Sets the number of defending sosigs that will spawn


NumTurrets=

Type: Int

Sets the number of defending turrets that will spawn


IFFUsed=

Type: Int

Sets the team that spawned defenders will be on. Default is 1, and the players IFF is 0.


TurretType=

Type: String (Enum)

Sets the type of turrets that will spawn as defenses

Options:

  • SMG
  • FLAK
  • Machinegun
  • Flamethrower
  • Suppression

GID=

Type: String (Enum)

Sets the type of sosig defenders that will spawn

Options:

Hold Challenges

The HoldChallenge{ } object holds properties such as what encryptions spawn, how many encryptions spawn, and what the attacking waves are. The hold challenge object itself only has one property: a list called Phases[ ]. The player will go on to complete each phase in order to complete the hold challenge.

Inside a hold challenge is the following:


Phases[ ]

Type: List<Phase>

The list of hold phases the character will go through (in order)


Inside a hold phase is the following:


Encryption=

Type: String (Enum)

The type of encryption that will spawn during this phase

Options:

  • Static
  • Hardened
  • Swarm

Clone this wiki locally