http://wiki.offgridthegame.com/api.php?action=feedcontributions&user=Rich&feedformat=atomOff Grid Wiki - User contributions [en]2024-03-29T05:54:51ZUser contributionsMediaWiki 1.41.0http://wiki.offgridthegame.com/index.php?title=Character_Types_and_Prefabs&diff=1429Character Types and Prefabs2020-07-22T10:05:22Z<p>Rich: </p>
<hr />
<div>== Characters ==<br />
<br />
<br />
-----<br />
<br />
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.<br />
<br />
To add characters to your level you must open up the mission script and locate the character table. It should look something like this:<br />
<br />
[[File:|frame|none|alt=|caption charactertable.png]]<br />
<br />
To add a character in the table you must include the following: <br />
<br />
* name <br />
* displayName <br />
* internalName <br />
* characterType <br />
* prefab<br />
<br />
You can also include some optional parameters:<br />
<br />
* [[#Head Props|headProps]]<br />
<br />
This would look like the following in code:<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Character definitions:<br />
characters = {<br />
joe = {<br />
displayName = "Joe Harman",<br />
internalName = "Joe",<br />
characterType = "player",<br />
prefab = "player",<br />
headProps = {"F_Med_Glasses-01"},<br />
spawnpoint = "PlayerSpawn",<br />
voice = "Big_Guard",<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
'''Note.''' When the characterType is virtual you do not need to add a prefab or spawn-point.<br />
<br />
=== Character Types and Prefabs ===<br />
<br />
{| class= "wikitable"<br />
!width="10%"| character type<br />
!align="center" width="30%"| prefab name<br />
!align="center" width="30%"| description<br />
!width="10%"| notes (image eventually)<br />
!width="10%"| LUT template (to be removed when all same)<br />
|-<br />
<!-- <br />
| enemy<br />
|align="center"| bigGuard,hugeGuard,drone<br />
| All of the guards listed require the character type enemy. These will allow you to add guards to patrol your level.<br />
|- <br />
--><br />
| virtual<br />
| <br />
*n/a<br />
| virtual characters are characters that you won't see in the level but may communicate with the player using via CryptoChat<br />
|<br />
|<br />
|-<br />
| player<br />
|<br />
*Player_Joe<br />
*Player_Jen <br />
| This will allow you to add a playable character to your game.There can only be one per level.<br />
|<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_BomberJacket_NPC<br />
| used for Jake Davis<br />
| working as intended, will need leaf bone removal<br />
|<br />
|-<br />
| npc<br />
| <br />
*Feminine_Med_CardiganNecklace_NPC<br />
| used for Biella Coleman<br />
|working as intended, will need leaf bone removal<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualBlazer_NPC<br />
| used for Barrett Brown<br />
| working as intended, will need leaf bone removal<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualJumper_NPC<br />
| used for Shad<br />
| not working as intended, yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CoatScarf_NPC<br />
| used for Darren Martyn<br />
|working as intended, will need leaf bone removal<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Hoodie_NPC<br />
| used for Jaime<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_HorseHead_NPC<br />
| used for HF<br />
| yet to be revamped - look at changing head to a prop and making this Masculine_Med_Hoodie_NPC so reuseable<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_LeatherJacket_NPC<br />
| used for March O'neill<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
| <br />
*Feminine_Lrg_LongJacket_NPC<br />
*Feminine_Med_LongJacket_NPC<br />
*Masculine_Lrg_LongJacket_NPC<br />
*Masculine_Med_LongJacket_NPC<br />
| used for Emmanuel and Kyle<br />
| first pass, expect Lut issues, currently LongJacket_Col_Docker is the only working LUT<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_OpenShirt_NPC<br />
| used for Lauri Love<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartJumper_NPC<br />
*Feminine_Med_SmartJumper_NPC<br />
*Masculine_Lrg_SmartJumper_NPC<br />
*Masculine_Med_SmartJumper_NPC<br />
| used for Mustafa Al Bassam<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartSuit_NPC<br />
*Feminine_Med_SmartSuit_NPC<br />
*Masculine_Lrg_SmartSuit_NPC<br />
*Masculine_Med_SmartSuit_NPC<br />
*Player_Joe<br />
| description<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Shirt_NPC<br />
| used for Naomi Colvin<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Teen_NPC<br />
*Player_Jen <br />
| description<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_TShirt_NPC<br />
| used for mc.fly<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Vest_NPC<br />
*Feminine_Med_Vest_NPC<br />
*Masculine_Lrg_Vest_NPC<br />
*<s>Masculine_Med_Vest_NPC</s> X- broken rig<br />
| description<br />
| first pass, expect Lut issues, currently Vest_Col_Security-Apostle is the only working LUT<br />
|[[File:Character LUT Layout Vest.png|none|thumb|Vest LUT]]<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Waistcoat_NPC<br />
*Feminine_Med_Waistcoat_NPC<br />
*Masculine_Lrg_Waistcoat_NPC<br />
*Masculine_Med_Waistcoat_NPC<br />
| description<br />
| yet to be revamped<br />
|<br />
|}<br />
<br />
=== Voice ===<br />
<br />
There are currently two voices, "Big_Guard" or "Huge_Guard". A table giving more information should go here when more voices are added.<br />
<br />
=== Custom LUTs and head props ===<br />
<br />
This is a subject of it's own, to customise the look of your characters further you will want to read up on<br />
[[Head props]] and [[Character Colours]].<br />
<br />
=== Virtual characters ===<br />
<br />
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 &quot;Semaeopus4G&quot; to connect other characters to this network you must use the ConnectToNetwork function. For example: <code>Mission.ConnectToNetwork(mission.characters.terrance,mission.networks.Semaeopus4G.name,mission.networks.Semaeopus4G.userAccessKey)</code><br />
<br />
=== Adding Guards ===<br />
<br />
When creating guards you must add:<br />
<br />
* Spawn points<br />
* Patrol route<br />
* Profile<br />
* Agent<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Guard definitions:<br />
characters = {<br />
guard01 = {<br />
displayName = "Thomas Template",<br />
internalName = "Thomas",<br />
characterType = "enemy",<br />
prefab = "bigGuard",<br />
profile = "GuardTemplate.lua",<br />
agent = "Guard.lua",<br />
spawnpoint = "GuardSpawn",<br />
patrolroute = {<br />
points = {<br />
"PatrolPoint_0-001",<br />
"PatrolPoint_0-002",<br />
},<br />
cyclic = false,<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
==== Spawn points ====<br />
<br />
To create a spawn point: <br />
* Create empty game object <br />
* Add the mission object script to the empty game object <br />
* Select type &quot;Spawn&quot;<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Spawn Point inspector.png|400px]]<br />
<br />
==== Patrol route ====<br />
<br />
To create a Patrol point: <br />
* Create empty game object <br />
* Add the Patrol point script to the empty game object <br />
* Within the Patrol point script component section you can define the maximum and minimum time a guard spends at the particular point. <br />
* Repeat this process for as many points as you require.<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Patrol Point inspector.png|400px]]<br />
<br />
==== Profile ====<br />
<br />
When creating a guard you can give each one a personal profile, which will effect how each guard communicates and behaves.<br />
<br />
This is a basic template and structure you should use:<br />
<syntaxhighlight source lang="lua" line start=5><br />
Character ={<br />
<br />
Motivation = 0.6,<br />
Sociability = 0.5,<br />
FavouriteColor = { 1, 0.5586207, 0, 1 },<br />
Background = {<br />
<br />
FirstName = "THOMAS",<br />
<br />
LastName = "TEMPLATE",<br />
<br />
Nickname = {<br />
"Tommy",<br />
},<br />
<br />
DerogetoryName = {<br />
"Noggin",<br />
},<br />
<br />
FavouriteSwear = {<br />
"gosh-darn",<br />
},<br />
<br />
FavouriteFood = {<br />
"slice of Wensleydale cheese",<br />
},<br />
<br />
FavouriteSnack = {<br />
"Babybell",<br />
},<br />
<br />
FavouriteDrink = {<br />
"coffee",<br />
},<br />
<br />
BestFriend = {<br />
"Tristan",<br />
},<br />
<br />
RecipientPetName = {<br />
"Sweetums",<br />
},<br />
<br />
SenderPetName = {<br />
"Hubby",<br />
},<br />
<br />
FavouriteExclamation = {<br />
"Golly",<br />
},<br />
<br />
RandomHashtag = {<br />
"#ROFL",<br />
},<br />
<br />
Mood = {<br />
"happy",<br />
},<br />
<br />
PastEvent = {<br />
"ate",<br />
},<br />
<br />
FutureEvent = {<br />
"eat",<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Character_Types_and_Prefabs&diff=1428Character Types and Prefabs2020-07-22T10:00:23Z<p>Rich: </p>
<hr />
<div>== Characters ==<br />
<br />
<br />
-----<br />
<br />
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.<br />
<br />
To add characters to your level you must open up the mission script and locate the character table. It should look something like this:<br />
<br />
[[File:|frame|none|alt=|caption charactertable.png]]<br />
<br />
To add a character in the table you must include the following: <br />
<br />
* name <br />
* displayName <br />
* internalName <br />
* characterType <br />
* prefab<br />
<br />
You can also include some optional parameters:<br />
<br />
* [[#Head Props|headProps]]<br />
<br />
This would look like the following in code:<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Character definitions:<br />
characters = {<br />
joe = {<br />
displayName = "Joe Harman",<br />
internalName = "Joe",<br />
characterType = "player",<br />
prefab = "player",<br />
headProps = {"F_Med_Glasses-01"},<br />
spawnpoint = "PlayerSpawn",<br />
voice = "Big_Guard",<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
'''Note.''' When the characterType is virtual you do not need to add a prefab or spawn-point.<br />
<br />
=== Character Types and Prefabs ===<br />
<br />
{| class= "wikitable"<br />
!width="10%"| character type<br />
!align="center" width="30%"| prefab name<br />
!align="center" width="30%"| description<br />
!width="10%"| notes (image eventually)<br />
!width="10%"| LUT template (to be removed when all same)<br />
|-<br />
<!-- <br />
| enemy<br />
|align="center"| bigGuard,hugeGuard,drone<br />
| All of the guards listed require the character type enemy. These will allow you to add guards to patrol your level.<br />
|- <br />
--><br />
| virtual<br />
| <br />
*n/a<br />
| virtual characters are characters that you won't see in the level but may communicate with the player using via CryptoChat<br />
|<br />
|<br />
|-<br />
| player<br />
|<br />
*Player_Joe<br />
*Player_Jen <br />
| This will allow you to add a playable character to your game.There can only be one per level.<br />
|<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_BomberJacket_NPC<br />
| used for Jake Davis<br />
| working as intended, will need leaf bone removal<br />
|<br />
|-<br />
| npc<br />
| <br />
*Feminine_Med_CardiganNecklace_NPC<br />
| used for Biella Coleman<br />
|working as intended, will need leaf bone removal<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualBlazer_NPC<br />
| used for Barrett Brown<br />
| working as intended, will need leaf bone removal<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualJumper_NPC<br />
| used for Shad<br />
| not working as intended, yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CoatScarf_NPC<br />
| used for Darren Martyn<br />
|working as intended, will need leaf bone removal<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Hoodie_NPC<br />
| used for Jaime<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_HorseHead_NPC<br />
| used for HF<br />
| yet to be revamped - look at changing head to a prop and making this Masculine_Med_Hoodie_NPC so reuseable<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_LeatherJacket_NPC<br />
| used for March O'neill<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
| <br />
*Feminine_Lrg_LongJacket_NPC<br />
*Feminine_Med_LongJacket_NPC<br />
*Masculine_Lrg_LongJacket_NPC<br />
*Masculine_Med_LongJacket_NPC<br />
| used for Emmanuel and Kyle<br />
| first pass, expect Lut issues, currently LongJacket_Col_Docker is the only working LUT<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_OpenShirt_NPC<br />
| used for Lauri Love<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartJumper_NPC<br />
*Feminine_Med_SmartJumper_NPC<br />
*Masculine_Lrg_SmartJumper_NPC<br />
*Masculine_Med_SmartJumper_NPC<br />
| used for Mustafa Al Bassam<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartSuit_NPC<br />
*Feminine_Med_SmartSuit_NPC<br />
*Masculine_Lrg_SmartSuit_NPC<br />
*Masculine_Med_SmartSuit_NPC<br />
*Player_Joe<br />
| description<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Shirt_NPC<br />
| used for Naomi Colvin<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Teen_NPC<br />
*Player_Jen <br />
| description<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_TShirt_NPC<br />
| used for mc.fly<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Vest_NPC<br />
*Feminine_Med_Vest_NPC<br />
*Masculine_Lrg_Vest_NPC<br />
*<s>Masculine_Med_Vest_NPC</s> X- broken rig<br />
| description<br />
| first pass, expect Lut issues, currently Vest_Col_Security-Apostle is the only working LUT<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Waistcoat_NPC<br />
*Feminine_Med_Waistcoat_NPC<br />
*Masculine_Lrg_Waistcoat_NPC<br />
*Masculine_Med_Waistcoat_NPC<br />
| description<br />
| yet to be revamped<br />
|<br />
|}<br />
<br />
=== Voice ===<br />
<br />
There are currently two voices, "Big_Guard" or "Huge_Guard". A table giving more information should go here when more voices are added.<br />
<br />
=== Custom LUTs and head props ===<br />
<br />
This is a subject of it's own, to customise the look of your characters further you will want to read up on<br />
[[Head props]] and [[Character Colours]].<br />
<br />
=== Virtual characters ===<br />
<br />
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 &quot;Semaeopus4G&quot; to connect other characters to this network you must use the ConnectToNetwork function. For example: <code>Mission.ConnectToNetwork(mission.characters.terrance,mission.networks.Semaeopus4G.name,mission.networks.Semaeopus4G.userAccessKey)</code><br />
<br />
=== Adding Guards ===<br />
<br />
When creating guards you must add:<br />
<br />
* Spawn points<br />
* Patrol route<br />
* Profile<br />
* Agent<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Guard definitions:<br />
characters = {<br />
guard01 = {<br />
displayName = "Thomas Template",<br />
internalName = "Thomas",<br />
characterType = "enemy",<br />
prefab = "bigGuard",<br />
profile = "GuardTemplate.lua",<br />
agent = "Guard.lua",<br />
spawnpoint = "GuardSpawn",<br />
patrolroute = {<br />
points = {<br />
"PatrolPoint_0-001",<br />
"PatrolPoint_0-002",<br />
},<br />
cyclic = false,<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
==== Spawn points ====<br />
<br />
To create a spawn point: <br />
* Create empty game object <br />
* Add the mission object script to the empty game object <br />
* Select type &quot;Spawn&quot;<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Spawn Point inspector.png|400px]]<br />
<br />
==== Patrol route ====<br />
<br />
To create a Patrol point: <br />
* Create empty game object <br />
* Add the Patrol point script to the empty game object <br />
* Within the Patrol point script component section you can define the maximum and minimum time a guard spends at the particular point. <br />
* Repeat this process for as many points as you require.<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Patrol Point inspector.png|400px]]<br />
<br />
==== Profile ====<br />
<br />
When creating a guard you can give each one a personal profile, which will effect how each guard communicates and behaves.<br />
<br />
This is a basic template and structure you should use:<br />
<syntaxhighlight source lang="lua" line start=5><br />
Character ={<br />
<br />
Motivation = 0.6,<br />
Sociability = 0.5,<br />
FavouriteColor = { 1, 0.5586207, 0, 1 },<br />
Background = {<br />
<br />
FirstName = "THOMAS",<br />
<br />
LastName = "TEMPLATE",<br />
<br />
Nickname = {<br />
"Tommy",<br />
},<br />
<br />
DerogetoryName = {<br />
"Noggin",<br />
},<br />
<br />
FavouriteSwear = {<br />
"gosh-darn",<br />
},<br />
<br />
FavouriteFood = {<br />
"slice of Wensleydale cheese",<br />
},<br />
<br />
FavouriteSnack = {<br />
"Babybell",<br />
},<br />
<br />
FavouriteDrink = {<br />
"coffee",<br />
},<br />
<br />
BestFriend = {<br />
"Tristan",<br />
},<br />
<br />
RecipientPetName = {<br />
"Sweetums",<br />
},<br />
<br />
SenderPetName = {<br />
"Hubby",<br />
},<br />
<br />
FavouriteExclamation = {<br />
"Golly",<br />
},<br />
<br />
RandomHashtag = {<br />
"#ROFL",<br />
},<br />
<br />
Mood = {<br />
"happy",<br />
},<br />
<br />
PastEvent = {<br />
"ate",<br />
},<br />
<br />
FutureEvent = {<br />
"eat",<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Character_Types_and_Prefabs&diff=1427Character Types and Prefabs2020-07-22T09:59:42Z<p>Rich: </p>
<hr />
<div>== Characters ==<br />
<br />
<br />
-----<br />
<br />
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.<br />
<br />
To add characters to your level you must open up the mission script and locate the character table. It should look something like this:<br />
<br />
[[File:|frame|none|alt=|caption charactertable.png]]<br />
<br />
To add a character in the table you must include the following: <br />
<br />
* name <br />
* displayName <br />
* internalName <br />
* characterType <br />
* prefab<br />
<br />
You can also include some optional parameters:<br />
<br />
* [[#Head Props|headProps]]<br />
<br />
This would look like the following in code:<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Character definitions:<br />
characters = {<br />
joe = {<br />
displayName = "Joe Harman",<br />
internalName = "Joe",<br />
characterType = "player",<br />
prefab = "player",<br />
headProps = {"F_Med_Glasses-01"},<br />
spawnpoint = "PlayerSpawn",<br />
voice = "Big_Guard",<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
'''Note.''' When the characterType is virtual you do not need to add a prefab or spawn-point.<br />
<br />
=== Character Types and Prefabs ===<br />
<br />
{| class= "wikitable"<br />
!width="10%"| character type<br />
!align="center" width="40%"| prefab name<br />
!align="center" width="40%"| description<br />
!width="10%"| notes (image eventually)<br />
!width="10%"| LUT template (to be removed when all same)<br />
|-<br />
<!-- <br />
| enemy<br />
|align="center"| bigGuard,hugeGuard,drone<br />
| All of the guards listed require the character type enemy. These will allow you to add guards to patrol your level.<br />
|- <br />
--><br />
| virtual<br />
| <br />
*n/a<br />
| virtual characters are characters that you won't see in the level but may communicate with the player using via CryptoChat<br />
|<br />
|<br />
|-<br />
| player<br />
|<br />
*Player_Joe<br />
*Player_Jen <br />
| This will allow you to add a playable character to your game.There can only be one per level.<br />
|<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_BomberJacket_NPC<br />
| used for Jake Davis<br />
| working as intended, will need leaf bone removal<br />
|<br />
|-<br />
| npc<br />
| <br />
*Feminine_Med_CardiganNecklace_NPC<br />
| used for Biella Coleman<br />
|working as intended, will need leaf bone removal<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualBlazer_NPC<br />
| used for Barrett Brown<br />
| working as intended, will need leaf bone removal<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualJumper_NPC<br />
| used for Shad<br />
| not working as intended, yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CoatScarf_NPC<br />
| used for Darren Martyn<br />
|working as intended, will need leaf bone removal<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Hoodie_NPC<br />
| used for Jaime<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_HorseHead_NPC<br />
| used for HF<br />
| yet to be revamped - look at changing head to a prop and making this Masculine_Med_Hoodie_NPC so reuseable<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_LeatherJacket_NPC<br />
| used for March O'neill<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
| <br />
*Feminine_Lrg_LongJacket_NPC<br />
*Feminine_Med_LongJacket_NPC<br />
*Masculine_Lrg_LongJacket_NPC<br />
*Masculine_Med_LongJacket_NPC<br />
| used for Emmanuel and Kyle<br />
| first pass, expect Lut issues, currently LongJacket_Col_Docker is the only working LUT<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_OpenShirt_NPC<br />
| used for Lauri Love<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartJumper_NPC<br />
*Feminine_Med_SmartJumper_NPC<br />
*Masculine_Lrg_SmartJumper_NPC<br />
*Masculine_Med_SmartJumper_NPC<br />
| used for Mustafa Al Bassam<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartSuit_NPC<br />
*Feminine_Med_SmartSuit_NPC<br />
*Masculine_Lrg_SmartSuit_NPC<br />
*Masculine_Med_SmartSuit_NPC<br />
*Player_Joe<br />
| description<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Shirt_NPC<br />
| used for Naomi Colvin<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Teen_NPC<br />
*Player_Jen <br />
| description<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_TShirt_NPC<br />
| used for mc.fly<br />
| yet to be revamped <br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Vest_NPC<br />
*Feminine_Med_Vest_NPC<br />
*Masculine_Lrg_Vest_NPC<br />
*<s>Masculine_Med_Vest_NPC</s> X- broken rig<br />
| description<br />
| first pass, expect Lut issues, currently Vest_Col_Security-Apostle is the only working LUT<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Waistcoat_NPC<br />
*Feminine_Med_Waistcoat_NPC<br />
*Masculine_Lrg_Waistcoat_NPC<br />
*Masculine_Med_Waistcoat_NPC<br />
| description<br />
| yet to be revamped<br />
|<br />
|}<br />
<br />
=== Voice ===<br />
<br />
There are currently two voices, "Big_Guard" or "Huge_Guard". A table giving more information should go here when more voices are added.<br />
<br />
=== Custom LUTs and head props ===<br />
<br />
This is a subject of it's own, to customise the look of your characters further you will want to read up on<br />
[[Head props]] and [[Character Colours]].<br />
<br />
=== Virtual characters ===<br />
<br />
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 &quot;Semaeopus4G&quot; to connect other characters to this network you must use the ConnectToNetwork function. For example: <code>Mission.ConnectToNetwork(mission.characters.terrance,mission.networks.Semaeopus4G.name,mission.networks.Semaeopus4G.userAccessKey)</code><br />
<br />
=== Adding Guards ===<br />
<br />
When creating guards you must add:<br />
<br />
* Spawn points<br />
* Patrol route<br />
* Profile<br />
* Agent<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Guard definitions:<br />
characters = {<br />
guard01 = {<br />
displayName = "Thomas Template",<br />
internalName = "Thomas",<br />
characterType = "enemy",<br />
prefab = "bigGuard",<br />
profile = "GuardTemplate.lua",<br />
agent = "Guard.lua",<br />
spawnpoint = "GuardSpawn",<br />
patrolroute = {<br />
points = {<br />
"PatrolPoint_0-001",<br />
"PatrolPoint_0-002",<br />
},<br />
cyclic = false,<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
==== Spawn points ====<br />
<br />
To create a spawn point: <br />
* Create empty game object <br />
* Add the mission object script to the empty game object <br />
* Select type &quot;Spawn&quot;<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Spawn Point inspector.png|400px]]<br />
<br />
==== Patrol route ====<br />
<br />
To create a Patrol point: <br />
* Create empty game object <br />
* Add the Patrol point script to the empty game object <br />
* Within the Patrol point script component section you can define the maximum and minimum time a guard spends at the particular point. <br />
* Repeat this process for as many points as you require.<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Patrol Point inspector.png|400px]]<br />
<br />
==== Profile ====<br />
<br />
When creating a guard you can give each one a personal profile, which will effect how each guard communicates and behaves.<br />
<br />
This is a basic template and structure you should use:<br />
<syntaxhighlight source lang="lua" line start=5><br />
Character ={<br />
<br />
Motivation = 0.6,<br />
Sociability = 0.5,<br />
FavouriteColor = { 1, 0.5586207, 0, 1 },<br />
Background = {<br />
<br />
FirstName = "THOMAS",<br />
<br />
LastName = "TEMPLATE",<br />
<br />
Nickname = {<br />
"Tommy",<br />
},<br />
<br />
DerogetoryName = {<br />
"Noggin",<br />
},<br />
<br />
FavouriteSwear = {<br />
"gosh-darn",<br />
},<br />
<br />
FavouriteFood = {<br />
"slice of Wensleydale cheese",<br />
},<br />
<br />
FavouriteSnack = {<br />
"Babybell",<br />
},<br />
<br />
FavouriteDrink = {<br />
"coffee",<br />
},<br />
<br />
BestFriend = {<br />
"Tristan",<br />
},<br />
<br />
RecipientPetName = {<br />
"Sweetums",<br />
},<br />
<br />
SenderPetName = {<br />
"Hubby",<br />
},<br />
<br />
FavouriteExclamation = {<br />
"Golly",<br />
},<br />
<br />
RandomHashtag = {<br />
"#ROFL",<br />
},<br />
<br />
Mood = {<br />
"happy",<br />
},<br />
<br />
PastEvent = {<br />
"ate",<br />
},<br />
<br />
FutureEvent = {<br />
"eat",<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Character_Types_and_Prefabs&diff=1426Character Types and Prefabs2020-07-16T12:20:55Z<p>Rich: </p>
<hr />
<div>== Characters ==<br />
<br />
<br />
-----<br />
<br />
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.<br />
<br />
To add characters to your level you must open up the mission script and locate the character table. It should look something like this:<br />
<br />
[[File:|frame|none|alt=|caption charactertable.png]]<br />
<br />
To add a character in the table you must include the following: <br />
<br />
* name <br />
* displayName <br />
* internalName <br />
* characterType <br />
* prefab<br />
<br />
You can also include some optional parameters:<br />
<br />
* [[#Head Props|headProps]]<br />
<br />
This would look like the following in code:<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Character definitions:<br />
characters = {<br />
joe = {<br />
displayName = "Joe Harman",<br />
internalName = "Joe",<br />
characterType = "player",<br />
prefab = "player",<br />
headProps = {"F_Med_Glasses-01"},<br />
spawnpoint = "PlayerSpawn",<br />
voice = "Big_Guard",<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
'''Note.''' When the characterType is virtual you do not need to add a prefab or spawn-point.<br />
<br />
=== Character Types and Prefabs ===<br />
<br />
{| class= "wikitable"<br />
!width="10%"| character type<br />
!align="center" width="40%"| prefab name<br />
!align="center" width="40%"| description<br />
!width="10%"| image<br />
|-<br />
<!-- <br />
| enemy<br />
|align="center"| bigGuard,hugeGuard,drone<br />
| All of the guards listed require the character type enemy. These will allow you to add guards to patrol your level.<br />
|- <br />
--><br />
| virtual<br />
| <br />
*n/a<br />
| virtual characters are characters that you won't see in the level but may communicate with the player using via CryptoChat<br />
|<br />
|-<br />
| player<br />
|<br />
*Player_Joe<br />
*Player_Jen <br />
| This will allow you to add a playable character to your game.There can only be one per level.<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_BomberJacket_NPC<br />
| used for Jake Davis<br />
| working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
| <br />
*Feminine_Med_CardiganNecklace_NPC<br />
| used for Biella Coleman<br />
|working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualBlazer_NPC<br />
| used for Barrett Brown<br />
| working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualJumper_NPC<br />
| used for Shad<br />
| not working as intended, yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CoatScarf_NPC<br />
| used for Darren Martyn<br />
|working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Hoodie_NPC<br />
| used for Jaime<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_HorseHead_NPC<br />
| used for HF<br />
| yet to be revamped - look at changing head to a prop and making this Masculine_Med_Hoodie_NPC so reuseable<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_LeatherJacket_NPC<br />
| used for March O'neill<br />
| yet to be revamped <br />
|-<br />
| npc<br />
| <br />
*Feminine_Lrg_LongJacket_NPC<br />
*Feminine_Med_LongJacket_NPC<br />
*Masculine_Lrg_LongJacket_NPC<br />
*Masculine_Med_LongJacket_NPC<br />
| used for Emmanuel and Kyle<br />
| first pass, expect Lut issues, currently LongJacket_Col_Docker is the only working LUT<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_OpenShirt_NPC<br />
| used for Lauri Love<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartJumper_NPC<br />
*Feminine_Med_SmartJumper_NPC<br />
*Masculine_Lrg_SmartJumper_NPC<br />
*Masculine_Med_SmartJumper_NPC<br />
| used for Mustafa Al Bassam<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartSuit_NPC<br />
*Feminine_Med_SmartSuit_NPC<br />
*Masculine_Lrg_SmartSuit_NPC<br />
*Masculine_Med_SmartSuit_NPC<br />
*Player_Joe<br />
| description<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Shirt_NPC<br />
| used for Naomi Colvin<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Teen_NPC<br />
*Player_Jen <br />
| description<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_TShirt_NPC<br />
| used for mc.fly<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Vest_NPC<br />
*Feminine_Med_Vest_NPC<br />
*Masculine_Lrg_Vest_NPC<br />
*<s>Masculine_Med_Vest_NPC</s> X- broken rig<br />
| description<br />
| first pass, expect Lut issues, currently Vest_Col_Security-Apostle is the only working LUT<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Waistcoat_NPC<br />
*Feminine_Med_Waistcoat_NPC<br />
*Masculine_Lrg_Waistcoat_NPC<br />
*Masculine_Med_Waistcoat_NPC<br />
| description<br />
| yet to be revamped<br />
|}<br />
<br />
=== Voice ===<br />
<br />
There are currently two voices, "Big_Guard" or "Huge_Guard". A table giving more information should go here when more voices are added.<br />
<br />
=== Custom LUTs and head props ===<br />
<br />
This is a subject of it's own, to customise the look of your characters further you will want to read up on<br />
[[Head props]] and [[Character Colours]].<br />
<br />
=== Virtual characters ===<br />
<br />
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 &quot;Semaeopus4G&quot; to connect other characters to this network you must use the ConnectToNetwork function. For example: <code>Mission.ConnectToNetwork(mission.characters.terrance,mission.networks.Semaeopus4G.name,mission.networks.Semaeopus4G.userAccessKey)</code><br />
<br />
=== Adding Guards ===<br />
<br />
When creating guards you must add:<br />
<br />
* Spawn points<br />
* Patrol route<br />
* Profile<br />
* Agent<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Guard definitions:<br />
characters = {<br />
guard01 = {<br />
displayName = "Thomas Template",<br />
internalName = "Thomas",<br />
characterType = "enemy",<br />
prefab = "bigGuard",<br />
profile = "GuardTemplate.lua",<br />
agent = "Guard.lua",<br />
spawnpoint = "GuardSpawn",<br />
patrolroute = {<br />
points = {<br />
"PatrolPoint_0-001",<br />
"PatrolPoint_0-002",<br />
},<br />
cyclic = false,<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
==== Spawn points ====<br />
<br />
To create a spawn point: <br />
* Create empty game object <br />
* Add the mission object script to the empty game object <br />
* Select type &quot;Spawn&quot;<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Spawn Point inspector.png|400px]]<br />
<br />
==== Patrol route ====<br />
<br />
To create a Patrol point: <br />
* Create empty game object <br />
* Add the Patrol point script to the empty game object <br />
* Within the Patrol point script component section you can define the maximum and minimum time a guard spends at the particular point. <br />
* Repeat this process for as many points as you require.<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Patrol Point inspector.png|400px]]<br />
<br />
==== Profile ====<br />
<br />
When creating a guard you can give each one a personal profile, which will effect how each guard communicates and behaves.<br />
<br />
This is a basic template and structure you should use:<br />
<syntaxhighlight source lang="lua" line start=5><br />
Character ={<br />
<br />
Motivation = 0.6,<br />
Sociability = 0.5,<br />
FavouriteColor = { 1, 0.5586207, 0, 1 },<br />
Background = {<br />
<br />
FirstName = "THOMAS",<br />
<br />
LastName = "TEMPLATE",<br />
<br />
Nickname = {<br />
"Tommy",<br />
},<br />
<br />
DerogetoryName = {<br />
"Noggin",<br />
},<br />
<br />
FavouriteSwear = {<br />
"gosh-darn",<br />
},<br />
<br />
FavouriteFood = {<br />
"slice of Wensleydale cheese",<br />
},<br />
<br />
FavouriteSnack = {<br />
"Babybell",<br />
},<br />
<br />
FavouriteDrink = {<br />
"coffee",<br />
},<br />
<br />
BestFriend = {<br />
"Tristan",<br />
},<br />
<br />
RecipientPetName = {<br />
"Sweetums",<br />
},<br />
<br />
SenderPetName = {<br />
"Hubby",<br />
},<br />
<br />
FavouriteExclamation = {<br />
"Golly",<br />
},<br />
<br />
RandomHashtag = {<br />
"#ROFL",<br />
},<br />
<br />
Mood = {<br />
"happy",<br />
},<br />
<br />
PastEvent = {<br />
"ate",<br />
},<br />
<br />
FutureEvent = {<br />
"eat",<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Character_Types_and_Prefabs&diff=1425Character Types and Prefabs2020-07-16T12:17:49Z<p>Rich: </p>
<hr />
<div>== Characters ==<br />
<br />
<br />
-----<br />
<br />
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.<br />
<br />
To add characters to your level you must open up the mission script and locate the character table. It should look something like this:<br />
<br />
[[File:|frame|none|alt=|caption charactertable.png]]<br />
<br />
To add a character in the table you must include the following: <br />
<br />
* name <br />
* displayName <br />
* internalName <br />
* characterType <br />
* prefab<br />
<br />
You can also include some optional parameters:<br />
<br />
* [[#Head Props|headProps]]<br />
<br />
This would look like the following in code:<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Character definitions:<br />
characters = {<br />
joe = {<br />
displayName = "Joe Harman",<br />
internalName = "Joe",<br />
characterType = "player",<br />
prefab = "player",<br />
headProps = {"F_Med_Glasses-01"},<br />
spawnpoint = "PlayerSpawn",<br />
voice = "Big_Guard",<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
'''Note.''' When the characterType is virtual you do not need to add a prefab or spawn-point.<br />
<br />
=== Character Types and Prefabs ===<br />
<br />
{| class= "wikitable"<br />
!width="10%"| character type<br />
!align="center" width="40%"| prefab name<br />
!align="center" width="40%"| description<br />
!width="10%"| image<br />
|-<br />
<!-- <br />
| enemy<br />
|align="center"| bigGuard,hugeGuard,drone<br />
| All of the guards listed require the character type enemy. These will allow you to add guards to patrol your level.<br />
|- <br />
--><br />
| virtual<br />
| <br />
*n/a<br />
| virtual characters are characters that you won't see in the level but may communicate with the player using via CryptoChat<br />
|<br />
|-<br />
| player<br />
|<br />
*Player_Joe<br />
*Player_Jen <br />
| This will allow you to add a playable character to your game.There can only be one per level.<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_BomberJacket_NPC<br />
| used for Jake Davis<br />
| working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
| <br />
*Feminine_Med_CardiganNecklace_NPC<br />
| used for Biella Coleman<br />
|working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualBlazer_NPC<br />
| used for Barrett Brown<br />
| working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualJumper_NPC<br />
| used for Shad<br />
| not working as intended, yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CoatScarf_NPC<br />
| used for Darren Martyn<br />
|working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Hoodie_NPC<br />
| used for Jaime<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_HorseHead_NPC<br />
| used for HF<br />
| yet to be revamped - look at changing head to a prop and making this Masculine_Med_Hoodie_NPC so reuseable<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_LeatherJacket_NPC<br />
| used for March O'niell<br />
| yet to be revamped <br />
|-<br />
| npc<br />
| <br />
*Feminine_Lrg_LongJacket_NPC<br />
*Feminine_Med_LongJacket_NPC<br />
*Masculine_Lrg_LongJacket_NPC<br />
*Masculine_Med_LongJacket_NPC<br />
| used for Emmanuel and Kyle<br />
| first pass, expect Lut issues, currently LongJacket_Col_Docker is the only working LUT<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_OpenShirt_NPC<br />
| used for Lauri Love<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartJumper_NPC<br />
*Feminine_Med_SmartJumper_NPC<br />
*Masculine_Lrg_SmartJumper_NPC<br />
*Masculine_Med_SmartJumper_NPC<br />
| used for Mustafa Al Bassam<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartSuit_NPC<br />
*Feminine_Med_SmartSuit_NPC<br />
*Masculine_Lrg_SmartSuit_NPC<br />
*Masculine_Med_SmartSuit_NPC<br />
*Player_Joe<br />
| description<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Shirt_NPC<br />
| used for Naomi Colvin<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Teen_NPC<br />
*Player_Jen <br />
| description<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_TShirt_NPC<br />
| used for mc.fly<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Vest_NPC<br />
*Feminine_Med_Vest_NPC<br />
*Masculine_Lrg_Vest_NPC<br />
*<s>Masculine_Med_Vest_NPC</s> X- broken rig<br />
| description<br />
| first pass, expect Lut issues, currently Vest_Col_Security-Apostle is the only working LUT<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Waistcoat_NPC<br />
*Feminine_Med_Waistcoat_NPC<br />
*Masculine_Lrg_Waistcoat_NPC<br />
*Masculine_Med_Waistcoat_NPC<br />
| description<br />
| yet to be revamped<br />
|}<br />
<br />
=== Voice ===<br />
<br />
There are currently two voices, "Big_Guard" or "Huge_Guard". A table giving more information should go here when more voices are added.<br />
<br />
=== Custom LUTs and head props ===<br />
<br />
This is a subject of it's own, to customise the look of your characters further you will want to read up on<br />
[[Head props]] and [[Character Colours]].<br />
<br />
=== Virtual characters ===<br />
<br />
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 &quot;Semaeopus4G&quot; to connect other characters to this network you must use the ConnectToNetwork function. For example: <code>Mission.ConnectToNetwork(mission.characters.terrance,mission.networks.Semaeopus4G.name,mission.networks.Semaeopus4G.userAccessKey)</code><br />
<br />
=== Adding Guards ===<br />
<br />
When creating guards you must add:<br />
<br />
* Spawn points<br />
* Patrol route<br />
* Profile<br />
* Agent<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Guard definitions:<br />
characters = {<br />
guard01 = {<br />
displayName = "Thomas Template",<br />
internalName = "Thomas",<br />
characterType = "enemy",<br />
prefab = "bigGuard",<br />
profile = "GuardTemplate.lua",<br />
agent = "Guard.lua",<br />
spawnpoint = "GuardSpawn",<br />
patrolroute = {<br />
points = {<br />
"PatrolPoint_0-001",<br />
"PatrolPoint_0-002",<br />
},<br />
cyclic = false,<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
==== Spawn points ====<br />
<br />
To create a spawn point: <br />
* Create empty game object <br />
* Add the mission object script to the empty game object <br />
* Select type &quot;Spawn&quot;<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Spawn Point inspector.png|400px]]<br />
<br />
==== Patrol route ====<br />
<br />
To create a Patrol point: <br />
* Create empty game object <br />
* Add the Patrol point script to the empty game object <br />
* Within the Patrol point script component section you can define the maximum and minimum time a guard spends at the particular point. <br />
* Repeat this process for as many points as you require.<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Patrol Point inspector.png|400px]]<br />
<br />
==== Profile ====<br />
<br />
When creating a guard you can give each one a personal profile, which will effect how each guard communicates and behaves.<br />
<br />
This is a basic template and structure you should use:<br />
<syntaxhighlight source lang="lua" line start=5><br />
Character ={<br />
<br />
Motivation = 0.6,<br />
Sociability = 0.5,<br />
FavouriteColor = { 1, 0.5586207, 0, 1 },<br />
Background = {<br />
<br />
FirstName = "THOMAS",<br />
<br />
LastName = "TEMPLATE",<br />
<br />
Nickname = {<br />
"Tommy",<br />
},<br />
<br />
DerogetoryName = {<br />
"Noggin",<br />
},<br />
<br />
FavouriteSwear = {<br />
"gosh-darn",<br />
},<br />
<br />
FavouriteFood = {<br />
"slice of Wensleydale cheese",<br />
},<br />
<br />
FavouriteSnack = {<br />
"Babybell",<br />
},<br />
<br />
FavouriteDrink = {<br />
"coffee",<br />
},<br />
<br />
BestFriend = {<br />
"Tristan",<br />
},<br />
<br />
RecipientPetName = {<br />
"Sweetums",<br />
},<br />
<br />
SenderPetName = {<br />
"Hubby",<br />
},<br />
<br />
FavouriteExclamation = {<br />
"Golly",<br />
},<br />
<br />
RandomHashtag = {<br />
"#ROFL",<br />
},<br />
<br />
Mood = {<br />
"happy",<br />
},<br />
<br />
PastEvent = {<br />
"ate",<br />
},<br />
<br />
FutureEvent = {<br />
"eat",<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Character_Types_and_Prefabs&diff=1424Character Types and Prefabs2020-07-16T11:52:43Z<p>Rich: </p>
<hr />
<div>== Characters ==<br />
<br />
<br />
-----<br />
<br />
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.<br />
<br />
To add characters to your level you must open up the mission script and locate the character table. It should look something like this:<br />
<br />
[[File:|frame|none|alt=|caption charactertable.png]]<br />
<br />
To add a character in the table you must include the following: <br />
<br />
* name <br />
* displayName <br />
* internalName <br />
* characterType <br />
* prefab<br />
<br />
You can also include some optional parameters:<br />
<br />
* [[#Head Props|headProps]]<br />
<br />
This would look like the following in code:<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Character definitions:<br />
characters = {<br />
joe = {<br />
displayName = "Joe Harman",<br />
internalName = "Joe",<br />
characterType = "player",<br />
prefab = "player",<br />
headProps = {"F_Med_Glasses-01"},<br />
spawnpoint = "PlayerSpawn",<br />
voice = "Big_Guard",<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
'''Note.''' When the characterType is virtual you do not need to add a prefab or spawn-point.<br />
<br />
=== Character Types and Prefabs ===<br />
<br />
{| class= "wikitable"<br />
!width="10%"| character type<br />
!align="center" width="40%"| prefab name<br />
!align="center" width="40%"| description<br />
!width="10%"| image<br />
|-<br />
<!-- <br />
| enemy<br />
|align="center"| bigGuard,hugeGuard,drone<br />
| All of the guards listed require the character type enemy. These will allow you to add guards to patrol your level.<br />
|- <br />
--><br />
| virtual<br />
| <br />
*n/a<br />
| virtual characters are characters that you won't see in the level but may communicate with the player using via CryptoChat<br />
|<br />
|-<br />
| player<br />
|<br />
*Player_Joe<br />
*Player_Jen <br />
| This will allow you to add a playable character to your game.There can only be one per level.<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_BomberJacket_NPC<br />
| used for Jake Davis<br />
| working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
| <br />
*Feminine_Med_CardiganNecklace_NPC<br />
| used for Biella Coleman<br />
|working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualBlazer_NPC<br />
| used for Barrett Brown<br />
| working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualJumper_NPC<br />
| used for Shad<br />
| not working as intended, yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CoatScarf_NPC<br />
| used for Darren Martyn<br />
|working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Hoodie_NPC<br />
| used for Jaime<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_HorseHead_NPC<br />
| used for HF<br />
| yet to be revamped <br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_LeatherJacket_NPC<br />
| used for March O'niell<br />
| yet to be revamped <br />
|-<br />
| npc<br />
| <br />
*Feminine_Lrg_LongJacket_NPC<br />
*Feminine_Med_LongJacket_NPC<br />
*Masculine_Lrg_LongJacket_NPC<br />
*Masculine_Med_LongJacket_NPC<br />
| used for Emmanuel and Kyle<br />
| first pass, expect Lut issues, currently LongJacket_Col_Docker is the only working LUT<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_OpenShirt_NPC<br />
| used for Lauri Love<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartJumper_NPC<br />
*Feminine_Med_SmartJumper_NPC<br />
*Masculine_Lrg_SmartJumper_NPC<br />
*Masculine_Med_SmartJumper_NPC<br />
| used for Mustafa Al Bassam<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartSuit_NPC<br />
*Feminine_Med_SmartSuit_NPC<br />
*Masculine_Lrg_SmartSuit_NPC<br />
*Masculine_Med_SmartSuit_NPC<br />
*Player_Joe<br />
| description<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Shirt_NPC<br />
| used for Naomi Colvin<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Teen_NPC<br />
*Player_Jen <br />
| description<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_TShirt_NPC<br />
| used for mc.fly<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Vest_NPC<br />
*Feminine_Med_Vest_NPC<br />
*Masculine_Lrg_Vest_NPC<br />
*<s>Masculine_Med_Vest_NPC</s> X- broken rig<br />
| description<br />
| first pass, expect Lut issues, currently Vest_Col_Security-Apostle is the only working LUT<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Waistcoat_NPC<br />
*Feminine_Med_Waistcoat_NPC<br />
*Masculine_Lrg_Waistcoat_NPC<br />
*Masculine_Med_Waistcoat_NPC<br />
| description<br />
| yet to be revamped<br />
|}<br />
<br />
=== Voice ===<br />
<br />
There are currently two voices, "Big_Guard" or "Huge_Guard". A table giving more information should go here when more voices are added.<br />
<br />
=== Custom LUTs and head props ===<br />
<br />
This is a subject of it's own, to customise the look of your characters further you will want to read up on<br />
[[Head props]] and [[Character Colours]].<br />
<br />
=== Virtual characters ===<br />
<br />
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 &quot;Semaeopus4G&quot; to connect other characters to this network you must use the ConnectToNetwork function. For example: <code>Mission.ConnectToNetwork(mission.characters.terrance,mission.networks.Semaeopus4G.name,mission.networks.Semaeopus4G.userAccessKey)</code><br />
<br />
=== Adding Guards ===<br />
<br />
When creating guards you must add:<br />
<br />
* Spawn points<br />
* Patrol route<br />
* Profile<br />
* Agent<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Guard definitions:<br />
characters = {<br />
guard01 = {<br />
displayName = "Thomas Template",<br />
internalName = "Thomas",<br />
characterType = "enemy",<br />
prefab = "bigGuard",<br />
profile = "GuardTemplate.lua",<br />
agent = "Guard.lua",<br />
spawnpoint = "GuardSpawn",<br />
patrolroute = {<br />
points = {<br />
"PatrolPoint_0-001",<br />
"PatrolPoint_0-002",<br />
},<br />
cyclic = false,<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
==== Spawn points ====<br />
<br />
To create a spawn point: <br />
* Create empty game object <br />
* Add the mission object script to the empty game object <br />
* Select type &quot;Spawn&quot;<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Spawn Point inspector.png|400px]]<br />
<br />
==== Patrol route ====<br />
<br />
To create a Patrol point: <br />
* Create empty game object <br />
* Add the Patrol point script to the empty game object <br />
* Within the Patrol point script component section you can define the maximum and minimum time a guard spends at the particular point. <br />
* Repeat this process for as many points as you require.<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Patrol Point inspector.png|400px]]<br />
<br />
==== Profile ====<br />
<br />
When creating a guard you can give each one a personal profile, which will effect how each guard communicates and behaves.<br />
<br />
This is a basic template and structure you should use:<br />
<syntaxhighlight source lang="lua" line start=5><br />
Character ={<br />
<br />
Motivation = 0.6,<br />
Sociability = 0.5,<br />
FavouriteColor = { 1, 0.5586207, 0, 1 },<br />
Background = {<br />
<br />
FirstName = "THOMAS",<br />
<br />
LastName = "TEMPLATE",<br />
<br />
Nickname = {<br />
"Tommy",<br />
},<br />
<br />
DerogetoryName = {<br />
"Noggin",<br />
},<br />
<br />
FavouriteSwear = {<br />
"gosh-darn",<br />
},<br />
<br />
FavouriteFood = {<br />
"slice of Wensleydale cheese",<br />
},<br />
<br />
FavouriteSnack = {<br />
"Babybell",<br />
},<br />
<br />
FavouriteDrink = {<br />
"coffee",<br />
},<br />
<br />
BestFriend = {<br />
"Tristan",<br />
},<br />
<br />
RecipientPetName = {<br />
"Sweetums",<br />
},<br />
<br />
SenderPetName = {<br />
"Hubby",<br />
},<br />
<br />
FavouriteExclamation = {<br />
"Golly",<br />
},<br />
<br />
RandomHashtag = {<br />
"#ROFL",<br />
},<br />
<br />
Mood = {<br />
"happy",<br />
},<br />
<br />
PastEvent = {<br />
"ate",<br />
},<br />
<br />
FutureEvent = {<br />
"eat",<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Character_Types_and_Prefabs&diff=1423Character Types and Prefabs2020-07-16T11:51:11Z<p>Rich: </p>
<hr />
<div>== Characters ==<br />
<br />
<br />
-----<br />
<br />
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.<br />
<br />
To add characters to your level you must open up the mission script and locate the character table. It should look something like this:<br />
<br />
[[File:|frame|none|alt=|caption charactertable.png]]<br />
<br />
To add a character in the table you must include the following: <br />
<br />
* name <br />
* displayName <br />
* internalName <br />
* characterType <br />
* prefab<br />
<br />
You can also include some optional parameters:<br />
<br />
* [[#Head Props|headProps]]<br />
<br />
This would look like the following in code:<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Character definitions:<br />
characters = {<br />
joe = {<br />
displayName = "Joe Harman",<br />
internalName = "Joe",<br />
characterType = "player",<br />
prefab = "player",<br />
headProps = {"F_Med_Glasses-01"},<br />
spawnpoint = "PlayerSpawn",<br />
voice = "Big_Guard",<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
'''Note.''' When the characterType is virtual you do not need to add a prefab or spawn-point.<br />
<br />
=== Character Types and Prefabs ===<br />
<br />
{| class= "wikitable"<br />
!width="10%"| character type<br />
!align="center" width="40%"| prefab name<br />
!align="center" width="40%"| description<br />
!width="10%"| image<br />
|-<br />
<!-- <br />
| enemy<br />
|align="center"| bigGuard,hugeGuard,drone<br />
| All of the guards listed require the character type enemy. These will allow you to add guards to patrol your level.<br />
|- <br />
--><br />
| virtual<br />
| <br />
*n/a<br />
| virtual characters are characters that you won't see in the level but may communicate with the player using via CryptoChat<br />
|<br />
|-<br />
| player<br />
|<br />
*Player_Joe<br />
*Player_Jen <br />
| This will allow you to add a playable character to your game.There can only be one per level.<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_BomberJacket_NPC<br />
| used for Jake Davis<br />
| working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
| <br />
*Feminine_Med_CardiganNecklace_NPC<br />
| used for Biella Coleman<br />
|working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualBlazer_NPC<br />
| used for Barrett Brown<br />
| working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualJumper_NPC<br />
| used for Shad<br />
| not working as intended, yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CoatScarf_NPC<br />
| used for Darren Martyn<br />
|working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Hoodie_NPC<br />
| used for Jaime<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_HorseHead_NPC<br />
| used for HF<br />
| yet to be revamped <br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_LeatherJacket_NPC<br />
| used for March O'niell<br />
| yet to be revamped <br />
|-<br />
| npc<br />
| <br />
*Feminine_Lrg_LongJacket_NPC<br />
*Feminine_Med_LongJacket_NPC<br />
*Masculine_Lrg_LongJacket_NPC<br />
*Masculine_Med_LongJacket_NPC<br />
| description<br />
| first pass, expect Lut issues, currently LongJacket_Col_Docker is the only working LUT<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_OpenShirt_NPC<br />
| used for Lauri Love<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartJumper_NPC<br />
*Feminine_Med_SmartJumper_NPC<br />
*Masculine_Lrg_SmartJumper_NPC<br />
*Masculine_Med_SmartJumper_NPC<br />
| description<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartSuit_NPC<br />
*Feminine_Med_SmartSuit_NPC<br />
*Masculine_Lrg_SmartSuit_NPC<br />
*Masculine_Med_SmartSuit_NPC<br />
*Player_Joe<br />
| description<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Shirt_NPC<br />
| used for Naomi Colvin<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Teen_NPC<br />
*Player_Jen <br />
| description<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_TShirt_NPC<br />
| used for mc.fly<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Vest_NPC<br />
*Feminine_Med_Vest_NPC<br />
*Masculine_Lrg_Vest_NPC<br />
*<s>Masculine_Med_Vest_NPC</s> X- broken rig<br />
| description<br />
| first pass, expect Lut issues, currently Vest_Col_Security-Apostle is the only working LUT<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Waistcoat_NPC<br />
*Feminine_Med_Waistcoat_NPC<br />
*Masculine_Lrg_Waistcoat_NPC<br />
*Masculine_Med_Waistcoat_NPC<br />
| description<br />
| yet to be revamped<br />
|}<br />
<br />
=== Voice ===<br />
<br />
There are currently two voices, "Big_Guard" or "Huge_Guard". A table giving more information should go here when more voices are added.<br />
<br />
=== Custom LUTs and head props ===<br />
<br />
This is a subject of it's own, to customise the look of your characters further you will want to read up on<br />
[[Head props]] and [[Character Colours]].<br />
<br />
=== Virtual characters ===<br />
<br />
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 &quot;Semaeopus4G&quot; to connect other characters to this network you must use the ConnectToNetwork function. For example: <code>Mission.ConnectToNetwork(mission.characters.terrance,mission.networks.Semaeopus4G.name,mission.networks.Semaeopus4G.userAccessKey)</code><br />
<br />
=== Adding Guards ===<br />
<br />
When creating guards you must add:<br />
<br />
* Spawn points<br />
* Patrol route<br />
* Profile<br />
* Agent<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Guard definitions:<br />
characters = {<br />
guard01 = {<br />
displayName = "Thomas Template",<br />
internalName = "Thomas",<br />
characterType = "enemy",<br />
prefab = "bigGuard",<br />
profile = "GuardTemplate.lua",<br />
agent = "Guard.lua",<br />
spawnpoint = "GuardSpawn",<br />
patrolroute = {<br />
points = {<br />
"PatrolPoint_0-001",<br />
"PatrolPoint_0-002",<br />
},<br />
cyclic = false,<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
==== Spawn points ====<br />
<br />
To create a spawn point: <br />
* Create empty game object <br />
* Add the mission object script to the empty game object <br />
* Select type &quot;Spawn&quot;<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Spawn Point inspector.png|400px]]<br />
<br />
==== Patrol route ====<br />
<br />
To create a Patrol point: <br />
* Create empty game object <br />
* Add the Patrol point script to the empty game object <br />
* Within the Patrol point script component section you can define the maximum and minimum time a guard spends at the particular point. <br />
* Repeat this process for as many points as you require.<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Patrol Point inspector.png|400px]]<br />
<br />
==== Profile ====<br />
<br />
When creating a guard you can give each one a personal profile, which will effect how each guard communicates and behaves.<br />
<br />
This is a basic template and structure you should use:<br />
<syntaxhighlight source lang="lua" line start=5><br />
Character ={<br />
<br />
Motivation = 0.6,<br />
Sociability = 0.5,<br />
FavouriteColor = { 1, 0.5586207, 0, 1 },<br />
Background = {<br />
<br />
FirstName = "THOMAS",<br />
<br />
LastName = "TEMPLATE",<br />
<br />
Nickname = {<br />
"Tommy",<br />
},<br />
<br />
DerogetoryName = {<br />
"Noggin",<br />
},<br />
<br />
FavouriteSwear = {<br />
"gosh-darn",<br />
},<br />
<br />
FavouriteFood = {<br />
"slice of Wensleydale cheese",<br />
},<br />
<br />
FavouriteSnack = {<br />
"Babybell",<br />
},<br />
<br />
FavouriteDrink = {<br />
"coffee",<br />
},<br />
<br />
BestFriend = {<br />
"Tristan",<br />
},<br />
<br />
RecipientPetName = {<br />
"Sweetums",<br />
},<br />
<br />
SenderPetName = {<br />
"Hubby",<br />
},<br />
<br />
FavouriteExclamation = {<br />
"Golly",<br />
},<br />
<br />
RandomHashtag = {<br />
"#ROFL",<br />
},<br />
<br />
Mood = {<br />
"happy",<br />
},<br />
<br />
PastEvent = {<br />
"ate",<br />
},<br />
<br />
FutureEvent = {<br />
"eat",<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Character_Types_and_Prefabs&diff=1422Character Types and Prefabs2020-07-16T11:50:11Z<p>Rich: </p>
<hr />
<div>== Characters ==<br />
<br />
<br />
-----<br />
<br />
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.<br />
<br />
To add characters to your level you must open up the mission script and locate the character table. It should look something like this:<br />
<br />
[[File:|frame|none|alt=|caption charactertable.png]]<br />
<br />
To add a character in the table you must include the following: <br />
<br />
* name <br />
* displayName <br />
* internalName <br />
* characterType <br />
* prefab<br />
<br />
You can also include some optional parameters:<br />
<br />
* [[#Head Props|headProps]]<br />
<br />
This would look like the following in code:<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Character definitions:<br />
characters = {<br />
joe = {<br />
displayName = "Joe Harman",<br />
internalName = "Joe",<br />
characterType = "player",<br />
prefab = "player",<br />
headProps = {"F_Med_Glasses-01"},<br />
spawnpoint = "PlayerSpawn",<br />
voice = "Big_Guard",<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
'''Note.''' When the characterType is virtual you do not need to add a prefab or spawn-point.<br />
<br />
=== Character Types and Prefabs ===<br />
<br />
{| class= "wikitable"<br />
!width="10%"| character type<br />
!align="center" width="40%"| prefab name<br />
!align="center" width="40%"| description<br />
!width="10%"| image<br />
|-<br />
<!-- <br />
| enemy<br />
|align="center"| bigGuard,hugeGuard,drone<br />
| All of the guards listed require the character type enemy. These will allow you to add guards to patrol your level.<br />
|- <br />
--><br />
| virtual<br />
| <br />
*n/a<br />
| virtual characters are characters that you won't see in the level but may communicate with the player using via CryptoChat<br />
|<br />
|-<br />
| player<br />
|<br />
*Player_Joe<br />
*Player_Jen <br />
| This will allow you to add a playable character to your game.There can only be one per level.<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_BomberJacket_NPC<br />
| used for Jake Davis<br />
| working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
| <br />
*Feminine_Med_CardiganNecklace_NPC<br />
| used for Biella Coleman<br />
|working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualBlazer_NPC<br />
| used for Barrett Brown<br />
| working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualJumper_NPC<br />
| used for Shad<br />
| not working as intended, yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CoatScarf_NPC<br />
| description<br />
|working as intended, will need leaf bone removal<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Hoodie_NPC<br />
| used for Jaime<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_HorseHead_NPC<br />
| used for HF<br />
| yet to be revamped <br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_LeatherJacket_NPC<br />
| used for March O'niell<br />
| yet to be revamped <br />
|-<br />
| npc<br />
| <br />
*Feminine_Lrg_LongJacket_NPC<br />
*Feminine_Med_LongJacket_NPC<br />
*Masculine_Lrg_LongJacket_NPC<br />
*Masculine_Med_LongJacket_NPC<br />
| description<br />
| first pass, expect Lut issues, currently LongJacket_Col_Docker is the only working LUT<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_OpenShirt_NPC<br />
| used for Lauri Love<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartJumper_NPC<br />
*Feminine_Med_SmartJumper_NPC<br />
*Masculine_Lrg_SmartJumper_NPC<br />
*Masculine_Med_SmartJumper_NPC<br />
| description<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartSuit_NPC<br />
*Feminine_Med_SmartSuit_NPC<br />
*Masculine_Lrg_SmartSuit_NPC<br />
*Masculine_Med_SmartSuit_NPC<br />
*Player_Joe<br />
| description<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Shirt_NPC<br />
| used for Naomi Colvin<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Teen_NPC<br />
*Player_Jen <br />
| description<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_TShirt_NPC<br />
| used for mc.fly<br />
| yet to be revamped <br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Vest_NPC<br />
*Feminine_Med_Vest_NPC<br />
*Masculine_Lrg_Vest_NPC<br />
*<s>Masculine_Med_Vest_NPC</s> X- broken rig<br />
| description<br />
| first pass, expect Lut issues, currently Vest_Col_Security-Apostle is the only working LUT<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Waistcoat_NPC<br />
*Feminine_Med_Waistcoat_NPC<br />
*Masculine_Lrg_Waistcoat_NPC<br />
*Masculine_Med_Waistcoat_NPC<br />
| description<br />
| yet to be revamped<br />
|}<br />
<br />
=== Voice ===<br />
<br />
There are currently two voices, "Big_Guard" or "Huge_Guard". A table giving more information should go here when more voices are added.<br />
<br />
=== Custom LUTs and head props ===<br />
<br />
This is a subject of it's own, to customise the look of your characters further you will want to read up on<br />
[[Head props]] and [[Character Colours]].<br />
<br />
=== Virtual characters ===<br />
<br />
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 &quot;Semaeopus4G&quot; to connect other characters to this network you must use the ConnectToNetwork function. For example: <code>Mission.ConnectToNetwork(mission.characters.terrance,mission.networks.Semaeopus4G.name,mission.networks.Semaeopus4G.userAccessKey)</code><br />
<br />
=== Adding Guards ===<br />
<br />
When creating guards you must add:<br />
<br />
* Spawn points<br />
* Patrol route<br />
* Profile<br />
* Agent<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Guard definitions:<br />
characters = {<br />
guard01 = {<br />
displayName = "Thomas Template",<br />
internalName = "Thomas",<br />
characterType = "enemy",<br />
prefab = "bigGuard",<br />
profile = "GuardTemplate.lua",<br />
agent = "Guard.lua",<br />
spawnpoint = "GuardSpawn",<br />
patrolroute = {<br />
points = {<br />
"PatrolPoint_0-001",<br />
"PatrolPoint_0-002",<br />
},<br />
cyclic = false,<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
==== Spawn points ====<br />
<br />
To create a spawn point: <br />
* Create empty game object <br />
* Add the mission object script to the empty game object <br />
* Select type &quot;Spawn&quot;<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Spawn Point inspector.png|400px]]<br />
<br />
==== Patrol route ====<br />
<br />
To create a Patrol point: <br />
* Create empty game object <br />
* Add the Patrol point script to the empty game object <br />
* Within the Patrol point script component section you can define the maximum and minimum time a guard spends at the particular point. <br />
* Repeat this process for as many points as you require.<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Patrol Point inspector.png|400px]]<br />
<br />
==== Profile ====<br />
<br />
When creating a guard you can give each one a personal profile, which will effect how each guard communicates and behaves.<br />
<br />
This is a basic template and structure you should use:<br />
<syntaxhighlight source lang="lua" line start=5><br />
Character ={<br />
<br />
Motivation = 0.6,<br />
Sociability = 0.5,<br />
FavouriteColor = { 1, 0.5586207, 0, 1 },<br />
Background = {<br />
<br />
FirstName = "THOMAS",<br />
<br />
LastName = "TEMPLATE",<br />
<br />
Nickname = {<br />
"Tommy",<br />
},<br />
<br />
DerogetoryName = {<br />
"Noggin",<br />
},<br />
<br />
FavouriteSwear = {<br />
"gosh-darn",<br />
},<br />
<br />
FavouriteFood = {<br />
"slice of Wensleydale cheese",<br />
},<br />
<br />
FavouriteSnack = {<br />
"Babybell",<br />
},<br />
<br />
FavouriteDrink = {<br />
"coffee",<br />
},<br />
<br />
BestFriend = {<br />
"Tristan",<br />
},<br />
<br />
RecipientPetName = {<br />
"Sweetums",<br />
},<br />
<br />
SenderPetName = {<br />
"Hubby",<br />
},<br />
<br />
FavouriteExclamation = {<br />
"Golly",<br />
},<br />
<br />
RandomHashtag = {<br />
"#ROFL",<br />
},<br />
<br />
Mood = {<br />
"happy",<br />
},<br />
<br />
PastEvent = {<br />
"ate",<br />
},<br />
<br />
FutureEvent = {<br />
"eat",<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Character_Types_and_Prefabs&diff=1417Character Types and Prefabs2020-06-25T13:37:42Z<p>Rich: </p>
<hr />
<div>== Characters ==<br />
<br />
<br />
-----<br />
<br />
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.<br />
<br />
To add characters to your level you must open up the mission script and locate the character table. It should look something like this:<br />
<br />
[[File:|frame|none|alt=|caption charactertable.png]]<br />
<br />
To add a character in the table you must include the following: <br />
<br />
* name <br />
* displayName <br />
* internalName <br />
* characterType <br />
* prefab<br />
<br />
You can also include some optional parameters:<br />
<br />
* [[#Head Props|headProps]]<br />
<br />
This would look like the following in code:<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Character definitions:<br />
characters = {<br />
joe = {<br />
displayName = "Joe Harman",<br />
internalName = "Joe",<br />
characterType = "player",<br />
prefab = "player",<br />
headProps = {"F_Med_Glasses-01"},<br />
spawnpoint = "PlayerSpawn",<br />
voice = "Big_Guard",<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
'''Note.''' When the characterType is virtual you do not need to add a prefab or spawn-point.<br />
<br />
=== Character Types and Prefabs ===<br />
<br />
{| class= "wikitable"<br />
!width="10%"| character type<br />
!align="center" width="40%"| prefab name<br />
!align="center" width="40%"| description<br />
!width="10%"| image<br />
|-<br />
<!-- <br />
| enemy<br />
|align="center"| bigGuard,hugeGuard,drone<br />
| All of the guards listed require the character type enemy. These will allow you to add guards to patrol your level.<br />
|- <br />
--><br />
| virtual<br />
| <br />
*n/a<br />
| virtual characters are characters that you won't see in the level but may communicate with the player using via CryptoChat<br />
|<br />
|-<br />
| player<br />
|<br />
*Player_Joe<br />
*Player_Jen <br />
| This will allow you to add a playable character to your game.There can only be one per level.<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_BomberJacket_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
| <br />
*Feminine_Med_CardiganNecklace_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualBlazer_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualJumper_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CoatScarf_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Hoodie_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_HorseHead_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_LeatherJacket_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
| <br />
*Feminine_Lrg_LongJacket_NPC<br />
*Feminine_Med_LongJacket_NPC<br />
*Masculine_Lrg_LongJacket_NPC<br />
*Masculine_Med_LongJacket_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_OpenShirt_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartJumper_NPC<br />
*Feminine_Med_SmartJumper_NPC<br />
*Masculine_Lrg_SmartJumper_NPC<br />
*Masculine_Med_SmartJumper_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartSuit_NPC<br />
*Feminine_Med_SmartSuit_NPC<br />
*Masculine_Lrg_SmartSuit_NPC<br />
*Masculine_Med_SmartSuit_NPC<br />
*Player_Joe<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Shirt_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Teen_NPC<br />
*Player_Jen <br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_TShirt_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Vest_NPC<br />
*Feminine_Med_Vest_NPC<br />
*Masculine_Lrg_Vest_NPC<br />
*<s>Masculine_Med_Vest_NPC</s> X- broken rig<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Waistcoat_NPC<br />
*Feminine_Med_Waistcoat_NPC<br />
*Masculine_Lrg_Waistcoat_NPC<br />
*Masculine_Med_Waistcoat_NPC<br />
| description<br />
|<br />
|}<br />
<br />
=== Voice ===<br />
<br />
There are currently two voices, "Big_Guard" or "Huge_Guard". A table giving more information should go here when more voices are added.<br />
<br />
=== Custom LUTs and head props ===<br />
<br />
This is a subject of it's own, to customise the look of your characters further you will want to read up on<br />
[[Head props]] and [[Character Colours]].<br />
<br />
=== Virtual characters ===<br />
<br />
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 &quot;Semaeopus4G&quot; to connect other characters to this network you must use the ConnectToNetwork function. For example: <code>Mission.ConnectToNetwork(mission.characters.terrance,mission.networks.Semaeopus4G.name,mission.networks.Semaeopus4G.userAccessKey)</code><br />
<br />
=== Adding Guards ===<br />
<br />
When creating guards you must add:<br />
<br />
* Spawn points<br />
* Patrol route<br />
* Profile<br />
* Agent<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Guard definitions:<br />
characters = {<br />
guard01 = {<br />
displayName = "Thomas Template",<br />
internalName = "Thomas",<br />
characterType = "enemy",<br />
prefab = "bigGuard",<br />
profile = "GuardTemplate.lua",<br />
agent = "Guard.lua",<br />
spawnpoint = "GuardSpawn",<br />
patrolroute = {<br />
points = {<br />
"PatrolPoint_0-001",<br />
"PatrolPoint_0-002",<br />
},<br />
cyclic = false,<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
==== Spawn points ====<br />
<br />
To create a spawn point: <br />
* Create empty game object <br />
* Add the mission object script to the empty game object <br />
* Select type &quot;Spawn&quot;<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Spawn Point inspector.png|400px]]<br />
<br />
==== Patrol route ====<br />
<br />
To create a Patrol point: <br />
* Create empty game object <br />
* Add the Patrol point script to the empty game object <br />
* Within the Patrol point script component section you can define the maximum and minimum time a guard spends at the particular point. <br />
* Repeat this process for as many points as you require.<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Patrol Point inspector.png|400px]]<br />
<br />
==== Profile ====<br />
<br />
When creating a guard you can give each one a personal profile, which will effect how each guard communicates and behaves.<br />
<br />
This is a basic template and structure you should use:<br />
<syntaxhighlight source lang="lua" line start=5><br />
Character ={<br />
<br />
Motivation = 0.6,<br />
Sociability = 0.5,<br />
FavouriteColor = { 1, 0.5586207, 0, 1 },<br />
Background = {<br />
<br />
FirstName = "THOMAS",<br />
<br />
LastName = "TEMPLATE",<br />
<br />
Nickname = {<br />
"Tommy",<br />
},<br />
<br />
DerogetoryName = {<br />
"Noggin",<br />
},<br />
<br />
FavouriteSwear = {<br />
"gosh-darn",<br />
},<br />
<br />
FavouriteFood = {<br />
"slice of Wensleydale cheese",<br />
},<br />
<br />
FavouriteSnack = {<br />
"Babybell",<br />
},<br />
<br />
FavouriteDrink = {<br />
"coffee",<br />
},<br />
<br />
BestFriend = {<br />
"Tristan",<br />
},<br />
<br />
RecipientPetName = {<br />
"Sweetums",<br />
},<br />
<br />
SenderPetName = {<br />
"Hubby",<br />
},<br />
<br />
FavouriteExclamation = {<br />
"Golly",<br />
},<br />
<br />
RandomHashtag = {<br />
"#ROFL",<br />
},<br />
<br />
Mood = {<br />
"happy",<br />
},<br />
<br />
PastEvent = {<br />
"ate",<br />
},<br />
<br />
FutureEvent = {<br />
"eat",<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Building_your_First_Level&diff=1416Building your First Level2020-06-18T08:06:23Z<p>Rich: </p>
<hr />
<div>====== note: This is just a general overview of the process.The hyperlinks throughout this document will explain in detail each section so be sure to click them if you are unsure about anything.======<br />
<br />
==Setup ==<br />
<br />
To Start Building your level you will need to download Unity and the support packages for Linux, pc and mac not doing this can cause errors when attempting to build your level. For an overview on setting up unity click here: [[Getting Started with the LevelKit]]<br />
<br />
Before you start building your level you must set up your [[Mission Scripting|IDE]] so that you can begin programming using Lua more effectively.<br />
<br />
=== Getting Started ===<br />
<br />
Now that you have your IDE set up you now need to generate a level in order to create a mod. This can all be done in the [[Getting Started with the LevelKit|The LevelKit GUI]].<br />
The LevelKit GUI can also be used to access your mods mission script and will allow you to add the core logic to your mod.<br />
<br />
<br />
= Level design =<br />
<br />
==== Templates ====<br />
<br />
When building your level it is often helpful just to use a series of planes and cubes to block out the level you wish to create.You can use templates to speed up your workflow which can be found within Levelkit/Collections - The collections folder contains several scenes that you can drag and drop into your current scenes Hierarchy. Be sure to copy the object you wish to use and paste it into the scene to avoid messing up the template scene.Once you have finished with a template collection right-click the scene and select remove from scene.<br />
<br />
=== Networks ===<br />
<br />
Networks are one of the most important aspects of your level as it allows you to communicate with people and devices. There are a few different types of networks, to learn more about implementing you can click [[Network Lua API|here]] for the API ref, and soon we will add more "manual" like page.<br />
<br />
=== Devices ===<br />
<br />
Devices are anything in your mod that can be interacted with or hacked. When creating your mod you can either choose from the selection of pre-made devices or create your own.<br />
<br />
To learn how to create your own devices click [[Device Scripting|here]]<br />
<br />
=== Characters ===<br />
<br />
Characters within OffGrid are essential to add life to your mod.Characters tables will allow you to add the player, NPC's and dialogue options to your mod.To create a character you must first create a character table to the [[Mission Scripting|characters]] <br />
also, see [[Character Types and Prefabs]] for specific character types.<br />
<br />
=== Triggers ===<br />
<br />
Triggers are areas that can be activated when a specified object enters the specified trigger area. This can be useful for activating conversations or other story elements for more information click [[Triggers and Examples|here]]<br />
<br />
=== Conversations ===<br />
<br />
Currently, conversations allow the player to communicate with virtual characters. In order to create conversations, you must ensure that the characters have been added first. If you have all the characters set up click [[Character Types and Prefabs]].<br />
<br />
=== Objectives ===<br />
<br />
Objectives within OffGrid allow you to set the player on tasks throughout your level.For information on adding objectives to your mod click: [[Mission Scripting|Objectives]] <br />
<br />
===Lighting===<br />
<br />
'''LightProbes'''<br />
<br />
generate navmesh <br />
then generate light probes<br />
<br />
https://docs.unity3d.com/Manual/class-LightProbeGroup.html<br />
<br />
Reflection Probes<br />
<br />
Light Settings<br />
<br />
Use mixed lights in nealt all circumstances<br />
<br />
set up a couple of 'main light per room - with low shadow strenght to get the main tine<br />
<br />
then set othe lights with lowere intesity just to decorate<br />
<br />
Setup skybox, <br />
<br />
use a directional light srt as sun<br />
<br />
=== Uploading your mod ===<br />
<br />
To upload your mod:<br />
* Load up the OffGrid game <br />
* Open up the LevelKit GUI<br />
* click on the networking tab <br />
* click search for game.<br />
* Select an icon for your mod <br />
* Enter a name and description <br />
* Select the visibility of your mod (This will determine who can view your mod) <br />
* Lastly select upload your mod.<br />
<br />
=== Further Reading ===<br />
[[Modding Manual]]<br />
<br />
[[:Category:LuaAPI|Lua API]]<br />
<br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Character_Types_and_Prefabs&diff=1410Character Types and Prefabs2020-05-19T20:40:40Z<p>Rich: </p>
<hr />
<div>== Characters ==<br />
<br />
<br />
-----<br />
<br />
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.<br />
<br />
To add characters to your level you must open up the mission script and locate the character table. It should look something like this:<br />
<br />
[[File:|frame|none|alt=|caption charactertable.png]]<br />
<br />
To add a character in the table you must include the following: <br />
<br />
* name <br />
* displayName <br />
* internalName <br />
* characterType <br />
* prefab<br />
<br />
You can also include some optional parameters:<br />
<br />
* [[#Head Props|headProps]]<br />
<br />
This would look like the following in code:<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Character definitions:<br />
characters = {<br />
joe = {<br />
displayName = "Joe Harman",<br />
internalName = "Joe",<br />
characterType = "player",<br />
prefab = "player",<br />
headProps = {"F_Med_Glasses-01"},<br />
spawnpoint = "PlayerSpawn",<br />
voice = "Big_Guard",<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
'''Note.''' When the characterType is virtual you do not need to add a prefab or spawn-point.<br />
<br />
=== Character Types and Prefabs ===<br />
<br />
{| class= "wikitable"<br />
!width="10%"| character type<br />
!align="center" width="40%"| prefab name<br />
!align="center" width="40%"| description<br />
!width="10%"| image<br />
|-<br />
<!-- <br />
| enemy<br />
|align="center"| bigGuard,hugeGuard,drone<br />
| All of the guards listed require the character type enemy. These will allow you to add guards to patrol your level.<br />
|- <br />
--><br />
| virtual<br />
| <br />
*n/a<br />
| virtual characters are characters that you won't see in the level but may communicate with the player using via CryptoChat<br />
|<br />
|-<br />
| player<br />
|<br />
*Player_Joe<br />
*Player_Jen <br />
| This will allow you to add a playable character to your game.There can only be one per level.<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_BomberJacket_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
| <br />
*Feminine_Med_CardiganNecklace_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualBlazer_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualJumper_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CoatScarf_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Hoodie_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_HorseHead_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_LeatherJacket_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
| <br />
*Feminine_Lrg_LongJacket_NPC<br />
*Feminine_Med_LongJacket_NPC<br />
*Masculine_Lrg_LongJacket_NPC<br />
*Masculine_Med_LongJacket_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_OpenShirt_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartJumper_NPC<br />
*Feminine_Med_SmartJumper_NPC<br />
*Masculine_Lrg_SmartJumper_NPC<br />
*Masculine_Med_SmartJumper_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartSuit_NPC<br />
*Feminine_Med_SmartSuit_NPC<br />
*Masculine_Lrg_SmartSuit_NPC<br />
*Masculine_Med_SmartSuit_NPC<br />
*Player_Joe<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Shirt_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Teen_NPC<br />
*Player_Jen <br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_TShirt_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Vest_NPC<br />
*Feminine_Med_Vest_NPC<br />
*Masculine_Lrg_Vest_NPC<br />
*Masculine_Med_Vest_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Waistcoat_NPC<br />
*Feminine_Med_Waistcoat_NPC<br />
*Masculine_Lrg_Waistcoat_NPC<br />
*Masculine_Med_Waistcoat_NPC<br />
| description<br />
|<br />
|}<br />
<br />
=== Voice ===<br />
<br />
There are currently two voices, "Big_Guard" or "Huge_Guard". A table giving more information should go here when more voices are added.<br />
<br />
=== Custom LUTs and head props ===<br />
<br />
This is a subject of it's own, to customise the look of your characters further you will want to read up on<br />
[[Head props]] and [[Character Colours]].<br />
<br />
=== Virtual characters ===<br />
<br />
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 &quot;Semaeopus4G&quot; to connect other characters to this network you must use the ConnectToNetwork function. For example: <code>Mission.ConnectToNetwork(mission.characters.terrance,mission.networks.Semaeopus4G.name,mission.networks.Semaeopus4G.userAccessKey)</code><br />
<br />
=== Adding Guards ===<br />
<br />
When creating guards you must add:<br />
<br />
* Spawn points<br />
* Patrol route<br />
* Profile<br />
* Agent<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Guard definitions:<br />
characters = {<br />
guard01 = {<br />
displayName = "Thomas Template",<br />
internalName = "Thomas",<br />
characterType = "enemy",<br />
prefab = "bigGuard",<br />
profile = "GuardTemplate.lua",<br />
agent = "Guard.lua",<br />
spawnpoint = "GuardSpawn",<br />
patrolroute = {<br />
points = {<br />
"PatrolPoint_0-001",<br />
"PatrolPoint_0-002",<br />
},<br />
cyclic = false,<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
==== Spawn points ====<br />
<br />
To create a spawn point: <br />
* Create empty game object <br />
* Add the mission object script to the empty game object <br />
* Select type &quot;Spawn&quot;<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Spawn Point inspector.png|400px]]<br />
<br />
==== Patrol route ====<br />
<br />
To create a Patrol point: <br />
* Create empty game object <br />
* Add the Patrol point script to the empty game object <br />
* Within the Patrol point script component section you can define the maximum and minimum time a guard spends at the particular point. <br />
* Repeat this process for as many points as you require.<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Patrol Point inspector.png|400px]]<br />
<br />
==== Profile ====<br />
<br />
When creating a guard you can give each one a personal profile, which will effect how each guard communicates and behaves.<br />
<br />
This is a basic template and structure you should use:<br />
<syntaxhighlight source lang="lua" line start=5><br />
Character ={<br />
<br />
Motivation = 0.6,<br />
Sociability = 0.5,<br />
FavouriteColor = { 1, 0.5586207, 0, 1 },<br />
Background = {<br />
<br />
FirstName = "THOMAS",<br />
<br />
LastName = "TEMPLATE",<br />
<br />
Nickname = {<br />
"Tommy",<br />
},<br />
<br />
DerogetoryName = {<br />
"Noggin",<br />
},<br />
<br />
FavouriteSwear = {<br />
"gosh-darn",<br />
},<br />
<br />
FavouriteFood = {<br />
"slice of Wensleydale cheese",<br />
},<br />
<br />
FavouriteSnack = {<br />
"Babybell",<br />
},<br />
<br />
FavouriteDrink = {<br />
"coffee",<br />
},<br />
<br />
BestFriend = {<br />
"Tristan",<br />
},<br />
<br />
RecipientPetName = {<br />
"Sweetums",<br />
},<br />
<br />
SenderPetName = {<br />
"Hubby",<br />
},<br />
<br />
FavouriteExclamation = {<br />
"Golly",<br />
},<br />
<br />
RandomHashtag = {<br />
"#ROFL",<br />
},<br />
<br />
Mood = {<br />
"happy",<br />
},<br />
<br />
PastEvent = {<br />
"ate",<br />
},<br />
<br />
FutureEvent = {<br />
"eat",<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Character_Types_and_Prefabs&diff=1409Character Types and Prefabs2020-05-19T20:39:51Z<p>Rich: </p>
<hr />
<div>== Characters ==<br />
<br />
<br />
-----<br />
<br />
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.<br />
<br />
To add characters to your level you must open up the mission script and locate the character table. It should look something like this:<br />
<br />
[[File:|frame|none|alt=|caption charactertable.png]]<br />
<br />
To add a character in the table you must include the following: <br />
<br />
* name <br />
* displayName <br />
* internalName <br />
* characterType <br />
* prefab<br />
<br />
You can also include some optional parameters:<br />
<br />
* [[#Head Props|headProps]]<br />
<br />
This would look like the following in code:<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Character definitions:<br />
characters = {<br />
joe = {<br />
displayName = "Joe Harman",<br />
internalName = "Joe",<br />
characterType = "player",<br />
prefab = "player",<br />
headProps = {"F_Med_Glasses-01"},<br />
spawnpoint = "PlayerSpawn",<br />
voice = "Big_Guard",<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
'''Note.''' When the characterType is virtual you do not need to add a prefab or spawn-point.<br />
<br />
=== Character Types and Prefabs ===<br />
<br />
{| class= "wikitable"<br />
!width="20%"| character type<br />
!align="center" width="40%"| prefab name<br />
!align="center" width="50%"| description<br />
!width="10%"| image<br />
|-<br />
<!-- <br />
| enemy<br />
|align="center"| bigGuard,hugeGuard,drone<br />
| All of the guards listed require the character type enemy. These will allow you to add guards to patrol your level.<br />
|- <br />
--><br />
| virtual<br />
| <br />
*n/a<br />
| virtual characters are characters that you won't see in the level but may communicate with the player using via CryptoChat<br />
|<br />
|-<br />
| player<br />
|<br />
*Player_Joe<br />
*Player_Jen <br />
| This will allow you to add a playable character to your game.There can only be one per level.<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_BomberJacket_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
| <br />
*Feminine_Med_CardiganNecklace_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualBlazer_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualJumper_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CoatScarf_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Hoodie_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_HorseHead_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_LeatherJacket_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
| <br />
*Feminine_Lrg_LongJacket_NPC<br />
*Feminine_Med_LongJacket_NPC<br />
*Masculine_Lrg_LongJacket_NPC<br />
*Masculine_Med_LongJacket_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_OpenShirt_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartJumper_NPC<br />
*Feminine_Med_SmartJumper_NPC<br />
*Masculine_Lrg_SmartJumper_NPC<br />
*Masculine_Med_SmartJumper_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartSuit_NPC<br />
*Feminine_Med_SmartSuit_NPC<br />
*Masculine_Lrg_SmartSuit_NPC<br />
*Masculine_Med_SmartSuit_NPC<br />
*Player_Joe<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Shirt_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Teen_NPC<br />
*Player_Jen <br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_TShirt_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Vest_NPC<br />
*Feminine_Med_Vest_NPC<br />
*Masculine_Lrg_Vest_NPC<br />
*Masculine_Med_Vest_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Waistcoat_NPC<br />
*Feminine_Med_Waistcoat_NPC<br />
*Masculine_Lrg_Waistcoat_NPC<br />
*Masculine_Med_Waistcoat_NPC<br />
| description<br />
|<br />
|}<br />
<br />
=== Voice ===<br />
<br />
There are currently two voices, "Big_Guard" or "Huge_Guard". A table giving more information should go here when more voices are added.<br />
<br />
=== Custom LUTs and head props ===<br />
<br />
This is a subject of it's own, to customise the look of your characters further you will want to read up on<br />
[[Head props]] and [[Character Colours]].<br />
<br />
=== Virtual characters ===<br />
<br />
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 &quot;Semaeopus4G&quot; to connect other characters to this network you must use the ConnectToNetwork function. For example: <code>Mission.ConnectToNetwork(mission.characters.terrance,mission.networks.Semaeopus4G.name,mission.networks.Semaeopus4G.userAccessKey)</code><br />
<br />
=== Adding Guards ===<br />
<br />
When creating guards you must add:<br />
<br />
* Spawn points<br />
* Patrol route<br />
* Profile<br />
* Agent<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Guard definitions:<br />
characters = {<br />
guard01 = {<br />
displayName = "Thomas Template",<br />
internalName = "Thomas",<br />
characterType = "enemy",<br />
prefab = "bigGuard",<br />
profile = "GuardTemplate.lua",<br />
agent = "Guard.lua",<br />
spawnpoint = "GuardSpawn",<br />
patrolroute = {<br />
points = {<br />
"PatrolPoint_0-001",<br />
"PatrolPoint_0-002",<br />
},<br />
cyclic = false,<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
==== Spawn points ====<br />
<br />
To create a spawn point: <br />
* Create empty game object <br />
* Add the mission object script to the empty game object <br />
* Select type &quot;Spawn&quot;<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Spawn Point inspector.png|400px]]<br />
<br />
==== Patrol route ====<br />
<br />
To create a Patrol point: <br />
* Create empty game object <br />
* Add the Patrol point script to the empty game object <br />
* Within the Patrol point script component section you can define the maximum and minimum time a guard spends at the particular point. <br />
* Repeat this process for as many points as you require.<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Patrol Point inspector.png|400px]]<br />
<br />
==== Profile ====<br />
<br />
When creating a guard you can give each one a personal profile, which will effect how each guard communicates and behaves.<br />
<br />
This is a basic template and structure you should use:<br />
<syntaxhighlight source lang="lua" line start=5><br />
Character ={<br />
<br />
Motivation = 0.6,<br />
Sociability = 0.5,<br />
FavouriteColor = { 1, 0.5586207, 0, 1 },<br />
Background = {<br />
<br />
FirstName = "THOMAS",<br />
<br />
LastName = "TEMPLATE",<br />
<br />
Nickname = {<br />
"Tommy",<br />
},<br />
<br />
DerogetoryName = {<br />
"Noggin",<br />
},<br />
<br />
FavouriteSwear = {<br />
"gosh-darn",<br />
},<br />
<br />
FavouriteFood = {<br />
"slice of Wensleydale cheese",<br />
},<br />
<br />
FavouriteSnack = {<br />
"Babybell",<br />
},<br />
<br />
FavouriteDrink = {<br />
"coffee",<br />
},<br />
<br />
BestFriend = {<br />
"Tristan",<br />
},<br />
<br />
RecipientPetName = {<br />
"Sweetums",<br />
},<br />
<br />
SenderPetName = {<br />
"Hubby",<br />
},<br />
<br />
FavouriteExclamation = {<br />
"Golly",<br />
},<br />
<br />
RandomHashtag = {<br />
"#ROFL",<br />
},<br />
<br />
Mood = {<br />
"happy",<br />
},<br />
<br />
PastEvent = {<br />
"ate",<br />
},<br />
<br />
FutureEvent = {<br />
"eat",<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Head_props&diff=1408Head props2020-05-19T20:38:44Z<p>Rich: </p>
<hr />
<div>__FORCETOC__ <br />
== Introduction ==<br />
<br />
When setting up a character in Mission Script it's possible to define their head props, like hair, hats, glasses and earpieces. There is no limit to the number of props used in a character (apart from how well all the props fit together). If nothing is defined then the character will use whatever default props the character prefab might have.<br />
<br />
== Script Example ==<br />
<br />
<syntaxhighlight source lang="lua"><br />
characters = {<br />
guard1 = {<br />
displayName = "Marcus Fordham",<br />
internalName = "guard1",<br />
prefab = "Masculine_Med_Vest_Enemy",<br />
headProps =<br />
{<br />
"F_Lrg_Earpiece_01", "M_Lrg_Hair-Long-Ponytail-Fringe_01", "F_Med_Glasses-01"<br />
},<br />
}<br />
</syntaxhighlight><br />
== Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Fringe_01<br />
*F_Med_Hair-Long-Fringe_01<br />
*M_Lrg_Hair-Long-Fringe_01<br />
*M_Med_Hair-Long-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Fringe_01.png|128px]]<br />
| Long hair with a fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*F_Med_Hair-Long-Ponytail-Fringe_01<br />
*M_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*M_Med_Hair-Long-Ponytail-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Ponytail-Fringe_01.png|128px]]<br />
| Long hair with a ponytail<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_01<br />
*F_Med_Hair-Long-Wavey_01<br />
*M_Lrg_Hair-Long-Wavey_01<br />
*M_Med_Hair-Long-Wavey_01<br />
|[[File:Hair-Long-Wavey_01.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_02<br />
*F_Med_Hair-Long-Wavey_02<br />
*M_Lrg_Hair-Long-Wavey_02<br />
*M_Med_Hair-Long-Wavey_02<br />
|[[File:F_Lrg_Hair-Long-Wavey_02.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:F_Lrg_Hair-Short-Buzz_01.png|128px]]<br />
| Short buzz cut hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Curly-Clip_01<br />
*F_Med_Hair-Short-Curly-Clip_01<br />
*M_Lrg_Hair-Short-Curly-Clip_01<br />
*M_Med_Hair-Short-Curly-Clip_01<br />
|[[File:F_Lrg_Hair-Short-Curly-Clip_01.png|128px]]<br />
| Curly short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Pointy_01<br />
*F_Med_Hair-Short-Pointy_01<br />
*M_Lrg_Hair-Short-Pointy_01<br />
*M_Med_Hair-Short-Pointy_01<br />
|[[File:F_Lrg_Hair-Short-Pointy_01.png|128px]]<br />
| Pointy short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_01<br />
*F_Med_Hair-Short-SideFringe_01<br />
*M_Lrg_Hair-Short-SideFringe_01<br />
*M_Med_Hair-Short-SideFringe_01<br />
|[[File:F_Lrg_Hair-Short-SideFringe_01.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_02<br />
*F_Med_Hair-Short-SideFringe_02<br />
*M_Lrg_Hair-Short-SideFringe_02<br />
*M_Med_Hair-Short-SideFringe_02<br />
|[[File:F_Lrg_Hair_Short_SideFringe-02.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Big-Curly_01<br />
*F_Med_Hair-Big-Curly_01<br />
*M_Lrg_Hair-Big-Curly_01<br />
*M_Med_Hair-Big-Curly_01<br />
|[[File:Hair-Big-Curly_01.png|128px]]<br />
| Big curly hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Afro_01<br />
*F_Med_Hair-Afro_01<br />
*M_Lrg_Hair-Afro_01<br />
*M_Med_Hair-Afro_01<br />
|[[File:Hair-Afro_01.png|128px]]<br />
| Afro hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Pompadour_01<br />
*F_Med_Hair-Pompadour_01<br />
*M_Lrg_Hair-Pompadour_01<br />
*M_Med_Hair-Pompadour_01<br />
|[[File:Hair-Pompadour_01.png|128px]]<br />
| Pompadour hair style<br />
|-<br />
|<br />
*F_Lrg_Hair-Punk_01<br />
*F_Med_Hair-Punk_01<br />
*M_Lrg_Hair-Punk_01<br />
*M_Med_Hair-Punk_01<br />
|[[File:Hair-Punk_01.png|128px]]<br />
| Punk Spiky Hair / Biker<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:Hair-Short-Buzz_01.png|128px]]<br />
| Short Buzz cut<br />
|-<br />
|<br />
*F_Lrg_Hair-Balding_01<br />
*F_Med_Hair-Balding_01<br />
*M_Lrg_Hair-Balding_01<br />
*M_Med_Hair-Balding_01<br />
|[[File:Hair-Balding_01.png |128px]]<br />
| Balding hairstyle<br />
|}<br />
<br />
== Facial Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Beard-Big_01<br />
*F_Med_Beard-Big_01<br />
*M_Lrg_Beard-Big_01<br />
*M_Med_Beard-Big_01<br />
|[[File:Beard-Big_01.png|128px]]<br />
| A big beard<br />
|-<br />
|<br />
*F_Lrg_Beard-Goatee_01<br />
*F_Med_Beard-Goatee_01<br />
*M_Lrg_Beard-Goatee_01<br />
*M_Med_Beard-Goatee_01<br />
|[[File:Beard-Goatee_01.png|128px]]<br />
| A goatee face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_01<br />
*F_Med_Beard-Moustache_01<br />
*M_Lrg_Beard-Moustache_01<br />
*M_Med_Beard-Moustache_01<br />
|[[File:Beard-Moustache_01.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_02<br />
*F_Med_Beard-Moustache_02<br />
*M_Lrg_Beard-Moustache_02<br />
*M_Med_Beard-Moustache_02<br />
|[[File:Beard-Moustache_02.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_03<br />
*F_Med_Beard-Moustache_03<br />
*M_Lrg_Beard-Moustache_03<br />
*M_Med_Beard-Moustache_03<br />
|[[File:Beard-Moustache_03.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Muttonchops_01<br />
*F_Med_Beard-Muttonchops_01<br />
*M_Lrg_Beard-Muttonchops_01<br />
*M_Med_Beard-Muttonchops_01<br />
|[[File:Beard-Muttonchops_01.png|128px]]<br />
| Muttonchops facial hair.<br />
|-<br />
|}<br />
<br />
== Hats Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_01<br />
*F_Med_Hat-Beanie_01<br />
*M_Lrg_Hat-Beanie_01<br />
*M_Med_Hat-Beanie_01<br />
|[[File:F_Lrg_Hat-Beanie-01.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_02<br />
*F_Med_Hat-Beanie_02<br />
*M_Lrg_Hat-Beanie_02<br />
*M_Med_Hat-Beanie_02<br />
|[[File:Hat-Beanie_02.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Cap_01<br />
*F_Med_Hat-Cap_01<br />
*M_Lrg_Hat-Cap_01<br />
*M_Med_Hat-Cap_01<br />
|[[File:F_Lrg_Hat-Cap-01.png|128px]]<br />
| A cool cap<br />
|-<br />
|<br />
*F_Lrg_Hat-HardHat_01<br />
*F_Med_Hat-HardHat_01<br />
*M_Lrg_Hat-HardHat_01<br />
*M_Med_Hat-HardHat_01<br />
|[[File:F_Lrg_Hat-HardHat-01.png|128px]]<br />
| A construction hard hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Cowboy_01<br />
*F_Med_Hat-Cowboy_01<br />
*M_Lrg_Hat-Cowboy_01<br />
*M_Med_Hat-Cowboy_01<br />
|[[File:Hat-Cowboy_01.png|128px]]<br />
| A Cowboy hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Headband_01<br />
*F_Med_Hat-Headband_01<br />
*M_Lrg_Hat-Headband_01<br />
*M_Med_Hat-Headband_01<br />
|[[File:Hat-Headband_01.png|128px]]<br />
| A headband<br />
|-<br />
|<br />
*F_Lrg_Hat-Policeman_01<br />
*F_Med_Hat-Policeman_01<br />
*M_Lrg_Hat-Policeman_01<br />
*M_Med_Hat-Policeman_01<br />
|[[File:Hat-Police_01.png|128px]]<br />
| A policeman hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Sunvisor_01<br />
*F_Med_Hat-Sunvisor_01<br />
*M_Lrg_Hat-Sunvisor_01<br />
*M_Med_Hat-Sunvisor_01<br />
|[[File:Hat-Sunvisor_01.png|128px]]<br />
| Sun visor<br />
|-<br />
|<br />
*F_Lrg_Hat-Swat-Helmet_01<br />
*F_Med_Hat-Swat-Helmet_01<br />
*M_Lrg_Hat-Swat-Helmet_01<br />
*M_Med_Hat-Swat-Helmet_01<br />
|[[File:Hat-Swat-Helmet_01.png|128px]]<br />
| A SWAT helmet<br />
|-<br />
|<br />
*F_Lrg_Hat-Propeller-Cap_01<br />
*F_Med_Hat-Propeller-Cap_01<br />
*M_Lrg_Hat-Propeller-Cap_01<br />
*M_Med_Hat-Propeller-Cap_01<br />
|[[File:Hat-Propeller-Cap_01.png|128px]]<br />
| A propeller hat<br />
|}<br />
<br />
== Glasses Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Glasses-Smart-Frame_01<br />
*F_Med_Glasses-Smart-Frame_01<br />
*M_Lrg_Glasses-Smart-Frame_01<br />
*M_Med_Glasses-Smart-Frame_01<br />
|[[File:F_Lrg_Glasses-01.png|128px]]<br />
| Smart tech glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Aviators_01<br />
*F_Med_Glasses-Aviators_01<br />
*M_Lrg_Glasses-Aviators_01<br />
*M_Med_Glasses-Aviators_01<br />
|[[File:F_Lrg_Glasses-Aviators-01.png|128px]]<br />
| Tinted sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Swirly_01<br />
*F_Med_Glasses-Swirly_01<br />
*M_Lrg_Glasses-Swirly_01<br />
*M_Med_Glasses-Swirly_01<br />
|[[File:Glasses-Swirly_01.png|128px]]<br />
| Swirly hypno glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Ski-Goggles_01<br />
*F_Med_Glasses-Ski-Goggles_01<br />
*M_Lrg_Glasses-Ski-Goggles_01<br />
*M_Med_Glasses-Ski-Goggles_01<br />
|[[File:Glasses-Ski-Goggles_01.png|128px]]<br />
| Ski goggles<br />
|-<br />
|<br />
*F_Lrg_Glasses-Sunglasses-Round_01<br />
*F_Med_Glasses-Sunglasses-Round_01<br />
*M_Lrg_Glasses-Sunglasses-Round_01<br />
*M_Med_Glasses-Sunglasses-Round_01<br />
|[[File:Glasses-Sunglasses-Round_01.png|128px]]<br />
| Round dark sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_01<br />
*F_Med_Glasses-Reading_01<br />
*M_Lrg_Glasses-Reading_01<br />
*M_Med_Glasses-Reading_01<br />
|[[File:Glasses-Reading_01.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_02<br />
*F_Med_Glasses-Reading_02<br />
*M_Lrg_Glasses-Reading_02<br />
*M_Med_Glasses-Reading_02<br />
|[[File:Glasses-Reading_02.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_03<br />
*F_Med_Glasses-Reading_03<br />
*M_Lrg_Glasses-Reading_03<br />
*M_Med_Glasses-Reading_03<br />
|[[File:Glasses-Reading_03.png |128px]]<br />
| Reading glasses<br />
|}<br />
<br />
== Miscellaneous Head Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Earpiece_01<br />
*F_Med_Earpiece_01<br />
*M_Lrg_Earpiece_01<br />
*M_Med_Earpiece_01<br />
|[[File:F_Lrg_Earpiece_01.png|128px]]<br />
| The earpiece for security guards<br />
|-<br />
|<br />
*F_Lrg_AnonMask_01<br />
*F_Med_AnonMask_01<br />
*M_Lrg_AnonMask_01<br />
*M_Med_AnonMask_01<br />
|[[File:AnonMask_01.png|128px]]<br />
| A mask to stay anonymous<br />
|-<br />
|<br />
*F_Lrg_Blindfold_01<br />
*F_Med_Blindfold_01<br />
*M_Lrg_Blindfold_01<br />
*M_Med_Blindfold_01<br />
|[[File:Blindfold_01.png|128px]]<br />
| A blindfold for your character.<br />
|-<br />
|}<br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Head_props&diff=1407Head props2020-05-19T20:38:08Z<p>Rich: </p>
<hr />
<div>__FORCETOC__ <br />
== Introduction ==<br />
<br />
When setting up a character in Mission Script it's possible to define their head props, like hair, hats, glasses and earpieces. There is no limit to the number of props used in a character (apart from how well all the props fit together). If nothing is defined then the character will use whatever default props the character prefab might have.<br />
<br />
== Script Example ==<br />
<br />
<syntaxhighlight source lang="lua"><br />
characters = {<br />
guard1 = {<br />
displayName = "Marcus Fordham",<br />
internalName = "guard1",<br />
prefab = "Masculine_Med_Vest_Enemy",<br />
headProps =<br />
{<br />
"F_Lrg_Earpiece_01", "M_Lrg_Hair-Long-Ponytail-Fringe_01", "F_Med_Glasses-01"<br />
},<br />
}<br />
</syntaxhighlight><br />
== Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Fringe_01<br />
*F_Med_Hair-Long-Fringe_01<br />
*M_Lrg_Hair-Long-Fringe_01<br />
*M_Med_Hair-Long-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Fringe_01.png|128px]]<br />
| Long hair with a fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*F_Med_Hair-Long-Ponytail-Fringe_01<br />
*M_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*M_Med_Hair-Long-Ponytail-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Ponytail-Fringe_01.png|128px]]<br />
| Long hair with a ponytail<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_01<br />
*F_Med_Hair-Long-Wavey_01<br />
*M_Lrg_Hair-Long-Wavey_01<br />
*M_Med_Hair-Long-Wavey_01<br />
|[[File:Hair-Long-Wavey_01.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_02<br />
*F_Med_Hair-Long-Wavey_02<br />
*M_Lrg_Hair-Long-Wavey_02<br />
*M_Med_Hair-Long-Wavey_02<br />
|[[File:F_Lrg_Hair-Long-Wavey_02.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:F_Lrg_Hair-Short-Buzz_01.png|128px]]<br />
| Short buzz cut hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Curly-Clip_01<br />
*F_Med_Hair-Short-Curly-Clip_01<br />
*M_Lrg_Hair-Short-Curly-Clip_01<br />
*M_Med_Hair-Short-Curly-Clip_01<br />
|[[File:F_Lrg_Hair-Short-Curly-Clip_01.png|128px]]<br />
| Curly short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Pointy_01<br />
*F_Med_Hair-Short-Pointy_01<br />
*M_Lrg_Hair-Short-Pointy_01<br />
*M_Med_Hair-Short-Pointy_01<br />
|[[File:F_Lrg_Hair-Short-Pointy_01.png|128px]]<br />
| Pointy short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_01<br />
*F_Med_Hair-Short-SideFringe_01<br />
*M_Lrg_Hair-Short-SideFringe_01<br />
*M_Med_Hair-Short-SideFringe_01<br />
|[[File:F_Lrg_Hair-Short-SideFringe_01.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_02<br />
*F_Med_Hair-Short-SideFringe_02<br />
*M_Lrg_Hair-Short-SideFringe_02<br />
*M_Med_Hair-Short-SideFringe_02<br />
|[[File:F_Lrg_Hair_Short_SideFringe-02.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Big-Curly_01<br />
*F_Med_Hair-Big-Curly_01<br />
*M_Lrg_Hair-Big-Curly_01<br />
*M_Med_Hair-Big-Curly_01<br />
|[[File:Hair-Big-Curly_01.png|128px]]<br />
| Big curly hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Afro_01<br />
*F_Med_Hair-Afro_01<br />
*M_Lrg_Hair-Afro_01<br />
*M_Med_Hair-Afro_01<br />
|[[File:Hair-Afro_01.png|128px]]<br />
| Afro hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Pompadour_01<br />
*F_Med_Hair-Pompadour_01<br />
*M_Lrg_Hair-Pompadour_01<br />
*M_Med_Hair-Pompadour_01<br />
|[[File:Hair-Pompadour_01.png|128px]]<br />
| Pompadour hair style<br />
|-<br />
|<br />
*F_Lrg_Hair-Punk_01<br />
*F_Med_Hair-Punk_01<br />
*M_Lrg_Hair-Punk_01<br />
*M_Med_Hair-Punk_01<br />
|[[File:Hair-Punk_01.png|128px]]<br />
| Punk Spiky Hair / Biker<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:Hair-Short-Buzz_01.png|128px]]<br />
| Short Buzz cut<br />
|-<br />
|<br />
*F_Lrg_Hair-Balding_01<br />
*F_Med_Hair-Balding_01<br />
*M_Lrg_Hair-Balding_01<br />
*M_Med_Hair-Balding_01<br />
|[[File:Hair-Balding_01.png |128px]]<br />
| Balding hairstyle<br />
|}<br />
<br />
== Facial Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Beard-Big_01<br />
*F_Med_Beard-Big_01<br />
*M_Lrg_Beard-Big_01<br />
*M_Med_Beard-Big_01<br />
|[[File:Beard-Big_01.png|128px]]<br />
| A big beard<br />
|-<br />
|<br />
*F_Lrg_Beard-Goatee_01<br />
*F_Med_Beard-Goatee_01<br />
*M_Lrg_Beard-Goatee_01<br />
*M_Med_Beard-Goatee_01<br />
|[[File:Beard-Goatee_01.png|128px]]<br />
| A goatee face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_01<br />
*F_Med_Beard-Moustache_01<br />
*M_Lrg_Beard-Moustache_01<br />
*M_Med_Beard-Moustache_01<br />
|[[File:Beard-Moustache_01.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_02<br />
*F_Med_Beard-Moustache_02<br />
*M_Lrg_Beard-Moustache_02<br />
*M_Med_Beard-Moustache_02<br />
|[[File:Beard-Moustache_02.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_03<br />
*F_Med_Beard-Moustache_03<br />
*M_Lrg_Beard-Moustache_03<br />
*M_Med_Beard-Moustache_03<br />
|[[File:Beard-Moustache_03.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Muttonchops_01<br />
*F_Med_Beard-Muttonchops_01<br />
*M_Lrg_Beard-Muttonchops_01<br />
*M_Med_Beard-Muttonchops_01<br />
|[[File:Beard-Muttonchops_01.png|128px]]<br />
| Muttonchops facial hair.<br />
|-<br />
|}<br />
<br />
== Hats Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_01<br />
*F_Med_Hat-Beanie_01<br />
*M_Lrg_Hat-Beanie_01<br />
*M_Med_Hat-Beanie_01<br />
|[[File:F_Lrg_Hat-Beanie-01.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_02<br />
*F_Med_Hat-Beanie_02<br />
*M_Lrg_Hat-Beanie_02<br />
*M_Med_Hat-Beanie_02<br />
|[[File:Hat-Beanie_02.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Cap_01<br />
*F_Med_Hat-Cap_01<br />
*M_Lrg_Hat-Cap_01<br />
*M_Med_Hat-Cap_01<br />
|[[File:F_Lrg_Hat-Cap-01.png|128px]]<br />
| A cool cap<br />
|-<br />
|<br />
*F_Lrg_Hat-HardHat_01<br />
*F_Med_Hat-HardHat_01<br />
*M_Lrg_Hat-HardHat_01<br />
*M_Med_Hat-HardHat_01<br />
|[[File:F_Lrg_Hat-HardHat-01.png|128px]]<br />
| A construction hard hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Cowboy_01<br />
*F_Med_Hat-Cowboy_01<br />
*M_Lrg_Hat-Cowboy_01<br />
*M_Med_Hat-Cowboy_01<br />
|[[File:Hat-Cowboy_01.png|128px]]<br />
| A Cowboy hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Headband_01<br />
*F_Med_Hat-Headband_01<br />
*M_Lrg_Hat-Headband_01<br />
*M_Med_Hat-Headband_01<br />
|[[File:Hat-Headband_01.png|128px]]<br />
| A headband<br />
|-<br />
|<br />
*F_Lrg_Hat-Policeman_01<br />
*F_Med_Hat-Policeman_01<br />
*M_Lrg_Hat-Policeman_01<br />
*M_Med_Hat-Policeman_01<br />
|[[File:Hat-Police_01.png|128px]]<br />
| A policeman hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Sunvisor_01<br />
*F_Med_Hat-Sunvisor_01<br />
*M_Lrg_Hat-Sunvisor_01<br />
*M_Med_Hat-Sunvisor_01<br />
|[[File:Hat-Sunvisor_01.png|128px]]<br />
| Sun visor<br />
|-<br />
|<br />
*F_Lrg_Hat-Swat-Helmet_01<br />
*F_Med_Hat-Swat-Helmet_01<br />
*M_Lrg_Hat-Swat-Helmet_01<br />
*M_Med_Hat-Swat-Helmet_01<br />
|[[File:Hat-Swat-Helmet_01.png|128px]]<br />
| A SWAT helmet<br />
|-<br />
|<br />
*F_Lrg_Hat-Propeller-Cap_01<br />
*F_Med_Hat-Propeller-Cap_01<br />
*M_Lrg_Hat-Propeller-Cap_01<br />
*M_Med_Hat-Propeller-Cap_01<br />
|[[File:Hat-Propeller-Cap_01.png|128px]]<br />
| A propeller hat<br />
|}<br />
<br />
== Glasses Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Glasses-Smart-Frame_01<br />
*F_Med_Glasses-Smart-Frame_01<br />
*M_Lrg_Glasses-Smart-Frame_01<br />
*M_Med_Glasses-Smart-Frame_01<br />
|[[File:F_Lrg_Glasses-01.png|128px]]<br />
| Smart tech glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Aviators_01<br />
*F_Med_Glasses-Aviators_01<br />
*M_Lrg_Glasses-Aviators_01<br />
*M_Med_Glasses-Aviators_01<br />
|[[File:F_Lrg_Glasses-Aviators-01.png|128px]]<br />
| Tinted sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Swirly_01<br />
*F_Med_Glasses-Swirly_01<br />
*M_Lrg_Glasses-Swirly_01<br />
*M_Med_Glasses-Swirly_01<br />
|[[File:Glasses-Swirly_01.png|128px]]<br />
| Swirly hypno glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Ski-Goggles_01<br />
*F_Med_Glasses-Ski-Goggles_01<br />
*M_Lrg_Glasses-Ski-Goggles_01<br />
*M_Med_Glasses-Ski-Goggles_01<br />
|[[File:Glasses-Ski-Goggles_01.png|128px]]<br />
| Ski goggles<br />
|-<br />
|<br />
*F_Lrg_Glasses-Sunglasses-Round_01<br />
*F_Med_Glasses-Sunglasses-Round_01<br />
*M_Lrg_Glasses-Sunglasses-Round_01<br />
*M_Med_Glasses-Sunglasses-Round_01<br />
|[[File:Glasses-Sunglasses-Round_01.png|128px]]<br />
| Round dark sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_01<br />
*F_Med_Glasses-Reading_01<br />
*M_Lrg_Glasses-Reading_01<br />
*M_Med_Glasses-Reading_01<br />
|[[File:Glasses-Reading_01.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_02<br />
*F_Med_Glasses-Reading_02<br />
*M_Lrg_Glasses-Reading_02<br />
*M_Med_Glasses-Reading_02<br />
|[[File:Glasses-Reading_02.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_03<br />
*F_Med_Glasses-Reading_03<br />
*M_Lrg_Glasses-Reading_03<br />
*M_Med_Glasses-Reading_03<br />
|[[File:Glasses-Reading_03.png |128px]]<br />
| Reading glasses<br />
|}<br />
<br />
== Miscellaneous Head Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Earpiece_01<br />
*F_Med_Earpiece_01<br />
*M_Lrg_Earpiece_01<br />
*M_Med_Earpiece_01<br />
|[[File:F_Lrg_Earpiece_01.png|128px]]<br />
| The earpiece for security guards<br />
|-<br />
|<br />
*F_Lrg_AnonMask_01<br />
*F_Med_AnonMask_01<br />
*M_Lrg_AnonMask_01<br />
*M_Med_AnonMask_01<br />
|[[File:AnonMask_01.png|128px]]<br />
| A mask to stay anonymous<br />
|-<br />
|<br />
*F_Lrg_Blindfold_01<br />
*F_Med_Blindfold_01<br />
*M_Lrg_Blindfold_01<br />
*M_Med_Blindfold_01<br />
|[[File:Blindfold_01.png|128px]]<br />
| A blindfold for your character.<br />
|-<br />
|}<br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Head_props&diff=1406Head props2020-05-19T20:37:52Z<p>Rich: </p>
<hr />
<div>__FORCETOC__ <br />
== Introduction ==<br />
<br />
When setting up a character in Mission Script it's possible to define their head props, like hair, hats, glasses and earpieces. There is no limit to the number of props used in a character (apart from how well all the props fit together). If nothing is defined then the character will use whatever default props the character prefab might have.<br />
<br />
== Script Example ==<br />
<br />
<syntaxhighlight source lang="lua"><br />
characters = {<br />
guard1 = {<br />
displayName = "Marcus Fordham",<br />
internalName = "guard1",<br />
prefab = "Masculine_Med_Vest_Enemy",<br />
headProps =<br />
{<br />
"F_Lrg_Earpiece_01", "M_Lrg_Hair-Long-Ponytail-Fringe_01", "F_Med_Glasses-01"<br />
},<br />
}<br />
</syntaxhighlight><br />
== Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Fringe_01<br />
*F_Med_Hair-Long-Fringe_01<br />
*M_Lrg_Hair-Long-Fringe_01<br />
*M_Med_Hair-Long-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Fringe_01.png|128px]]<br />
| Long hair with a fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*F_Med_Hair-Long-Ponytail-Fringe_01<br />
*M_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*M_Med_Hair-Long-Ponytail-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Ponytail-Fringe_01.png|128px]]<br />
| Long hair with a ponytail<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_01<br />
*F_Med_Hair-Long-Wavey_01<br />
*M_Lrg_Hair-Long-Wavey_01<br />
*M_Med_Hair-Long-Wavey_01<br />
|[[File:Hair-Long-Wavey_01.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_02<br />
*F_Med_Hair-Long-Wavey_02<br />
*M_Lrg_Hair-Long-Wavey_02<br />
*M_Med_Hair-Long-Wavey_02<br />
|[[File:F_Lrg_Hair-Long-Wavey_02.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:F_Lrg_Hair-Short-Buzz_01.png|128px]]<br />
| Short buzz cut hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Curly-Clip_01<br />
*F_Med_Hair-Short-Curly-Clip_01<br />
*M_Lrg_Hair-Short-Curly-Clip_01<br />
*M_Med_Hair-Short-Curly-Clip_01<br />
|[[File:F_Lrg_Hair-Short-Curly-Clip_01.png|128px]]<br />
| Curly short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Pointy_01<br />
*F_Med_Hair-Short-Pointy_01<br />
*M_Lrg_Hair-Short-Pointy_01<br />
*M_Med_Hair-Short-Pointy_01<br />
|[[File:F_Lrg_Hair-Short-Pointy_01.png|128px]]<br />
| Pointy short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_01<br />
*F_Med_Hair-Short-SideFringe_01<br />
*M_Lrg_Hair-Short-SideFringe_01<br />
*M_Med_Hair-Short-SideFringe_01<br />
|[[File:F_Lrg_Hair-Short-SideFringe_01.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_02<br />
*F_Med_Hair-Short-SideFringe_02<br />
*M_Lrg_Hair-Short-SideFringe_02<br />
*M_Med_Hair-Short-SideFringe_02<br />
|[[File:F_Lrg_Hair_Short_SideFringe-02.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Big-Curly_01<br />
*F_Med_Hair-Big-Curly_01<br />
*M_Lrg_Hair-Big-Curly_01<br />
*M_Med_Hair-Big-Curly_01<br />
|[[File:Hair-Big-Curly_01.png|128px]]<br />
| Big curly hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Afro_01<br />
*F_Med_Hair-Afro_01<br />
*M_Lrg_Hair-Afro_01<br />
*M_Med_Hair-Afro_01<br />
|[[File:Hair-Afro_01.png|128px]]<br />
| Afro hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Pompadour_01<br />
*F_Med_Hair-Pompadour_01<br />
*M_Lrg_Hair-Pompadour_01<br />
*M_Med_Hair-Pompadour_01<br />
|[[File:Hair-Pompadour_01.png|128px]]<br />
| Pompadour hair style<br />
|-<br />
|<br />
*F_Lrg_Hair-Punk_01<br />
*F_Med_Hair-Punk_01<br />
*M_Lrg_Hair-Punk_01<br />
*M_Med_Hair-Punk_01<br />
|[[File:Hair-Punk_01.png|128px]]<br />
| Punk Spiky Hair / Biker<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:Hair-Short-Buzz_01.png|128px]]<br />
| Short Buzz cut<br />
|-<br />
|<br />
*F_Lrg_Hair-Balding_01<br />
*F_Med_Hair-Balding_01<br />
*M_Lrg_Hair-Balding_01<br />
*M_Med_Hair-Balding_01<br />
|[[File:Hair-Balding_01.png |128px]]<br />
| Balding hairstyle<br />
|}<br />
<br />
== Facial Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Beard-Big_01<br />
*F_Med_Beard-Big_01<br />
*M_Lrg_Beard-Big_01<br />
*M_Med_Beard-Big_01<br />
|[[File:Beard-Big_01.png|128px]]<br />
| A big beard<br />
|-<br />
|<br />
*F_Lrg_Beard-Goatee_01<br />
*F_Med_Beard-Goatee_01<br />
*M_Lrg_Beard-Goatee_01<br />
*M_Med_Beard-Goatee_01<br />
|[[File:Beard-Goatee_01.png|128px]]<br />
| A goatee face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_01<br />
*F_Med_Beard-Moustache_01<br />
*M_Lrg_Beard-Moustache_01<br />
*M_Med_Beard-Moustache_01<br />
|[[File:Beard-Moustache_01.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_02<br />
*F_Med_Beard-Moustache_02<br />
*M_Lrg_Beard-Moustache_02<br />
*M_Med_Beard-Moustache_02<br />
|[[File:Beard-Moustache_02.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_03<br />
*F_Med_Beard-Moustache_03<br />
*M_Lrg_Beard-Moustache_03<br />
*M_Med_Beard-Moustache_03<br />
|[[File:Beard-Moustache_03.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Muttonchops_01<br />
*F_Med_Beard-Muttonchops_01<br />
*M_Lrg_Beard-Muttonchops_01<br />
*M_Med_Beard-Muttonchops_01<br />
|[[File:Beard-Muttonchops_01.png|128px]]<br />
| Muttonchops facial hair.<br />
|-<br />
|}<br />
<br />
== Hats Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_01<br />
*F_Med_Hat-Beanie_01<br />
*M_Lrg_Hat-Beanie_01<br />
*M_Med_Hat-Beanie_01<br />
|[[File:F_Lrg_Hat-Beanie-01.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_02<br />
*F_Med_Hat-Beanie_02<br />
*M_Lrg_Hat-Beanie_02<br />
*M_Med_Hat-Beanie_02<br />
|[[File:Hat-Beanie_02.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Cap_01<br />
*F_Med_Hat-Cap_01<br />
*M_Lrg_Hat-Cap_01<br />
*M_Med_Hat-Cap_01<br />
|[[File:F_Lrg_Hat-Cap-01.png|128px]]<br />
| A cool cap<br />
|-<br />
|<br />
*F_Lrg_Hat-HardHat_01<br />
*F_Med_Hat-HardHat_01<br />
*M_Lrg_Hat-HardHat_01<br />
*M_Med_Hat-HardHat_01<br />
|[[File:F_Lrg_Hat-HardHat-01.png|128px]]<br />
| A construction hard hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Cowboy_01<br />
*F_Med_Hat-Cowboy_01<br />
*M_Lrg_Hat-Cowboy_01<br />
*M_Med_Hat-Cowboy_01<br />
|[[File:Hat-Cowboy_01.png|128px]]<br />
| A Cowboy hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Headband_01<br />
*F_Med_Hat-Headband_01<br />
*M_Lrg_Hat-Headband_01<br />
*M_Med_Hat-Headband_01<br />
|[[File:Hat-Headband_01.png|128px]]<br />
| A headband<br />
|-<br />
|<br />
*F_Lrg_Hat-Policeman_01<br />
*F_Med_Hat-Policeman_01<br />
*M_Lrg_Hat-Policeman_01<br />
*M_Med_Hat-Policeman_01<br />
|[[File:Hat-Police_01.png|128px]]<br />
| A policeman hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Sunvisor_01<br />
*F_Med_Hat-Sunvisor_01<br />
*M_Lrg_Hat-Sunvisor_01<br />
*M_Med_Hat-Sunvisor_01<br />
|[[File:Hat-Sunvisor_01.png|128px]]<br />
| Sun visor<br />
|-<br />
|<br />
*F_Lrg_Hat-Swat-Helmet_01<br />
*F_Med_Hat-Swat-Helmet_01<br />
*M_Lrg_Hat-Swat-Helmet_01<br />
*M_Med_Hat-Swat-Helmet_01<br />
|[[File:Hat-Swat-Helmet_01.png|128px]]<br />
| A SWAT helmet<br />
|-<br />
|<br />
*F_Lrg_Hat-Propeller-Cap_01<br />
*F_Med_Hat-Propeller-Cap_01<br />
*M_Lrg_Hat-Propeller-Cap_01<br />
*M_Med_Hat-Propeller-Cap_01<br />
|[[File:Hat-Propeller-Cap_01.png|128px]]<br />
| A propeller hat<br />
|}<br />
<br />
== Glasses Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Glasses-Smart-Frame_01<br />
*F_Med_Glasses-Smart-Frame_01<br />
*M_Lrg_Glasses-Smart-Frame_01<br />
*M_Med_Glasses-Smart-Frame_01<br />
|[[File:F_Lrg_Glasses-01.png|128px]]<br />
| Smart tech glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Aviators_01<br />
*F_Med_Glasses-Aviators_01<br />
*M_Lrg_Glasses-Aviators_01<br />
*M_Med_Glasses-Aviators_01<br />
|[[File:F_Lrg_Glasses-Aviators-01.png|128px]]<br />
| Tinted sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Swirly_01<br />
*F_Med_Glasses-Swirly_01<br />
*M_Lrg_Glasses-Swirly_01<br />
*M_Med_Glasses-Swirly_01<br />
|[[File:Glasses-Swirly_01.png|128px]]<br />
| Swirly hypno glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Ski-Goggles_01<br />
*F_Med_Glasses-Ski-Goggles_01<br />
*M_Lrg_Glasses-Ski-Goggles_01<br />
*M_Med_Glasses-Ski-Goggles_01<br />
|[[File:Glasses-Ski-Goggles_01.png|128px]]<br />
| Ski goggles<br />
|-<br />
|<br />
*F_Lrg_Glasses-Sunglasses-Round_01<br />
*F_Med_Glasses-Sunglasses-Round_01<br />
*M_Lrg_Glasses-Sunglasses-Round_01<br />
*M_Med_Glasses-Sunglasses-Round_01<br />
|[[File:Glasses-Sunglasses-Round_01.png|128px]]<br />
| Round dark sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_01<br />
*F_Med_Glasses-Reading_01<br />
*M_Lrg_Glasses-Reading_01<br />
*M_Med_Glasses-Reading_01<br />
|[[File:Glasses-Reading_01.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_02<br />
*F_Med_Glasses-Reading_02<br />
*M_Lrg_Glasses-Reading_02<br />
*M_Med_Glasses-Reading_02<br />
|[[File:Glasses-Reading_02.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_03<br />
*F_Med_Glasses-Reading_03<br />
*M_Lrg_Glasses-Reading_03<br />
*M_Med_Glasses-Reading_03<br />
|[[File:Glasses-Reading_03.png |128px]]<br />
| Reading glasses<br />
|}<br />
<br />
== Miscellaneous Head Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Earpiece_01<br />
*F_Med_Earpiece_01<br />
*M_Lrg_Earpiece_01<br />
*M_Med_Earpiece_01<br />
|[[File:F_Lrg_Earpiece_01.png|128px]]<br />
| The earpiece for security guards<br />
|-<br />
|<br />
*F_Lrg_AnonMask_01<br />
*F_Med_AnonMask_01<br />
*M_Lrg_AnonMask_01<br />
*M_Med_AnonMask_01<br />
|[[File:AnonMask_01.png|128px]]<br />
| A mask to stay anonymous<br />
|-<br />
|<br />
*F_Lrg_Blindfold_01<br />
*F_Med_Blindfold_01<br />
*M_Lrg_Blindfold_01<br />
*M_Med_Blindfold_01<br />
|[[File:Blindfold_01.png|128px]]<br />
| A blindfold for your character.<br />
|-<br />
|}<br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Head_props&diff=1405Head props2020-05-19T20:37:34Z<p>Rich: </p>
<hr />
<div>__FORCETOC__ <br />
== Introduction ==<br />
<br />
When setting up a character in Mission Script it's possible to define their head props, like hair, hats, glasses and earpieces. There is no limit to the number of props used in a character (apart from how well all the props fit together). If nothing is defined then the character will use whatever default props the character prefab might have.<br />
<br />
== Script Example ==<br />
<br />
<syntaxhighlight source lang="lua"><br />
characters = {<br />
guard1 = {<br />
displayName = "Marcus Fordham",<br />
internalName = "guard1",<br />
prefab = "Masculine_Med_Vest_Enemy",<br />
headProps =<br />
{<br />
"F_Lrg_Earpiece_01", "M_Lrg_Hair-Long-Ponytail-Fringe_01", "F_Med_Glasses-01"<br />
},<br />
}<br />
</syntaxhighlight><br />
== Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Fringe_01<br />
*F_Med_Hair-Long-Fringe_01<br />
*M_Lrg_Hair-Long-Fringe_01<br />
*M_Med_Hair-Long-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Fringe_01.png|128px]]<br />
| Long hair with a fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*F_Med_Hair-Long-Ponytail-Fringe_01<br />
*M_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*M_Med_Hair-Long-Ponytail-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Ponytail-Fringe_01.png|128px]]<br />
| Long hair with a ponytail<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_01<br />
*F_Med_Hair-Long-Wavey_01<br />
*M_Lrg_Hair-Long-Wavey_01<br />
*M_Med_Hair-Long-Wavey_01<br />
|[[File:Hair-Long-Wavey_01.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_02<br />
*F_Med_Hair-Long-Wavey_02<br />
*M_Lrg_Hair-Long-Wavey_02<br />
*M_Med_Hair-Long-Wavey_02<br />
|[[File:F_Lrg_Hair-Long-Wavey_02.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:F_Lrg_Hair-Short-Buzz_01.png|128px]]<br />
| Short buzz cut hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Curly-Clip_01<br />
*F_Med_Hair-Short-Curly-Clip_01<br />
*M_Lrg_Hair-Short-Curly-Clip_01<br />
*M_Med_Hair-Short-Curly-Clip_01<br />
|[[File:F_Lrg_Hair-Short-Curly-Clip_01.png|128px]]<br />
| Curly short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Pointy_01<br />
*F_Med_Hair-Short-Pointy_01<br />
*M_Lrg_Hair-Short-Pointy_01<br />
*M_Med_Hair-Short-Pointy_01<br />
|[[File:F_Lrg_Hair-Short-Pointy_01.png|128px]]<br />
| Pointy short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_01<br />
*F_Med_Hair-Short-SideFringe_01<br />
*M_Lrg_Hair-Short-SideFringe_01<br />
*M_Med_Hair-Short-SideFringe_01<br />
|[[File:F_Lrg_Hair-Short-SideFringe_01.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_02<br />
*F_Med_Hair-Short-SideFringe_02<br />
*M_Lrg_Hair-Short-SideFringe_02<br />
*M_Med_Hair-Short-SideFringe_02<br />
|[[File:F_Lrg_Hair_Short_SideFringe-02.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Big-Curly_01<br />
*F_Med_Hair-Big-Curly_01<br />
*M_Lrg_Hair-Big-Curly_01<br />
*M_Med_Hair-Big-Curly_01<br />
|[[File:Hair-Big-Curly_01.png|128px]]<br />
| Big curly hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Afro_01<br />
*F_Med_Hair-Afro_01<br />
*M_Lrg_Hair-Afro_01<br />
*M_Med_Hair-Afro_01<br />
|[[File:Hair-Afro_01.png|128px]]<br />
| Afro hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Pompadour_01<br />
*F_Med_Hair-Pompadour_01<br />
*M_Lrg_Hair-Pompadour_01<br />
*M_Med_Hair-Pompadour_01<br />
|[[File:Hair-Pompadour_01.png|128px]]<br />
| Pompadour hair style<br />
|-<br />
|<br />
*F_Lrg_Hair-Punk_01<br />
*F_Med_Hair-Punk_01<br />
*M_Lrg_Hair-Punk_01<br />
*M_Med_Hair-Punk_01<br />
|[[File:Hair-Punk_01.png|128px]]<br />
| Punk Spiky Hair / Biker<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:Hair-Short-Buzz_01.png|128px]]<br />
| Short Buzz cut<br />
|-<br />
|<br />
*F_Lrg_Hair-Balding_01<br />
*F_Med_Hair-Balding_01<br />
*M_Lrg_Hair-Balding_01<br />
*M_Med_Hair-Balding_01<br />
|[[File:Hair-Balding_01.png |128px]]<br />
| Balding hairstyle<br />
|}<br />
<br />
== Facial Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Beard-Big_01<br />
*F_Med_Beard-Big_01<br />
*M_Lrg_Beard-Big_01<br />
*M_Med_Beard-Big_01<br />
|[[File:Beard-Big_01.png|128px]]<br />
| A big beard<br />
|-<br />
|<br />
*F_Lrg_Beard-Goatee_01<br />
*F_Med_Beard-Goatee_01<br />
*M_Lrg_Beard-Goatee_01<br />
*M_Med_Beard-Goatee_01<br />
|[[File:Beard-Goatee_01.png|128px]]<br />
| A goatee face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_01<br />
*F_Med_Beard-Moustache_01<br />
*M_Lrg_Beard-Moustache_01<br />
*M_Med_Beard-Moustache_01<br />
|[[File:Beard-Moustache_01.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_02<br />
*F_Med_Beard-Moustache_02<br />
*M_Lrg_Beard-Moustache_02<br />
*M_Med_Beard-Moustache_02<br />
|[[File:Beard-Moustache_02.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_03<br />
*F_Med_Beard-Moustache_03<br />
*M_Lrg_Beard-Moustache_03<br />
*M_Med_Beard-Moustache_03<br />
|[[File:Beard-Moustache_03.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Muttonchops_01<br />
*F_Med_Beard-Muttonchops_01<br />
*M_Lrg_Beard-Muttonchops_01<br />
*M_Med_Beard-Muttonchops_01<br />
|[[File:Beard-Muttonchops_01.png|128px]]<br />
| Muttonchops facial hair.<br />
|-<br />
|}<br />
<br />
== Hats Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_01<br />
*F_Med_Hat-Beanie_01<br />
*M_Lrg_Hat-Beanie_01<br />
*M_Med_Hat-Beanie_01<br />
|[[File:F_Lrg_Hat-Beanie-01.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_02<br />
*F_Med_Hat-Beanie_02<br />
*M_Lrg_Hat-Beanie_02<br />
*M_Med_Hat-Beanie_02<br />
|[[File:Hat-Beanie_02.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Cap_01<br />
*F_Med_Hat-Cap_01<br />
*M_Lrg_Hat-Cap_01<br />
*M_Med_Hat-Cap_01<br />
|[[File:F_Lrg_Hat-Cap-01.png|128px]]<br />
| A cool cap<br />
|-<br />
|<br />
*F_Lrg_Hat-HardHat_01<br />
*F_Med_Hat-HardHat_01<br />
*M_Lrg_Hat-HardHat_01<br />
*M_Med_Hat-HardHat_01<br />
|[[File:F_Lrg_Hat-HardHat-01.png|128px]]<br />
| A construction hard hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Cowboy_01<br />
*F_Med_Hat-Cowboy_01<br />
*M_Lrg_Hat-Cowboy_01<br />
*M_Med_Hat-Cowboy_01<br />
|[[File:Hat-Cowboy_01.png|128px]]<br />
| A Cowboy hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Headband_01<br />
*F_Med_Hat-Headband_01<br />
*M_Lrg_Hat-Headband_01<br />
*M_Med_Hat-Headband_01<br />
|[[File:Hat-Headband_01.png|128px]]<br />
| A headband<br />
|-<br />
|<br />
*F_Lrg_Hat-Policeman_01<br />
*F_Med_Hat-Policeman_01<br />
*M_Lrg_Hat-Policeman_01<br />
*M_Med_Hat-Policeman_01<br />
|[[File:Hat-Police_01.png|128px]]<br />
| A policeman hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Sunvisor_01<br />
*F_Med_Hat-Sunvisor_01<br />
*M_Lrg_Hat-Sunvisor_01<br />
*M_Med_Hat-Sunvisor_01<br />
|[[File:Hat-Sunvisor_01.png|128px]]<br />
| Sun visor<br />
|-<br />
|<br />
*F_Lrg_Hat-Swat-Helmet_01<br />
*F_Med_Hat-Swat-Helmet_01<br />
*M_Lrg_Hat-Swat-Helmet_01<br />
*M_Med_Hat-Swat-Helmet_01<br />
|[[File:Hat-Swat-Helmet_01.png|128px]]<br />
| A SWAT helmet<br />
|-<br />
|<br />
*F_Lrg_Hat-Propeller-Cap_01<br />
*F_Med_Hat-Propeller-Cap_01<br />
*M_Lrg_Hat-Propeller-Cap_01<br />
*M_Med_Hat-Propeller-Cap_01<br />
|[[File:Hat-Propeller-Cap_01.png|128px]]<br />
| A propeller hat<br />
|}<br />
<br />
== Glasses Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Glasses-Smart-Frame_01<br />
*F_Med_Glasses-Smart-Frame_01<br />
*M_Lrg_Glasses-Smart-Frame_01<br />
*M_Med_Glasses-Smart-Frame_01<br />
|[[File:F_Lrg_Glasses-01.png|128px]]<br />
| Smart tech glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Aviators_01<br />
*F_Med_Glasses-Aviators_01<br />
*M_Lrg_Glasses-Aviators_01<br />
*M_Med_Glasses-Aviators_01<br />
|[[File:F_Lrg_Glasses-Aviators-01.png|128px]]<br />
| Tinted sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Swirly_01<br />
*F_Med_Glasses-Swirly_01<br />
*M_Lrg_Glasses-Swirly_01<br />
*M_Med_Glasses-Swirly_01<br />
|[[File:Glasses-Swirly_01.png|128px]]<br />
| Swirly hypno glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Ski-Goggles_01<br />
*F_Med_Glasses-Ski-Goggles_01<br />
*M_Lrg_Glasses-Ski-Goggles_01<br />
*M_Med_Glasses-Ski-Goggles_01<br />
|[[File:Glasses-Ski-Goggles_01.png|128px]]<br />
| Ski goggles<br />
|-<br />
|<br />
*F_Lrg_Glasses-Sunglasses-Round_01<br />
*F_Med_Glasses-Sunglasses-Round_01<br />
*M_Lrg_Glasses-Sunglasses-Round_01<br />
*M_Med_Glasses-Sunglasses-Round_01<br />
|[[File:Glasses-Sunglasses-Round_01.png|128px]]<br />
| Round dark sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_01<br />
*F_Med_Glasses-Reading_01<br />
*M_Lrg_Glasses-Reading_01<br />
*M_Med_Glasses-Reading_01<br />
|[[File:Glasses-Reading_01.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_02<br />
*F_Med_Glasses-Reading_02<br />
*M_Lrg_Glasses-Reading_02<br />
*M_Med_Glasses-Reading_02<br />
|[[File:Glasses-Reading_02.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_03<br />
*F_Med_Glasses-Reading_03<br />
*M_Lrg_Glasses-Reading_03<br />
*M_Med_Glasses-Reading_03<br />
|[[File:Glasses-Reading_03.png |128px]]<br />
| Reading glasses<br />
|}<br />
<br />
== Miscellaneous Head Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Earpiece_01<br />
*F_Med_Earpiece_01<br />
*M_Lrg_Earpiece_01<br />
*M_Med_Earpiece_01<br />
|[[File:F_Lrg_Earpiece_01.png|128px]]<br />
| The earpiece for security guards<br />
|-<br />
|<br />
*F_Lrg_AnonMask_01<br />
*F_Med_AnonMask_01<br />
*M_Lrg_AnonMask_01<br />
*M_Med_AnonMask_01<br />
|[[File:AnonMask_01.png|128px]]<br />
| A mask to stay anonymous<br />
|-<br />
|<br />
*F_Lrg_Blindfold_01<br />
*F_Med_Blindfold_01<br />
*M_Lrg_Blindfold_01<br />
*M_Med_Blindfold_01<br />
|[[File:Blindfold_01.png|128px]]<br />
| A blindfold for your character.<br />
|-<br />
|}<br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Head_props&diff=1404Head props2020-05-19T20:36:57Z<p>Rich: </p>
<hr />
<div>__FORCETOC__ <br />
== Introduction ==<br />
<br />
When setting up a character in Mission Script it's possible to define their head props, like hair, hats, glasses and earpieces. There is no limit to the number of props used in a character (apart from how well all the props fit together). If nothing is defined then the character will use whatever default props the character prefab might have.<br />
<br />
== Script Example ==<br />
<br />
<syntaxhighlight source lang="lua"><br />
characters = {<br />
guard1 = {<br />
displayName = "Marcus Fordham",<br />
internalName = "guard1",<br />
prefab = "Masculine_Med_Vest_Enemy",<br />
headProps =<br />
{<br />
"F_Lrg_Earpiece_01", "M_Lrg_Hair-Long-Ponytail-Fringe_01", "F_Med_Glasses-01"<br />
},<br />
}<br />
</syntaxhighlight><br />
== Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Fringe_01<br />
*F_Med_Hair-Long-Fringe_01<br />
*M_Lrg_Hair-Long-Fringe_01<br />
*M_Med_Hair-Long-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Fringe_01.png|128px]]<br />
| Long hair with a fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*F_Med_Hair-Long-Ponytail-Fringe_01<br />
*M_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*M_Med_Hair-Long-Ponytail-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Ponytail-Fringe_01.png|128px]]<br />
| Long hair with a ponytail<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_01<br />
*F_Med_Hair-Long-Wavey_01<br />
*M_Lrg_Hair-Long-Wavey_01<br />
*M_Med_Hair-Long-Wavey_01<br />
|[[File:Hair-Long-Wavey_01.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_02<br />
*F_Med_Hair-Long-Wavey_02<br />
*M_Lrg_Hair-Long-Wavey_02<br />
*M_Med_Hair-Long-Wavey_02<br />
|[[File:F_Lrg_Hair-Long-Wavey_02.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:F_Lrg_Hair-Short-Buzz_01.png|128px]]<br />
| Short buzz cut hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Curly-Clip_01<br />
*F_Med_Hair-Short-Curly-Clip_01<br />
*M_Lrg_Hair-Short-Curly-Clip_01<br />
*M_Med_Hair-Short-Curly-Clip_01<br />
|[[File:F_Lrg_Hair-Short-Curly-Clip_01.png|128px]]<br />
| Curly short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Pointy_01<br />
*F_Med_Hair-Short-Pointy_01<br />
*M_Lrg_Hair-Short-Pointy_01<br />
*M_Med_Hair-Short-Pointy_01<br />
|[[File:F_Lrg_Hair-Short-Pointy_01.png|128px]]<br />
| Pointy short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_01<br />
*F_Med_Hair-Short-SideFringe_01<br />
*M_Lrg_Hair-Short-SideFringe_01<br />
*M_Med_Hair-Short-SideFringe_01<br />
|[[File:F_Lrg_Hair-Short-SideFringe_01.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_02<br />
*F_Med_Hair-Short-SideFringe_02<br />
*M_Lrg_Hair-Short-SideFringe_02<br />
*M_Med_Hair-Short-SideFringe_02<br />
|[[File:F_Lrg_Hair_Short_SideFringe-02.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Big-Curly_01<br />
*F_Med_Hair-Big-Curly_01<br />
*M_Lrg_Hair-Big-Curly_01<br />
*M_Med_Hair-Big-Curly_01<br />
|[[File:Hair-Big-Curly_01.png|128px]]<br />
| Big curly hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Afro_01<br />
*F_Med_Hair-Afro_01<br />
*M_Lrg_Hair-Afro_01<br />
*M_Med_Hair-Afro_01<br />
|[[File:Hair-Afro_01.png|128px]]<br />
| Afro hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Pompadour_01<br />
*F_Med_Hair-Pompadour_01<br />
*M_Lrg_Hair-Pompadour_01<br />
*M_Med_Hair-Pompadour_01<br />
|[[File:Hair-Pompadour_01.png|128px]]<br />
| Pompadour hair style<br />
|-<br />
|<br />
*F_Lrg_Hair-Punk_01<br />
*F_Med_Hair-Punk_01<br />
*M_Lrg_Hair-Punk_01<br />
*M_Med_Hair-Punk_01<br />
|[[File:Hair-Punk_01.png|128px]]<br />
| Punk Spiky Hair / Biker<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:Hair-Short-Buzz_01.png|128px]]<br />
| Short Buzz cut<br />
|-<br />
|<br />
*F_Lrg_Hair-Balding_01<br />
*F_Med_Hair-Balding_01<br />
*M_Lrg_Hair-Balding_01<br />
*M_Med_Hair-Balding_01<br />
|[[File:Hair-Balding_01.png |128px]]<br />
| Balding hairstyle<br />
|}<br />
<br />
== Facial Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Beard-Big_01<br />
*F_Med_Beard-Big_01<br />
*M_Lrg_Beard-Big_01<br />
*M_Med_Beard-Big_01<br />
|[[File:Beard-Big_01.png|128px]]<br />
| A big beard<br />
|-<br />
|<br />
*F_Lrg_Beard-Goatee_01<br />
*F_Med_Beard-Goatee_01<br />
*M_Lrg_Beard-Goatee_01<br />
*M_Med_Beard-Goatee_01<br />
|[[File:Beard-Goatee_01.png|128px]]<br />
| A goatee face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_01<br />
*F_Med_Beard-Moustache_01<br />
*M_Lrg_Beard-Moustache_01<br />
*M_Med_Beard-Moustache_01<br />
|[[File:Beard-Moustache_01.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_02<br />
*F_Med_Beard-Moustache_02<br />
*M_Lrg_Beard-Moustache_02<br />
*M_Med_Beard-Moustache_02<br />
|[[File:Beard-Moustache_02.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_03<br />
*F_Med_Beard-Moustache_03<br />
*M_Lrg_Beard-Moustache_03<br />
*M_Med_Beard-Moustache_03<br />
|[[File:Beard-Moustache_03.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Muttonchops_01<br />
*F_Med_Beard-Muttonchops_01<br />
*M_Lrg_Beard-Muttonchops_01<br />
*M_Med_Beard-Muttonchops_01<br />
|[[File:Beard-Muttonchops_01.png|128px]]<br />
| Muttonchops facial hair.<br />
|-<br />
|}<br />
<br />
== Hats Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_01<br />
*F_Med_Hat-Beanie_01<br />
*M_Lrg_Hat-Beanie_01<br />
*M_Med_Hat-Beanie_01<br />
|[[File:F_Lrg_Hat-Beanie-01.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_02<br />
*F_Med_Hat-Beanie_02<br />
*M_Lrg_Hat-Beanie_02<br />
*M_Med_Hat-Beanie_02<br />
|[[File:Hat-Beanie_02.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Cap_01<br />
*F_Med_Hat-Cap_01<br />
*M_Lrg_Hat-Cap_01<br />
*M_Med_Hat-Cap_01<br />
|[[File:F_Lrg_Hat-Cap-01.png|128px]]<br />
| A cool cap<br />
|-<br />
|<br />
*F_Lrg_Hat-HardHat_01<br />
*F_Med_Hat-HardHat_01<br />
*M_Lrg_Hat-HardHat_01<br />
*M_Med_Hat-HardHat_01<br />
|[[File:F_Lrg_Hat-HardHat-01.png|128px]]<br />
| A construction hard hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Cowboy_01<br />
*F_Med_Hat-Cowboy_01<br />
*M_Lrg_Hat-Cowboy_01<br />
*M_Med_Hat-Cowboy_01<br />
|[[File:Hat-Cowboy_01.png|128px]]<br />
| A Cowboy hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Headband_01<br />
*F_Med_Hat-Headband_01<br />
*M_Lrg_Hat-Headband_01<br />
*M_Med_Hat-Headband_01<br />
|[[File:Hat-Headband_01.png|128px]]<br />
| A headband<br />
|-<br />
|<br />
*F_Lrg_Hat-Policeman_01<br />
*F_Med_Hat-Policeman_01<br />
*M_Lrg_Hat-Policeman_01<br />
*M_Med_Hat-Policeman_01<br />
|[[File:Hat-Police_01.png|128px]]<br />
| A policeman hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Sunvisor_01<br />
*F_Med_Hat-Sunvisor_01<br />
*M_Lrg_Hat-Sunvisor_01<br />
*M_Med_Hat-Sunvisor_01<br />
|[[File:Hat-Sunvisor_01.png|128px]]<br />
| Sun visor<br />
|-<br />
|<br />
*F_Lrg_Hat-Swat-Helmet_01<br />
*F_Med_Hat-Swat-Helmet_01<br />
*M_Lrg_Hat-Swat-Helmet_01<br />
*M_Med_Hat-Swat-Helmet_01<br />
|[[File:Hat-Swat-Helmet_01.png|128px]]<br />
| A SWAT helmet<br />
|-<br />
|<br />
*F_Lrg_Hat-Propeller-Cap_01<br />
*F_Med_Hat-Propeller-Cap_01<br />
*M_Lrg_Hat-Propeller-Cap_01<br />
*M_Med_Hat-Propeller-Cap_01<br />
|[[File:Hat-Propeller-Cap_01.png|128px]]<br />
| A propeller hat<br />
|}<br />
<br />
== Glasses Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Glasses-Smart-Frame_01<br />
*F_Med_Glasses-Smart-Frame_01<br />
*M_Lrg_Glasses-Smart-Frame_01<br />
*M_Med_Glasses-Smart-Frame_01<br />
|[[File:F_Lrg_Glasses-01.png|128px]]<br />
| Smart tech glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Aviators_01<br />
*F_Med_Glasses-Aviators_01<br />
*M_Lrg_Glasses-Aviators_01<br />
*M_Med_Glasses-Aviators_01<br />
|[[File:F_Lrg_Glasses-Aviators-01.png|128px]]<br />
| Tinted sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Swirly_01<br />
*F_Med_Glasses-Swirly_01<br />
*M_Lrg_Glasses-Swirly_01<br />
*M_Med_Glasses-Swirly_01<br />
|[[File:Glasses-Swirly_01.png|128px]]<br />
| Swirly hypno glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Ski-Goggles_01<br />
*F_Med_Glasses-Ski-Goggles_01<br />
*M_Lrg_Glasses-Ski-Goggles_01<br />
*M_Med_Glasses-Ski-Goggles_01<br />
|[[File:Glasses-Ski-Goggles_01.png|128px]]<br />
| Ski goggles<br />
|-<br />
|<br />
*F_Lrg_Glasses-Sunglasses-Round_01<br />
*F_Med_Glasses-Sunglasses-Round_01<br />
*M_Lrg_Glasses-Sunglasses-Round_01<br />
*M_Med_Glasses-Sunglasses-Round_01<br />
|[[File:Glasses-Sunglasses-Round_01.png|128px]]<br />
| Round dark sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_01<br />
*F_Med_Glasses-Reading_01<br />
*M_Lrg_Glasses-Reading_01<br />
*M_Med_Glasses-Reading_01<br />
|[[File:Glasses-Reading_01.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_02<br />
*F_Med_Glasses-Reading_02<br />
*M_Lrg_Glasses-Reading_02<br />
*M_Med_Glasses-Reading_02<br />
|[[File:Glasses-Reading_02.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_03<br />
*F_Med_Glasses-Reading_03<br />
*M_Lrg_Glasses-Reading_03<br />
*M_Med_Glasses-Reading_03<br />
|[[File:Glasses-Reading_03.png |128px]]<br />
| Reading glasses<br />
|}<br />
<br />
== Miscellaneous Head Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Earpiece_01<br />
*F_Med_Earpiece_01<br />
*M_Lrg_Earpiece_01<br />
*M_Med_Earpiece_01<br />
|[[File:F_Lrg_Earpiece_01.png|128px]]<br />
| The earpiece for security guards<br />
|-<br />
|<br />
*F_Lrg_AnonMask_01<br />
*F_Med_AnonMask_01<br />
*M_Lrg_AnonMask_01<br />
*M_Med_AnonMask_01<br />
|[[File:AnonMask_01.png|128px]]<br />
| A mask to stay anonymous<br />
|-<br />
|<br />
*F_Lrg_Blindfold_01<br />
*F_Med_Blindfold_01<br />
*M_Lrg_Blindfold_01<br />
*M_Med_Blindfold_01<br />
|[[File:Blindfold_01.png|128px]]<br />
| A blindfold for your character.<br />
|-<br />
|}<br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Head_props&diff=1403Head props2020-05-19T20:36:42Z<p>Rich: </p>
<hr />
<div>__FORCETOC__ <br />
== Introduction ==<br />
<br />
When setting up a character in Mission Script it's possible to define their head props, like hair, hats, glasses and earpieces. There is no limit to the number of props used in a character (apart from how well all the props fit together). If nothing is defined then the character will use whatever default props the character prefab might have.<br />
<br />
== Script Example ==<br />
<br />
<syntaxhighlight source lang="lua"><br />
characters = {<br />
guard1 = {<br />
displayName = "Marcus Fordham",<br />
internalName = "guard1",<br />
prefab = "Masculine_Med_Vest_Enemy",<br />
headProps =<br />
{<br />
"F_Lrg_Earpiece_01", "M_Lrg_Hair-Long-Ponytail-Fringe_01", "F_Med_Glasses-01"<br />
},<br />
}<br />
</syntaxhighlight><br />
== Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Fringe_01<br />
*F_Med_Hair-Long-Fringe_01<br />
*M_Lrg_Hair-Long-Fringe_01<br />
*M_Med_Hair-Long-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Fringe_01.png|128px]]<br />
| Long hair with a fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*F_Med_Hair-Long-Ponytail-Fringe_01<br />
*M_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*M_Med_Hair-Long-Ponytail-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Ponytail-Fringe_01.png|128px]]<br />
| Long hair with a ponytail<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_01<br />
*F_Med_Hair-Long-Wavey_01<br />
*M_Lrg_Hair-Long-Wavey_01<br />
*M_Med_Hair-Long-Wavey_01<br />
|[[File:Hair-Long-Wavey_01.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_02<br />
*F_Med_Hair-Long-Wavey_02<br />
*M_Lrg_Hair-Long-Wavey_02<br />
*M_Med_Hair-Long-Wavey_02<br />
|[[File:F_Lrg_Hair-Long-Wavey_02.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:F_Lrg_Hair-Short-Buzz_01.png|128px]]<br />
| Short buzz cut hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Curly-Clip_01<br />
*F_Med_Hair-Short-Curly-Clip_01<br />
*M_Lrg_Hair-Short-Curly-Clip_01<br />
*M_Med_Hair-Short-Curly-Clip_01<br />
|[[File:F_Lrg_Hair-Short-Curly-Clip_01.png|128px]]<br />
| Curly short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Pointy_01<br />
*F_Med_Hair-Short-Pointy_01<br />
*M_Lrg_Hair-Short-Pointy_01<br />
*M_Med_Hair-Short-Pointy_01<br />
|[[File:F_Lrg_Hair-Short-Pointy_01.png|128px]]<br />
| Pointy short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_01<br />
*F_Med_Hair-Short-SideFringe_01<br />
*M_Lrg_Hair-Short-SideFringe_01<br />
*M_Med_Hair-Short-SideFringe_01<br />
|[[File:F_Lrg_Hair-Short-SideFringe_01.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_02<br />
*F_Med_Hair-Short-SideFringe_02<br />
*M_Lrg_Hair-Short-SideFringe_02<br />
*M_Med_Hair-Short-SideFringe_02<br />
|[[File:F_Lrg_Hair_Short_SideFringe-02.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Big-Curly_01<br />
*F_Med_Hair-Big-Curly_01<br />
*M_Lrg_Hair-Big-Curly_01<br />
*M_Med_Hair-Big-Curly_01<br />
|[[File:Hair-Big-Curly_01.png|128px]]<br />
| Big curly hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Afro_01<br />
*F_Med_Hair-Afro_01<br />
*M_Lrg_Hair-Afro_01<br />
*M_Med_Hair-Afro_01<br />
|[[File:Hair-Afro_01.png|128px]]<br />
| Afro hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Pompadour_01<br />
*F_Med_Hair-Pompadour_01<br />
*M_Lrg_Hair-Pompadour_01<br />
*M_Med_Hair-Pompadour_01<br />
|[[File:Hair-Pompadour_01.png|128px]]<br />
| Pompadour hair style<br />
|-<br />
|<br />
*F_Lrg_Hair-Punk_01<br />
*F_Med_Hair-Punk_01<br />
*M_Lrg_Hair-Punk_01<br />
*M_Med_Hair-Punk_01<br />
|[[File:Hair-Punk_01.png|128px]]<br />
| Punk Spiky Hair / Biker<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:Hair-Short-Buzz_01.png|128px]]<br />
| Short Buzz cut<br />
|-<br />
|<br />
*F_Lrg_Hair-Balding_01<br />
*F_Med_Hair-Balding_01<br />
*M_Lrg_Hair-Balding_01<br />
*M_Med_Hair-Balding_01<br />
|[[File:Hair-Balding_01.png |128px]]<br />
| Balding hairstyle<br />
|}<br />
<br />
== Facial Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Beard-Big_01<br />
*F_Med_Beard-Big_01<br />
*M_Lrg_Beard-Big_01<br />
*M_Med_Beard-Big_01<br />
|[[File:Beard-Big_01.png|128px]]<br />
| A big beard<br />
|-<br />
|<br />
*F_Lrg_Beard-Goatee_01<br />
*F_Med_Beard-Goatee_01<br />
*M_Lrg_Beard-Goatee_01<br />
*M_Med_Beard-Goatee_01<br />
|[[File:Beard-Goatee_01.png|128px]]<br />
| A goatee face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_01<br />
*F_Med_Beard-Moustache_01<br />
*M_Lrg_Beard-Moustache_01<br />
*M_Med_Beard-Moustache_01<br />
|[[File:Beard-Moustache_01.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_02<br />
*F_Med_Beard-Moustache_02<br />
*M_Lrg_Beard-Moustache_02<br />
*M_Med_Beard-Moustache_02<br />
|[[File:Beard-Moustache_02.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_03<br />
*F_Med_Beard-Moustache_03<br />
*M_Lrg_Beard-Moustache_03<br />
*M_Med_Beard-Moustache_03<br />
|[[File:Beard-Moustache_03.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Muttonchops_01<br />
*F_Med_Beard-Muttonchops_01<br />
*M_Lrg_Beard-Muttonchops_01<br />
*M_Med_Beard-Muttonchops_01<br />
|[[File:Beard-Muttonchops_01.png|128px]]<br />
| Muttonchops facial hair.<br />
|-<br />
|}<br />
<br />
== Hats Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_01<br />
*F_Med_Hat-Beanie_01<br />
*M_Lrg_Hat-Beanie_01<br />
*M_Med_Hat-Beanie_01<br />
|[[File:F_Lrg_Hat-Beanie-01.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_02<br />
*F_Med_Hat-Beanie_02<br />
*M_Lrg_Hat-Beanie_02<br />
*M_Med_Hat-Beanie_02<br />
|[[File:Hat-Beanie_02.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Cap_01<br />
*F_Med_Hat-Cap_01<br />
*M_Lrg_Hat-Cap_01<br />
*M_Med_Hat-Cap_01<br />
|[[File:F_Lrg_Hat-Cap-01.png|128px]]<br />
| A cool cap<br />
|-<br />
|<br />
*F_Lrg_Hat-HardHat_01<br />
*F_Med_Hat-HardHat_01<br />
*M_Lrg_Hat-HardHat_01<br />
*M_Med_Hat-HardHat_01<br />
|[[File:F_Lrg_Hat-HardHat-01.png|128px]]<br />
| A construction hard hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Cowboy_01<br />
*F_Med_Hat-Cowboy_01<br />
*M_Lrg_Hat-Cowboy_01<br />
*M_Med_Hat-Cowboy_01<br />
|[[File:Hat-Cowboy_01.png|128px]]<br />
| A Cowboy hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Headband_01<br />
*F_Med_Hat-Headband_01<br />
*M_Lrg_Hat-Headband_01<br />
*M_Med_Hat-Headband_01<br />
|[[File:Hat-Headband_01.png|128px]]<br />
| A headband<br />
|-<br />
|<br />
*F_Lrg_Hat-Policeman_01<br />
*F_Med_Hat-Policeman_01<br />
*M_Lrg_Hat-Policeman_01<br />
*M_Med_Hat-Policeman_01<br />
|[[File:Hat-Police_01.png|128px]]<br />
| A policeman hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Sunvisor_01<br />
*F_Med_Hat-Sunvisor_01<br />
*M_Lrg_Hat-Sunvisor_01<br />
*M_Med_Hat-Sunvisor_01<br />
|[[File:Hat-Sunvisor_01.png|128px]]<br />
| Sun visor<br />
|-<br />
|<br />
*F_Lrg_Hat-Swat-Helmet_01<br />
*F_Med_Hat-Swat-Helmet_01<br />
*M_Lrg_Hat-Swat-Helmet_01<br />
*M_Med_Hat-Swat-Helmet_01<br />
|[[File:Hat-Swat-Helmet_01.png|128px]]<br />
| A SWAT helmet<br />
|-<br />
|<br />
*F_Lrg_Hat-Propeller-Cap_01<br />
*F_Med_Hat-Propeller-Cap_01<br />
*M_Lrg_Hat-Propeller-Cap_01<br />
*M_Med_Hat-Propeller-Cap_01<br />
|[[File:Hat-Propeller-Cap_01.png|128px]]<br />
| A propeller hat<br />
|}<br />
<br />
== Glasses Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Glasses-Smart-Frame_01<br />
*F_Med_Glasses-Smart-Frame_01<br />
*M_Lrg_Glasses-Smart-Frame_01<br />
*M_Med_Glasses-Smart-Frame_01<br />
|[[File:F_Lrg_Glasses-01.png|128px]]<br />
| Smart tech glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Aviators_01<br />
*F_Med_Glasses-Aviators_01<br />
*M_Lrg_Glasses-Aviators_01<br />
*M_Med_Glasses-Aviators_01<br />
|[[File:F_Lrg_Glasses-Aviators-01.png|128px]]<br />
| Tinted sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Swirly_01<br />
*F_Med_Glasses-Swirly_01<br />
*M_Lrg_Glasses-Swirly_01<br />
*M_Med_Glasses-Swirly_01<br />
|[[File:Glasses-Swirly_01.png|128px]]<br />
| Swirly hypno glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Ski-Goggles_01<br />
*F_Med_Glasses-Ski-Goggles_01<br />
*M_Lrg_Glasses-Ski-Goggles_01<br />
*M_Med_Glasses-Ski-Goggles_01<br />
|[[File:Glasses-Ski-Goggles_01.png|128px]]<br />
| Ski goggles<br />
|-<br />
|<br />
*F_Lrg_Glasses-Sunglasses-Round_01<br />
*F_Med_Glasses-Sunglasses-Round_01<br />
*M_Lrg_Glasses-Sunglasses-Round_01<br />
*M_Med_Glasses-Sunglasses-Round_01<br />
|[[File:Glasses-Sunglasses-Round_01.png|128px]]<br />
| Round dark sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_01<br />
*F_Med_Glasses-Reading_01<br />
*M_Lrg_Glasses-Reading_01<br />
*M_Med_Glasses-Reading_01<br />
|[[File:Glasses-Reading_01.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_02<br />
*F_Med_Glasses-Reading_02<br />
*M_Lrg_Glasses-Reading_02<br />
*M_Med_Glasses-Reading_02<br />
|[[File:Glasses-Reading_02.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_03<br />
*F_Med_Glasses-Reading_03<br />
*M_Lrg_Glasses-Reading_03<br />
*M_Med_Glasses-Reading_03<br />
|[[File:Glasses-Reading_03.png |128px]]<br />
| Reading glasses<br />
|}<br />
<br />
== Gear Prop List ==<br />
{|class= "wikitable"<br />
!width="10%"| Prefab Name<br />
!width="20%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Earpiece_01<br />
*F_Med_Earpiece_01<br />
*M_Lrg_Earpiece_01<br />
*M_Med_Earpiece_01<br />
|[[File:F_Lrg_Earpiece_01.png|128px]]<br />
| The earpiece for security guards<br />
|}<br />
<br />
== Miscellaneous Head Prop List ==<br />
{|class= "wikitable"<br />
!width="40%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="50%"| Note<br />
|-<br />
|<br />
*F_Lrg_Earpiece_01<br />
*F_Med_Earpiece_01<br />
*M_Lrg_Earpiece_01<br />
*M_Med_Earpiece_01<br />
|[[File:F_Lrg_Earpiece_01.png|128px]]<br />
| The earpiece for security guards<br />
|-<br />
|<br />
*F_Lrg_AnonMask_01<br />
*F_Med_AnonMask_01<br />
*M_Lrg_AnonMask_01<br />
*M_Med_AnonMask_01<br />
|[[File:AnonMask_01.png|128px]]<br />
| A mask to stay anonymous<br />
|-<br />
|<br />
*F_Lrg_Blindfold_01<br />
*F_Med_Blindfold_01<br />
*M_Lrg_Blindfold_01<br />
*M_Med_Blindfold_01<br />
|[[File:Blindfold_01.png|128px]]<br />
| A blindfold for your character.<br />
|-<br />
|}<br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Head_props&diff=1402Head props2020-05-19T20:29:54Z<p>Rich: </p>
<hr />
<div>__FORCETOC__ <br />
== Introduction ==<br />
<br />
When setting up a character in Mission Script it's possible to define their head props, like hair, hats, glasses and earpieces. There is no limit to the number of props used in a character (apart from how well all the props fit together). If nothing is defined then the character will use whatever default props the character prefab might have.<br />
<br />
== Script Example ==<br />
<br />
<syntaxhighlight source lang="lua"><br />
characters = {<br />
guard1 = {<br />
displayName = "Marcus Fordham",<br />
internalName = "guard1",<br />
prefab = "Masculine_Med_Vest_Enemy",<br />
headProps =<br />
{<br />
"F_Lrg_Earpiece_01", "M_Lrg_Hair-Long-Ponytail-Fringe_01", "F_Med_Glasses-01"<br />
},<br />
}<br />
</syntaxhighlight><br />
== Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Fringe_01<br />
*F_Med_Hair-Long-Fringe_01<br />
*M_Lrg_Hair-Long-Fringe_01<br />
*M_Med_Hair-Long-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Fringe_01.png|128px]]<br />
| Long hair with a fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*F_Med_Hair-Long-Ponytail-Fringe_01<br />
*M_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*M_Med_Hair-Long-Ponytail-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Ponytail-Fringe_01.png|128px]]<br />
| Long hair with a ponytail<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_01<br />
*F_Med_Hair-Long-Wavey_01<br />
*M_Lrg_Hair-Long-Wavey_01<br />
*M_Med_Hair-Long-Wavey_01<br />
|[[File:Hair-Long-Wavey_01.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_02<br />
*F_Med_Hair-Long-Wavey_02<br />
*M_Lrg_Hair-Long-Wavey_02<br />
*M_Med_Hair-Long-Wavey_02<br />
|[[File:F_Lrg_Hair-Long-Wavey_02.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:F_Lrg_Hair-Short-Buzz_01.png|128px]]<br />
| Short buzz cut hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Curly-Clip_01<br />
*F_Med_Hair-Short-Curly-Clip_01<br />
*M_Lrg_Hair-Short-Curly-Clip_01<br />
*M_Med_Hair-Short-Curly-Clip_01<br />
|[[File:F_Lrg_Hair-Short-Curly-Clip_01.png|128px]]<br />
| Curly short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Pointy_01<br />
*F_Med_Hair-Short-Pointy_01<br />
*M_Lrg_Hair-Short-Pointy_01<br />
*M_Med_Hair-Short-Pointy_01<br />
|[[File:F_Lrg_Hair-Short-Pointy_01.png|128px]]<br />
| Pointy short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_01<br />
*F_Med_Hair-Short-SideFringe_01<br />
*M_Lrg_Hair-Short-SideFringe_01<br />
*M_Med_Hair-Short-SideFringe_01<br />
|[[File:F_Lrg_Hair-Short-SideFringe_01.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_02<br />
*F_Med_Hair-Short-SideFringe_02<br />
*M_Lrg_Hair-Short-SideFringe_02<br />
*M_Med_Hair-Short-SideFringe_02<br />
|[[File:F_Lrg_Hair_Short_SideFringe-02.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Big-Curly_01<br />
*F_Med_Hair-Big-Curly_01<br />
*M_Lrg_Hair-Big-Curly_01<br />
*M_Med_Hair-Big-Curly_01<br />
|[[File:Hair-Big-Curly_01.png|128px]]<br />
| Big curly hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Afro_01<br />
*F_Med_Hair-Afro_01<br />
*M_Lrg_Hair-Afro_01<br />
*M_Med_Hair-Afro_01<br />
|[[File:Hair-Afro_01.png|128px]]<br />
| Afro hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Pompadour_01<br />
*F_Med_Hair-Pompadour_01<br />
*M_Lrg_Hair-Pompadour_01<br />
*M_Med_Hair-Pompadour_01<br />
|[[File:Hair-Pompadour_01.png|128px]]<br />
| Pompadour hair style<br />
|-<br />
|<br />
*F_Lrg_Hair-Punk_01<br />
*F_Med_Hair-Punk_01<br />
*M_Lrg_Hair-Punk_01<br />
*M_Med_Hair-Punk_01<br />
|[[File:Hair-Punk_01.png|128px]]<br />
| Punk Spiky Hair / Biker<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:Hair-Short-Buzz_01.png|128px]]<br />
| Short Buzz cut<br />
|-<br />
|<br />
*F_Lrg_Hair-Balding_01<br />
*F_Med_Hair-Balding_01<br />
*M_Lrg_Hair-Balding_01<br />
*M_Med_Hair-Balding_01<br />
|[[File:Hair-Balding_01.png |128px]]<br />
| Balding hairstyle<br />
|}<br />
<br />
== Facial Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Beard-Big_01<br />
*F_Med_Beard-Big_01<br />
*M_Lrg_Beard-Big_01<br />
*M_Med_Beard-Big_01<br />
|[[File:Beard-Big_01.png|128px]]<br />
| A big beard<br />
|-<br />
|<br />
*F_Lrg_Beard-Goatee_01<br />
*F_Med_Beard-Goatee_01<br />
*M_Lrg_Beard-Goatee_01<br />
*M_Med_Beard-Goatee_01<br />
|[[File:Beard-Goatee_01.png|128px]]<br />
| A goatee face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_01<br />
*F_Med_Beard-Moustache_01<br />
*M_Lrg_Beard-Moustache_01<br />
*M_Med_Beard-Moustache_01<br />
|[[File:Beard-Moustache_01.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_02<br />
*F_Med_Beard-Moustache_02<br />
*M_Lrg_Beard-Moustache_02<br />
*M_Med_Beard-Moustache_02<br />
|[[File:Beard-Moustache_02.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_03<br />
*F_Med_Beard-Moustache_03<br />
*M_Lrg_Beard-Moustache_03<br />
*M_Med_Beard-Moustache_03<br />
|[[File:Beard-Moustache_03.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Muttonchops_01<br />
*F_Med_Beard-Muttonchops_01<br />
*M_Lrg_Beard-Muttonchops_01<br />
*M_Med_Beard-Muttonchops_01<br />
|[[File:Beard-Muttonchops_01.png|128px]]<br />
| Muttonchops facial hair.<br />
|-<br />
|}<br />
<br />
== Hats Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_01<br />
*F_Med_Hat-Beanie_01<br />
*M_Lrg_Hat-Beanie_01<br />
*M_Med_Hat-Beanie_01<br />
|[[File:F_Lrg_Hat-Beanie-01.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_02<br />
*F_Med_Hat-Beanie_02<br />
*M_Lrg_Hat-Beanie_02<br />
*M_Med_Hat-Beanie_02<br />
|[[File:Hat-Beanie_02.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Cap_01<br />
*F_Med_Hat-Cap_01<br />
*M_Lrg_Hat-Cap_01<br />
*M_Med_Hat-Cap_01<br />
|[[File:F_Lrg_Hat-Cap-01.png|128px]]<br />
| A cool cap<br />
|-<br />
|<br />
*F_Lrg_Hat-HardHat_01<br />
*F_Med_Hat-HardHat_01<br />
*M_Lrg_Hat-HardHat_01<br />
*M_Med_Hat-HardHat_01<br />
|[[File:F_Lrg_Hat-HardHat-01.png|128px]]<br />
| A construction hard hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Cowboy_01<br />
*F_Med_Hat-Cowboy_01<br />
*M_Lrg_Hat-Cowboy_01<br />
*M_Med_Hat-Cowboy_01<br />
|[[File:Hat-Cowboy_01.png|128px]]<br />
| A Cowboy hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Headband_01<br />
*F_Med_Hat-Headband_01<br />
*M_Lrg_Hat-Headband_01<br />
*M_Med_Hat-Headband_01<br />
|[[File:Hat-Headband_01.png|128px]]<br />
| A headband<br />
|-<br />
|<br />
*F_Lrg_Hat-Policeman_01<br />
*F_Med_Hat-Policeman_01<br />
*M_Lrg_Hat-Policeman_01<br />
*M_Med_Hat-Policeman_01<br />
|[[File:Hat-Police_01.png|128px]]<br />
| A policeman hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Sunvisor_01<br />
*F_Med_Hat-Sunvisor_01<br />
*M_Lrg_Hat-Sunvisor_01<br />
*M_Med_Hat-Sunvisor_01<br />
|[[File:Hat-Sunvisor_01.png|128px]]<br />
| Sun visor<br />
|-<br />
|<br />
*F_Lrg_Hat-Swat-Helmet_01<br />
*F_Med_Hat-Swat-Helmet_01<br />
*M_Lrg_Hat-Swat-Helmet_01<br />
*M_Med_Hat-Swat-Helmet_01<br />
|[[File:Hat-Swat-Helmet_01.png|128px]]<br />
| A SWAT helmet<br />
|-<br />
|<br />
*F_Lrg_Hat-Propeller-Cap_01<br />
*F_Med_Hat-Propeller-Cap_01<br />
*M_Lrg_Hat-Propeller-Cap_01<br />
*M_Med_Hat-Propeller-Cap_01<br />
|[[File:Hat-Propeller-Cap_01.png|128px]]<br />
| A propeller hat<br />
|}<br />
<br />
== Glasses Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Glasses-Smart-Frame_01<br />
*F_Med_Glasses-Smart-Frame_01<br />
*M_Lrg_Glasses-Smart-Frame_01<br />
*M_Med_Glasses-Smart-Frame_01<br />
|[[File:F_Lrg_Glasses-01.png|128px]]<br />
| Smart tech glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Aviators_01<br />
*F_Med_Glasses-Aviators_01<br />
*M_Lrg_Glasses-Aviators_01<br />
*M_Med_Glasses-Aviators_01<br />
|[[File:F_Lrg_Glasses-Aviators-01.png|128px]]<br />
| Tinted sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Swirly_01<br />
*F_Med_Glasses-Swirly_01<br />
*M_Lrg_Glasses-Swirly_01<br />
*M_Med_Glasses-Swirly_01<br />
|[[File:Glasses-Swirly_01.png|128px]]<br />
| Swirly hypno glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Ski-Goggles_01<br />
*F_Med_Glasses-Ski-Goggles_01<br />
*M_Lrg_Glasses-Ski-Goggles_01<br />
*M_Med_Glasses-Ski-Goggles_01<br />
|[[File:Glasses-Ski-Goggles_01.png|128px]]<br />
| Ski goggles<br />
|-<br />
|<br />
*F_Lrg_Glasses-Sunglasses-Round_01<br />
*F_Med_Glasses-Sunglasses-Round_01<br />
*M_Lrg_Glasses-Sunglasses-Round_01<br />
*M_Med_Glasses-Sunglasses-Round_01<br />
|[[File:Glasses-Sunglasses-Round_01.png|128px]]<br />
| Round dark sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_01<br />
*F_Med_Glasses-Reading_01<br />
*M_Lrg_Glasses-Reading_01<br />
*M_Med_Glasses-Reading_01<br />
|[[File:Glasses-Reading_01.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_02<br />
*F_Med_Glasses-Reading_02<br />
*M_Lrg_Glasses-Reading_02<br />
*M_Med_Glasses-Reading_02<br />
|[[File:Glasses-Reading_02.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_03<br />
*F_Med_Glasses-Reading_03<br />
*M_Lrg_Glasses-Reading_03<br />
*M_Med_Glasses-Reading_03<br />
|[[File:Glasses-Reading_03.png |128px]]<br />
| Reading glasses<br />
|}<br />
<br />
== Gear Prop List ==<br />
{|class= "wikitable"<br />
!width="10%"| Prefab Name<br />
!width="20%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Earpiece_01<br />
*F_Med_Earpiece_01<br />
*M_Lrg_Earpiece_01<br />
*M_Med_Earpiece_01<br />
|[[File:F_Lrg_Earpiece_01.png|128px]]<br />
| The earpiece for security guards<br />
|}<br />
<br />
== Face Prop List ==<br />
{|class= "wikitable"<br />
!width="10%"| Prefab Name<br />
!width="20%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_AnonMask_01<br />
*F_Med_AnonMask_01<br />
*M_Lrg_AnonMask_01<br />
*M_Med_AnonMask_01<br />
|[[File:AnonMask_01.png|128px]]<br />
| A mask to stay anonymous<br />
|-<br />
|<br />
*F_Lrg_Blindfold_01<br />
*F_Med_Blindfold_01<br />
*M_Lrg_Blindfold_01<br />
*M_Med_Blindfold_01<br />
|[[File:Blindfold_01.png|128px]]<br />
| A blindfold for your character.<br />
|-<br />
|}<br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Head_props&diff=1401Head props2020-05-19T20:29:35Z<p>Rich: </p>
<hr />
<div>__FORCETOC__ <br />
== Introduction ==<br />
<br />
When setting up a character in Mission Script it's possible to define their head props, like hair, hats, glasses and earpieces. There is no limit to the number of props used in a character (apart from how well all the props fit together). If nothing is defined then the character will use whatever default props the character prefab might have.<br />
<br />
== Script Example ==<br />
<br />
<syntaxhighlight source lang="lua"><br />
characters = {<br />
guard1 = {<br />
displayName = "Marcus Fordham",<br />
internalName = "guard1",<br />
prefab = "Masculine_Med_Vest_Enemy",<br />
headProps =<br />
{<br />
"F_Lrg_Earpiece_01", "M_Lrg_Hair-Long-Ponytail-Fringe_01", "F_Med_Glasses-01"<br />
},<br />
}<br />
</syntaxhighlight><br />
== Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Fringe_01<br />
*F_Med_Hair-Long-Fringe_01<br />
*M_Lrg_Hair-Long-Fringe_01<br />
*M_Med_Hair-Long-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Fringe_01.png|128px]]<br />
| Long hair with a fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*F_Med_Hair-Long-Ponytail-Fringe_01<br />
*M_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*M_Med_Hair-Long-Ponytail-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Ponytail-Fringe_01.png|128px]]<br />
| Long hair with a ponytail<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_01<br />
*F_Med_Hair-Long-Wavey_01<br />
*M_Lrg_Hair-Long-Wavey_01<br />
*M_Med_Hair-Long-Wavey_01<br />
|[[File:Hair-Long-Wavey_01.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_02<br />
*F_Med_Hair-Long-Wavey_02<br />
*M_Lrg_Hair-Long-Wavey_02<br />
*M_Med_Hair-Long-Wavey_02<br />
|[[File:F_Lrg_Hair-Long-Wavey_02.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:F_Lrg_Hair-Short-Buzz_01.png|128px]]<br />
| Short buzz cut hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Curly-Clip_01<br />
*F_Med_Hair-Short-Curly-Clip_01<br />
*M_Lrg_Hair-Short-Curly-Clip_01<br />
*M_Med_Hair-Short-Curly-Clip_01<br />
|[[File:F_Lrg_Hair-Short-Curly-Clip_01.png|128px]]<br />
| Curly short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Pointy_01<br />
*F_Med_Hair-Short-Pointy_01<br />
*M_Lrg_Hair-Short-Pointy_01<br />
*M_Med_Hair-Short-Pointy_01<br />
|[[File:F_Lrg_Hair-Short-Pointy_01.png|128px]]<br />
| Pointy short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_01<br />
*F_Med_Hair-Short-SideFringe_01<br />
*M_Lrg_Hair-Short-SideFringe_01<br />
*M_Med_Hair-Short-SideFringe_01<br />
|[[File:F_Lrg_Hair-Short-SideFringe_01.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_02<br />
*F_Med_Hair-Short-SideFringe_02<br />
*M_Lrg_Hair-Short-SideFringe_02<br />
*M_Med_Hair-Short-SideFringe_02<br />
|[[File:F_Lrg_Hair_Short_SideFringe-02.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Big-Curly_01<br />
*F_Med_Hair-Big-Curly_01<br />
*M_Lrg_Hair-Big-Curly_01<br />
*M_Med_Hair-Big-Curly_01<br />
|[[File:Hair-Big-Curly_01.png|128px]]<br />
| Big curly hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Afro_01<br />
*F_Med_Hair-Afro_01<br />
*M_Lrg_Hair-Afro_01<br />
*M_Med_Hair-Afro_01<br />
|[[File:Hair-Afro_01.png|128px]]<br />
| Afro hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Pompadour_01<br />
*F_Med_Hair-Pompadour_01<br />
*M_Lrg_Hair-Pompadour_01<br />
*M_Med_Hair-Pompadour_01<br />
|[[File:Hair-Pompadour_01.png|128px]]<br />
| Pompadour hair style<br />
|-<br />
|<br />
*F_Lrg_Hair-Punk_01<br />
*F_Med_Hair-Punk_01<br />
*M_Lrg_Hair-Punk_01<br />
*M_Med_Hair-Punk_01<br />
|[[File:Hair-Punk_01.png|128px]]<br />
| Punk Spiky Hair / Biker<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:Hair-Short-Buzz_01.png|128px]]<br />
| Short Buzz cut<br />
|-<br />
|<br />
*F_Lrg_Hair-Balding_01<br />
*F_Med_Hair-Balding_01<br />
*M_Lrg_Hair-Balding_01<br />
*M_Med_Hair-Balding_01<br />
|[[File:Hair-Balding_01.png |128px]]<br />
| Balding hairstyle<br />
|}<br />
<br />
== Facial Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Beard-Big_01<br />
*F_Med_Beard-Big_01<br />
*M_Lrg_Beard-Big_01<br />
*M_Med_Beard-Big_01<br />
|[[File:Beard-Big_01.png|128px]]<br />
| A big beard<br />
|-<br />
|<br />
*F_Lrg_Beard-Goatee_01<br />
*F_Med_Beard-Goatee_01<br />
*M_Lrg_Beard-Goatee_01<br />
*M_Med_Beard-Goatee_01<br />
|[[File:Beard-Goatee_01.png|128px]]<br />
| A goatee face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_01<br />
*F_Med_Beard-Moustache_01<br />
*M_Lrg_Beard-Moustache_01<br />
*M_Med_Beard-Moustache_01<br />
|[[File:Beard-Moustache_01.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_02<br />
*F_Med_Beard-Moustache_02<br />
*M_Lrg_Beard-Moustache_02<br />
*M_Med_Beard-Moustache_02<br />
|[[File:Beard-Moustache_02.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_03<br />
*F_Med_Beard-Moustache_03<br />
*M_Lrg_Beard-Moustache_03<br />
*M_Med_Beard-Moustache_03<br />
|[[File:Beard-Moustache_03.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Muttonchops_01<br />
*F_Med_Beard-Muttonchops_01<br />
*M_Lrg_Beard-Muttonchops_01<br />
*M_Med_Beard-Muttonchops_01<br />
|[[File:Beard-Muttonchops_01.png|128px]]<br />
| Muttonchops facial hair.<br />
|-<br />
|}<br />
<br />
== Hats Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_01<br />
*F_Med_Hat-Beanie_01<br />
*M_Lrg_Hat-Beanie_01<br />
*M_Med_Hat-Beanie_01<br />
|[[File:F_Lrg_Hat-Beanie-01.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_02<br />
*F_Med_Hat-Beanie_02<br />
*M_Lrg_Hat-Beanie_02<br />
*M_Med_Hat-Beanie_02<br />
|[[File:Hat-Beanie_02.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Cap_01<br />
*F_Med_Hat-Cap_01<br />
*M_Lrg_Hat-Cap_01<br />
*M_Med_Hat-Cap_01<br />
|[[File:F_Lrg_Hat-Cap-01.png|128px]]<br />
| A cool cap<br />
|-<br />
|<br />
*F_Lrg_Hat-HardHat_01<br />
*F_Med_Hat-HardHat_01<br />
*M_Lrg_Hat-HardHat_01<br />
*M_Med_Hat-HardHat_01<br />
|[[File:F_Lrg_Hat-HardHat-01.png|128px]]<br />
| A construction hard hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Cowboy_01<br />
*F_Med_Hat-Cowboy_01<br />
*M_Lrg_Hat-Cowboy_01<br />
*M_Med_Hat-Cowboy_01<br />
|[[File:Hat-Cowboy_01.png|128px]]<br />
| A Cowboy hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Headband_01<br />
*F_Med_Hat-Headband_01<br />
*M_Lrg_Hat-Headband_01<br />
*M_Med_Hat-Headband_01<br />
|[[File:Hat-Headband_01.png|128px]]<br />
| A headband<br />
|-<br />
|<br />
*F_Lrg_Hat-Policeman_01<br />
*F_Med_Hat-Policeman_01<br />
*M_Lrg_Hat-Policeman_01<br />
*M_Med_Hat-Policeman_01<br />
|[[File:Hat-Police_01.png|128px]]<br />
| A policeman hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Sunvisor_01<br />
*F_Med_Hat-Sunvisor_01<br />
*M_Lrg_Hat-Sunvisor_01<br />
*M_Med_Hat-Sunvisor_01<br />
|[[File:Hat-Sunvisor_01.png|128px]]<br />
| Sun visor<br />
|-<br />
|<br />
*F_Lrg_Hat-Swat-Helmet_01<br />
*F_Med_Hat-Swat-Helmet_01<br />
*M_Lrg_Hat-Swat-Helmet_01<br />
*M_Med_Hat-Swat-Helmet_01<br />
|[[File:Hat-Swat-Helmet_01.png|128px]]<br />
| A SWAT helmet<br />
|-<br />
|<br />
*F_Lrg_Hat-Propeller-Cap_01<br />
*F_Med_Hat-Propeller-Cap_01<br />
*M_Lrg_Hat-Propeller-Cap_01<br />
*M_Med_Hat-Propeller-Cap_01<br />
|[[File:Hat-Propeller-Cap_01.png|128px]]<br />
| A propeller hat<br />
|}<br />
<br />
== Glasses Prop List ==<br />
{|class= "wikitable"<br />
!width="10%"| Prefab Name<br />
!width="20%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Glasses-Smart-Frame_01<br />
*F_Med_Glasses-Smart-Frame_01<br />
*M_Lrg_Glasses-Smart-Frame_01<br />
*M_Med_Glasses-Smart-Frame_01<br />
|[[File:F_Lrg_Glasses-01.png|128px]]<br />
| Smart tech glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Aviators_01<br />
*F_Med_Glasses-Aviators_01<br />
*M_Lrg_Glasses-Aviators_01<br />
*M_Med_Glasses-Aviators_01<br />
|[[File:F_Lrg_Glasses-Aviators-01.png|128px]]<br />
| Tinted sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Swirly_01<br />
*F_Med_Glasses-Swirly_01<br />
*M_Lrg_Glasses-Swirly_01<br />
*M_Med_Glasses-Swirly_01<br />
|[[File:Glasses-Swirly_01.png|128px]]<br />
| Swirly hypno glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Ski-Goggles_01<br />
*F_Med_Glasses-Ski-Goggles_01<br />
*M_Lrg_Glasses-Ski-Goggles_01<br />
*M_Med_Glasses-Ski-Goggles_01<br />
|[[File:Glasses-Ski-Goggles_01.png|128px]]<br />
| Ski goggles<br />
|-<br />
|<br />
*F_Lrg_Glasses-Sunglasses-Round_01<br />
*F_Med_Glasses-Sunglasses-Round_01<br />
*M_Lrg_Glasses-Sunglasses-Round_01<br />
*M_Med_Glasses-Sunglasses-Round_01<br />
|[[File:Glasses-Sunglasses-Round_01.png|128px]]<br />
| Round dark sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_01<br />
*F_Med_Glasses-Reading_01<br />
*M_Lrg_Glasses-Reading_01<br />
*M_Med_Glasses-Reading_01<br />
|[[File:Glasses-Reading_01.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_02<br />
*F_Med_Glasses-Reading_02<br />
*M_Lrg_Glasses-Reading_02<br />
*M_Med_Glasses-Reading_02<br />
|[[File:Glasses-Reading_02.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_03<br />
*F_Med_Glasses-Reading_03<br />
*M_Lrg_Glasses-Reading_03<br />
*M_Med_Glasses-Reading_03<br />
|[[File:Glasses-Reading_03.png |128px]]<br />
| Reading glasses<br />
|}<br />
<br />
== Gear Prop List ==<br />
{|class= "wikitable"<br />
!width="10%"| Prefab Name<br />
!width="20%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Earpiece_01<br />
*F_Med_Earpiece_01<br />
*M_Lrg_Earpiece_01<br />
*M_Med_Earpiece_01<br />
|[[File:F_Lrg_Earpiece_01.png|128px]]<br />
| The earpiece for security guards<br />
|}<br />
<br />
== Face Prop List ==<br />
{|class= "wikitable"<br />
!width="10%"| Prefab Name<br />
!width="20%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_AnonMask_01<br />
*F_Med_AnonMask_01<br />
*M_Lrg_AnonMask_01<br />
*M_Med_AnonMask_01<br />
|[[File:AnonMask_01.png|128px]]<br />
| A mask to stay anonymous<br />
|-<br />
|<br />
*F_Lrg_Blindfold_01<br />
*F_Med_Blindfold_01<br />
*M_Lrg_Blindfold_01<br />
*M_Med_Blindfold_01<br />
|[[File:Blindfold_01.png|128px]]<br />
| A blindfold for your character.<br />
|-<br />
|}<br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Head_props&diff=1400Head props2020-05-19T20:29:15Z<p>Rich: </p>
<hr />
<div>__FORCETOC__ <br />
== Introduction ==<br />
<br />
When setting up a character in Mission Script it's possible to define their head props, like hair, hats, glasses and earpieces. There is no limit to the number of props used in a character (apart from how well all the props fit together). If nothing is defined then the character will use whatever default props the character prefab might have.<br />
<br />
== Script Example ==<br />
<br />
<syntaxhighlight source lang="lua"><br />
characters = {<br />
guard1 = {<br />
displayName = "Marcus Fordham",<br />
internalName = "guard1",<br />
prefab = "Masculine_Med_Vest_Enemy",<br />
headProps =<br />
{<br />
"F_Lrg_Earpiece_01", "M_Lrg_Hair-Long-Ponytail-Fringe_01", "F_Med_Glasses-01"<br />
},<br />
}<br />
</syntaxhighlight><br />
== Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Fringe_01<br />
*F_Med_Hair-Long-Fringe_01<br />
*M_Lrg_Hair-Long-Fringe_01<br />
*M_Med_Hair-Long-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Fringe_01.png|128px]]<br />
| Long hair with a fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*F_Med_Hair-Long-Ponytail-Fringe_01<br />
*M_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*M_Med_Hair-Long-Ponytail-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Ponytail-Fringe_01.png|128px]]<br />
| Long hair with a ponytail<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_01<br />
*F_Med_Hair-Long-Wavey_01<br />
*M_Lrg_Hair-Long-Wavey_01<br />
*M_Med_Hair-Long-Wavey_01<br />
|[[File:Hair-Long-Wavey_01.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_02<br />
*F_Med_Hair-Long-Wavey_02<br />
*M_Lrg_Hair-Long-Wavey_02<br />
*M_Med_Hair-Long-Wavey_02<br />
|[[File:F_Lrg_Hair-Long-Wavey_02.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:F_Lrg_Hair-Short-Buzz_01.png|128px]]<br />
| Short buzz cut hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Curly-Clip_01<br />
*F_Med_Hair-Short-Curly-Clip_01<br />
*M_Lrg_Hair-Short-Curly-Clip_01<br />
*M_Med_Hair-Short-Curly-Clip_01<br />
|[[File:F_Lrg_Hair-Short-Curly-Clip_01.png|128px]]<br />
| Curly short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Pointy_01<br />
*F_Med_Hair-Short-Pointy_01<br />
*M_Lrg_Hair-Short-Pointy_01<br />
*M_Med_Hair-Short-Pointy_01<br />
|[[File:F_Lrg_Hair-Short-Pointy_01.png|128px]]<br />
| Pointy short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_01<br />
*F_Med_Hair-Short-SideFringe_01<br />
*M_Lrg_Hair-Short-SideFringe_01<br />
*M_Med_Hair-Short-SideFringe_01<br />
|[[File:F_Lrg_Hair-Short-SideFringe_01.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_02<br />
*F_Med_Hair-Short-SideFringe_02<br />
*M_Lrg_Hair-Short-SideFringe_02<br />
*M_Med_Hair-Short-SideFringe_02<br />
|[[File:F_Lrg_Hair_Short_SideFringe-02.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Big-Curly_01<br />
*F_Med_Hair-Big-Curly_01<br />
*M_Lrg_Hair-Big-Curly_01<br />
*M_Med_Hair-Big-Curly_01<br />
|[[File:Hair-Big-Curly_01.png|128px]]<br />
| Big curly hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Afro_01<br />
*F_Med_Hair-Afro_01<br />
*M_Lrg_Hair-Afro_01<br />
*M_Med_Hair-Afro_01<br />
|[[File:Hair-Afro_01.png|128px]]<br />
| Afro hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Pompadour_01<br />
*F_Med_Hair-Pompadour_01<br />
*M_Lrg_Hair-Pompadour_01<br />
*M_Med_Hair-Pompadour_01<br />
|[[File:Hair-Pompadour_01.png|128px]]<br />
| Pompadour hair style<br />
|-<br />
|<br />
*F_Lrg_Hair-Punk_01<br />
*F_Med_Hair-Punk_01<br />
*M_Lrg_Hair-Punk_01<br />
*M_Med_Hair-Punk_01<br />
|[[File:Hair-Punk_01.png|128px]]<br />
| Punk Spiky Hair / Biker<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:Hair-Short-Buzz_01.png|128px]]<br />
| Short Buzz cut<br />
|-<br />
|<br />
*F_Lrg_Hair-Balding_01<br />
*F_Med_Hair-Balding_01<br />
*M_Lrg_Hair-Balding_01<br />
*M_Med_Hair-Balding_01<br />
|[[File:Hair-Balding_01.png |128px]]<br />
| Balding hairstyle<br />
|}<br />
<br />
== Facial Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Beard-Big_01<br />
*F_Med_Beard-Big_01<br />
*M_Lrg_Beard-Big_01<br />
*M_Med_Beard-Big_01<br />
|[[File:Beard-Big_01.png|128px]]<br />
| A big beard<br />
|-<br />
|<br />
*F_Lrg_Beard-Goatee_01<br />
*F_Med_Beard-Goatee_01<br />
*M_Lrg_Beard-Goatee_01<br />
*M_Med_Beard-Goatee_01<br />
|[[File:Beard-Goatee_01.png|128px]]<br />
| A goatee face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_01<br />
*F_Med_Beard-Moustache_01<br />
*M_Lrg_Beard-Moustache_01<br />
*M_Med_Beard-Moustache_01<br />
|[[File:Beard-Moustache_01.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_02<br />
*F_Med_Beard-Moustache_02<br />
*M_Lrg_Beard-Moustache_02<br />
*M_Med_Beard-Moustache_02<br />
|[[File:Beard-Moustache_02.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_03<br />
*F_Med_Beard-Moustache_03<br />
*M_Lrg_Beard-Moustache_03<br />
*M_Med_Beard-Moustache_03<br />
|[[File:Beard-Moustache_03.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Muttonchops_01<br />
*F_Med_Beard-Muttonchops_01<br />
*M_Lrg_Beard-Muttonchops_01<br />
*M_Med_Beard-Muttonchops_01<br />
|[[File:Beard-Muttonchops_01.png|128px]]<br />
| Muttonchops facial hair.<br />
|-<br />
|}<br />
<br />
== Hats Prop List ==<br />
{|class= "wikitable"<br />
!width="10%"| Prefab Name<br />
!width="20%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_01<br />
*F_Med_Hat-Beanie_01<br />
*M_Lrg_Hat-Beanie_01<br />
*M_Med_Hat-Beanie_01<br />
|[[File:F_Lrg_Hat-Beanie-01.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_02<br />
*F_Med_Hat-Beanie_02<br />
*M_Lrg_Hat-Beanie_02<br />
*M_Med_Hat-Beanie_02<br />
|[[File:Hat-Beanie_02.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Cap_01<br />
*F_Med_Hat-Cap_01<br />
*M_Lrg_Hat-Cap_01<br />
*M_Med_Hat-Cap_01<br />
|[[File:F_Lrg_Hat-Cap-01.png|128px]]<br />
| A cool cap<br />
|-<br />
|<br />
*F_Lrg_Hat-HardHat_01<br />
*F_Med_Hat-HardHat_01<br />
*M_Lrg_Hat-HardHat_01<br />
*M_Med_Hat-HardHat_01<br />
|[[File:F_Lrg_Hat-HardHat-01.png|128px]]<br />
| A construction hard hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Cowboy_01<br />
*F_Med_Hat-Cowboy_01<br />
*M_Lrg_Hat-Cowboy_01<br />
*M_Med_Hat-Cowboy_01<br />
|[[File:Hat-Cowboy_01.png|128px]]<br />
| A Cowboy hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Headband_01<br />
*F_Med_Hat-Headband_01<br />
*M_Lrg_Hat-Headband_01<br />
*M_Med_Hat-Headband_01<br />
|[[File:Hat-Headband_01.png|128px]]<br />
| A headband<br />
|-<br />
|<br />
*F_Lrg_Hat-Policeman_01<br />
*F_Med_Hat-Policeman_01<br />
*M_Lrg_Hat-Policeman_01<br />
*M_Med_Hat-Policeman_01<br />
|[[File:Hat-Police_01.png|128px]]<br />
| A policeman hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Sunvisor_01<br />
*F_Med_Hat-Sunvisor_01<br />
*M_Lrg_Hat-Sunvisor_01<br />
*M_Med_Hat-Sunvisor_01<br />
|[[File:Hat-Sunvisor_01.png|128px]]<br />
| Sun visor<br />
|-<br />
|<br />
*F_Lrg_Hat-Swat-Helmet_01<br />
*F_Med_Hat-Swat-Helmet_01<br />
*M_Lrg_Hat-Swat-Helmet_01<br />
*M_Med_Hat-Swat-Helmet_01<br />
|[[File:Hat-Swat-Helmet_01.png|128px]]<br />
| A SWAT helmet<br />
|-<br />
|<br />
*F_Lrg_Hat-Propeller-Cap_01<br />
*F_Med_Hat-Propeller-Cap_01<br />
*M_Lrg_Hat-Propeller-Cap_01<br />
*M_Med_Hat-Propeller-Cap_01<br />
|[[File:Hat-Propeller-Cap_01.png|128px]]<br />
| A propeller hat<br />
|}<br />
<br />
== Glasses Prop List ==<br />
{|class= "wikitable"<br />
!width="10%"| Prefab Name<br />
!width="20%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Glasses-Smart-Frame_01<br />
*F_Med_Glasses-Smart-Frame_01<br />
*M_Lrg_Glasses-Smart-Frame_01<br />
*M_Med_Glasses-Smart-Frame_01<br />
|[[File:F_Lrg_Glasses-01.png|128px]]<br />
| Smart tech glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Aviators_01<br />
*F_Med_Glasses-Aviators_01<br />
*M_Lrg_Glasses-Aviators_01<br />
*M_Med_Glasses-Aviators_01<br />
|[[File:F_Lrg_Glasses-Aviators-01.png|128px]]<br />
| Tinted sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Swirly_01<br />
*F_Med_Glasses-Swirly_01<br />
*M_Lrg_Glasses-Swirly_01<br />
*M_Med_Glasses-Swirly_01<br />
|[[File:Glasses-Swirly_01.png|128px]]<br />
| Swirly hypno glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Ski-Goggles_01<br />
*F_Med_Glasses-Ski-Goggles_01<br />
*M_Lrg_Glasses-Ski-Goggles_01<br />
*M_Med_Glasses-Ski-Goggles_01<br />
|[[File:Glasses-Ski-Goggles_01.png|128px]]<br />
| Ski goggles<br />
|-<br />
|<br />
*F_Lrg_Glasses-Sunglasses-Round_01<br />
*F_Med_Glasses-Sunglasses-Round_01<br />
*M_Lrg_Glasses-Sunglasses-Round_01<br />
*M_Med_Glasses-Sunglasses-Round_01<br />
|[[File:Glasses-Sunglasses-Round_01.png|128px]]<br />
| Round dark sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_01<br />
*F_Med_Glasses-Reading_01<br />
*M_Lrg_Glasses-Reading_01<br />
*M_Med_Glasses-Reading_01<br />
|[[File:Glasses-Reading_01.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_02<br />
*F_Med_Glasses-Reading_02<br />
*M_Lrg_Glasses-Reading_02<br />
*M_Med_Glasses-Reading_02<br />
|[[File:Glasses-Reading_02.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_03<br />
*F_Med_Glasses-Reading_03<br />
*M_Lrg_Glasses-Reading_03<br />
*M_Med_Glasses-Reading_03<br />
|[[File:Glasses-Reading_03.png |128px]]<br />
| Reading glasses<br />
|}<br />
<br />
== Gear Prop List ==<br />
{|class= "wikitable"<br />
!width="10%"| Prefab Name<br />
!width="20%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Earpiece_01<br />
*F_Med_Earpiece_01<br />
*M_Lrg_Earpiece_01<br />
*M_Med_Earpiece_01<br />
|[[File:F_Lrg_Earpiece_01.png|128px]]<br />
| The earpiece for security guards<br />
|}<br />
<br />
== Face Prop List ==<br />
{|class= "wikitable"<br />
!width="10%"| Prefab Name<br />
!width="20%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_AnonMask_01<br />
*F_Med_AnonMask_01<br />
*M_Lrg_AnonMask_01<br />
*M_Med_AnonMask_01<br />
|[[File:AnonMask_01.png|128px]]<br />
| A mask to stay anonymous<br />
|-<br />
|<br />
*F_Lrg_Blindfold_01<br />
*F_Med_Blindfold_01<br />
*M_Lrg_Blindfold_01<br />
*M_Med_Blindfold_01<br />
|[[File:Blindfold_01.png|128px]]<br />
| A blindfold for your character.<br />
|-<br />
|}<br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Head_props&diff=1399Head props2020-05-19T20:28:51Z<p>Rich: </p>
<hr />
<div>__FORCETOC__ <br />
== Introduction ==<br />
<br />
When setting up a character in Mission Script it's possible to define their head props, like hair, hats, glasses and earpieces. There is no limit to the number of props used in a character (apart from how well all the props fit together). If nothing is defined then the character will use whatever default props the character prefab might have.<br />
<br />
== Script Example ==<br />
<br />
<syntaxhighlight source lang="lua"><br />
characters = {<br />
guard1 = {<br />
displayName = "Marcus Fordham",<br />
internalName = "guard1",<br />
prefab = "Masculine_Med_Vest_Enemy",<br />
headProps =<br />
{<br />
"F_Lrg_Earpiece_01", "M_Lrg_Hair-Long-Ponytail-Fringe_01", "F_Med_Glasses-01"<br />
},<br />
}<br />
</syntaxhighlight><br />
== Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="20%"| Prefab Name<br />
!width="10%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Fringe_01<br />
*F_Med_Hair-Long-Fringe_01<br />
*M_Lrg_Hair-Long-Fringe_01<br />
*M_Med_Hair-Long-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Fringe_01.png|128px]]<br />
| Long hair with a fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*F_Med_Hair-Long-Ponytail-Fringe_01<br />
*M_Lrg_Hair-Long-Ponytail-Fringe_01<br />
*M_Med_Hair-Long-Ponytail-Fringe_01<br />
|[[File:F_Lrg_Hair-Long-Ponytail-Fringe_01.png|128px]]<br />
| Long hair with a ponytail<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_01<br />
*F_Med_Hair-Long-Wavey_01<br />
*M_Lrg_Hair-Long-Wavey_01<br />
*M_Med_Hair-Long-Wavey_01<br />
|[[File:Hair-Long-Wavey_01.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Long-Wavey_02<br />
*F_Med_Hair-Long-Wavey_02<br />
*M_Lrg_Hair-Long-Wavey_02<br />
*M_Med_Hair-Long-Wavey_02<br />
|[[File:F_Lrg_Hair-Long-Wavey_02.png|128px]]<br />
| Wavey long hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:F_Lrg_Hair-Short-Buzz_01.png|128px]]<br />
| Short buzz cut hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Curly-Clip_01<br />
*F_Med_Hair-Short-Curly-Clip_01<br />
*M_Lrg_Hair-Short-Curly-Clip_01<br />
*M_Med_Hair-Short-Curly-Clip_01<br />
|[[File:F_Lrg_Hair-Short-Curly-Clip_01.png|128px]]<br />
| Curly short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Pointy_01<br />
*F_Med_Hair-Short-Pointy_01<br />
*M_Lrg_Hair-Short-Pointy_01<br />
*M_Med_Hair-Short-Pointy_01<br />
|[[File:F_Lrg_Hair-Short-Pointy_01.png|128px]]<br />
| Pointy short hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_01<br />
*F_Med_Hair-Short-SideFringe_01<br />
*M_Lrg_Hair-Short-SideFringe_01<br />
*M_Med_Hair-Short-SideFringe_01<br />
|[[File:F_Lrg_Hair-Short-SideFringe_01.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-SideFringe_02<br />
*F_Med_Hair-Short-SideFringe_02<br />
*M_Lrg_Hair-Short-SideFringe_02<br />
*M_Med_Hair-Short-SideFringe_02<br />
|[[File:F_Lrg_Hair_Short_SideFringe-02.png|128px]]<br />
| Short hair with a side fringe<br />
|-<br />
|<br />
*F_Lrg_Hair-Big-Curly_01<br />
*F_Med_Hair-Big-Curly_01<br />
*M_Lrg_Hair-Big-Curly_01<br />
*M_Med_Hair-Big-Curly_01<br />
|[[File:Hair-Big-Curly_01.png|128px]]<br />
| Big curly hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Afro_01<br />
*F_Med_Hair-Afro_01<br />
*M_Lrg_Hair-Afro_01<br />
*M_Med_Hair-Afro_01<br />
|[[File:Hair-Afro_01.png|128px]]<br />
| Afro hair<br />
|-<br />
|<br />
*F_Lrg_Hair-Pompadour_01<br />
*F_Med_Hair-Pompadour_01<br />
*M_Lrg_Hair-Pompadour_01<br />
*M_Med_Hair-Pompadour_01<br />
|[[File:Hair-Pompadour_01.png|128px]]<br />
| Pompadour hair style<br />
|-<br />
|<br />
*F_Lrg_Hair-Punk_01<br />
*F_Med_Hair-Punk_01<br />
*M_Lrg_Hair-Punk_01<br />
*M_Med_Hair-Punk_01<br />
|[[File:Hair-Punk_01.png|128px]]<br />
| Punk Spiky Hair / Biker<br />
|-<br />
|<br />
*F_Lrg_Hair-Short-Buzz_01<br />
*F_Med_Hair-Short-Buzz_01<br />
*M_Lrg_Hair-Short-Buzz_01<br />
*M_Med_Hair-Short-Buzz_01<br />
|[[File:Hair-Short-Buzz_01.png|128px]]<br />
| Short Buzz cut<br />
|-<br />
|<br />
*F_Lrg_Hair-Balding_01<br />
*F_Med_Hair-Balding_01<br />
*M_Lrg_Hair-Balding_01<br />
*M_Med_Hair-Balding_01<br />
|[[File:Hair-Balding_01.png |128px]]<br />
| Balding hairstyle<br />
|}<br />
<br />
== Facial Hair Prop List ==<br />
{|class= "wikitable"<br />
!width="10%"| Prefab Name<br />
!width="20%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Beard-Big_01<br />
*F_Med_Beard-Big_01<br />
*M_Lrg_Beard-Big_01<br />
*M_Med_Beard-Big_01<br />
|[[File:Beard-Big_01.png|128px]]<br />
| A big beard<br />
|-<br />
|<br />
*F_Lrg_Beard-Goatee_01<br />
*F_Med_Beard-Goatee_01<br />
*M_Lrg_Beard-Goatee_01<br />
*M_Med_Beard-Goatee_01<br />
|[[File:Beard-Goatee_01.png|128px]]<br />
| A goatee face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_01<br />
*F_Med_Beard-Moustache_01<br />
*M_Lrg_Beard-Moustache_01<br />
*M_Med_Beard-Moustache_01<br />
|[[File:Beard-Moustache_01.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_02<br />
*F_Med_Beard-Moustache_02<br />
*M_Lrg_Beard-Moustache_02<br />
*M_Med_Beard-Moustache_02<br />
|[[File:Beard-Moustache_02.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Moustache_03<br />
*F_Med_Beard-Moustache_03<br />
*M_Lrg_Beard-Moustache_03<br />
*M_Med_Beard-Moustache_03<br />
|[[File:Beard-Moustache_03.png|128px]]<br />
| A moustache face prop.<br />
|-<br />
|<br />
*F_Lrg_Beard-Muttonchops_01<br />
*F_Med_Beard-Muttonchops_01<br />
*M_Lrg_Beard-Muttonchops_01<br />
*M_Med_Beard-Muttonchops_01<br />
|[[File:Beard-Muttonchops_01.png|128px]]<br />
| Muttonchops facial hair.<br />
|-<br />
|}<br />
<br />
== Hats Prop List ==<br />
{|class= "wikitable"<br />
!width="10%"| Prefab Name<br />
!width="20%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_01<br />
*F_Med_Hat-Beanie_01<br />
*M_Lrg_Hat-Beanie_01<br />
*M_Med_Hat-Beanie_01<br />
|[[File:F_Lrg_Hat-Beanie-01.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Beanie_02<br />
*F_Med_Hat-Beanie_02<br />
*M_Lrg_Hat-Beanie_02<br />
*M_Med_Hat-Beanie_02<br />
|[[File:Hat-Beanie_02.png|128px]]<br />
| A beanie hat with long ears<br />
|-<br />
|<br />
*F_Lrg_Hat-Cap_01<br />
*F_Med_Hat-Cap_01<br />
*M_Lrg_Hat-Cap_01<br />
*M_Med_Hat-Cap_01<br />
|[[File:F_Lrg_Hat-Cap-01.png|128px]]<br />
| A cool cap<br />
|-<br />
|<br />
*F_Lrg_Hat-HardHat_01<br />
*F_Med_Hat-HardHat_01<br />
*M_Lrg_Hat-HardHat_01<br />
*M_Med_Hat-HardHat_01<br />
|[[File:F_Lrg_Hat-HardHat-01.png|128px]]<br />
| A construction hard hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Cowboy_01<br />
*F_Med_Hat-Cowboy_01<br />
*M_Lrg_Hat-Cowboy_01<br />
*M_Med_Hat-Cowboy_01<br />
|[[File:Hat-Cowboy_01.png|128px]]<br />
| A Cowboy hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Headband_01<br />
*F_Med_Hat-Headband_01<br />
*M_Lrg_Hat-Headband_01<br />
*M_Med_Hat-Headband_01<br />
|[[File:Hat-Headband_01.png|128px]]<br />
| A headband<br />
|-<br />
|<br />
*F_Lrg_Hat-Policeman_01<br />
*F_Med_Hat-Policeman_01<br />
*M_Lrg_Hat-Policeman_01<br />
*M_Med_Hat-Policeman_01<br />
|[[File:Hat-Police_01.png|128px]]<br />
| A policeman hat<br />
|-<br />
|<br />
*F_Lrg_Hat-Sunvisor_01<br />
*F_Med_Hat-Sunvisor_01<br />
*M_Lrg_Hat-Sunvisor_01<br />
*M_Med_Hat-Sunvisor_01<br />
|[[File:Hat-Sunvisor_01.png|128px]]<br />
| Sun visor<br />
|-<br />
|<br />
*F_Lrg_Hat-Swat-Helmet_01<br />
*F_Med_Hat-Swat-Helmet_01<br />
*M_Lrg_Hat-Swat-Helmet_01<br />
*M_Med_Hat-Swat-Helmet_01<br />
|[[File:Hat-Swat-Helmet_01.png|128px]]<br />
| A SWAT helmet<br />
|-<br />
|<br />
*F_Lrg_Hat-Propeller-Cap_01<br />
*F_Med_Hat-Propeller-Cap_01<br />
*M_Lrg_Hat-Propeller-Cap_01<br />
*M_Med_Hat-Propeller-Cap_01<br />
|[[File:Hat-Propeller-Cap_01.png|128px]]<br />
| A propeller hat<br />
|}<br />
<br />
== Glasses Prop List ==<br />
{|class= "wikitable"<br />
!width="10%"| Prefab Name<br />
!width="20%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Glasses-Smart-Frame_01<br />
*F_Med_Glasses-Smart-Frame_01<br />
*M_Lrg_Glasses-Smart-Frame_01<br />
*M_Med_Glasses-Smart-Frame_01<br />
|[[File:F_Lrg_Glasses-01.png|128px]]<br />
| Smart tech glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Aviators_01<br />
*F_Med_Glasses-Aviators_01<br />
*M_Lrg_Glasses-Aviators_01<br />
*M_Med_Glasses-Aviators_01<br />
|[[File:F_Lrg_Glasses-Aviators-01.png|128px]]<br />
| Tinted sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Swirly_01<br />
*F_Med_Glasses-Swirly_01<br />
*M_Lrg_Glasses-Swirly_01<br />
*M_Med_Glasses-Swirly_01<br />
|[[File:Glasses-Swirly_01.png|128px]]<br />
| Swirly hypno glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Ski-Goggles_01<br />
*F_Med_Glasses-Ski-Goggles_01<br />
*M_Lrg_Glasses-Ski-Goggles_01<br />
*M_Med_Glasses-Ski-Goggles_01<br />
|[[File:Glasses-Ski-Goggles_01.png|128px]]<br />
| Ski goggles<br />
|-<br />
|<br />
*F_Lrg_Glasses-Sunglasses-Round_01<br />
*F_Med_Glasses-Sunglasses-Round_01<br />
*M_Lrg_Glasses-Sunglasses-Round_01<br />
*M_Med_Glasses-Sunglasses-Round_01<br />
|[[File:Glasses-Sunglasses-Round_01.png|128px]]<br />
| Round dark sunglasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_01<br />
*F_Med_Glasses-Reading_01<br />
*M_Lrg_Glasses-Reading_01<br />
*M_Med_Glasses-Reading_01<br />
|[[File:Glasses-Reading_01.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_02<br />
*F_Med_Glasses-Reading_02<br />
*M_Lrg_Glasses-Reading_02<br />
*M_Med_Glasses-Reading_02<br />
|[[File:Glasses-Reading_02.png |128px]]<br />
| Reading glasses<br />
|-<br />
|<br />
*F_Lrg_Glasses-Reading_03<br />
*F_Med_Glasses-Reading_03<br />
*M_Lrg_Glasses-Reading_03<br />
*M_Med_Glasses-Reading_03<br />
|[[File:Glasses-Reading_03.png |128px]]<br />
| Reading glasses<br />
|}<br />
<br />
== Gear Prop List ==<br />
{|class= "wikitable"<br />
!width="10%"| Prefab Name<br />
!width="20%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_Earpiece_01<br />
*F_Med_Earpiece_01<br />
*M_Lrg_Earpiece_01<br />
*M_Med_Earpiece_01<br />
|[[File:F_Lrg_Earpiece_01.png|128px]]<br />
| The earpiece for security guards<br />
|}<br />
<br />
== Face Prop List ==<br />
{|class= "wikitable"<br />
!width="10%"| Prefab Name<br />
!width="20%"| Image(s)<br />
!width="15%"| Note<br />
|-<br />
|<br />
*F_Lrg_AnonMask_01<br />
*F_Med_AnonMask_01<br />
*M_Lrg_AnonMask_01<br />
*M_Med_AnonMask_01<br />
|[[File:AnonMask_01.png|128px]]<br />
| A mask to stay anonymous<br />
|-<br />
|<br />
*F_Lrg_Blindfold_01<br />
*F_Med_Blindfold_01<br />
*M_Lrg_Blindfold_01<br />
*M_Med_Blindfold_01<br />
|[[File:Blindfold_01.png|128px]]<br />
| A blindfold for your character.<br />
|-<br />
|}<br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Character_Types_and_Prefabs&diff=1398Character Types and Prefabs2020-05-19T20:07:59Z<p>Rich: </p>
<hr />
<div>== Characters ==<br />
<br />
<br />
-----<br />
<br />
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.<br />
<br />
To add characters to your level you must open up the mission script and locate the character table. It should look something like this:<br />
<br />
[[File:|frame|none|alt=|caption charactertable.png]]<br />
<br />
To add a character in the table you must include the following: <br />
<br />
* name <br />
* displayName <br />
* internalName <br />
* characterType <br />
* prefab<br />
<br />
You can also include some optional parameters:<br />
<br />
* [[#Head Props|headProps]]<br />
<br />
This would look like the following in code:<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Character definitions:<br />
characters = {<br />
joe = {<br />
displayName = "Joe Harman",<br />
internalName = "Joe",<br />
characterType = "player",<br />
prefab = "player",<br />
headProps = {"F_Med_Glasses-01"},<br />
spawnpoint = "PlayerSpawn",<br />
voice = "Big_Guard",<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
'''Note.''' When the characterType is virtual you do not need to add a prefab or spawn-point.<br />
<br />
=== Character Types and Prefabs ===<br />
<br />
{| class= "wikitable"<br />
!width="19%"| character type<br />
!align="center" width="10%"| prefab name<br />
!align="center" width="22%"| description<br />
!width="29%"| image<br />
|-<br />
<!-- <br />
| enemy<br />
|align="center"| bigGuard,hugeGuard,drone<br />
| All of the guards listed require the character type enemy. These will allow you to add guards to patrol your level.<br />
|- <br />
--><br />
| virtual<br />
| <br />
*n/a<br />
| virtual characters are characters that you won't see in the level but may communicate with the player using via CryptoChat<br />
|<br />
|-<br />
| player<br />
|<br />
*Player_Joe<br />
*Player_Jen <br />
| This will allow you to add a playable character to your game.There can only be one per level.<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_BomberJacket_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
| <br />
*Feminine_Med_CardiganNecklace_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualBlazer_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CasualJumper_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_CoatScarf_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Hoodie_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_HorseHead_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
| <br />
*Masculine_Med_LeatherJacket_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
| <br />
*Feminine_Lrg_LongJacket_NPC<br />
*Feminine_Med_LongJacket_NPC<br />
*Masculine_Lrg_LongJacket_NPC<br />
*Masculine_Med_LongJacket_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_OpenShirt_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartJumper_NPC<br />
*Feminine_Med_SmartJumper_NPC<br />
*Masculine_Lrg_SmartJumper_NPC<br />
*Masculine_Med_SmartJumper_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_SmartSuit_NPC<br />
*Feminine_Med_SmartSuit_NPC<br />
*Masculine_Lrg_SmartSuit_NPC<br />
*Masculine_Med_SmartSuit_NPC<br />
*Player_Joe<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Shirt_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Med_Teen_NPC<br />
*Player_Jen <br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Masculine_Med_TShirt_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Vest_NPC<br />
*Feminine_Med_Vest_NPC<br />
*Masculine_Lrg_Vest_NPC<br />
*Masculine_Med_Vest_NPC<br />
| description<br />
|<br />
|-<br />
| npc<br />
|<br />
*Feminine_Lrg_Waistcoat_NPC<br />
*Feminine_Med_Waistcoat_NPC<br />
*Masculine_Lrg_Waistcoat_NPC<br />
*Masculine_Med_Waistcoat_NPC<br />
| description<br />
|<br />
|}<br />
<br />
<br />
=== Voice ===<br />
<br />
There are currently two voices, "Big_Guard" or "Huge_Guard". A table giving more information should go here when more voices are added.<br />
<br />
=== Custom LUTs and head props ===<br />
<br />
This is a subject of it's own, to customise the look of your characters further you will want to read up on<br />
[[Head props]] and [[Character Colours]].<br />
<br />
=== Virtual characters ===<br />
<br />
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 &quot;Semaeopus4G&quot; to connect other characters to this network you must use the ConnectToNetwork function. For example: <code>Mission.ConnectToNetwork(mission.characters.terrance,mission.networks.Semaeopus4G.name,mission.networks.Semaeopus4G.userAccessKey)</code><br />
<br />
=== Adding Guards ===<br />
<br />
When creating guards you must add:<br />
<br />
* Spawn points<br />
* Patrol route<br />
* Profile<br />
* Agent<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Guard definitions:<br />
characters = {<br />
guard01 = {<br />
displayName = "Thomas Template",<br />
internalName = "Thomas",<br />
characterType = "enemy",<br />
prefab = "bigGuard",<br />
profile = "GuardTemplate.lua",<br />
agent = "Guard.lua",<br />
spawnpoint = "GuardSpawn",<br />
patrolroute = {<br />
points = {<br />
"PatrolPoint_0-001",<br />
"PatrolPoint_0-002",<br />
},<br />
cyclic = false,<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
==== Spawn points ====<br />
<br />
To create a spawn point: <br />
* Create empty game object <br />
* Add the mission object script to the empty game object <br />
* Select type &quot;Spawn&quot;<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Spawn Point inspector.png|400px]]<br />
<br />
==== Patrol route ====<br />
<br />
To create a Patrol point: <br />
* Create empty game object <br />
* Add the Patrol point script to the empty game object <br />
* Within the Patrol point script component section you can define the maximum and minimum time a guard spends at the particular point. <br />
* Repeat this process for as many points as you require.<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Patrol Point inspector.png|400px]]<br />
<br />
==== Profile ====<br />
<br />
When creating a guard you can give each one a personal profile, which will effect how each guard communicates and behaves.<br />
<br />
This is a basic template and structure you should use:<br />
<syntaxhighlight source lang="lua" line start=5><br />
Character ={<br />
<br />
Motivation = 0.6,<br />
Sociability = 0.5,<br />
FavouriteColor = { 1, 0.5586207, 0, 1 },<br />
Background = {<br />
<br />
FirstName = "THOMAS",<br />
<br />
LastName = "TEMPLATE",<br />
<br />
Nickname = {<br />
"Tommy",<br />
},<br />
<br />
DerogetoryName = {<br />
"Noggin",<br />
},<br />
<br />
FavouriteSwear = {<br />
"gosh-darn",<br />
},<br />
<br />
FavouriteFood = {<br />
"slice of Wensleydale cheese",<br />
},<br />
<br />
FavouriteSnack = {<br />
"Babybell",<br />
},<br />
<br />
FavouriteDrink = {<br />
"coffee",<br />
},<br />
<br />
BestFriend = {<br />
"Tristan",<br />
},<br />
<br />
RecipientPetName = {<br />
"Sweetums",<br />
},<br />
<br />
SenderPetName = {<br />
"Hubby",<br />
},<br />
<br />
FavouriteExclamation = {<br />
"Golly",<br />
},<br />
<br />
RandomHashtag = {<br />
"#ROFL",<br />
},<br />
<br />
Mood = {<br />
"happy",<br />
},<br />
<br />
PastEvent = {<br />
"ate",<br />
},<br />
<br />
FutureEvent = {<br />
"eat",<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Character_Types_and_Prefabs&diff=1397Character Types and Prefabs2020-05-19T18:10:18Z<p>Rich: </p>
<hr />
<div>== Characters ==<br />
<br />
<br />
-----<br />
<br />
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.<br />
<br />
To add characters to your level you must open up the mission script and locate the character table. It should look something like this:<br />
<br />
[[File:|frame|none|alt=|caption charactertable.png]]<br />
<br />
To add a character in the table you must include the following: <br />
<br />
* name <br />
* displayName <br />
* internalName <br />
* characterType <br />
* prefab<br />
<br />
You can also include some optional parameters:<br />
<br />
* [[#Head Props|headProps]]<br />
<br />
This would look like the following in code:<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Character definitions:<br />
characters = {<br />
joe = {<br />
displayName = "Joe Harman",<br />
internalName = "Joe",<br />
characterType = "player",<br />
prefab = "player",<br />
headProps = {"F_Med_Glasses-01"},<br />
spawnpoint = "PlayerSpawn",<br />
voice = "Big_Guard",<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
'''Note.''' When the characterType is virtual you do not need to add a prefab or spawn-point.<br />
<br />
=== Character Types and Prefabs ===<br />
<br />
{| class= "wikitable"<br />
!width="19%"| character type<br />
!align="center" width="22%"| prefab name<br />
!align="center" width="22%"| description<br />
!width="29%"| image<br />
|-<br />
<!-- <br />
| enemy<br />
|align="center"| bigGuard,hugeGuard,drone<br />
| All of the guards listed require the character type enemy. These will allow you to add guards to patrol your level.<br />
|- <br />
--><br />
| virtual<br />
|align="center"| n/a<br />
| virtual characters are characters that you won't see in the level but may communicate with the player using via CryptoChat<br />
|-<br />
| player<br />
|align="center"| player<br />
| This will allow you to add a playable character to your game.There can only be one per level.<br />
|-<br />
| npc<br />
|align="center"| Secretary<br />
| To add the Secretary character will require you add the character type npc<br />
|}<br />
<br />
=== Prefabs Available ===<br />
<br />
(legacy:)<br />
{| class= "wikitable"<br />
!width="19%"| Prefab Name<br />
!width="29%"| Image<br />
|-<br />
|SecurityGuard-M-Lrg-Hulk<br />
|align="center"| insert image here <br />
|-<br />
|-<br />
|M_Lrg_Waistcoat-01<br />
|align="center"| insert image here <br />
|-<br />
|M_Lrg_LongJacket-01<br />
|align="center"| insert image here <br />
|-<br />
|F_Med_Teen-01-Jen<br />
|align="center"| insert image here <br />
|-<br />
|}<br />
<br />
(current version:)<br />
{| class="wikitable"<br />
! prefab name<br />
!align="center"| player<br />
!align="center"| neutral<br />
!align="center"| enemy<br />
!align="center"| tested<br />
!align="center"| old<br />
! image<br />
|-<br />
| player<br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
| <br />
|-<br />
| Player_Joe<br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
| <br />
|-<br />
| Player_Jen<br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| hugeGuard<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| x<br />
| <br />
|-<br />
| Secretary<br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
| <br />
|-<br />
| drone<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| x<br />
| <br />
|-<br />
| M_Lrg_LongJacket-01<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| x<br />
|align="center"| x<br />
| <br />
|-<br />
| M_Lrg_Waistcoat-01<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| x<br />
| <br />
|-<br />
| M_Med_SmartShirt_01<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| x<br />
| <br />
|-<br />
| F_Med-WorkSuit-01<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| x<br />
| <br />
|-<br />
| Masculine_Lrg_Vest_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Lrg_SmartSuit_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| -- glitchy, no LUT<br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Lrg_LongJacket_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| -- glitchy, default LUT (unchangeable)<br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_Vest_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_SmartSuit_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_LongJacket_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Lrg_Waistcoat_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_Waistcoat_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_Bomberjacket_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_OpenShirt_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_CasualBlazer_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_CoatScarf_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_HordseHead_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_LeatherJacket_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_SmartJumper_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Lrg_LongJacket-2600-Gasmask_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Lrg_LongJacket-2600-Hat_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_CardiganNecklase_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_Vest_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_SmartSuit_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_LongJacket_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| -- glitchy, default LUT (unchangeable)<br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Lrg_Vest_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Lrg_SmartSuit_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Lrg_Waistcoat_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_Waistcoat_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_Teen_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_Hoodie_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_HoodieLongHair_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| broken<br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_Shirt_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| broken<br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_ShirtLongHair_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| broken<br />
|align="center"| <br />
| <br />
|}<br />
<br />
=== Voice ===<br />
<br />
There are currently two voices, "Big_Guard" or "Huge_Guard". A table giving more information should go here when more voices are added.<br />
<br />
=== Custom LUTs and head props ===<br />
<br />
This is a subject of it's own, to customise the look of your characters further you will want to read up on<br />
[[Head props]] and [[Character Colours]].<br />
<br />
=== Virtual characters ===<br />
<br />
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 &quot;Semaeopus4G&quot; to connect other characters to this network you must use the ConnectToNetwork function. For example: <code>Mission.ConnectToNetwork(mission.characters.terrance,mission.networks.Semaeopus4G.name,mission.networks.Semaeopus4G.userAccessKey)</code><br />
<br />
=== Adding Guards ===<br />
<br />
When creating guards you must add:<br />
<br />
* Spawn points<br />
* Patrol route<br />
* Profile<br />
* Agent<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Guard definitions:<br />
characters = {<br />
guard01 = {<br />
displayName = "Thomas Template",<br />
internalName = "Thomas",<br />
characterType = "enemy",<br />
prefab = "bigGuard",<br />
profile = "GuardTemplate.lua",<br />
agent = "Guard.lua",<br />
spawnpoint = "GuardSpawn",<br />
patrolroute = {<br />
points = {<br />
"PatrolPoint_0-001",<br />
"PatrolPoint_0-002",<br />
},<br />
cyclic = false,<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
==== Spawn points ====<br />
<br />
To create a spawn point: <br />
* Create empty game object <br />
* Add the mission object script to the empty game object <br />
* Select type &quot;Spawn&quot;<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Spawn Point inspector.png|400px]]<br />
<br />
==== Patrol route ====<br />
<br />
To create a Patrol point: <br />
* Create empty game object <br />
* Add the Patrol point script to the empty game object <br />
* Within the Patrol point script component section you can define the maximum and minimum time a guard spends at the particular point. <br />
* Repeat this process for as many points as you require.<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Patrol Point inspector.png|400px]]<br />
<br />
==== Profile ====<br />
<br />
When creating a guard you can give each one a personal profile, which will effect how each guard communicates and behaves.<br />
<br />
This is a basic template and structure you should use:<br />
<syntaxhighlight source lang="lua" line start=5><br />
Character ={<br />
<br />
Motivation = 0.6,<br />
Sociability = 0.5,<br />
FavouriteColor = { 1, 0.5586207, 0, 1 },<br />
Background = {<br />
<br />
FirstName = "THOMAS",<br />
<br />
LastName = "TEMPLATE",<br />
<br />
Nickname = {<br />
"Tommy",<br />
},<br />
<br />
DerogetoryName = {<br />
"Noggin",<br />
},<br />
<br />
FavouriteSwear = {<br />
"gosh-darn",<br />
},<br />
<br />
FavouriteFood = {<br />
"slice of Wensleydale cheese",<br />
},<br />
<br />
FavouriteSnack = {<br />
"Babybell",<br />
},<br />
<br />
FavouriteDrink = {<br />
"coffee",<br />
},<br />
<br />
BestFriend = {<br />
"Tristan",<br />
},<br />
<br />
RecipientPetName = {<br />
"Sweetums",<br />
},<br />
<br />
SenderPetName = {<br />
"Hubby",<br />
},<br />
<br />
FavouriteExclamation = {<br />
"Golly",<br />
},<br />
<br />
RandomHashtag = {<br />
"#ROFL",<br />
},<br />
<br />
Mood = {<br />
"happy",<br />
},<br />
<br />
PastEvent = {<br />
"ate",<br />
},<br />
<br />
FutureEvent = {<br />
"eat",<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Character_Types_and_Prefabs&diff=1396Character Types and Prefabs2020-05-19T18:01:50Z<p>Rich: </p>
<hr />
<div>== Characters ==<br />
<br />
<br />
-----<br />
<br />
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.<br />
<br />
To add characters to your level you must open up the mission script and locate the character table. It should look something like this:<br />
<br />
[[File:|frame|none|alt=|caption charactertable.png]]<br />
<br />
To add a character in the table you must include the following: <br />
<br />
* name <br />
* displayName <br />
* internalName <br />
* characterType <br />
* prefab<br />
<br />
You can also include some optional parameters:<br />
<br />
* [[#Head Props|headProps]]<br />
<br />
This would look like the following in code:<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Character definitions:<br />
characters = {<br />
joe = {<br />
displayName = "Joe Harman",<br />
internalName = "Joe",<br />
characterType = "player",<br />
prefab = "player",<br />
headProps = {"F_Med_Glasses-01"},<br />
spawnpoint = "PlayerSpawn",<br />
voice = "Big_Guard",<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
'''Note.''' When the characterType is virtual you do not need to add a prefab or spawn-point.<br />
<br />
=== Character Types and Prefabs ===<br />
<br />
{| class= "wikitable"<br />
!width="19%"| character type<br />
!align="center" width="22%"| prefab name<br />
!width="29%"| description<br />
|-<br />
<!-- <br />
| enemy<br />
|align="center"| bigGuard,hugeGuard,drone<br />
| All of the guards listed require the character type enemy. These will allow you to add guards to patrol your level.<br />
|- <br />
--><br />
| virtual<br />
|align="center"| n/a<br />
| virtual characters are characters that you won't see in the level but may communicate with the player using via CryptoChat<br />
|-<br />
| player<br />
|align="center"| player<br />
| This will allow you to add a playable character to your game.There can only be one per level.<br />
|-<br />
| npc<br />
|align="center"| Secretary<br />
| To add the Secretary character will require you add the character type npc<br />
|}<br />
<br />
=== Prefabs Available ===<br />
<br />
(legacy:)<br />
{| class= "wikitable"<br />
!width="19%"| Prefab Name<br />
!width="29%"| Image<br />
|-<br />
|SecurityGuard-M-Lrg-Hulk<br />
|align="center"| insert image here <br />
|-<br />
|-<br />
|M_Lrg_Waistcoat-01<br />
|align="center"| insert image here <br />
|-<br />
|M_Lrg_LongJacket-01<br />
|align="center"| insert image here <br />
|-<br />
|F_Med_Teen-01-Jen<br />
|align="center"| insert image here <br />
|-<br />
|}<br />
<br />
(current version:)<br />
{| class="wikitable"<br />
! prefab name<br />
!align="center"| player<br />
!align="center"| neutral<br />
!align="center"| enemy<br />
!align="center"| tested<br />
!align="center"| old<br />
! image<br />
|-<br />
| player<br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
| <br />
|-<br />
| Player_Joe<br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
| <br />
|-<br />
| Player_Jen<br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| hugeGuard<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| x<br />
| <br />
|-<br />
| Secretary<br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
| <br />
|-<br />
| drone<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| x<br />
| <br />
|-<br />
| M_Lrg_LongJacket-01<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| x<br />
|align="center"| x<br />
| <br />
|-<br />
| M_Lrg_Waistcoat-01<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| x<br />
| <br />
|-<br />
| M_Med_SmartShirt_01<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| x<br />
| <br />
|-<br />
| F_Med-WorkSuit-01<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| x<br />
| <br />
|-<br />
| Masculine_Lrg_Vest_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Lrg_SmartSuit_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| -- glitchy, no LUT<br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Lrg_LongJacket_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| -- glitchy, default LUT (unchangeable)<br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_Vest_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_SmartSuit_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_LongJacket_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Lrg_Waistcoat_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_Waistcoat_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_Bomberjacket_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_OpenShirt_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_CasualBlazer_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_CoatScarf_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_HordseHead_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_LeatherJacket_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Med_SmartJumper_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Lrg_LongJacket-2600-Gasmask_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Masculine_Lrg_LongJacket-2600-Hat_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_CardiganNecklase_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_Vest_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_SmartSuit_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_LongJacket_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| -- glitchy, default LUT (unchangeable)<br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Lrg_Vest_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Lrg_SmartSuit_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Lrg_Waistcoat_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_Waistcoat_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_Teen_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_Hoodie_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| <br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_HoodieLongHair_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| broken<br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_Shirt_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| broken<br />
|align="center"| <br />
| <br />
|-<br />
| Feminine_Med_ShirtLongHair_Enemy<br />
|align="center"| <br />
|align="center"| <br />
|align="center"| x<br />
|align="center"| broken<br />
|align="center"| <br />
| <br />
|}<br />
<br />
=== Voice ===<br />
<br />
There are currently two voices, "Big_Guard" or "Huge_Guard". A table giving more information should go here when more voices are added.<br />
<br />
=== Custom LUTs and head props ===<br />
<br />
This is a subject of it's own, to customise the look of your characters further you will want to read up on<br />
[[Head props]] and [[Character Colours]].<br />
<br />
=== Virtual characters ===<br />
<br />
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 &quot;Semaeopus4G&quot; to connect other characters to this network you must use the ConnectToNetwork function. For example: <code>Mission.ConnectToNetwork(mission.characters.terrance,mission.networks.Semaeopus4G.name,mission.networks.Semaeopus4G.userAccessKey)</code><br />
<br />
=== Adding Guards ===<br />
<br />
When creating guards you must add:<br />
<br />
* Spawn points<br />
* Patrol route<br />
* Profile<br />
* Agent<br />
<br />
<syntaxhighlight source lang="lua" line start=5><br />
-- Guard definitions:<br />
characters = {<br />
guard01 = {<br />
displayName = "Thomas Template",<br />
internalName = "Thomas",<br />
characterType = "enemy",<br />
prefab = "bigGuard",<br />
profile = "GuardTemplate.lua",<br />
agent = "Guard.lua",<br />
spawnpoint = "GuardSpawn",<br />
patrolroute = {<br />
points = {<br />
"PatrolPoint_0-001",<br />
"PatrolPoint_0-002",<br />
},<br />
cyclic = false,<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
<br />
==== Spawn points ====<br />
<br />
To create a spawn point: <br />
* Create empty game object <br />
* Add the mission object script to the empty game object <br />
* Select type &quot;Spawn&quot;<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Spawn Point inspector.png|400px]]<br />
<br />
==== Patrol route ====<br />
<br />
To create a Patrol point: <br />
* Create empty game object <br />
* Add the Patrol point script to the empty game object <br />
* Within the Patrol point script component section you can define the maximum and minimum time a guard spends at the particular point. <br />
* Repeat this process for as many points as you require.<br />
<br />
Your inspector should look something like this: <br />
<br />
[[File:Patrol Point inspector.png|400px]]<br />
<br />
==== Profile ====<br />
<br />
When creating a guard you can give each one a personal profile, which will effect how each guard communicates and behaves.<br />
<br />
This is a basic template and structure you should use:<br />
<syntaxhighlight source lang="lua" line start=5><br />
Character ={<br />
<br />
Motivation = 0.6,<br />
Sociability = 0.5,<br />
FavouriteColor = { 1, 0.5586207, 0, 1 },<br />
Background = {<br />
<br />
FirstName = "THOMAS",<br />
<br />
LastName = "TEMPLATE",<br />
<br />
Nickname = {<br />
"Tommy",<br />
},<br />
<br />
DerogetoryName = {<br />
"Noggin",<br />
},<br />
<br />
FavouriteSwear = {<br />
"gosh-darn",<br />
},<br />
<br />
FavouriteFood = {<br />
"slice of Wensleydale cheese",<br />
},<br />
<br />
FavouriteSnack = {<br />
"Babybell",<br />
},<br />
<br />
FavouriteDrink = {<br />
"coffee",<br />
},<br />
<br />
BestFriend = {<br />
"Tristan",<br />
},<br />
<br />
RecipientPetName = {<br />
"Sweetums",<br />
},<br />
<br />
SenderPetName = {<br />
"Hubby",<br />
},<br />
<br />
FavouriteExclamation = {<br />
"Golly",<br />
},<br />
<br />
RandomHashtag = {<br />
"#ROFL",<br />
},<br />
<br />
Mood = {<br />
"happy",<br />
},<br />
<br />
PastEvent = {<br />
"ate",<br />
},<br />
<br />
FutureEvent = {<br />
"eat",<br />
},<br />
},<br />
},<br />
</syntaxhighlight><br />
[[Category:Modding]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Milliways_CCCamp_mod&diff=1347Milliways CCCamp mod2020-04-24T14:22:30Z<p>Rich: </p>
<hr />
<div>Off Grid is being demo'd at [https://wiki.milliways.info/index.php?title=CCCamp_2019 Milliways] during [https://en.wikipedia.org/wiki/Chaos_Communication_Camp Chaos Communication Camp 2019] and so we decided to do something special with it, by making a mod of camp, during camp, streaming the process, and adding things to the mod as camp itself is being built!<br />
<br />
The streams themselves will take place on twitch.tv/semaeopus (and other reputable platforms) for the first 3 days of camp, and will feature some friends of Milliways who cannot make it to camp such as Lauri Love, pathfinder, March, and possibly a couple of others ;) <br />
<br />
The idea is for it to be a colloaborative project on [https://github.com/mcfly/OffGridChaosCommunicationCamp Github], where anyone can make a pull request and add something to camp, whether that be themselves as a character, some props and environment models to make it all look more life like, a hackable device or project that someone has brought to camp IRL. Not only that, we intend this to be a living and ongoing project, that we add to at every camp and every congress, making it bigger, more complex and more in depth over time as a representation of everything Milliways and CCC. <br />
<br />
'''Come and join in on the stream, or better yet come to Milliways for a whisky, to play the game, and to watch the stream in good company!''' <br />
<br />
'''**This Stream has now passed but if you would like to watch the replay you can [https://www.youtube.com/watch?v=Dr6DOUTEuYA&t= check out the recording of the Milliways modding stream here].'''<br />
<br />
We have a couple of members of our [http://www.discord.gg/semaeopus Discord community] taking the lead, the core Off Grid team will be around to lend support. You can follow progress in the #modding channel on the Discord. <br />
<br />
You can watch the streams [https://www.twitch.tv/semaeopus here on Twitch].<br />
On [https://www.youtube.com/channel/UCS7dAS0ZyLvdG7zK7rUlweA Youtube] or in [https://mixer.com/Semaeopus Mixer].<br />
<br />
The times are listed on the [https://events.ccc.de/camp/2019/wiki/Session:Modding_Milliways_-_Low-poly_Whiskyleaks CCC Self Organised Session page]<br />
<br />
==How do I take part?==<br />
Well, are you at CCCamp or at home?<br />
<br />
At CCCamp: head to Milliways, check out the game and at the right times (1800h) on day 0,1,2,3 and at 2130h on Day2 during Whiskyleads. Catch the stream on a screen there.<br />
<br />
At home: Watch the Stream [https://www.twitch.tv/semaeopus here on Twitch]<br />
<br />
At home after CCCamp? Well the Git repo will be an ongoing thing even long after CCCamp19 has ended, make a pull request [https://github.com/mcfly/OffGridChaosCommunicationCamp here] and contribute to it, or make your own mod from it!<br />
<br />
===Adding to the mod via git===<br />
There are a couple of ways that you can add to the mod:<br />
<br />
====Adding some props or models====<br />
The simplest way to add to the mod, doesn't require a copy of the game, just download the git repo [https://github.com/mcfly/OffGridChaosCommunicationCamp here]. <br />
<br />
[[File:LevelAssets-LocationOnGit.png|thumb|400px|none|Where to find the Models in the repo]]<br />
<br />
You can then checkout the "LevelAssets" folder to look at the style and scale of existing props and make a model of a structure or an object at Camp and push it back up to that location in the repo. <br />
<br />
For more details on setting up your models to match our shaders and use vertex colours appropriately etc. you can follow this handy [[Asset Creation Pipeline]] guide!<br />
<br />
====Adding to the map layout or the mod itself====<br />
<br />
If you would like to add to the map of CCCamp there are a couple of additional steps:<br />
<br />
To do this you will need a copy of OFF GRID and the modding tools via Steam. For this you need to have backed OFF GRID during the Kickstarter at the #FirstAccess level so that you have access to the modding tools -OR- if you are at CCCamp19, as a gift to camping hackers, by finding mc.fly and giving any donation to Milliways you can get a testing key. From there you can download the full modding toolset as described on the [[Getting Started with the LevelKit]] pages, and add what ever you like by following any of the subsequent modding tutorials.<br />
<br />
You will need to place the Git repo into the "Assets>Levels" folder in your levelkit project to work on the Milliways mod.<br />
<br />
[[File:LevelKitLocationForRepo.png|thumb|400px|none|Where to find the Models in the repo]]<br />
<br />
If you want to make changes to the Map you need to remember the Unity scenes themselves are not mergeable, so instead MAKE A NEW scene that we can copy stuff over from into the MASTER scene so as to avoid conflicts.<br />
<br />
'''DO NOT WORK DIRECTLY IN THE MASTER .unity SCENE!!'''<br />
<br />
Instead you can use the multilevel functionality in Unity and have the master scene in the background for reference, and work in a new scene you have made over the top of it.<br />
<br />
If you have any trouble or questions just ask @devteam in the #modding channel on our [[https://discord.gg/semaeopus Discord]].<br />
<br />
Looking forward to seeing your mods!<br />
<br />
==The Plan==<br />
<br />
A life like (if slightly stylised and low poly) version of the camp setup based on the plans made ahead of time and some of the organic chaos that always occurs during buildup.<br />
<br />
[https://www.google.nl/maps/@53.031617,13.3095851,176m/data=!3m1!1e3 Top down image of camp in google maps]<br /><br />
[http://desertdomes.com/dome2calc.html The 2 geodesic domes of Milliways]<br /><br />
[https://www.milliways.info/cccamp19-map/dist/#/cccamp19-map/dist/?map=19/53.032397224450875/13.309209459832848 Structures of Milliways]<br />
<br />
[[File:Chaos Communication Camp 2015 aerial.jpg|thumb|400px|none|Aerial shot of CCCamp 2015]]<br />
<br />
[[File:CCCamp2019 MapBase.png|thumb|400px|none|Main Hub for CCCamp 2019]]<br />
<br />
===Locations===<br />
====The Iconic Milliways Dome ====<br />
This is the central hub of every Milliways village<br />
<br />
[[File:Geodesic_Dome_01.jpg|thumb|400px|none|Geodesic Dome at night]]<br />
<br />
====The Bar====<br />
There is always a free flowing beer tap at the Bar<br />
<br />
[[File:Beer_Bar.jpg|thumb|400px|none|The Bar in 2019]]<br />
<br />
====The Kitchen====<br />
Milliways puts on a full size professional catering kitchen to feed all the hungry hackers.<br />
<br />
[[File:Milliways Kitchen.jpg|thumb|400px|none|The Kitchen in 2019]]<br />
<br />
This often includes a dedicated bakery<br />
====The Rummery====<br />
An important section of camp and where all the lizards hangout.<br />
====The OFF GRID annex====<br />
Probably a computer in the main Milliways dome. A small addition to camp that is demoing the game that you are playing ... meta.<br />
<br />
== What is in the mod?==<br />
Well we have some ideas, but surely you do too?<br />
<br />
===Things that need to be built===<br />
This is a list of Props and models that the community could make for the mod.<br />
We already have some things in production like trees, big tents and other specific things, so this list might change as we approach the event.<br />
<br />
'''Most of the stuff has been modeled already, so we would like to see some more crazy things like:'''<br />
* Airplanes (real big airplanes with cool lights to place around the camp)<br />
* More bushes and trees. Check the ones we did and try to make some more nature stuff<br />
* Structures. There are a bunch of structures we won't do as they are too big or we don't have the time. Maybe you can?<br />
* Any crazy things you can think of!<br />
<br />
Design rules for creating the models are [[Asset_Creation_Pipeline|here]]<br />
<br />
'''Complete list of models already created'''<br />
* The CCC Rocket. One actual size and one extra big.<br />
* Tent, big. Door optional<br />
* Tent, medium. Door optional<br />
* Tent, micro. Door optional<br />
* Kitchen tent<br />
* Food tent<br />
* Trees and bushes<br />
* 5 Big Hot Air Balloon<br />
* 5 Medium Hot Air Balloon<br />
* Market Stall<br />
* Geodesic Dome <br />
* Watch Tower<br />
* 3 types of Whisky bottles<br />
* Big 3D Chaos Camp sign<br />
* Big 3D logo of Milliways<br />
* Commercial Drone<br />
* Disco ball<br />
* Plastic chair<br />
* Beer Keg<br />
<br />
[[File:Milliways_Assets.png|thumb|600px|none|Assets for Milliways Mod]]<br />
<br />
[[File:Milliways Trees.png|thumb|600px|none|Trees for Milliways Mod and OFF GRID]]<br />
<br />
===Player Objectives and Things to do===<br />
====Conversations on Culture====<br />
Milliways attendees can add themselves as characters that can then have conversations with the player and educate them on an element of camp or hacker culture at large.<br />
=====To add your self as a character follow these steps=====<br />
* Add a Character table to the mission script and connect them to a network - instructions [[Character_Types_and_Prefabs|here]]<br />
* Create a Character profile for them to generate flutter and sms messages - instructions [[Character_Profiles|here]]<br />
* Create a conversation for them to have with the player and add the trigger to the mission script - instructions [[Conversations|here]]<br />
<br />
====Collect a Challenge Coin====<br />
Players should be able to give mc.fly a donation and collect a Milliways Challenge Coin.</div>Richhttp://wiki.offgridthegame.com/index.php?title=Milliways_CCCamp_mod&diff=1346Milliways CCCamp mod2020-04-08T19:39:04Z<p>Rich: </p>
<hr />
<div>Off Grid is being demo'd at [https://wiki.milliways.info/index.php?title=CCCamp_2019 Milliways] during [https://en.wikipedia.org/wiki/Chaos_Communication_Camp Chaos Communication Camp 2019] and so we decided to do something special with it, by making a mod of camp, during camp, streaming the process, and adding things to the mod as camp itself is being built!<br />
<br />
The streams themselves will take place on twitch.tv/semaeopus (and other reputable platforms) for the first 3 days of camp, and will feature some friends of Milliways who cannot make it to camp such as Lauri Love, pathfinder, March, and possibly a couple of others ;) <br />
<br />
The idea is for it to be a colloaborative project on [https://github.com/mcfly/OffGridMilliwaysMod], where anyone can make a pull request and add something to camp, whether that be themselves as a character, some props and environment models to make it all look more life like, a hackable device or project that someone has brought to camp IRL. Not only that, we intend this to be a living and ongoing project, that we add to at every camp and every congress, making it bigger, more complex and more in depth over time as a representation of everything Milliways and CCC. <br />
<br />
'''Come and join in on the stream, or better yet come to Milliways for a whisky, to play the game, and to watch the stream in good company!''' <br />
<br />
'''**This Stream has now passed but if you would like to watch the replay you can [https://www.youtube.com/watch?v=Dr6DOUTEuYA&t= check out the recording of the Milliways modding stream here].'''<br />
<br />
We have a couple of members of our [http://www.discord.gg/semaeopus Discord community] taking the lead, the core Off Grid team will be around to lend support. You can follow progress in the #modding channel on the Discord. <br />
<br />
You can watch the streams [https://www.twitch.tv/semaeopus here on Twitch].<br />
On [https://www.youtube.com/channel/UCS7dAS0ZyLvdG7zK7rUlweA Youtube] or in [https://mixer.com/Semaeopus Mixer].<br />
<br />
The times are listed on the [https://events.ccc.de/camp/2019/wiki/Session:Modding_Milliways_-_Low-poly_Whiskyleaks CCC Self Organised Session page]<br />
<br />
==How do I take part?==<br />
Well, are you at CCCamp or at home?<br />
<br />
At CCCamp: head to Milliways, check out the game and at the right times (1800h) on day 0,1,2,3 and at 2130h on Day2 during Whiskyleads. Catch the stream on a screen there.<br />
<br />
At home: Watch the Stream [https://www.twitch.tv/semaeopus here on Twitch]<br />
<br />
At home after CCCamp? Well the Git repo will be an ongoing thing even long after CCCamp19 has ended, make a pull request [https://github.com/IuriLeitaoMartinho/OffGridMilliwaysMod here] and contribute to it, or make your own mod from it!<br />
<br />
===Adding to the mod via git===<br />
There are a couple of ways that you can add to the mod:<br />
<br />
====Adding some props or models====<br />
The simplest way to add to the mod, doesn't require a copy of the game, just download the git repo [https://github.com/mcfly/OffGridMilliwaysMod here]. <br />
<br />
[[File:LevelAssets-LocationOnGit.png|thumb|400px|none|Where to find the Models in the repo]]<br />
<br />
You can then checkout the "LevelAssets" folder to look at the style and scale of existing props and make a model of a structure or an object at Camp and push it back up to that location in the repo. <br />
<br />
For more details on setting up your models to match our shaders and use vertex colours appropriately etc. you can follow this handy [[Asset Creation Pipeline]] guide!<br />
<br />
====Adding to the map layout or the mod itself====<br />
<br />
If you would like to add to the map of CCCamp there are a couple of additional steps:<br />
<br />
To do this you will need a copy of OFF GRID and the modding tools via Steam. For this you need to have backed OFF GRID during the Kickstarter at the #FirstAccess level so that you have access to the modding tools -OR- if you are at CCCamp19, as a gift to camping hackers, by finding mc.fly and giving any donation to Milliways you can get a testing key. From there you can download the full modding toolset as described on the [[Getting Started with the LevelKit]] pages, and add what ever you like by following any of the subsequent modding tutorials.<br />
<br />
You will need to place the Git repo into the "Assets>Levels" folder in your levelkit project to work on the Milliways mod.<br />
<br />
[[File:LevelKitLocationForRepo.png|thumb|400px|none|Where to find the Models in the repo]]<br />
<br />
If you want to make changes to the Map you need to remember the Unity scenes themselves are not mergeable, so instead MAKE A NEW scene that we can copy stuff over from into the MASTER scene so as to avoid conflicts.<br />
<br />
'''DO NOT WORK DIRECTLY IN THE MASTER .unity SCENE!!'''<br />
<br />
Instead you can use the multilevel functionality in Unity and have the master scene in the background for reference, and work in a new scene you have made over the top of it.<br />
<br />
If you have any trouble or questions just ask @devteam in the #modding channel on our [[https://discord.gg/semaeopus Discord]].<br />
<br />
Looking forward to seeing your mods!<br />
<br />
==The Plan==<br />
<br />
A life like (if slightly stylised and low poly) version of the camp setup based on the plans made ahead of time and some of the organic chaos that always occurs during buildup.<br />
<br />
[https://www.google.nl/maps/@53.031617,13.3095851,176m/data=!3m1!1e3 Top down image of camp in google maps]<br /><br />
[http://desertdomes.com/dome2calc.html The 2 geodesic domes of Milliways]<br /><br />
[https://www.milliways.info/cccamp19-map/dist/#/cccamp19-map/dist/?map=19/53.032397224450875/13.309209459832848 Structures of Milliways]<br />
<br />
[[File:Chaos Communication Camp 2015 aerial.jpg|thumb|400px|none|Aerial shot of CCCamp 2015]]<br />
<br />
[[File:CCCamp2019 MapBase.png|thumb|400px|none|Main Hub for CCCamp 2019]]<br />
<br />
===Locations===<br />
====The Iconic Milliways Dome ====<br />
This is the central hub of every Milliways village<br />
<br />
[[File:Geodesic_Dome_01.jpg|thumb|400px|none|Geodesic Dome at night]]<br />
<br />
====The Bar====<br />
There is always a free flowing beer tap at the Bar<br />
<br />
[[File:Beer_Bar.jpg|thumb|400px|none|The Bar in 2019]]<br />
<br />
====The Kitchen====<br />
Milliways puts on a full size professional catering kitchen to feed all the hungry hackers.<br />
<br />
[[File:Milliways Kitchen.jpg|thumb|400px|none|The Kitchen in 2019]]<br />
<br />
This often includes a dedicated bakery<br />
====The Rummery====<br />
An important section of camp and where all the lizards hangout.<br />
====The OFF GRID annex====<br />
Probably a computer in the main Milliways dome. A small addition to camp that is demoing the game that you are playing ... meta.<br />
<br />
== What is in the mod?==<br />
Well we have some ideas, but surely you do too?<br />
<br />
===Things that need to be built===<br />
This is a list of Props and models that the community could make for the mod.<br />
We already have some things in production like trees, big tents and other specific things, so this list might change as we approach the event.<br />
<br />
'''Most of the stuff has been modeled already, so we would like to see some more crazy things like:'''<br />
* Airplanes (real big airplanes with cool lights to place around the camp)<br />
* More bushes and trees. Check the ones we did and try to make some more nature stuff<br />
* Structures. There are a bunch of structures we won't do as they are too big or we don't have the time. Maybe you can?<br />
* Any crazy things you can think of!<br />
<br />
Design rules for creating the models are [[Asset_Creation_Pipeline|here]]<br />
<br />
'''Complete list of models already created'''<br />
* The CCC Rocket. One actual size and one extra big.<br />
* Tent, big. Door optional<br />
* Tent, medium. Door optional<br />
* Tent, micro. Door optional<br />
* Kitchen tent<br />
* Food tent<br />
* Trees and bushes<br />
* 5 Big Hot Air Balloon<br />
* 5 Medium Hot Air Balloon<br />
* Market Stall<br />
* Geodesic Dome <br />
* Watch Tower<br />
* 3 types of Whisky bottles<br />
* Big 3D Chaos Camp sign<br />
* Big 3D logo of Milliways<br />
* Commercial Drone<br />
* Disco ball<br />
* Plastic chair<br />
* Beer Keg<br />
<br />
[[File:Milliways_Assets.png|thumb|600px|none|Assets for Milliways Mod]]<br />
<br />
[[File:Milliways Trees.png|thumb|600px|none|Trees for Milliways Mod and OFF GRID]]<br />
<br />
===Player Objectives and Things to do===<br />
====Conversations on Culture====<br />
Milliways attendees can add themselves as characters that can then have conversations with the player and educate them on an element of camp or hacker culture at large.<br />
=====To add your self as a character follow these steps=====<br />
* Add a Character table to the mission script and connect them to a network - instructions [[Character_Types_and_Prefabs|here]]<br />
* Create a Character profile for them to generate flutter and sms messages - instructions [[Character_Profiles|here]]<br />
* Create a conversation for them to have with the player and add the trigger to the mission script - instructions [[Conversations|here]]<br />
<br />
====Collect a Challenge Coin====<br />
Players should be able to give mc.fly a donation and collect a Milliways Challenge Coin.</div>Richhttp://wiki.offgridthegame.com/index.php?title=Milliways_CCCamp_mod&diff=1345Milliways CCCamp mod2020-04-08T19:38:33Z<p>Rich: </p>
<hr />
<div>Off Grid is being demo'd at [https://wiki.milliways.info/index.php?title=CCCamp_2019 Milliways] during [https://en.wikipedia.org/wiki/Chaos_Communication_Camp Chaos Communication Camp 2019] and so we decided to do something special with it, by making a mod of camp, during camp, streaming the process, and adding things to the mod as camp itself is being built!<br />
<br />
The streams themselves will take place on twitch.tv/semaeopus (and other reputable platforms) for the first 3 days of camp, and will feature some friends of Milliways who cannot make it to camp such as Lauri Love, pathfinder, March, and possibly a couple of others ;) <br />
<br />
The idea is for it to be a colloaborative project on [https://github.com/mcfly/OffGridMilliwaysMod], where anyone can make a pull request and add something to camp, whether that be themselves as a character, some props and environment models to make it all look more life like, a hackable device or project that someone has brought to camp IRL. Not only that, we intend this to be a living and ongoing project, that we add to at every camp and every congress, making it bigger, more complex and more in depth over time as a representation of everything Milliways and CCC. <br />
<br />
'''Come and join in on the stream, or better yet come to Milliways for a whisky, to play the game, and to watch the stream in good company!''' <br />
<br />
'''**This Stream has now passed but if you would like to watch the replay you can [https://www.youtube.com/watch?v=Dr6DOUTEuYA&t= check out the recording of the Milliways modding stream here].'''<br />
<br />
We have a couple of members of our [http://www.discord.gg/semaeopus Discord community] taking the lead, the core Off Grid team will be around to lend support. You can follow progress in the #modding channel on the Discord. <br />
<br />
You can watch the streams [https://www.twitch.tv/semaeopus here on Twitch].<br />
On [https://www.youtube.com/channel/UCS7dAS0ZyLvdG7zK7rUlweA Youtube] or in [https://mixer.com/Semaeopus Mixer].<br />
<br />
The times are listed on the [https://events.ccc.de/camp/2019/wiki/Session:Modding_Milliways_-_Low-poly_Whiskyleaks CCC Self Organised Session page]<br />
<br />
==How do I take part?==<br />
Well, are you at CCCamp or at home?<br />
<br />
At CCCamp: head to Milliways, check out the game and at the right times (1800h) on day 0,1,2,3 and at 2130h on Day2 during Whiskyleads. Catch the stream on a screen there.<br />
<br />
At home: Watch the Stream [https://www.twitch.tv/semaeopus here on Twitch]<br />
<br />
At home after CCCamp? Well the Git repo will be an ongoing thing even long after CCCamp19 has ended, make a pull request [https://github.com/IuriLeitaoMartinho/OffGridMilliwaysMod here] and contribute to it, or make your own mod from it!<br />
<br />
===Adding to the mod via git===<br />
There are a couple of ways that you can add to the mod:<br />
<br />
====Adding some props or models====<br />
The simplest way to add to the mod, doesn't require a copy of the game, just download the git repo [https://github.com/IuriLeitaoMartinho/OffGridMilliwaysMod here]. <br />
<br />
[[File:LevelAssets-LocationOnGit.png|thumb|400px|none|Where to find the Models in the repo]]<br />
<br />
You can then checkout the "LevelAssets" folder to look at the style and scale of existing props and make a model of a structure or an object at Camp and push it back up to that location in the repo. <br />
<br />
For more details on setting up your models to match our shaders and use vertex colours appropriately etc. you can follow this handy [[Asset Creation Pipeline]] guide! <br />
<br />
====Adding to the map layout or the mod itself====<br />
<br />
If you would like to add to the map of CCCamp there are a couple of additional steps:<br />
<br />
To do this you will need a copy of OFF GRID and the modding tools via Steam. For this you need to have backed OFF GRID during the Kickstarter at the #FirstAccess level so that you have access to the modding tools -OR- if you are at CCCamp19, as a gift to camping hackers, by finding mc.fly and giving any donation to Milliways you can get a testing key. From there you can download the full modding toolset as described on the [[Getting Started with the LevelKit]] pages, and add what ever you like by following any of the subsequent modding tutorials.<br />
<br />
You will need to place the Git repo into the "Assets>Levels" folder in your levelkit project to work on the Milliways mod.<br />
<br />
[[File:LevelKitLocationForRepo.png|thumb|400px|none|Where to find the Models in the repo]]<br />
<br />
If you want to make changes to the Map you need to remember the Unity scenes themselves are not mergeable, so instead MAKE A NEW scene that we can copy stuff over from into the MASTER scene so as to avoid conflicts.<br />
<br />
'''DO NOT WORK DIRECTLY IN THE MASTER .unity SCENE!!'''<br />
<br />
Instead you can use the multilevel functionality in Unity and have the master scene in the background for reference, and work in a new scene you have made over the top of it.<br />
<br />
If you have any trouble or questions just ask @devteam in the #modding channel on our [[https://discord.gg/semaeopus Discord]].<br />
<br />
Looking forward to seeing your mods!<br />
<br />
==The Plan==<br />
<br />
A life like (if slightly stylised and low poly) version of the camp setup based on the plans made ahead of time and some of the organic chaos that always occurs during buildup.<br />
<br />
[https://www.google.nl/maps/@53.031617,13.3095851,176m/data=!3m1!1e3 Top down image of camp in google maps]<br /><br />
[http://desertdomes.com/dome2calc.html The 2 geodesic domes of Milliways]<br /><br />
[https://www.milliways.info/cccamp19-map/dist/#/cccamp19-map/dist/?map=19/53.032397224450875/13.309209459832848 Structures of Milliways]<br />
<br />
[[File:Chaos Communication Camp 2015 aerial.jpg|thumb|400px|none|Aerial shot of CCCamp 2015]]<br />
<br />
[[File:CCCamp2019 MapBase.png|thumb|400px|none|Main Hub for CCCamp 2019]]<br />
<br />
===Locations===<br />
====The Iconic Milliways Dome ====<br />
This is the central hub of every Milliways village<br />
<br />
[[File:Geodesic_Dome_01.jpg|thumb|400px|none|Geodesic Dome at night]]<br />
<br />
====The Bar====<br />
There is always a free flowing beer tap at the Bar<br />
<br />
[[File:Beer_Bar.jpg|thumb|400px|none|The Bar in 2019]]<br />
<br />
====The Kitchen====<br />
Milliways puts on a full size professional catering kitchen to feed all the hungry hackers.<br />
<br />
[[File:Milliways Kitchen.jpg|thumb|400px|none|The Kitchen in 2019]]<br />
<br />
This often includes a dedicated bakery<br />
====The Rummery====<br />
An important section of camp and where all the lizards hangout.<br />
====The OFF GRID annex====<br />
Probably a computer in the main Milliways dome. A small addition to camp that is demoing the game that you are playing ... meta.<br />
<br />
== What is in the mod?==<br />
Well we have some ideas, but surely you do too?<br />
<br />
===Things that need to be built===<br />
This is a list of Props and models that the community could make for the mod.<br />
We already have some things in production like trees, big tents and other specific things, so this list might change as we approach the event.<br />
<br />
'''Most of the stuff has been modeled already, so we would like to see some more crazy things like:'''<br />
* Airplanes (real big airplanes with cool lights to place around the camp)<br />
* More bushes and trees. Check the ones we did and try to make some more nature stuff<br />
* Structures. There are a bunch of structures we won't do as they are too big or we don't have the time. Maybe you can?<br />
* Any crazy things you can think of!<br />
<br />
Design rules for creating the models are [[Asset_Creation_Pipeline|here]]<br />
<br />
'''Complete list of models already created'''<br />
* The CCC Rocket. One actual size and one extra big.<br />
* Tent, big. Door optional<br />
* Tent, medium. Door optional<br />
* Tent, micro. Door optional<br />
* Kitchen tent<br />
* Food tent<br />
* Trees and bushes<br />
* 5 Big Hot Air Balloon<br />
* 5 Medium Hot Air Balloon<br />
* Market Stall<br />
* Geodesic Dome <br />
* Watch Tower<br />
* 3 types of Whisky bottles<br />
* Big 3D Chaos Camp sign<br />
* Big 3D logo of Milliways<br />
* Commercial Drone<br />
* Disco ball<br />
* Plastic chair<br />
* Beer Keg<br />
<br />
[[File:Milliways_Assets.png|thumb|600px|none|Assets for Milliways Mod]]<br />
<br />
[[File:Milliways Trees.png|thumb|600px|none|Trees for Milliways Mod and OFF GRID]]<br />
<br />
===Player Objectives and Things to do===<br />
====Conversations on Culture====<br />
Milliways attendees can add themselves as characters that can then have conversations with the player and educate them on an element of camp or hacker culture at large.<br />
=====To add your self as a character follow these steps=====<br />
* Add a Character table to the mission script and connect them to a network - instructions [[Character_Types_and_Prefabs|here]]<br />
* Create a Character profile for them to generate flutter and sms messages - instructions [[Character_Profiles|here]]<br />
* Create a conversation for them to have with the player and add the trigger to the mission script - instructions [[Conversations|here]]<br />
<br />
====Collect a Challenge Coin====<br />
Players should be able to give mc.fly a donation and collect a Milliways Challenge Coin.</div>Richhttp://wiki.offgridthegame.com/index.php?title=UI_Lua_API&diff=1339UI Lua API2019-11-19T18:18:06Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= UI =<br />
== Description ==<br />
The UI API allows modders to control UI elements of the game<br />
== Functions ==<br />
=== ToggleClock ===<br />
<syntaxhighlight source lang="lua">UI.ToggleClock(state)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| state || bool<br />
|}<br />
'''Description''': Toggles the clock hud element<br />
<br />
'''Returns''': Nothing<br />
<br />
=== ToggleWeather ===<br />
<syntaxhighlight source lang="lua">UI.ToggleWeather(state)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| state || bool<br />
|}<br />
'''Description''': Toggles the weather hud element<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SetDataViewState ===<br />
<syntaxhighlight source lang="lua">UI.SetDataViewState(state)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| state || bool<br />
|}<br />
'''Description''': Sets the state of the data view<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': This can be used for dramatic effect when certain story elements trigger<br />
=== ToggleDebugUI ===<br />
<syntaxhighlight source lang="lua">UI.ToggleDebugUI(state)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| state || bool<br />
|}<br />
'''Description''': Toggles the developer debug UI<br />
<br />
'''Returns''': Nothing<br />
<br />
<span style="color:#009000">'''Tip'''</span>: This can be helpful for debugging your mods!<br />
=== OpenRemoteConnection ===<br />
<syntaxhighlight source lang="lua">UI.OpenRemoteConnection(missionObject)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| missionObject || MissionObject<br />
|}<br />
'''Description''': Opens SSH connection to currently targeted device<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SetRadialScanState ===<br />
<syntaxhighlight source lang="lua">UI.SetRadialScanState(shouldScan)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| shouldScan || bool<br />
|}<br />
'''Description''': Control if the radial menu should be scanning for targets<br />
<br />
'''Returns''': Nothing<br />
<br />
=== ToggleUIMarkers ===<br />
<syntaxhighlight source lang="lua">UI.ToggleUIMarkers(state)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| state || bool<br />
|}<br />
'''Description''': Show/Hide UI markers for hackable and interactable objects near the player.<br />
<br />
'''Returns''': Nothing<br />
<br />
=== ShowHint ===<br />
<syntaxhighlight source lang="lua">UI.ShowHint(message, timeout)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| message || string<br />
|-<br />
| timeout || number (optional)<br />
|}<br />
'''Description''': Displays a hint message. Multiple messages will stack on screen but don't go too crazy...<br />
<br />
'''Returns''': Nothing<br />
<br />
<span style="color:#009000">'''Tip'''</span>: These should mainly be used as additioanl help to the player, outside of the context of the game world. <br />
=== ShowModalMessage ===<br />
<syntaxhighlight source lang="lua">UI.ShowModalMessage(luaMessage)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| luaMessage || Lua Table<br />
|}<br />
'''Description''': Displays a modal, multiple calls to this will cause a stack of modals the user can click through<br />
<br />
'''Returns''': Nothing<br />
<br />
<span style="color:#009000">'''Tip'''</span>: These can be helpful to display story context and tutorialise hacking puzzles<br />
=== ShowPopUp ===<br />
<syntaxhighlight source lang="lua">UI.ShowPopUp(type, header, message, timeout)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| type || OffGridPopup+PopupTypes<br />
|-<br />
| header || string<br />
|-<br />
| message || string<br />
|-<br />
| timeout || number (optional)<br />
|}<br />
'''Description''': Displays a small pop up in the centre of the screen<br />
<br />
'''Returns''': Nothing<br />
<br />
=== ShowNotification ===<br />
<syntaxhighlight source lang="lua">UI.ShowNotification(type, header, message, timeout)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| type || OffGridNotification+NotificationTypes<br />
|-<br />
| header || string<br />
|-<br />
| message || string<br />
|-<br />
| timeout || number (optional)<br />
|}<br />
'''Description''': Displays a notification pop up in the top right corner of the screen<br />
<br />
'''Returns''': Nothing<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Timeline_Lua_API&diff=1338Timeline Lua API2019-11-19T18:16:48Z<p>Rich: Created page with "<!-- This file is auto generated, please don't edit manually! --> = Timeline = == Description == Allows controlling Timelines on MissionObjects == Functions == === Play === <s..."</p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Timeline =<br />
== Description ==<br />
Allows controlling Timelines on MissionObjects<br />
== Functions ==<br />
=== Play ===<br />
<syntaxhighlight source lang="lua">Timeline.Play(missionObjectName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| missionObjectName || string<br />
|}<br />
'''Description''': Starts the timeline<br />
<br />
'''Returns''': Nothing<br />
<br />
=== Pause ===<br />
<syntaxhighlight source lang="lua">Timeline.Pause(missionObjectName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| missionObjectName || string<br />
|}<br />
'''Description''': Pauses the timeline<br />
<br />
'''Returns''': Nothing<br />
<br />
=== Stop ===<br />
<syntaxhighlight source lang="lua">Timeline.Stop(missionObjectName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| missionObjectName || string<br />
|}<br />
'''Description''': Stops the timeline<br />
<br />
'''Returns''': Nothing<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Spectrum_Lua_API&diff=1337Spectrum Lua API2019-11-19T18:15:40Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Spectrum =<br />
== Description ==<br />
The Spectrum api allows the manipulation of data points within the game world<br />
== Functions ==<br />
=== DeleteDataPoint ===<br />
<syntaxhighlight source lang="lua">Spectrum.DeleteDataPoint(dataPoint)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| dataPoint || DataPoint<br />
|}<br />
'''Description''': Deletes the passed in data point<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SaveDataPoint ===<br />
<syntaxhighlight source lang="lua">Spectrum.SaveDataPoint(dataPoint)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| dataPoint || DataPoint<br />
|}<br />
'''Description''': Saves currently targeted data point to the players data inventory<br />
<br />
'''Returns''': Nothing<br />
<br />
=== FilterClear ===<br />
<syntaxhighlight source lang="lua">Spectrum.FilterClear()</syntaxhighlight><br />
'''Description''': Clear the Filter<br />
<br />
'''Returns''': Nothing<br />
<br />
=== FilterType (int, bool) ===<br />
<syntaxhighlight source lang="lua">Spectrum.FilterType (int, bool)(t, on)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| t || number<br />
|-<br />
| on || bool<br />
|}<br />
'''Description''': Filter which types of Data Spectrum shows<br />
<br />
'''Returns''': Nothing<br />
<br />
=== FilterCreator ===<br />
<syntaxhighlight source lang="lua">Spectrum.FilterCreator(creator)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| creator || DataPoint<br />
|}<br />
'''Description''': Shows only Data from the Creator of the specified DataPoint. Pass nil to clear<br />
<br />
'''Returns''': Nothing<br />
<br />
=== FilterNetwork ===<br />
<syntaxhighlight source lang="lua">Spectrum.FilterNetwork(network)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| network || DataPoint<br />
|}<br />
'''Description''': Shows only Data from the Network of the specified DataPoint. Pass nil to clear<br />
<br />
'''Returns''': Nothing<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Sound_Lua_API&diff=1336Sound Lua API2019-11-19T18:14:16Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Sound =<br />
== Description ==<br />
The sound API allows modders to trigger sound events in game<br />
== Functions ==<br />
=== TriggerEvent ===<br />
<syntaxhighlight source lang="lua">Sound.TriggerEvent(eventName, sourceName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| eventName || string<br />
|-<br />
| sourceName || string<br />
|}<br />
'''Description''': Triggers a sound even with name ''eventName''<br />
<br />
'''Returns''': The event id, this can be used in other sound API functions (see [[#StopAudio|StopAudio]])<br />
<br />
'''Notes''': If _sourceName_ is not provided the sound will be played as a '2D' event<br />
=== SetRTPC ===<br />
<syntaxhighlight source lang="lua">Sound.SetRTPC(sourceName, RTPCName, value)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| sourceName || string<br />
|-<br />
| RTPCName || string<br />
|-<br />
| value || number<br />
|}<br />
'''Description''': Set Real-Time Parameter Curve for an audio event playign on this object<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': You need to have started an audio event on this object before tryign to use SetRTPC, and that event must have RTPC control for something.<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Scheduler_Lua_API&diff=1335Scheduler Lua API2019-11-19T18:13:50Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Scheduler =<br />
== Description ==<br />
The Scheduler api allows users to Schedule callback events based on specific time values<br />
== Functions ==<br />
=== CallInSecsWorld ===<br />
<syntaxhighlight source lang="lua">Scheduler.CallInSecsWorld(func, timeInSecs)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| func || Lua Type<br />
|-<br />
| timeInSecs || number<br />
|}<br />
'''Description''': Schedule a lua function to be called in timeInSecs world time (1 sec real time = 3 secs world<br />
<br />
'''Returns''': The id of the scheduled event<br />
<br />
=== CallInSecsReal ===<br />
<syntaxhighlight source lang="lua">Scheduler.CallInSecsReal(func, timeInSecs)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| func || Lua Type<br />
|-<br />
| timeInSecs || number<br />
|}<br />
'''Description''': Schedule a lua function to be called in timeInSecs real time<br />
<br />
'''Returns''': The id of the scheduled event<br />
<br />
=== CallInSecs ===<br />
<syntaxhighlight source lang="lua">Scheduler.CallInSecs(func, timeInSecs)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| func || Lua Type<br />
|-<br />
| timeInSecs || number<br />
|}<br />
'''Description''': Schedule a lua function to be called in timeInSecs scaled time<br />
<br />
'''Returns''': The id of the scheduled event<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Player_Lua_API&diff=1334Player Lua API2019-11-19T18:13:02Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Player =<br />
== Description ==<br />
The Player API handles querying and setting the state of the player<br />
== Functions ==<br />
=== AddItemToInventory ===<br />
<syntaxhighlight source lang="lua">Player.AddItemToInventory(itemTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| itemTable || Lua Type<br />
|}<br />
'''Description''': Adds an item to the players inventory (silently, wihtout a notification. Also check Mission.SendData() ).<br />
<br />
'''Returns''': Nothing<br />
<br />
=== RemoveItemFromInventory ===<br />
<syntaxhighlight source lang="lua">Player.RemoveItemFromInventory(itemTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| itemTable || Lua Type<br />
|}<br />
'''Description''': Removes an item to the players inventory<br />
<br />
'''Returns''': Nothing<br />
<br />
=== HasItem ===<br />
<syntaxhighlight source lang="lua">Player.HasItem(itemName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| itemName || string<br />
|}<br />
'''Description''': Is an item in the players inventory<br />
<br />
'''Returns''': true if the item is in the players inventory, else false<br />
<br />
=== ClearInventory ===<br />
<syntaxhighlight source lang="lua">Player.ClearInventory()</syntaxhighlight><br />
'''Description''': Removes all items from the players inventory<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SetPlayerNFCData ===<br />
<syntaxhighlight source lang="lua">Player.SetPlayerNFCData(dataTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| dataTable || Lua Type<br />
|}<br />
'''Description''': Sets the NFC data on the players phone<br />
<br />
'''Returns''': Nothing<br />
<br />
=== AddDataFile ===<br />
<syntaxhighlight source lang="lua">Player.AddDataFile(dataTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| dataTable || Lua Type<br />
|}<br />
'''Description''': Adds a data file directly to the players data inventory without a sender<br />
<br />
'''Returns''': Nothing<br />
<br />
=== ClearDataInventory ===<br />
<syntaxhighlight source lang="lua">Player.ClearDataInventory()</syntaxhighlight><br />
'''Description''': Removes all data files from the players data inventory<br />
<br />
'''Returns''': Nothing<br />
<br />
=== ItemInQuickSlot ===<br />
<syntaxhighlight source lang="lua">Player.ItemInQuickSlot()</syntaxhighlight><br />
'''Description''': Gets the name of the item currently in the players quick slot<br />
<br />
'''Returns''': string<br />
<br />
=== HasDataFile ===<br />
<syntaxhighlight source lang="lua">Player.HasDataFile(dataFileName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| dataFileName || string<br />
|}<br />
'''Description''': Does the player have a data file with this name?<br />
<br />
'''Returns''': bool<br />
<br />
=== HasEncryptedFile ===<br />
<syntaxhighlight source lang="lua">Player.HasEncryptedFile(dataFileName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| dataFileName || string<br />
|}<br />
'''Description''': Does the player have a file with the name _dataFileName_ and is it encrypted?<br />
<br />
'''Returns''': bool<br />
<br />
=== HasDecryptedFile ===<br />
<syntaxhighlight source lang="lua">Player.HasDecryptedFile(dataFileName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| dataFileName || string<br />
|}<br />
'''Description''': Does the player have a file with the name _dataFileName_ and is it unencrypted?<br />
<br />
'''Returns''': bool<br />
<br />
=== GetDataString ===<br />
<syntaxhighlight source lang="lua">Player.GetDataString(internalName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| internalName || string<br />
|}<br />
'''Description''': Returns the data string of a file in the players inventory, takes in the internal name of the file<br />
<br />
'''Returns''': string<br />
<br />
=== SetDataString ===<br />
<syntaxhighlight source lang="lua">Player.SetDataString(internalName, newString)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| internalName || string<br />
|-<br />
| newString || string<br />
|}<br />
'''Description''': Sets the data string of a data file in the players data inventory<br />
<br />
'''Returns''': Nothing<br />
<br />
=== GetAllDataFileNames ===<br />
<syntaxhighlight source lang="lua">Player.GetAllDataFileNames()</syntaxhighlight><br />
'''Description''': Return internalNames of all files in the players data inventory<br />
<br />
'''Returns''': System.String[]<br />
<br />
=== GetAllDataFiles ===<br />
<syntaxhighlight source lang="lua">Player.GetAllDataFiles()</syntaxhighlight><br />
'''Description''': Return a table of all files in the players data inventory<br />
<br />
'''Returns''': Lua Type<br />
<br />
=== SendData ===<br />
<syntaxhighlight source lang="lua">Player.SendData(internalName, receiver)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| internalName || Lua Type<br />
|-<br />
| receiver || Lua Type<br />
|}<br />
'''Description''': Send a file from player's inventory to receiver<br />
<br />
'''Returns''': Nothing<br />
<br />
=== GetSocialProfileSize ===<br />
<syntaxhighlight source lang="lua">Player.GetSocialProfileSize(internalName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| internalName || string<br />
|}<br />
'''Description''': Returns the size of the background profile player has collected about a character<br />
<br />
'''Returns''': number<br />
<br />
=== SocialProfileContainsTag ===<br />
<syntaxhighlight source lang="lua">Player.SocialProfileContainsTag(internalName, tag)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| internalName || string<br />
|-<br />
| tag || string<br />
|}<br />
'''Description''': Returns true if social profile contains any character data with specified tag<br />
<br />
'''Returns''': bool<br />
<br />
=== SocialProfileContainsTagData ===<br />
<syntaxhighlight source lang="lua">Player.SocialProfileContainsTagData(internalName, tag, data)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| internalName || string<br />
|-<br />
| tag || string<br />
|-<br />
| data || string<br />
|}<br />
'''Description''': Returns true if social profile contains character data matching both tag and data<br />
<br />
'''Returns''': bool<br />
<br />
=== SocialProfileContainsData ===<br />
<syntaxhighlight source lang="lua">Player.SocialProfileContainsData(internalName, data)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| internalName || string<br />
|-<br />
| data || string<br />
|}<br />
'''Description''': Returns true if social profile contains specified character data (regardless of it's tag)<br />
<br />
'''Returns''': bool<br />
<br />
=== AddSocialProfileInformation ===<br />
<syntaxhighlight source lang="lua">Player.AddSocialProfileInformation(internalName, tag, data)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| internalName || string<br />
|-<br />
| tag || string<br />
|-<br />
| data || string<br />
|}<br />
'''Description''': Add new background data about a character to SocialInventory<br />
<br />
'''Returns''': Nothing<br />
<br />
=== GetSocialProfileInformation ===<br />
<syntaxhighlight source lang="lua">Player.GetSocialProfileInformation(internalName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| internalName || string<br />
|}<br />
'''Description''': Get all known background data about a character from player's SocialInventory<br />
<br />
'''Returns''': Lua Type<br />
<br />
=== GetPlayerTrackingState ===<br />
<syntaxhighlight source lang="lua">Player.GetPlayerTrackingState()</syntaxhighlight><br />
'''Description''': Get current tracking state from Player's phone.<br />
<br />
'''Returns''': PlayerPhone+TrackingStates<br />
<br />
=== GetPlayerNetPointsCount ===<br />
<syntaxhighlight source lang="lua">Player.GetPlayerNetPointsCount()</syntaxhighlight><br />
'''Description''': Get current tracking state from Player's phone.<br />
<br />
'''Returns''': number<br />
<br />
=== SetPlayerNetPointsCount ===<br />
<syntaxhighlight source lang="lua">Player.SetPlayerNetPointsCount(count)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| count || number<br />
|}<br />
'''Description''': Get current tracking state from Player's phone.<br />
<br />
'''Returns''': Nothing<br />
<br />
=== GetPlayerNetPointsCount ===<br />
<syntaxhighlight source lang="lua">Player.GetPlayerNetPointsCount(count)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| count || number<br />
|}<br />
'''Description''': Get current tracking state from Player's phone.<br />
<br />
'''Returns''': Nothing<br />
<br />
=== GetPlayerNetPointsCount ===<br />
<syntaxhighlight source lang="lua">Player.GetPlayerNetPointsCount(count)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| count || number<br />
|}<br />
'''Description''': Get current tracking state from Player's phone.<br />
<br />
'''Returns''': Nothing<br />
<br />
=== GetName ===<br />
<syntaxhighlight source lang="lua">Player.GetName()</syntaxhighlight><br />
'''Description''': Get the Player's internalName<br />
<br />
'''Returns''': string<br />
<br />
=== GetLightLevel ===<br />
<syntaxhighlight source lang="lua">Player.GetLightLevel()</syntaxhighlight><br />
'''Description''': Get the light level around the player<br />
<br />
'''Returns''': number<br />
<br />
=== SetAlwaysRagdoll ===<br />
<syntaxhighlight source lang="lua">Player.SetAlwaysRagdoll(state)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| state || bool<br />
|}<br />
'''Description''': Player character aways ragdolls on death<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SetInvisible ===<br />
<syntaxhighlight source lang="lua">Player.SetInvisible(state)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| state || bool<br />
|}<br />
'''Description''': Player character is invisible<br />
<br />
'''Returns''': Nothing<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Particles_Lua_API&diff=1333Particles Lua API2019-11-19T18:11:39Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Particles =<br />
== Description ==<br />
<br />
The Particles API allows modders to trigger behaviours on the particle systems attached to mission objects and their children.<br />
For more information see [https://docs.unity3d.com/Manual/class-ParticleSystem.html Unity's documentation] on Particle Systems<br />
== Functions ==<br />
=== Play ===<br />
<syntaxhighlight source lang="lua">Particles.Play(deviceName, searchChildren)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|-<br />
| searchChildren || bool (optional)<br />
|}<br />
'''Description''': Sets the particle system into play mode and beings emitting<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': Sets the particle systems into play mode and enables emitting (if it has been disabled).<br />
If the particle system has been paused, then this resumes playing from the previous time.<br />
If the particle system has stopped, then the system starts from time 0, and, if it is relevant, the startDelay is applied.<br />
=== Pause ===<br />
<syntaxhighlight source lang="lua">Particles.Pause(deviceName, searchChildren)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|-<br />
| searchChildren || bool (optional)<br />
|}<br />
'''Description''': Pauses playing the particle system.<br />
<br />
'''Returns''': Nothing<br />
<br />
=== Stop ===<br />
<syntaxhighlight source lang="lua">Particles.Stop(deviceName, searchChildren)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|-<br />
| searchChildren || bool (optional)<br />
|}<br />
'''Description''': Stops playing the particle system.<br />
<br />
'''Returns''': Nothing<br />
<br />
=== Toggle ===<br />
<syntaxhighlight source lang="lua">Particles.Toggle(deviceName, searchChildren)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|-<br />
| searchChildren || bool (optional)<br />
|}<br />
'''Description''': Toggles the particle system playing<br />
<br />
'''Returns''': Nothing<br />
<br />
=== Emit ===<br />
<syntaxhighlight source lang="lua">Particles.Emit(deviceName, count, searchChildren)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|-<br />
| count || number<br />
|-<br />
| searchChildren || bool (optional)<br />
|}<br />
'''Description''': Emit _count_ particles immediately.<br />
<br />
'''Returns''': Nothing<br />
<br />
=== IsPlaying ===<br />
<syntaxhighlight source lang="lua">Particles.IsPlaying(deviceName, searchChildren)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|-<br />
| searchChildren || bool (optional)<br />
|}<br />
'''Description''': Is the particle system playing right now?<br />
<br />
'''Returns''': bool<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Noise_Lua_API&diff=1332Noise Lua API2019-11-19T18:08:05Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Noise =<br />
== Description ==<br />
The Noise system provides a method of producing sounds that the AI can be aware of and respond to.<br />
<br />
<br />
== Tables ==<br />
=== Noise ===<br />
Table representing a noise<br />
<br />
'''Table definition'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type !! Default !! Optional !! Description<br />
|-<br />
| soundName || string || || No || The name of the sound event<br />
|-<br />
| attraction || number || || No || How much attraction this noise will cause (range 0-1)<br />
|-<br />
| volume || number || 1.0 || Yes || The volume of the sound event (range (0-1)<br />
|-<br />
| duration || number || 0.0 || Yes || How long does this noise last? 0 will loop the sound and require it to be explicitly ended<br />
|-<br />
| trusted || boolean || false || Yes || Whether this noise is trusted by AIs<br />
|}<br />
== Functions ==<br />
=== Emit ===<br />
<syntaxhighlight source lang="lua">Noise.Emit(deviceName, noiseTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|-<br />
| noiseTable || Lua Table<br />
|}<br />
'''Description''': Emits a noise from deviceName with attributes in noiseTable<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': Attraction value is required, volume is optional (default 1.0), as is duration (defaults to 0, which loops the sound).<br />
=== Silence ===<br />
<syntaxhighlight source lang="lua">Noise.Silence(deviceName, noiseTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|-<br />
| noiseTable || Lua Table<br />
|}<br />
'''Description''': Silences the noise<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': Silences the noise, principally from an AI perspective. Will attempt to stop the audio if this noise was set up with an end event.<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Network_Lua_API&diff=1331Network Lua API2019-11-19T18:07:02Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Network =<br />
== Description ==<br />
Allows modders to trigger network operations<br />
== Functions ==<br />
=== CreateDataPoint ===<br />
<syntaxhighlight source lang="lua">Network.CreateDataPoint(locationObject, characterName, dataPoint, dataNetwork)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| locationObject || string<br />
|-<br />
| characterName || string<br />
|-<br />
| dataPoint || Lua Type<br />
|-<br />
| dataNetwork || Lua Table<br />
|}<br />
'''Description''': Create a DataPoint in a specific place, from a specific character, with pre filled in data.<br />
<br />
'''Returns''': Nothing<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Mission_Lua_API&diff=1330Mission Lua API2019-11-19T18:05:51Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Mission =<br />
== Description ==<br />
The Mission API controls the flow of the mission, this includes starting and stopping the mission, triggering hints and messages and sending data between varying mission characters<br />
== Functions ==<br />
=== MissionStarted ===<br />
<syntaxhighlight source lang="lua">Mission.MissionStarted()</syntaxhighlight><br />
'''Description''': This should be called once the initial state of the mission has been set<br />
It will cause the game to begin gameplay<br />
<br />
'''Returns''': Nothing<br />
<br />
=== MissionCompleted ===<br />
<syntaxhighlight source lang="lua">Mission.MissionCompleted()</syntaxhighlight><br />
'''Description''': This should be called when the final objective of the mission has been completed<br />
It will trigger the game to fade to black and return to the main menu<br />
<br />
'''Returns''': Nothing<br />
<br />
=== MissionFailed ===<br />
<syntaxhighlight source lang="lua">Mission.MissionFailed()</syntaxhighlight><br />
'''Description''': This function will fail the current mission, as if Joe had been tazed (or similar).<br />
<br />
'''Returns''': Nothing<br />
<br />
=== AddCharacter ===<br />
<syntaxhighlight source lang="lua">Mission.AddCharacter(characterTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| characterTable || Lua Table<br />
|}<br />
'''Description''': Register and spawn a chracter in the game<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SendMessageToPlayer ===<br />
<syntaxhighlight source lang="lua">Mission.SendMessageToPlayer(sender, message)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| sender || string<br />
|-<br />
| message || string<br />
|}<br />
'''Description''': Send an SMS with the contents _message_ from ''sender''<br />
<br />
'''Returns''': Nothing<br />
<br />
=== AddNetwork ===<br />
<syntaxhighlight source lang="lua">Mission.AddNetwork(networkTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| networkTable || Lua Table<br />
|}<br />
'''Description''': Register a network to the game<br />
<br />
'''Returns''': Nothing<br />
<br />
=== ConnectToNetwork ===<br />
<syntaxhighlight source lang="lua">Mission.ConnectToNetwork(connector, targetNetwork, accessKey)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| connector || Lua Type<br />
|-<br />
| targetNetwork || Lua Type<br />
|-<br />
| accessKey || string<br />
|}<br />
'''Description''': Connect a device to a specified network<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SendData ===<br />
<syntaxhighlight source lang="lua">Mission.SendData(sender, receiver, dataTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| sender || Lua Type<br />
|-<br />
| receiver || Lua Type<br />
|-<br />
| dataTable || Lua Table<br />
|}<br />
'''Description''': Send a data file from one device to another<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': Much like _ConnectToNetwork_ both _senderName_ and _receiverName_ can be character names (assuming those characters have net devices)<br />
=== SetNetDeviceNFCData ===<br />
<syntaxhighlight source lang="lua">Mission.SetNetDeviceNFCData(deviceTable, dataTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceTable || Lua Table<br />
|-<br />
| dataTable || Lua Table<br />
|}<br />
'''Description''': Sets NFC data on a mission object<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SetNetDeviceNFC ===<br />
<syntaxhighlight source lang="lua">Mission.SetNetDeviceNFC(deviceTable, enabled)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceTable || Lua Table<br />
|-<br />
| enabled || bool<br />
|}<br />
'''Description''': Set if a mission object supports NFCAddNetDevice<br />
<br />
'''Returns''': Nothing<br />
<br />
=== AddNetDevice ===<br />
<syntaxhighlight source lang="lua">Mission.AddNetDevice(deviceTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceTable || Lua Table<br />
|}<br />
'''Description''': Add a network device to the mission that's not hackable but can communicate with other devices<br />
<br />
'''Returns''': Nothing<br />
<br />
=== AddHackableDevice ===<br />
<syntaxhighlight source lang="lua">Mission.AddHackableDevice(deviceTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceTable || Lua Table<br />
|}<br />
'''Description''': Add a hackable device to the mission<br />
<br />
'''Returns''': Nothing<br />
<br />
=== ObjectiveIsActive ===<br />
<syntaxhighlight source lang="lua">Mission.ObjectiveIsActive(objectiveName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| objectiveName || string<br />
|}<br />
'''Description''': Returns true if objective has been started but not completed yet.<br />
<br />
'''Returns''': bool<br />
<br />
=== ObjectiveIsCompleted ===<br />
<syntaxhighlight source lang="lua">Mission.ObjectiveIsCompleted(objectiveName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| objectiveName || string<br />
|}<br />
'''Description''': Returns true if objective has been completed.<br />
<br />
'''Returns''': bool<br />
<br />
=== StartObjective ===<br />
<syntaxhighlight source lang="lua">Mission.StartObjective(objectiveTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| objectiveTable || Lua Table<br />
|}<br />
'''Description''': Start the provided objective<br />
<br />
'''Returns''': Nothing<br />
<br />
=== CompleteObjective ===<br />
<syntaxhighlight source lang="lua">Mission.CompleteObjective(objectiveTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| objectiveTable || Lua Table<br />
|}<br />
'''Description''': Complete the provided objective<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SendNextHint ===<br />
<syntaxhighlight source lang="lua">Mission.SendNextHint(objectiveTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| objectiveTable || Lua Table<br />
|}<br />
'''Description''': Send the next hint in the Objective's hint array<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SendNextMessage ===<br />
<syntaxhighlight source lang="lua">Mission.SendNextMessage(fromCharacter, objectiveTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| fromCharacter || Lua Table<br />
|-<br />
| objectiveTable || Lua Table<br />
|}<br />
'''Description''': Send the next message in the Objective's message array from ''fromCharacter''<br />
<br />
'''Returns''': Nothing<br />
<br />
=== GetCurrentObjective ===<br />
<syntaxhighlight source lang="lua">Mission.GetCurrentObjective()</syntaxhighlight><br />
'''Description''': Get the name of the current objective<br />
<br />
'''Returns''': string<br />
<br />
=== TriggerAutoSave ===<br />
<syntaxhighlight source lang="lua">Mission.TriggerAutoSave()</syntaxhighlight><br />
'''Description''': Triggers an autosave, only if the game is current in a mission<br />
<br />
'''Returns''': Nothing<br />
<br />
=== DevicesConnected ===<br />
<syntaxhighlight source lang="lua">Mission.DevicesConnected()</syntaxhighlight><br />
'''Description''': Call this AFTER all Devices have been connected to their networks. This allows DataPoints to be processed correctly.<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SetPlayerControlled ===<br />
<syntaxhighlight source lang="lua">Mission.SetPlayerControlled(tf)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| tf || bool<br />
|}<br />
'''Description''': Set whether the player is currently in control (or not). Used for cutscenes, and other things that we haven't thought of yet.<br />
<br />
'''Returns''': Nothing<br />
<br />
=== GetBool ===<br />
<syntaxhighlight source lang="lua">Mission.GetBool(key)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| key || string<br />
|}<br />
'''Description''': Get a boolean value of a key in mission Lua script. Returns false if key doesn't exist.<br />
<br />
'''Returns''': bool<br />
<br />
=== SetBool ===<br />
<syntaxhighlight source lang="lua">Mission.SetBool(key, newBool)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| key || string<br />
|-<br />
| newBool || bool<br />
|}<br />
'''Description''': Sets a boolean value of a key in mission Lua script.<br />
<br />
'''Returns''': Nothing<br />
<br />
=== GetString ===<br />
<syntaxhighlight source lang="lua">Mission.GetString(key)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| key || string<br />
|}<br />
'''Description''': Get a string value of a key in mission Lua script. Returns empty if key doesn't exist.<br />
<br />
'''Returns''': string<br />
<br />
=== SetString ===<br />
<syntaxhighlight source lang="lua">Mission.SetString(key, newString)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| key || string<br />
|-<br />
| newString || string<br />
|}<br />
'''Description''': Sets a string value of a key in mission Lua script.<br />
<br />
'''Returns''': Nothing<br />
<br />
=== GetNumber ===<br />
<syntaxhighlight source lang="lua">Mission.GetNumber(key)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| key || string<br />
|}<br />
'''Description''': Get a numeric value of a key in mission Lua script. Returns 0 if key doesn't exist.<br />
<br />
'''Returns''': number<br />
<br />
=== SetNumber ===<br />
<syntaxhighlight source lang="lua">Mission.SetNumber(key, newValue)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| key || string<br />
|-<br />
| newValue || number<br />
|}<br />
'''Description''': Sets a numeric value of a key in mission Lua script.<br />
<br />
'''Returns''': Nothing<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=GameProgress_Lua_API&diff=1329GameProgress Lua API2019-11-19T18:04:45Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= GameProgress =<br />
== Description ==<br />
The GameProgress api allows the modder to control and query the state of the players game progress<br />
== Functions ==<br />
=== GetValue ===<br />
<syntaxhighlight source lang="lua">GameProgress.GetValue(key)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| key || string<br />
|}<br />
'''Description''': Returns a value from the game progress by key, empty string if it doesn't exist<br />
<br />
'''Returns''': string<br />
<br />
=== SetValue ===<br />
<syntaxhighlight source lang="lua">GameProgress.SetValue(key, value, overwrite)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| key || string<br />
|-<br />
| value || string<br />
|-<br />
| overwrite || bool (optional)<br />
|}<br />
'''Description''': Sets a value in the game progress<br />
<br />
'''Returns''': Nothing<br />
<br />
=== HasKey ===<br />
<syntaxhighlight source lang="lua">GameProgress.HasKey(key)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| key || string<br />
|}<br />
'''Description''': Does the specified key exist?<br />
<br />
'''Returns''': bool<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Flutter_Lua_API&diff=1328Flutter Lua API2019-11-19T18:03:39Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Flutter =<br />
== Description ==<br />
The Flutter API allows modders to send Flutter messages<br />
== Tables ==<br />
=== FlutterMessage ===<br />
<br />
<br />
'''Table definition'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type !! Default !! Optional !! Description<br />
|-<br />
| message || string || || No || Content string for the message<br />
|-<br />
| hashTags || table || || No || custom hash tags for the message<br />
|-<br />
| tags || table || || No || metadata tags<br />
|-<br />
| metadata || table || || No || metadata values<br />
|}<br />
== Functions ==<br />
=== SendMessageFromCharacter ===<br />
<syntaxhighlight source lang="lua">Flutter.SendMessageFromCharacter(message, internalName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| message || Lua Type<br />
|-<br />
| internalName || string<br />
|}<br />
'''Description''': Sends a custom FlutterMessage from NPC in current level<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SendRandomMessageFromCharacter ===<br />
<syntaxhighlight source lang="lua">Flutter.SendRandomMessageFromCharacter(internalName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| internalName || string<br />
|}<br />
'''Description''': Sends a generated Flutter message from NPC in current level<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SendRandomMessage ===<br />
<syntaxhighlight source lang="lua">Flutter.SendRandomMessage()</syntaxhighlight><br />
'''Description''': Sends a generated Flutter message from generated random character<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SetFlutterEnabled ===<br />
<syntaxhighlight source lang="lua">Flutter.SetFlutterEnabled(enabled)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| enabled || bool<br />
|}<br />
'''Description''': Set Flutter app enabled or disabled.<br />
<br />
'''Returns''': Nothing<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Doors_Lua_API&diff=1327Doors Lua API2019-11-19T18:02:15Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Doors =<br />
== Description ==<br />
API to control the logic of doors in the mission<br />
== Functions ==<br />
=== SetZoneKeys ===<br />
<syntaxhighlight source lang="lua">Doors.SetZoneKeys(zoneName, keyNames)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| zoneName || string<br />
|-<br />
| keyNames || Lua Table<br />
|}<br />
'''Description''': Sets a key as unlocking a specific zone<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SetNetwork ===<br />
<syntaxhighlight source lang="lua">Doors.SetNetwork(networkTable)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| networkTable || Lua Table<br />
|}<br />
'''Description''': Sets the name of the network for the door system to use<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SetKeyOnDevice ===<br />
<syntaxhighlight source lang="lua">Doors.SetKeyOnDevice(keyName, device)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| keyName || string<br />
|-<br />
| device || Lua Table<br />
|}<br />
'''Description''': Sets a key as the current NFC file on a net device<br />
<br />
'''Returns''': Nothing<br />
<br />
=== AssignKeyToCharacter ===<br />
<syntaxhighlight source lang="lua">Doors.AssignKeyToCharacter(keyName, character)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| keyName || string<br />
|-<br />
| character || Lua Type<br />
|}<br />
'''Description''': Adds a key to a characters inventory and sets it as the characters current NFC data<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': The character parameter can be either a character table, as set out in your mission script, or the internal name of the character to be assigned the key<br />
=== Open ===<br />
<syntaxhighlight source lang="lua">Doors.Open(doorID)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| doorID || string<br />
|}<br />
'''Description''': Open the specified door.<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': This call will not open a locked door. If the door is (or could potentially be) locked, call Unlock first to guarantee that it will open<br />
=== Close ===<br />
<syntaxhighlight source lang="lua">Doors.Close(doorID)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| doorID || string<br />
|}<br />
'''Description''': close the specified door.<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': This will close the door regardless of is someone is in the way. Please contact Semaeopus Health & Safety if this is a problem.<br />
=== Unlock ===<br />
<syntaxhighlight source lang="lua">Doors.Unlock(doorID)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| doorID || string<br />
|}<br />
'''Description''': Unlock the specified door<br />
<br />
'''Returns''': Nothing<br />
<br />
=== Lock ===<br />
<syntaxhighlight source lang="lua">Doors.Lock(doorID)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| doorID || string<br />
|}<br />
'''Description''': Lock the specified door<br />
<br />
'''Returns''': Nothing<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Devices_Lua_API&diff=1326Devices Lua API2019-11-19T18:01:06Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Devices =<br />
== Description ==<br />
The Devices API is used to control the behavior of provided devices in the level kit each of these calls will have a slightly different response to each of these calls.<br />
Please see the devices page for a full break down.<br />
== Functions ==<br />
=== SetPower ===<br />
<syntaxhighlight source lang="lua">Devices.SetPower(deviceName, state)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|-<br />
| state || bool<br />
|}<br />
'''Description''': Change the powered on state of the device<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': See provided devices page to see how each device handles this call<br />
=== TogglePower ===<br />
<syntaxhighlight source lang="lua">Devices.TogglePower(deviceName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|}<br />
'''Description''': Flip the powered on state of the device<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': See provided devices page to see how each device handles this call<br />
=== GetPower ===<br />
<syntaxhighlight source lang="lua">Devices.GetPower(deviceName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|}<br />
'''Description''': Get the powered on state of the device<br />
<br />
'''Returns''': If the device is currently powered on<br />
<br />
=== SetActive ===<br />
<syntaxhighlight source lang="lua">Devices.SetActive(deviceName, state)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|-<br />
| state || bool<br />
|}<br />
'''Description''': Change the active state of the device<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': See provided devices page to see how each device handles this call<br />
=== ToggleActive ===<br />
<syntaxhighlight source lang="lua">Devices.ToggleActive(deviceName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|}<br />
'''Description''': Flip the active state of the device<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': See provided devices page to see how each device handles this call<br />
=== GetActive ===<br />
<syntaxhighlight source lang="lua">Devices.GetActive(deviceName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|}<br />
'''Description''': Get the active state of the device<br />
<br />
'''Returns''': If the device is currently active<br />
<br />
=== RunOnce ===<br />
<syntaxhighlight source lang="lua">Devices.RunOnce(deviceName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|}<br />
'''Description''': Trigger a single update of the device<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': See provided devices page to see how each device handles this call<br />
=== SetAmok ===<br />
<syntaxhighlight source lang="lua">Devices.SetAmok(deviceName, state)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|-<br />
| state || bool<br />
|}<br />
'''Description''': Begin an 'Amok' state, cause the device to act in an unstable/broken manor<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': See provided devices page to see how each device handles this call<br />
=== ToggleAmok ===<br />
<syntaxhighlight source lang="lua">Devices.ToggleAmok(deviceName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|}<br />
'''Description''': Flip the amok state<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': See provided devices page to see how each device handles this call<br />
=== GetAmok ===<br />
<syntaxhighlight source lang="lua">Devices.GetAmok(deviceName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|}<br />
'''Description''': Get the 'Amok' state of the device<br />
<br />
'''Returns''': If the device is currently running 'Amok'<br />
<br />
=== SetValue ===<br />
<syntaxhighlight source lang="lua">Devices.SetValue(deviceName, newValue)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|-<br />
| newValue || string<br />
|}<br />
'''Description''': Pass a string value to the device<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': See provided devices page to see how each device handles this call<br />
=== GetValue ===<br />
<syntaxhighlight source lang="lua">Devices.GetValue(deviceName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|}<br />
'''Description''': Get the current value of the device<br />
<br />
'''Returns''': The value of the device<br />
<br />
=== GetDataInventory ===<br />
<syntaxhighlight source lang="lua">Devices.GetDataInventory(deviceName, index)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|-<br />
| index || number<br />
|}<br />
'''Description''': Get the description of the data at this index in the DataInventory<br />
<br />
'''Returns''': A description of that piece of data<br />
<br />
=== GetDataPointFromInventory ===<br />
<syntaxhighlight source lang="lua">Devices.GetDataPointFromInventory(deviceName, index)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|-<br />
| index || number<br />
|}<br />
'''Description''': Get a table of useful data from the DataPoint at this index in the DataInventory<br />
<br />
'''Returns''': A description of that piece of data<br />
<br />
=== GetDataInventoryCount ===<br />
<syntaxhighlight source lang="lua">Devices.GetDataInventoryCount(deviceName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| deviceName || string<br />
|}<br />
'''Description''': Get the number of DataPoints in the DataInventory of this device<br />
<br />
'''Returns''': The number of DataPoints<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Conversation_Lua_API&diff=1324Conversation Lua API2019-11-19T17:50:14Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Conversation =<br />
== Description ==<br />
Allows the user to start scripted conversations<br />
== Functions ==<br />
=== StartScript ===<br />
<syntaxhighlight source lang="lua">Conversation.StartScript(path, onCompleteCallback)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| path || string<br />
|-<br />
| onCompleteCallback || Lua Type<br />
|}<br />
'''Description''': Starts a conversation from a name<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': Must be in MissionFolder/Conversations/$path<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Constants_Lua_API&diff=1323Constants Lua API2019-11-16T15:34:21Z<p>Rich: </p>
<hr />
<div>= Constants =<br />
== Enums ==<br />
=== DataType ===<br />
{| class="wikitable"<br />
|-<br />
! Usage !! Description<br />
|-<br />
| DataType.Generic || Any random data. Who knows, could be anything.<br />
|-<br />
| DataType.Text || Plain text or rich text content.<br />
|-<br />
| DataType.SMS || SMS. Don't use this! Legacy stuff.<br />
|-<br />
| DataType.Image || Image file. We'll try to display this for you in the File Viewer.<br />
|-<br />
| DataType.Audio || Audio file. There's no viewer for these yet.<br />
|-<br />
| DataType.Video || Video file. There's no viewer for these yet.<br />
|-<br />
| DataType.Location || Location data. just the coordinates, no much use apart from being a location marker in level<br />
|-<br />
| DataType.Key || PGP key. For encryption, device/lock access etc.<br />
|-<br />
| DataType.UUID || Generic identifier for something.<br />
|}<br />
=== MissionObjectType ===<br />
{| class="wikitable"<br />
|-<br />
! Usage !! Description<br />
|-<br />
| MissionObjectType.Trigger || <br />
|-<br />
| MissionObjectType.Interaction || <br />
|-<br />
| MissionObjectType.Spawn || <br />
|-<br />
| MissionObjectType.Hackable || <br />
|-<br />
| MissionObjectType.Generic || <br />
|-<br />
| MissionObjectType.Deprecated || <br />
|-<br />
| MissionObjectType.Timeline || <br />
|}<br />
=== InteractionType ===<br />
{| class="wikitable"<br />
|-<br />
! Usage !! Description<br />
|-<br />
| InteractionType.Grab || <br />
|-<br />
| InteractionType.OpenDoor || <br />
|-<br />
| InteractionType.Scanning || <br />
|}<br />
=== AIReactionType ===<br />
The type of reaction that can affect NPCs<br />
{| class="wikitable"<br />
|-<br />
! Usage !! Description<br />
|-<br />
| AIReactionType.FixAmokDevice || The NPC will attempt to fix the amok device<br />
|}<br />
=== AppState ===<br />
{| class="wikitable"<br />
|-<br />
! Usage !! Description<br />
|-<br />
| AppState.unavailable || The player doesn't have this app yet.<br />
|-<br />
| AppState.disabled || App can't be used at the moment, for example no network connection<br />
|-<br />
| AppState.off || App is not doing anything<br />
|-<br />
| AppState.on || App is switched on and running in the background<br />
|-<br />
| AppState.alert || App displays alert to notify the player about something.<br />
|}<br />
=== AppMenuState ===<br />
{| class="wikitable"<br />
|-<br />
! Usage !! Description<br />
|-<br />
| AppMenuState.any || Allowed in any of configuration<br />
|-<br />
| AppMenuState.never || Never allowed in the selected menu<br />
|-<br />
| AppMenuState.always || Always in the selected menu<br />
|-<br />
| AppMenuState.byDefault || In the selected menu by default<br />
|-<br />
| AppMenuState.target || Will be in the radial menu when its target types are selected<br />
|}<br />
=== TrackingStates ===<br />
{| class="wikitable"<br />
|-<br />
! Usage !! Description<br />
|-<br />
| TrackingStates.off || Not connected to SPECTRUM.<br />
|-<br />
| TrackingStates.tracking || Connected to SPECTRUM.<br />
|-<br />
| TrackingStates.alert || Connected to SPECTRUM, almost out of time.<br />
|-<br />
| TrackingStates.overtime || Connected to SPECTRUM, over time, restricted to minimum range<br />
|-<br />
| TrackingStates.cooldown || Disconnected from SPECTRUM, recovering.<br />
|-<br />
| TrackingStates.unlimited || Unlimited connection. Cheater.<br />
|}<br />
=== NetworkType ===<br />
The type of network, different devices and characters will only connect to certain network types<br />
{| class="wikitable"<br />
|-<br />
! Usage !! Description<br />
|-<br />
| NetworkType.mobile || Mobile network (4G)- This will mainly just contain mobile phone devices<br />
|-<br />
| NetworkType.wifi || Wifi networks will be the most common, and will contain all sorts of devices<br />
|-<br />
| NetworkType.mesh || Mesh networks are mainly set up as part of a storyline<br />
|-<br />
| NetworkType.nfc || <br />
|}<br />
=== TargetType ===<br />
{| class="wikitable"<br />
|-<br />
! Usage !! Description<br />
|-<br />
| TargetType.None || <br />
|-<br />
| TargetType.Data || <br />
|-<br />
| TargetType.Interaction || <br />
|-<br />
| TargetType.Hackable || <br />
|-<br />
| TargetType.Character || <br />
|}<br />
=== NotificationType ===<br />
{| class="wikitable"<br />
|-<br />
! Usage !! Description<br />
|-<br />
| NotificationType.sms || <br />
|-<br />
| NotificationType.generic || Generic notification<br />
|-<br />
| NotificationType.message || Communicatiosn message<br />
|-<br />
| NotificationType.download || Receicing files<br />
|-<br />
| NotificationType.newObjective || <br />
|-<br />
| NotificationType.completedObjective || <br />
|}<br />
=== PopupType ===<br />
{| class="wikitable"<br />
|-<br />
! Usage !! Description<br />
|-<br />
| PopupType.generic || A generic popup<br />
|-<br />
| PopupType.message || A message to the player<br />
|-<br />
| PopupType.warning || A warning to the player<br />
|-<br />
| PopupType.download || Begin a timed download window<br />
|-<br />
| PopupType.progress || Trigger a progress bar<br />
|}</div>Richhttp://wiki.offgridthegame.com/index.php?title=Color_Lua_API&diff=1322Color Lua API2019-11-16T15:32:27Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Color =<br />
== Description ==<br />
Allows quick access to colours matching the Off Grid colour pallette<br />
== Functions ==<br />
=== RandomColor ===<br />
<syntaxhighlight source lang="lua">Color.RandomColor(alpha)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| alpha || number (optional)<br />
|}<br />
'''Description''': Returns a random color<br />
<br />
'''Returns''': Lua Table<br />
<br />
'''Notes''': Defaults to full alpha, optionally pass in required alpha<br />
== Variables ==<br />
== Variables ==<br />
=== Clear ===<br />
<syntaxhighlight source lang="lua">Color.Clear</syntaxhighlight><br />
'''Description''': <br />
{| class=wikitable<br />
! Preview !! RGB<br />
|-<br />
|style="background: #ffffff;"| || 1, 1, 1<br />
|-<br />
|}<br />
<br />
=== Black ===<br />
<syntaxhighlight source lang="lua">Color.Black</syntaxhighlight><br />
'''Description''': <br />
{| class=wikitable<br />
! Preview !! RGB<br />
|-<br />
|style="background: #181818;"| || 0.094, 0.094, 0.094<br />
|-<br />
|}<br />
<br />
=== DarkGrey ===<br />
<syntaxhighlight source lang="lua">Color.DarkGrey</syntaxhighlight><br />
'''Description''': <br />
{| class=wikitable<br />
! Preview !! RGB<br />
|-<br />
|style="background: #585858;"| || 0.345, 0.345, 0.345<br />
|-<br />
|}<br />
<br />
=== Grey ===<br />
<syntaxhighlight source lang="lua">Color.Grey</syntaxhighlight><br />
'''Description''': <br />
{| class=wikitable<br />
! Preview !! RGB<br />
|-<br />
|style="background: #B8B8B8;"| || 0.722, 0.722, 0.722<br />
|-<br />
|}<br />
<br />
=== LightGrey ===<br />
<syntaxhighlight source lang="lua">Color.LightGrey</syntaxhighlight><br />
'''Description''': <br />
{| class=wikitable<br />
! Preview !! RGB<br />
|-<br />
|style="background: #D8D8D8;"| || 0.847, 0.847, 0.847<br />
|-<br />
|}<br />
<br />
=== White ===<br />
<syntaxhighlight source lang="lua">Color.White</syntaxhighlight><br />
'''Description''': <br />
{| class=wikitable<br />
! Preview !! RGB<br />
|-<br />
|style="background: #F8F8F8;"| || 0.972, 0.972, 0.972<br />
|-<br />
|}<br />
<br />
=== Red ===<br />
<syntaxhighlight source lang="lua">Color.Red</syntaxhighlight><br />
'''Description''': <br />
{| class=wikitable<br />
! Preview !! RGB<br />
|-<br />
|style="background: #AB4642;"| || 0.671, 0.275, 0.259<br />
|-<br />
|}<br />
<br />
=== Orange ===<br />
<syntaxhighlight source lang="lua">Color.Orange</syntaxhighlight><br />
'''Description''': <br />
{| class=wikitable<br />
! Preview !! RGB<br />
|-<br />
|style="background: #DC9656;"| || 0.863, 0.589, 0.336<br />
|-<br />
|}<br />
<br />
=== Yellow ===<br />
<syntaxhighlight source lang="lua">Color.Yellow</syntaxhighlight><br />
'''Description''': <br />
{| class=wikitable<br />
! Preview !! RGB<br />
|-<br />
|style="background: #F7CA88;"| || 0.969, 0.792, 0.533<br />
|-<br />
|}<br />
<br />
=== Green ===<br />
<syntaxhighlight source lang="lua">Color.Green</syntaxhighlight><br />
'''Description''': <br />
{| class=wikitable<br />
! Preview !! RGB<br />
|-<br />
|style="background: #A1B56C;"| || 0.631, 0.71, 0.424<br />
|-<br />
|}<br />
<br />
=== Cyan ===<br />
<syntaxhighlight source lang="lua">Color.Cyan</syntaxhighlight><br />
'''Description''': <br />
{| class=wikitable<br />
! Preview !! RGB<br />
|-<br />
|style="background: #86C1B9;"| || 0.525, 0.757, 0.725<br />
|-<br />
|}<br />
<br />
=== Blue ===<br />
<syntaxhighlight source lang="lua">Color.Blue</syntaxhighlight><br />
'''Description''': <br />
{| class=wikitable<br />
! Preview !! RGB<br />
|-<br />
|style="background: #7CAFC2;"| || 0.486, 0.686, 0.761<br />
|-<br />
|}<br />
<br />
=== Purple ===<br />
<syntaxhighlight source lang="lua">Color.Purple</syntaxhighlight><br />
'''Description''': <br />
{| class=wikitable<br />
! Preview !! RGB<br />
|-<br />
|style="background: #BA8BAF;"| || 0.729, 0.545, 0.686<br />
|-<br />
|}<br />
<br />
=== Brown ===<br />
<syntaxhighlight source lang="lua">Color.Brown</syntaxhighlight><br />
'''Description''': <br />
{| class=wikitable<br />
! Preview !! RGB<br />
|-<br />
|style="background: #A16946;"| || 0.631, 0.412, 0.275<br />
|-<br />
|}<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Apps_Lua_API&diff=1320Apps Lua API2019-11-16T15:29:02Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Apps_Lua_API =<br />
== Description ==<br />
The Apps API allows modders to control Apps<br />
== Functions ==<br />
=== RequestAppState ===<br />
<syntaxhighlight source lang="lua">Apps_Lua_API.RequestAppState(appName, newState)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| appName || string<br />
|-<br />
| newState || OffGridApp+AppStates<br />
|}<br />
'''Description''': Ask an App to change it's state<br />
<br />
'''Returns''': Nothing<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Apps_Lua_API&diff=1319Apps Lua API2019-11-16T15:24:00Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Apps =<br />
== Description ==<br />
App VM<br />
== Global Functions ==<br />
=== SetState ===<br />
<syntaxhighlight source lang="lua">SetState(newState)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| newState || OffGridApp+AppStates<br />
|}<br />
'''Description''': Sets the App's state.<br />
<br />
'''Returns''': Nothing<br />
<br />
=== CreateStatusWindow ===<br />
<syntaxhighlight source lang="lua">CreateStatusWindow()</syntaxhighlight><br />
'''Description''': Create the status window<br />
<br />
'''Returns''': Nothing<br />
<br />
=== RemoveStatusWindow ===<br />
<syntaxhighlight source lang="lua">RemoveStatusWindow()</syntaxhighlight><br />
'''Description''': Remove this app's status window<br />
<br />
'''Returns''': Nothing<br />
<br />
=== DisplayStatusWindow ===<br />
<syntaxhighlight source lang="lua">DisplayStatusWindow(enabled)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| enabled || bool<br />
|}<br />
'''Description''': Show or hide the app's status window.<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': Make sure to to create the window first ;)<br />
=== UpdateStatusWindow ===<br />
<syntaxhighlight source lang="lua">UpdateStatusWindow(text)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| text || string<br />
|}<br />
'''Description''': Update the text content of the app's status window<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SetStatusIcon ===<br />
<syntaxhighlight source lang="lua">SetStatusIcon(id)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| id || number<br />
|}<br />
'''Description''': Set the icon used for the app's status window<br />
<br />
'''Returns''': Nothing<br />
<br />
'''Notes''': ID should match with an image in your app definition's 'statusIcons' table.<br />
=== SetStatusIconColor ===<br />
<syntaxhighlight source lang="lua">SetStatusIconColor(color)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| color || Lua Type<br />
|}<br />
'''Description''': Set the color of the status window icon<br />
<br />
'''Returns''': Nothing<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Richhttp://wiki.offgridthegame.com/index.php?title=Animator_Lua_API&diff=1318Animator Lua API2019-11-16T15:22:24Z<p>Rich: </p>
<hr />
<div><!-- This file is auto generated, please don't edit manually! --><br />
= Animator =<br />
== Description ==<br />
Allows the user to set properties of a mission objects Unity animator<br />
The animator allows users to set key keyframe-able animations to control a large amount of components.<br />
See [[https://docs.unity3d.com/Manual/class-Animator.html Unity's documentation]] for more details<br />
== Functions ==<br />
=== SetBool ===<br />
<syntaxhighlight source lang="lua">Animator.SetBool(missionObjectName, parameterName, value)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| missionObjectName || string<br />
|-<br />
| parameterName || string<br />
|-<br />
| value || bool<br />
|}<br />
'''Description''': Sets a bool parameter by name<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SetFloat ===<br />
<syntaxhighlight source lang="lua">Animator.SetFloat(missionObjectName, parameterName, value)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| missionObjectName || string<br />
|-<br />
| parameterName || string<br />
|-<br />
| value || number<br />
|}<br />
'''Description''': Sets a float parameter by name<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SetInt ===<br />
<syntaxhighlight source lang="lua">Animator.SetInt(missionObjectName, parameterName, value)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| missionObjectName || string<br />
|-<br />
| parameterName || string<br />
|-<br />
| value || number<br />
|}<br />
'''Description''': Sets a int parameter by name<br />
<br />
'''Returns''': Nothing<br />
<br />
=== SetTrigger ===<br />
<syntaxhighlight source lang="lua">Animator.SetTrigger(missionObjectName, parameterName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| missionObjectName || string<br />
|-<br />
| parameterName || string<br />
|}<br />
'''Description''': Begins a trigger parameter by name<br />
<br />
'''Returns''': Nothing<br />
<br />
=== GetBool ===<br />
<syntaxhighlight source lang="lua">Animator.GetBool(missionObjectName, parameterName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| missionObjectName || string<br />
|-<br />
| parameterName || string<br />
|}<br />
'''Description''': Gets the current value of a bool parameter by name<br />
<br />
'''Returns''': The current bool value of the parameter<br />
<br />
=== GetFloat ===<br />
<syntaxhighlight source lang="lua">Animator.GetFloat(missionObjectName, parameterName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| missionObjectName || string<br />
|-<br />
| parameterName || string<br />
|}<br />
'''Description''': Gets the current value of a float parameter by name<br />
<br />
'''Returns''': The current float value of the parameter<br />
<br />
=== GetInt ===<br />
<syntaxhighlight source lang="lua">Animator.GetInt(missionObjectName, parameterName)</syntaxhighlight><br />
'''Expected parameter types'''<br />
{| class="wikitable"<br />
|-<br />
! Name !! Type<br />
|-<br />
| missionObjectName || string<br />
|-<br />
| parameterName || string<br />
|}<br />
'''Description''': Gets the current value of a int parameter by name<br />
<br />
'''Returns''': The current int value of the parameter<br />
<br />
<br />
<br />
This file is auto generated, please don't edit manually!<br />
<br />
'''Docs last hacked together on''': 15/11/2019 14:59<br />
[[Category:Modding]][[Category:LuaAPI]]</div>Rich