Difference between revisions of "Character Types and Prefabs"

From Off Grid Wiki
Jump to navigation Jump to search
Line 183: Line 183:
|align="center"| x
|align="center"| x
|align="center"| -- glitchy, no LUT
Line 191: Line 191:
|align="center"| x
|align="center"| x
|align="center"| working
|align="center"| -- glitchy, default LUT (unchangeable)
Line 335: Line 335:
|align="center"| x
|align="center"| x
|align="center"| -- glitchy, default LUT (unchangeable)

Revision as of 10:29, 3 June 2019


Adding characters to your level is important as this will allow you to add other important systems such as conversations which is one way to introduce story elements to your level.

To add characters to your level you must open up the mission script and locate the character table. It should look something like this:

[[File:|frame|none|alt=|caption charactertable.png]]

To add a character in the table you must include the following:

  • name
  • displayName
  • internalName
  • characterType
  • prefab

This would look like the following in code:

-- Character definitions:
	characters = {
		joe = {
			displayName = "Joe Harman",
			internalName = "Joe",
			characterType = "player",
			prefab = "player",
			spawnpoint = "PlayerSpawn",

Note. When the characterType is virtual you do not need to add a prefab or spawn-point.

Character Types and Prefabs

character type prefab name description
enemy bigGuard,hugeGuard,drone All of the guards listed require the character type enemy. These will allow you to add guards to patrol your level.
virtual n/a virtual characters are characters that you won't see in the level but may communicate with the player using via CryptoChat
player player This will allow you to add a playable character to your game.There can only be one per level.
npc Secretary To add the Secretary character will require you add the character type npc

Prefabs Available

Prefab Name Image
SecurityGuard-M-Lrg-Hulk insert image here
M_Lrg_Waistcoat-01 insert image here
M_Lrg_LongJacket-01 insert image here
F_Med_Teen-01-Jen insert image here

prefab name player neutral enemy tested old image
player x x
Player_Joe x x
Player_Jen x
hugeGuard x x
Secretary x x
drone x x
M_Lrg_LongJacket-01 x x x
M_Lrg_Waistcoat-01 x x
M_Med_SmartShirt_01 x x
F_Med-WorkSuit-01 x x
Masculine_Lrg_Vest_Enemy x
Masculine_Lrg_SmartSuit_Enemy x -- glitchy, no LUT
Masculine_Lrg_LongJacket_Enemy x -- glitchy, default LUT (unchangeable)
Masculine_Med_Vest_Enemy x
Masculine_Med_SmartSuit_Enemy x
Masculine_Med_LongJacket_Enemy x
Masculine_Lrg_Waistcoat_Enemy x
Masculine_Med_Waistcoat_Enemy x
Masculine_Med_Bomberjacket_Enemy x
Masculine_Med_OpenShirt_Enemy x
Masculine_Med_CasualBlazer_Enemy x
Masculine_Med_CoatScarf_Enemy x
Masculine_Med_HordseHead_Enemy x
Masculine_Med_LeatherJacket_Enemy x
Masculine_Med_SmartJumper_Enemy x
Masculine_Lrg_LongJacket-2600-Gasmask_Enemy x
Masculine_Lrg_LongJacket-2600-Hat_Enemy x
Feminine_Med_CardiganNecklase_Enemy x
Feminine_Med_Vest_Enemy x
Feminine_Med_SmartSuit_Enemy x
Feminine_Med_LongJacket_Enemy x -- glitchy, default LUT (unchangeable)
Feminine_Lrg_Vest_Enemy x
Feminine_Lrg_SmartSuit_Enemy x
Feminine_Lrg_Waistcoat_Enemy x
Feminine_Med_Waistcoat_Enemy x
Feminine_Med_Teen_Enemy x
Feminine_Med_Hoodie_Enemy x
Feminine_Med_HoodieLongHair_Enemy x broken
Feminine_Med_Shirt_Enemy x broken
Feminine_Med_ShirtLongHair_Enemy x broken

Virtual characters

Once you have created your virtual characters in order to use them within conversations you will have to add them to a network that is shared with the player. By default the mission script includes a mobile network called "Semaeopus4G" to connect other characters to this network you must use the ConnectToNetwork function. For example: Mission.ConnectToNetwork(mission.characters.terrance,mission.networks.Semaeopus4G.name,mission.networks.Semaeopus4G.userAccessKey)

Adding Guards

When creating guards you must add:

  • Spawn points
  • Patrol route
  • Profile
  • Agent
-- Guard definitions:
	characters = {
		guard01 = {
	             displayName = "Thomas Template",
	             internalName = "Thomas",
	             characterType = "enemy",
		     prefab = "bigGuard",
                     profile = "GuardTemplate.lua",
                     agent = "Guard.lua",
		     spawnpoint = "GuardSpawn",
                     patrolroute = {
                             points = {
                                      cyclic = false,

Spawn points

To create a spawn point:

  • Create empty game object
  • Add the mission object script to the empty game object
  • Select type "Spawn"

Your inspector should look something like this:

Spawn Point inspector.png

Patrol route

To create a Patrol point:

  • Create empty game object
  • Add the Patrol point script to the empty game object
  • Within the Patrol point script component section you can define the maximum and minimum time a guard spends at the particular point.
  • Repeat this process for as many points as you require.

Your inspector should look something like this:

Patrol Point inspector.png


When creating a guard you can give each one a personal profile, which will effect how each guard communicates and behaves.

This is a basic template and structure you should use:

Character ={

    Motivation = 0.6,
    Sociability = 0.5,
    FavouriteColor = { 1, 0.5586207, 0, 1 },
    Background = {

		FirstName = "THOMAS",

		LastName = "TEMPLATE",

		Nickname = {

		DerogetoryName = {

		FavouriteSwear = {

		FavouriteFood = {
			"slice of Wensleydale cheese",

		FavouriteSnack = {

		FavouriteDrink = {

		BestFriend = {

		RecipientPetName = {

		SenderPetName = {

		FavouriteExclamation = {

		RandomHashtag = {

		Mood = {

		PastEvent = {

		FutureEvent = {