Character Profiles

From Off Grid Wiki
Jump to navigation Jump to search

character profiles intro

Mission script and different character types

Player

-- Character definitions:
	characters = {
		player = {
			displayName = "Joe Harman",
			internalName = "Joe",
			characterType = "player",
			prefab = "player",
			spawnpoint = "PlayerSpawn",
		},
	},
Character Table
Name Description
displayName The name that will be used any game UI referencing the character
internalName The internalName can be thought of as the id for the character, you'll reference the character by this value in a few places including conversations (Must be unique!)
characterType The 'type' of the character, see Character Types and Prefabs for more information on possible values
'prefab' The prefab for the character, see Character Types and Prefabs for more information on possible values
spawnpoint The name of the spawn mission object, the position of this object will be where the character is spawned


Enemies

-- Character definitions:
	characters = {
		player = {
			displayName = "Joe Harman",
			internalName = "Joe",
			characterType = "player",
			prefab = "player",
			spawnpoint = "PlayerSpawn",
		},
	},
Character Table
Name Description
displayName The name that will be used any game UI referencing the character
internalName The internalName can be thought of as the id for the character, you'll reference the character by this value in a few places including conversations (Must be unique!)
characterType The 'type' of the character, see Character Types and Prefabs for more information on possible values
'prefab' The prefab for the character, see Character Types and Prefabs for more information on possible values
spawnpoint The name of the spawn mission object, the position of this object will be where the character is spawned

Drones

Neutral characters

Virtual characters

Character personality files

Personality files are divided into 3 sections; "Stats", for numeric data used to set default values for various personality traits and tracked values; "Colors", which is used for color data and for now should only contain single entry for "FavouriteColor"; and finally "Profile, which contains the main bulk of the character's background information.

All information is listed using the same format, data + tags. And both of these can either be individual strings, or lists of strings. (So you can in one go define multiple pieces of information that all have same tag, or single string of information that has multiple tags. In case of Stats or Colors, the "data" should of course be a float between 0 and 1, or a list of four floats (to represent red, green, blue and alpha of RGBA color).

At the moment, the required information every character must have includes:

  • Motivation (float 0-1)
  • "FavouriteColor" (colour)
  • "FirstName"
  • "LastName"

Due to how our social engineering mechanics work, the more information there is defined about a character, the easier it is for the player to collect enough unique pieces of knowledge to gain access to that character's devices etc. If there's only few pieces of information, the player is more likely to just find character metadata he already knows about, which won't then contribute to the total gained knowledge. Since the data player can find about characters is procedural, and randomized, it's best to make sure there's decent amount of information about every character you create, as searching through duplicate data to collect large enough profile about a character would be more tedious than enjoyable for the player. If the goal is to make certain character's devices more difficult to access, it's recommended to increase the difficulty on the device script rather than by limiting the character's profile size.

...and, of course, the tags we have used in our existing profiles are not a limitation, feel free to add any new ones as you go, there is no limitation to what you can add!

(If you end adding lots of new interesting tags, it might be worth checking out the SMSCollection Lua scripting as well, so you can put those tags into good use)

Character = {
	Stats = {
		{ data = 0.6, tags = {"Motivation"}},
		{ data = 0.5, tags = {"Sociability"}},
	},
	Colors = {
		{data = { 0.1490196, 1, 0.5819339, 1 }, tags = {"FavouriteColor"}},
	},
	Profile = {
		{ data = "Simon", tags = {"FirstName", "name"} },
		{ data = "Wasserman", tags = {"LastName", "name"} },
		{ data = {
			"Tommy",
			"T-dog",
			"Bumpkin",
			"Essex-boy",
			},
			tags = {"NickName", "name"}
		},
		{ data = "Dickhead", tags = {"DerogatoryName"} },
		{ data = "Asshat", tags = {"FavouriteSwear"} },
		{ data = "bread meat bread", tags = {"FavouriteFood", "food", "favourite"} },
		{ data = "crisps", tags = {"FavouriteSnack", "food", "favourite"} },
		{ data = "Irn Bru", tags = {"FavouriteDrink", "drink", "favourite"} },
		{ data = "Tristan", tags = {"friend", "BestFriend"} },
		{ data = {
			"Sweetums",
			"Dimps",
			"Tata",
			},
			tags = {"PetName", "name"}
		},
		{ data = {
			"Golly",
			"Oh man",
			"Cripes",
			"Gosh",
			"Geez",
			"Geewhiz",
			"Grrr",
			"gahhh!",
			"Ahhh",
			"WTF",
			},
			tags = {"exclamation"}
		},
		{ data = {
				"#ROFL",
				"#Grrr",
				"LMAO",
				"LOL",
				"#Tots",
				"#BigGuns",
				"#Life",
				"#WTF",
			},
			tags = {"hashtag"}
		},
		{ data = {
			"happy",
			"excited",
			"sad",
			"frustrated",
			"upset",
			"down",
			"good",
			},
			tags = {"mood"}
		},
		{ data = {
			"ate",
			"had lunch",
			"went for a walk",
			"got up",
			"broke into your house",
			"spoke to my doctor",
			"released a mobile game",
			"checked the scores",
			"procrastinated",
			},
			tags = {"PastEvent"} },
		{ data = {
			"eat",
			"have lunch",
			"take a nap",
			"go skydiving",
			"sleep",
			"speak to your wife",
			"speak to my doctor",
			"get my doctor's degree",
			"run in the rain",
			},
			tags = {"FutureEvent"}
		},
	}
}

customizing character color