recursal/Fanatic-Fandom huggingface dataset:
EquipDevelopSetting

These files are responsible for setting up the item development requirements. Includes EquipDevelopConstSetting.lua and EquipDevelopFlowSetting.lua. In MGO's chunk0.dat there is also a file named just EquipDevelopSetting.lua that appears to be a combination of both of these files with the original variable names intact. However, it does lack variables for p34, p35 and p36.
Entities:Entity

**Entity** is a type of object used in the Fox Engine. It is believed that **Entity** lies at the top of the hierarchy of entity classes, due in part to its name and the fact that none are actually placed anywhere in .fox2 files, but referenced as an included class in the *<classes>* block.

## Format

There is no known format for placed entities of type **Entity**.

## Usage

The **Entity**is not an object directly placed in a level, but rather, it is the super class that all entities in the Fox Engine derive basic properties from. As such, it is not advisable to place one directly in a .fox2, and its properties and associated values are unknown at this time (if any such exist).

The only known usage of the entity of type **Entity** is as a reference in the **<classes>** header block.

***Example:** <classes>* *<class name="Entity" super="" version="2" /> </classes>*
Sahelanthropus Mission Files and Usage

# Sahelanthropus Boss Battle Mission Files

In order to make Sahelanthropus Boss Battle work, you need to create a specific mission for him, he also needs some special files, those are:

* sxxxxx\_block01 . fox2
* sxxxxx\_enemy.lua
* sxxxxx\_npc\_sp.fox2
* sxxxxx\_route.fox2
* sxxxxx\_sequence.lua
* sxxxxx\_sequence.fox2

Each one of them have an unique function, you need all of them to make Sahelanthropus work.

You can grab them at the Sahelanthropus GitHub repo.

## sxxxxx\_block01.fox2

\_block01.fox his the most important file, his function is define Hiding Points for the player, Sniping Points for Sahelanthropus Rex Mode (TppSnipePoint2Data), he also controls the ScriptBlockData, TppSimpleMissionData, NavxNavBlock (Nav2 file for Sahelanthropus), TppPlayer2AdditionalMtarData, NavxNavFilterVolume, BoxShape, GeoModuleCondition and TppTrapCheckIsPlayerCallbackDataElement.

## sxxxxx\_enemy.lua

This files is responsible for the Sahelanthropus Parts Health Points, Base Route, Route Table, Debug functions and defining what type of Sahelanthropus the mission uses (normal or extreme).

Also contains the function to set up the support Helicopter, defines his spawn point, and also disables him (Support Heli is very important for the battle sequence) .

## sxxxxx\_npc\_sp.fox2

This file contains the GameObjectLocator and TppSahelan2LocatorParameter.

It controls the spawn point for Sahelanthropus.

## sxxxxx\_route.fox2

This files contains an TppSearchMissilePointData, (i still not know what he does, but seems important to have)

## sxxxxx\_sequence.lua

This File is very very important, it defines the mission objectives, radio calls, BGMs (background sound/music), sequences, demo sequences(Cutscenes) and UI (for example, the Sahelanthropus health bar).

It also starts the Sahelanthropus Boss Battle, controls his stages and ends the mission, safe to say, its the core of the mission.
FtexTool

FtexTool is an open-source tool which converts Fox Engine textures (.ftex) to Direct-Draw Surface textures (.dds). FtexTool works by getting information about the image from the .ftex file, and the actual image data from the image's sub-texture files (.ftexs). It then converts this data into a single .dds image with mipmaps. It reverses this process when converting a .dds image back into a .ftex file. It stores information about the image in an .ftex file, and its mipmap and image data in the .ftexs files.

## Usage

FtexTool can convert an .ftex file into a .dds file by dragging the .ftex file onto the tool. (Note that the .ftex file must be in the same directory as all of its sub-textures for this process to work.) It can also convert all .ftex files in a directory into .dds images if the folder containing the .ftex files is dragged onto the tool.
File Formats Used in MGSV (List)

This article lists the presumed names of extensions used in MGSV, as well as some basic descriptions. The full list of up-to-date templates can be found here.

## References

1. ↑ Counts for archives like fpks contains duplicates.
Counts only include files from \master, not master\0,\1

Counts for formats common to both TPP and GZ only added where ineresting (GZ only formats complete counts)
```
source: "chunk1.dat/Assets/tpp/pack/vehicle/veh_rl_east_wav.fpkd/Assets/tpp/level_asset/vehicle/veh_rl_east_wav.fox2"

<entity class="UiGraphEntry" classVersion="1" addr="0x073F06A0" unknown1="96" unknown2="3058">
  <staticProperties>
	<property name="name" type="String" container="StaticArray" arraySize="1">
	  <value>veh_bd_east_wav|sight_vhcl_east_wav|UiGraphEntry0000</value>
	</property>
	<property name="dataSet" type="EntityHandle" container="StaticArray" arraySize="1">
	  <value>0x02D7FC10</value>
	</property>
	<property name="files" type="FilePtr" container="DynamicArray" />
	<property name="rawFiles" type="FilePtr" container="DynamicArray" arraySize="3">
	  <value>/Assets/tpp/ui/LayoutAsset/hud_wpscope/UI_wpscope_vehicle_sav0_b.uilb</value>
	  <value>/Assets/tpp/ui/LayoutAsset/hud_wpscope/UI_vhcl_def_FPS_bs.uilb</value>
	  <value>/Assets/tpp/ui/LayoutAsset/hud_wpscope/UI_wpscope_vehicle_common.uilb</value>
	</property>
  </staticProperties>
  <dynamicProperties />
</entity>
```
3. ↑ File types from GZ (to be split further) or referenced in exe or lua but not yet found/extracted as seperate files.
4. ↑ https://github.com/Atvaark/FoxTool
Textures

## The basics: PBR

FOX Engine uses a PBR (Physically Based Rendering) shading model. Simply put, PBR is a modern rendering method that is more accurate and more predictable than previous shading models, leading to better looking materials and lighting

FOX Engine has its own implementation of PBR and therefore requires a specific workflow when making or editing textures. It is important to understand and properly apply this workflow - your textures won't look like they should if you don't. This guide's purpose is to help you understand how textures are handled by FOX Engine, and how to edit/create ones yourself. While it is aimed at beginners, this guide will not cover the rudimentary basics of materials and textures creation.

## Texture type & purpose:

#### ***Color maps, also called Albedo or Diffuse. They are labeled with the \_bsm suffix.***

Here's an example, the *\_bsm* map of the D114 handgun:

They're very similar to diffuse maps from previous shading models, with one exception: you should have the least amount of pre-baked lighting/shadowing informations possible, like pre-baked Ambient Occlusion, as this is handled through a bespoke map.
139th Mechanized Brigade

## Timeline

Sept 4th, 2050: Brigade defends Sarasota against attacks by the 5th Armored Division, taking 39 casualties.

## 139th Mech Brigade

### Faction

Opposition

Sept 5th, 2050: Brigade takes the brunt of an offensive by the 5th Armored during the Battle of Sarasota, losing 365 men, but not losing much ground.

Sept 6th, 2050: Brigade successfully repels the 5th Armored Division's attack, taking 102 casualties on the last day of fighting.
IHHook

A proxy dll (of dinput8.dll) that loads with MGSV to provide extended features for modding. Previously bundled with Infinite Heaven, IHHook has been split into a separate install and nexus page to isolate feedback and issues.

## Requirements

* MGSV version 1.15 (in title screen), 1.0.15.3 in exe.
* Infinite Heaven r258
* Microsoft Visual C++ Redistributable for Visual Studio, x64

## Features

* dear-IMGUI based menu for Infinite Heaven.
* Lua C API support (mostly complete): Allows extending the MGSVs embedded lua via C. Does not have dynamic library support as mgsv lua is statically compiled, and running the mgsv lua state through a seperate distro of lua isn't desirable since the mgsv lua core is modified from default. However it is possible to compile lua C modules into IHHook.
* Logging via spdlog: Infinite Heaven uses this for better performance (mostly used for debugging). Has it's own separate log for debug/info output.
* Named Pipe server: Starts up a threaded Named Pipe server with two pipes mgsv\_in, mgsv\_out. Currently used by Infinite Heaven to improve performance when using IHExt and should open further possibilities I was reluctant to pursue due to old text file based IH>IHExt communication.
* CityHash logging (currently has to be compiled in with a #define) using emooses cityhash logging (though using spdlog for better performance) that IHHook was initially built off.
* RawInput keyboard processing and blocking (proof of concept)

**See this Youtube playlist for features that are visually demonstratable.**
Route descriptions

Use this page to summarize interesting routes from the main game. Be sure to note where the route is located, where it's used in the game, and what it does.

## afgh

### s10040.frt

Used in the mission "Where Do the Bees Sleep?"

#### 1478413963

* Type: Sneak
* Location: Da Smasei Laman (Smasei Fort)
* Note: Route starts in the entrance to the building in the back, to the left and up the arch before turning right to move towards and through the balcony out in the open going down into the caves system into the room where the honeybee is located in the main mission.

#### rt\_bridge\_c\_0009

* Type: Caution
* Location: Mountain Relay Base
* Notes: TODO, just an example. Write up a summary of what happens in the route.
Enabling CS Weapons

In this article I'll explain how to enable CS guns, which are guns the game has and uses but are not available to the player. One of these guns, for example, is the XOF Hospital SMG.

Enabling these guns is rather simple. One must simply find the correct line of code in EquipDevelopFlowSetting.lua and change "p69=2" to "p69=0"

Now, finding the right line of code that pertains to the correct weapon is the tricky part. Each line of code in EquipDevelopFlowSetting.lua is a developable item in the iDroid and finding the right one is needed in order to enable the weapon. Fortunately I have labeled many of the lines with their weapon ID's in this deminified version of EquipDevelopFlowSetting.lua.

So now you have most of the CS guns in the game labeled , it's a matter of finding the right the corresponding weapon ID.

   All weapon ID's in the game can be found at https://unknown321.github.io/mgsmonsterguns/#

Lets take the XOF hospital SMG for example. Here is it's info:

From here we can see that the weapon ID is "WP\_East\_sm\_030" so we can simply use ctrl+f to search this on the labeled lua file from github. In this case it's on line p50=310, so we simply scroll to the right to p69=2 and change it to p69=0. Save the file as EquipDevelopFlowSetting.lua and use fileproliferator and makebite to save it as a .mgsv.
Entities:PhVehicleNormalEngineParam

The Entity **PhVehicleNormalEngineParam** sets the torque curve for a vehicle. It's only used in the vehicle .fpkd archives' .veh file.

## Properties

The game appears to use the NVIDIA PhysX engine, which uses the metric unit Newton Meters (nM) for torque values. power in kW at the flywheel can be determined with the following formula.

```
kW = ((specPointAngularVelocity[n] * specPointTorque[n]) / 9.5488) * 0.001

```

If horsepower (HP) is the metric you wish to view then use the following formula.

```
ftLb_torque = specPointTorque[n] * 0.73756
HP = (specPointAngularVelocity[n] * ftLb_torque) / 5252

```

Where n in either formula is the position of the value in both property arrays.

### specPointAngularVelocity

```
<property name="specPointAngularVelocity" type="float" container="DynamicArray" arraySize="8">
  <value>0</value>
  <value>1000</value>
  <value>2000</value>
  <value>3000</value>
  <value>4000</value>
  <value>5000</value>
  <value>6000</value>
  <value>12000</value>
</property>
```

Sets engine RPM range. Used in conjunction with specPointTorque to determine engine power at each RPM.

### specPointTorque

```
<property name="specPointTorque" type="float" container="DynamicArray" arraySize="8">
  <value>190</value>
  <value>208</value>
  <value>230</value>
  <value>250</value>
  <value>260</value>
  <value>220</value>
  <value>160</value>
  <value>20</value>
</property>
```

Sets engine torque ranges. Used with specPointAngularVelocity to determine engine power at each RPM.

### specPointBreakTorque

```
<property name="specPointBreakTorque" type="float" container="DynamicArray" arraySize="8">
  <value>12.5</value>
  <value>22.5</value>
  <value>37.5</value>
  <value>42.5</value>
  <value>62.5</value>
  <value>75</value>
  <value>100</value>
  <value>50</value>
</property>
```

Presumably the amount of engine braking being done to naturally decelerate the vehicle at each RPM, once the throttle is no longer being applied.
Troubleshooting Chart (General applications)

Troubleshooting charts for MGSV:GZ and MGSV:TPP. Should be noted that most errors can be fixed by routine maintenance or your PC. Also making sure you are creating back ups of your game data ensures that the mods installed do not ruin your install.

## System requirements MGSV:GZ (PC)

### Minimum

* **OS:** Windows 7×64
* **Processor:** Intel Core i5-4460 (3.40 GHz)
* **Memory:** 4 GB RAM
* **Graphics:** NVIDIA GeForce GTX 650 (2GB) or better (DirectX 11 card Required)
* **DirectX:** Version 11
* **Hard Drive:** 28 GB available space
* **Sound Card:** DirectX 9.0c compatible sound card

### Recommended

* **OS:** Windows 8×64 (64-bit OS Required)
* **Processor:** Intel Core i7-4790 (3.60GHz)
* **Memory:** 8 GB RAM
* **Graphics:** NVIDIA GeForce GTX 760 (DirectX 11 graphics card required)
* **DirectX:** Version 11
* **Hard Drive:** 28 GB available space
* **Sound Card:** DirectX 9.0c compatible sound card (Surround Sound 5.1)

## System requirements MGSV:TPP (PC)

### Minimum

* CPU: Intel Core i5-4460 (3.40 GHz) or better; Quad-core or better
* RAM: 4 GB
* OS: Windows 7x64, Windows 8x64 (64-bit OS Required)
* VIDEO CARD: NVIDIA GeForce GTX 650 (2GB) or better (DirectX 11 card Required)
* PIXEL SHADER: 5.0
* VERTEX SHADER: 5.0
* FREE DISK SPACE: 28 GB
* DEDICATED VIDEO RAM: 2 GB

### Recommended Requirements

* CPU: Intel Core i7-4790 (3.60GHz) or better; Quad-core or better
* RAM: 8 GB
* OS: Windows 7x64, Windows 8x64 (64-bit OS Required)
* VIDEO CARD: NVIDIA GeForce GTX 760 (DirectX 11 graphic card required)
* PIXEL SHADER: 5.0
* VERTEX SHADER: 5.0
* FREE DISK SPACE: 28 GB
* DEDICATED VIDEO RAM: 2 GB

## Troubleshooting Charts

Metal Gear Solid V: The Phantom Pain (PC)
 Crashing or locking in the middle of mission/ACC. Most frequently during zooming or raining
Life

Player max life can be set in script via Player.ChangeLifeMaxValue(value)

Default player life is defined as 6000 in \*player(s)\_game\_obj.fox2/TppPlayer2Parameter/lifeMax

however this is only the value during the early game (as shown by vars.playerLifeMax)

after mission 2 (first mother base visit) it bumps up to 6600 (6000\*1.1?)

With medical hand grade 2 or higher (as snake or avatar), or with a DD soldier with the Tough guy skill this increases to
7801, which is a bit over 6000\*1.3 - 1.300166666666667

65535 is max of an unsigned 16 bit integer so the overflow to 0 makes sense.

Scaling is 1.1 for ALL NORMAL soldiers (and scaling does exist)

Scaling is 1.300166666666667 for "Tough Guys" (it's actually the same as Snake's)

In free roam/missions, ALL NORMAL soldiers gain 1.1 first

but "Tough Guys"(and Snake) then gain 1.300166666666667 on base 6000.

Scaling downscale with damage/flies(time=stinky) will only drop by MAX x0.1 in 5 steps of x0.02 each

So ALL NORMAL soldiers downscale to 1.0

"Tough Guys"(and Snake) downscale to 1.2

Downscale applies to all areas

"Tough Guys"(and Snake) on MB gain 1.200166666666667 scale for
some reason (even with scaling downscale NOT applied) while NORMAL
soldiers do not gain a boost at all (it remains 1.0)

I think the shower increases the scale itself so on MB "Tough Guys"(and Snake) get 1.2 max so it can become 1.3 after shower

while NORMAL soldiers get 1.0 so it can become 1.1 after shower

Once scaling decreases for one soldier, it remains decreased for
\*ALL\* soldiers, meaning changing to any other character does not reset
it and one does need to visit the shower on MB
Sahelanthropus Battle sequence

On the beginning he follows the player around walking towards him, firing the miniguns on his head, if he gets close to the player he uses his amazing flamethrower or even tries to stomp the player if there is his specific navmesh (.nav2) , otherwise he jumps around the player area and uses his Archaeal Blade and shoots some missiles from time to time. (Note: all that happens if you use his navmesh)

After a while an helicopter is called automatically (the Pequod is very important in the battle), if not, i recommend the player to call 1, on the UNSA map (test map), the helicopter is stuck on 0 , 0, 0 area, no idea why that happens

When his health is around 50% he drops an metallic archaea grenade, Pequod leaves the area automatically and the battle proceeds, all vehicles and walker gears on the area are now useless.

After some time the red mist disappears, that's when you have to call Pequod again, the game does that automatically unless you remove that function from the mission enemy.lua file (i strongly recommend to not do that, Pequod is important to trigger rex mode)

When his health is around 30-25% Sahelanthropus attacks Pequod, you can either destroy the missiles and protect Pequod or let him die.

After attacking Pequod, Sahelanthropus jumps to a nearby “Sniping Point” and triggers the rex mode and his railgun.

After some shots, he goes back to normal and proceeds to attack the player normally, some time later he jumps to the player and Mantins appears in  a slowmo style, to avoid getting shot by Sahelanthropus Rail gun, you need to shoot Mantis, should be floating in front of Sahelanthropus (i noticed that sometimes Mantis doesn't appear), that goes on in a loop until you kill him

Notes: He needs to attack Pequod to go Rex mode, no Pequod = no railgun
Foxkit: GeoTrap, GeoModuleCondition and BoxShape

Guide for FoxKit 1.0.

This guide resume in one Video how to add a Trap, set the lua and mod folder and test Ingame the condition.

GeoTrap is the entity that trigger something if a Gameobject (Player, Enemy, Camera) touch the Shape under certain condition. There are inumerous condition to trigger but this guide only show the smallest one: If Player reach the trap, print "Trap Works!!!".

The video does not have sound to follow the steps, but visually can help understand how to procede. After work in Foxkit, it show how to set from scratch a mod folder using the mission free roam in afgh, f30010 and how to trigger in f30010\_sequence.lua the Trap "TrapWhatever" in fox2 file.

```

```
BNK

BNK(.bnk) is a complex Wwise format utilized by many modern video games. The format usually contains more than just one sound, and could be considered an archive of sounds present in the game. Modding the sound banks is quite uncommon practice due to the inability of replacing the sounds in the bank. You can rip the sounds easily by grabbing the encoded media (.wem) files and converting them

```
The .bnk file extension is used for a proprietary data file format that was developed by Spotify, Ltd.
Also classified as audio data files, these BNK files are called Spotify playlists.
Spotify is a music streaming application that has versions for
Windows PCs, Mac OS X and Linux computers, iOS and Android mobile devices.
A BNK file contains references, metadata details and locations of music tracks that have been added to the Spotify playlist.
These .bnk files do not store the actual audio files.
instead, the Spotify application loads these music tracks and streams it upon opening these BNK files.
Users are recommended to only use the Spotify software to open these .bnk files.
These are not meant to be viewed using other programs.

```
Source:https://file.org/extension/bnk
NTA

A **.nta** file specifies the locations of traversal actions in the world.

* 0x1C - 0x1F (uint32): Hash table offset. Must add header size to get the actual offset.
* 0x20 - 0x24 (uint32): Size of the file, excluding the header.

### Entry section

The number of entries is equal to the "number of entries" value in the metadata section.

#### Entry struct

* 0x0 - 0xB (float3): Entry position.
* 0xC - 0xF (uint32): StrCode32 hash of enter action (e.g., StepOn 1277978017).
* 0x10 - 0x1B (float3): Exit position.
* 0x1C - 0x1F (uint32): StrCode32 hash of exit action (e.g., StepDown 1139911476).
* 0x20 - 0x27 (uint64): StrCode64 hash. Connection action? Most times empty string "" hash, but has exceptions like gntn\_common.nta.
* 0x28 - 0x29 (int16): Flags? The most used one, ranging from -1 to 1000s
* 0x2A - 0x2B (int16): Flags?
* 0x2C - 0x2D (int16): Flags?
* 0x2E - 0x2F (int16): Flags?

### Hash table

There is one StrCode64 hash for each entry here. Perhaps a name for each entry?
Hair Materials

The FOX engine uses a similar setup with hair as other materials, utilizing a base color map (BSM), a PBR map (SRM) and a translucency/transmission map (TRM). Some character models will make use of hair normal maps, but most do not.

The BSM map will have an alpha channel that must be used for transparency.

As usual, the SRM map is as follows:

* (Red): Specular Occlusion
* (Green): Roughness
* (Blue): Map Mask

<incomplete, will pick up tomorrow>
Collision Attributes

The following strings are collision attribute names, used in properties like collisionAttributeNames in GeoxCollisionFreeShape.

# Attributes

* CHARA
* PLAYER
* RECOIL
* ENEMY
* BULLET. Bullet model at collision.
* MISSILE
* BOMB
* BLOOD. Blood at collision.
* IK. Inverse kinematic of model get adjusted with the geometry of collision. If collision have angle the player will get the foot adjusted to the surface.
* STAIRWAY
* STOP\_EYE
* CLIFF
* DONT\_FALL. When player get off the collision it will fall naturally and not a step out or jumping that usually do. Need more tests.
* CAMERA. Without this Tag the camera will pass through the model. If active, camera will circumvent the model but with player center of attention.
* CLIFF\_FLOOR
* BULLET\_MARK. Texture of bullet mark at collision.
* HEIGHT\_LIMIT
* DOUBLE\_SLIDE
* WATER\_SURFACE
* TARGET\_BLOCK
* DOG
* NO\_EFFECT
* EVENT\_PHYSICS
* NO\_WALL\_MOVE
* MISSILE2
* RIDE\_ON\_OUTER
* FLAME
* IGNORE\_PHYSICS
* CLIMB
* HORSE
* VEHICLE
* MARKER. Turn available the scope marker at the collision.
* RIDE\_ON
* THROUGH\_LINE\_OF\_FIRE
* THROUGH\_ITEM\_CHECK
* NO\_CREEP
* NO\_FULTON
* FULTON
* ITEM
* BOSS
FoxKit

FoxKit is a general-purpose Fox Engine data editor, which includes features such as importing, exporting, and creat new AI routes utilizing TppRouteSet or "FOX Routes." (.frt)

FoxKit works by wrapping FoxLib's importers into ScriptedImporters which is handled automatically by Unity. FoxKit reads the project's directory structure and mimics the game's directory structure.

Installation procedures and a basic modification tutorial can be referenced here.

Currently FoxKit handles these file types:

* .fmtt
* .frt
* .htre
* .pcsp
Entities:PhxVehicleNormalEngine

```
<entity class="PhxVehicleNormalEngine" classVersion="1" addr="0x031784A0" unknown1="120" unknown2="212215">
  <staticProperties>
	<property name="name" type="String" container="StaticArray" arraySize="1">
	  <value>PhxVehicleNormalEngine0000</value>
	</property>
	<property name="dataSet" type="EntityHandle" container="StaticArray" arraySize="1">
	  <value>0x03177B70</value>
	</property>
	<property name="vehicleAxes" type="EntityLink" container="DynamicArray" arraySize="2">
	  <value packagePath="" archivePath="/Assets/tpp/parts/mecha/slv/slv.veh" nameInArchive="PhxVehicleAxis0000">0x03177BE0</value>
	  <value packagePath="" archivePath="/Assets/tpp/parts/mecha/slv/slv.veh" nameInArchive="PhxVehicleAxis0001">0x03178270</value>
	</property>
	<property name="torqueDistributions" type="float" container="DynamicArray" />
	<property name="gearRatios" type="float" container="DynamicArray" />
	<property name="vehicleNormalEngineParam" type="EntityPtr" container="StaticArray" arraySize="1">
	  <value>0x03178510</value>
	</property>
  </staticProperties>
  <dynamicProperties />
</entity>
```

## vehicleAxes

Sets the address of individual axis entities in the file. These are numbered in sequential order from front to back, meaning that on the 4WD vehicles PhxVehicleAxis0000 is the front axle and PhxVehicleAxis0001 is the rear axle.

## torqueDistributions

This is unused in all vehicle .fpkd archive .veh files, but values can still be edited in. This property sets the amount of power being sent to each axle. The arraySize should be set to the number of PhxVehicleAxis properties in the .veh file and final sum of distribution values should be equal to 1 (100%). Values set the power given in decimal percentages. Like with the PhxVehicleAxis numbering, these are in sequential order from front to back.

e.g. For 30% of power being given to the front axle and 70% to the rear axle on a 4WD vehicle:

```
<property name="torqueDistributions" type="float" container="DynamicArray" arraySize="2">
  <value>0.3</value>
  <value>0.7</value>
</property>
```

## gearRatios

This is another unused property found in all vehicle .fpkd archive .veh files. Values here can also be edited in. It sets the gear ratio of each vehicle gear. The number of gears a vehicle has can be determined by listening to the number of upshifts a vehicle makes in game from a complete stop to full throttle top speed. The gist of what gear ratios in the real world do is that higher gear ratios give faster acceleration at the cost of lower top speed while in that gear, and lower amounts are the inverse (hence why your vehicle may go from 0-30 in a few seconds but 70-85 takes much longer).

Standard gear ratios are n:1 but the property simply takes n for the value. For a 4WD vehicle, which has three gears, with sequential gear ratios of 2.5:1, 1.5:1, and 0.7:1 you would do:

```
<property name="gearRatios" type="float" container="DynamicArray" arraySize="3">
  <value>2.5</value>
  <value>1.5</value>
  <value>0.7</value>
</property>
```
GzsTool

GzsTool is an open-source archive unpacker and repacker for Metal Gear Solid V: Ground Zeroes and Metal Gear Solid V: The Phantom Pain written by Atvaark. It supports unpacking and repacking QAR .dat, .fpk, .fpkd, .pftxs, and .sbp files. When unpacking archives, it automatically decrypts encrypted text files. It can also calculate file name hashes on the fly, allowing it to add new files to archives without needing a pre-calculated hash.

The current version of GzsTool does not support GroundZeroes .g0s files, you must use GzsTool 0.2

## Usage

GzsTool can unpack files simply by having an archive file dragged onto it. It can also unpack archives by command line, providing GzsTool the path to the file (example: *GzsTool Example.dat*). It will output all of the files contained in the archive into a folder named *<filename>\_<extension>*, and an .xml file detailing all of the files that were contained in the archive. GzsTool can also unpack all .fpk and .fpkd archives in a specified directory, by dragging the folder onto GzsTool, or specifying the directory in command line (example: *GzsTool C:\Example\Folder*).

GzsTool utilizes a dictionary of filenames called *qar\_dictionary.txt*. As it outputs files, it compares the hashes generated from this dictionary to the hashed filenames found in the archive. If it finds a match, it will output the file by its real name. If it cannot find a match, it will output the file by its hashed name.

To repack an archive, the user needs to drag the .xml file output by GzsTool onto GzsTool, or by using command line and providing GzsTool the path to the .xml (example: *GzsTool Example.xml*). GzsTool will reference the list of files listed in the .xml to find and add files to the archive.

GzsTool can also add new files to an archive by adding files into its output folder and adding the file to the .xml list. Because it can calculate hashes on the fly, it does not need a pre-calculated hash for new files with unhashed names. For files with hashed names, a separate entry for the hash with its extension is required.

## Dictionary

GzsTool utilizes a dictionary of strings called qar*\_dictionary.txt* for qar (dat) and pftxs archives to match hashed file names to original file path names. If it does not find a match it will output the files with the hash in the root of the extraction folder for the archive, if it does find a match it will create the original file/folder layout and name.

An up to date qar\_dictionary can be found at https://github.com/TinManTex/mgsv-lookup-strings

GzsTool also uses a dictionary called fpk\_dictionary.txt to recover full filenames of files in fpks VERIFY possibly this is only for GZ fpks.

## GzsTool

### Download

https://github.com/BobDoleOwndU/GzsTool/releases

### Repository

https://github.com/BobDoleOwndU/GzsTool

BobDoleOwndU created a fork of GzsTool with some added debugging commands, and the ability to repack .pftxs files without providing a hash for entries with hashed names.

### Debugging Commands

All debugging commands can be accessed by command line by providing GzsTool a *-d* argument.

 Hash Extension
 Hash With Extension
 Hash Legacy
Sims Big Brother

## Evictions

**Eviction 1**
Bottom three: none
Evicted: *Sylvia*

**Eviction 2**
Bottom three: Dannielle, Kim, Olivia
Evicted: *Dannielle*

**Eviction 3**
Bottom three: Alicia, Dan, Jacob
Evicted: *Jacob, Dan*

**Eviction 4**
Bottom three: Kerri-Anne, Sayeera, Shievaughan
Evicted: *Kerri-Anne*

**Eviction 5**/***Eligible housemate vote***
Eligible housemates: AJ, Laura, Lesley, Robbie, Sabrina
Alicia: Robbie
Chanele: Laura
Cleo: Robbie
Ellamae:Robbie
Josh: Laura
Kim: Robbie
Leigh-Anne: Sabrina
Matt: Sabrina
Olivia: Robbie
Sayeera: Laura
Shievaughan: Lesley
Selected housemates:*Laura, Robbie, Sabrina*
Evicted:*AJ, Lesley*

**Eviction 6**
Bottom three: Cleo, Leigh-Anne, Shievaughan
Evicted: *Shievaughan, Cleo*

**Eviction 7**
Bottom three: Kim, Matt, Sayeera
Evicted: *Matt, Sayeera*

**Eviction 8**
Bottom three: Alicia, Ellamae, Olivia
Evicted: *Alicia*

**Eviction 9**
Bottom three: Chanele, Josh, Olivia
Evicted: *Chanele*

**Eviction 10**
Bottom three: Josh, Leigh-Anne, Olivia
Evicted: *Josh, Olivia*

**Eviction 11**
Bottom three: none
Evicted: *Kim*

**Eviction 12**
Bottom three: none
Evicted: *Leigh-Anne*

Template:User sandbox

## Evictions

**Eviction 1**
Bottom three: Chelsea, Donna, Lizzie
Evicted: *Donna*

**Eviction 2**
Bottom three: Chelsea, Chloe, Lizzie
Evicted: *Chelsea*

**Eviction 3**
Eligible for eviction: Aaron, Chloe, Connie, Courtney, Emma, Ian, Lauren, Lizzie, Madeline, Ross, Roxanne, Sallie, Stacie, Tegan
Evicted: *Ian, Sallie, Emma, Roxanne*

**Eviction 4**
Bottom three: Chloe, Lizzie, Ross
Evicted: *Ross*

**Eviction 4**
Bottom three: Adrianna & Yazmin, Chloe, Michelle
Evicted: *Chloe*

## Eviction table

#### Notes

* On Day 15, all original housemates were in danger of being evicted by the wheel in the 4 in 4 out twist.
* On Day 50, Madeline won Head of Household by the wheel, she then span a wheel to select how many housemates she would have to nominate this week, the wheel selected '2, therefore she had to nominate two housemates.

## FInal warning

If you continue to add the "Sims Big Brother" content to Wikipedia, you will be blocked. Please focus on editing articles and improving them rather than documenting your game play. Again, please see WP:NOT and WP:USERPAGE for explanations of relevant guidelines. Only (talk) 20:07, 14 April 2017 (UTC)

## April 2017

 File:Stop x nuvola.svg You have been **blocked indefinitely** from changing Wikipedia in line with Wikipedia's blocking policy for **not being here to contribute to Wikipedia but only to work on a personal project**. If you think this block is unfair, you may ask to be unblocked by adding {{unblock|*your reason here*}} below. If you cannot do this or the reason is private, please send an e-mail to **simple-admins-l@lists.wikimedia.org** and an administrator will look at your reason and reply. You may want to read our guide to unblock requests before asking to be unblocked. Only (talk) 20:15, 14 April 2017 (UTC)
Custom Locations List

Custom / Addon Locations for Metal Gear Solid V: The Phantom Pain.

See Locations for vanilla locationIds.

Infinite Heaven is required to add them to the game, and requires a Mission set in the location to use them.

Note for location authors: Due to how the engine uses locationId must be unique for each mission. So if you are creating locations you should make sure you don't conflict with existing ones, and update this page with the ids you intend to use.
File Structure (Metal Gear Solid V: The Phantom Pain)

Metal Gear Solid V: The Phantom Pain's file structure is made up of a series of a series of files with the .dat extension. All of the .dat files are QAR archives with their extensions changed with the exception of e2f8e499bc8f3606.dat, e2f9a1fda590d087.dat, e2faa449a7e0781d.dat, e2fb02c35da41a21.dat, and e2fbebbd66f86086.dat, which are .wmv files with their extensions changed.

See File Formats for more information about the files in the dats, Things Codes for information on some of the naming of files, Sound Codes, or animation notes.

## Master Folder

The master folder contains all of the assets used in The Phantom Pain.

In addition to the base .dat files, the master folder also contains directories for updates and DLC respectively.

 1

Each of the 1 folder's DLC folders also contain a 0 folder. Which just like the 0 folder in the master folder, contains a 00.dat and 01.dat file. In each of these folders, the 01.dat file contains textures, while the 00.dat file contains all other assets.

When SnakeBite is installed it moves the files in master/0/00.dat,01.dat to master/a\_chunk7.dat, a\_texture.dat and the patched 00.dat lua files into 01.dat. From then it installs mods into 00.dat
External modding resources

Links to assorted MGSV modding references

## Forums / threads

xentax.com - Ground Zeros/Phantom Pain thread

/r/moddergearsolid - sub reddit

Nexusmods- General MGSV discussion

## Various Notes/Resources

* Collection of mgsv links - including to specific xentax posts
* unknown321s mgsv research

* mgswaifus - Unique staff info

* Monster guns - Weapon Info

* Cosmetics - Research into methods of applying cosmetic models

* FV2/Fmdl - Research into FV2/Fmdl

* Player motions - Research into player motions
* Adding player motions - An updated guide and link to gani notes

* mgsvdump- dump of MGSV lua globals

* MGSV-deminified-lua- de-minified data1 luas

* MockFox - Framework to load MGSV TPP lua scripts outside of mgstpp
* mgsv-lookup-strings - strings scraped and manually gathered from mgsv, useful for trying to match against hashes.
* nuke watcher
* Server emulator

* BobDoleOwndIs mgsv documentation

* EquipDevelopFlowSetting.lua Information
* Getting FMDLs to Load Custom Texture Names
* Perfect First-Person with Any Model
* Sound Swapping and the Wwise Format
* Youtube tutorial on creating snakebite file for mod

* Youtube texture modding tutorial
* Poster modding resource - for those interested in editing the 6 collectible posters and their cardboard box cutouts.

* Adding BGM to missions

* MGSV PBR Texture Analysis The discovery of the shader code has revealed that the srm section is not accurate.
MTAR2 (temp)

The .mtar or **M**o**t**ion **Ar**chive, is the archive format used to store Metal Gear Solid V: Ground Zeroes and Metal Gear Solid V: The Phantom Pain's animation files (.gani). The .mtar format is Little-Endian, meaning bytes are written in reverse order of significance.

## Mtar Type 1

The Mtar Type 1 format is the simpler of the two formats. Animation files contained in Mtar Type 1 files are made of a single chunk, and contain a header.

### Mtar Type 1 Header

* 0x0 - 0x3 (int): Signature. Always 0xBFFA89C for Ground Zeroes and always 0xC012B72 for The Phantom Pain.
* 0x4 - 0x7 (int): Number of contained files.
* 0x8 - 0xB (int): Bone Group 1.
* 0xC - 0xF (int): Bone Group 2.
* 0x10 - 0x1F: Padding.

### File List

A list of all files contained in the archive begins at 0x20. Each entry in the list is 0x10 bytes and follows the following pattern:

* 0x0 - 0x7 (long): Hashed filename.
* 0x8 - 0xB (int): Offset.
* 0xC - 0xF (int): File length.
OBRB

Not much is known about this file type other than it's association with Object Brush (.orb) format. Presumably this format could be utilized in a way you can "paint" the map by barrowing small blocks containing tre2, htre, etc. Custom locations and terrains may be applied through manipulation of this file type.

## Theories

Simple working theory is that the reason why these file types share the same structure is because they were key level editor objects, so the designer responsible for designing the back-end for map design must have engineered these files.
Worst Hurt And Heal Ever!!!

Template:Joke
Template:Adopt

## NOT DED

Bigguh Nigguh All duh chuckun.jpgMeme - 999 HPASSETS THE OBJECT BETTER FOR EVER Wiki Background Proof.pngASSETS THE OBJECT BETTER FOR EVER Wiki Background - 999 HPBeep Poop.pngBeep Poop - 999 HPHappy Super Mouth Open.pngOpen Happy Super Mouth - 999 HPHappy Super Mouth Close.pngClosed Happy Super Mouth - 999 HPLamp Idle.pngBlue Lamp - 999 HPBlue Leafy.pngBlue Leafy - 999 HPBlue Lighter New Pose.pngBlue Lighter - 999 HPBlue raspberry.pngBlue Raspberry - 999 HPAIR Leafy.pngPrincess Leafy - 999 HPLeafyishere.pngLeafyIsHere - 999 HPGreen Evil Leafy.pngGreen Evil Leafy - 999 HPGoldenLeafy.pngYellow Leafy - 999 HPOMECOMEMOUTHFLOW SEMMER.pngOMECOMEMOUTHFLOW SEMMER - 999 HPMouthhappyomg.pngBehavior Card's Happy Super Mouth OMG! - 999 HPMOUTH SUPER FLOW!!! 2.pngMOUTH SUPER FLOW!!! 1 - 999 HPMOUTH SUPER FLOW!!! 1.pngMOUTH SUPER FLOW!!! 2 - 999 HPHappy Holidays! - 999 HPEvil Leafy Normal and with shadow.pngRed Leafy - 999 HPRecolored K.pngRed K - 999 HPAN EXPIRED CHOCOLATE BAR.pngAN EXPIRED CHOCOLATE BAR - 999 HPYellow Bow.pngYellow Bow - 999 HPBSB FR.pngBSB - 999 HPFLASH.gifFlashing Colors - 999 HPI wish you the best.jpgI Wish You The Best - 999 HP
FRIG

The .frig or Fox Rig format is believed to be used to set up IK groups for .fmdl files.

## Header

* 0x0 - 0x3 (uint32): Signature.

* 0x4 - 0x7 (uint32): Header length.

* 0x8 - 0xB (uint32): Unknown.

* 0xC - 0xF (uint32): Num Entries?
* 0x10 - 0x13 (uint32): Unknown.
* 0x14 - 0x17 (uint32): File length.
* 0x18 - 0x1B (uint32): Offset for bone hash section.
* 0x1C - 0x1F (uint32): Offset for unknown section.

## Unknown Section Info

* 0x0 - 0x3 (uint32): Unknown.
* 0x4 - 0x7 (uint32): Num entries.
* 0x8 - (0x8 + 0x4 \* num entries - 1) (uint32[]): Entry offsets.

## Unknown Section Data

* 0x0 - 0x3 (uint32): Unknown
* 0x4 - 0x11 (string): Name.
* 0x12 - 0x57 (binary32[]): Unknown.

## Bone Hash Section Data

* 0x0 - 0x3 (uint32): Unknown.
* 0x4 - 0x7 (uint32): Truncated bone hash.
MtarTool

MtarTool is an open-source unpacker and repacker for Metal Gear Solid V: The Phantom Pain's .mtar (Motion Archive) files, written by BobDoleOwndU. The tool is able to extract .gani (animation) files from the archives, and supports adding new animations to existing archives.

## Usage

To unpack an .mtar archive, a user needs to simply drag and drop the archive onto the MtarTool. Alternatively, the user can unpack an archive by command line, by passing the filepath as an argument (example: MtarTool Example.mtar). The tool will output the contained files in a <filename>\_mtar folder, and an .xml with a list of all of the files that were unpacked. If the archive was an Mtar Type 2 file, additional files may appear alongside the .gani files. Reference the table below to see what the additional files are.

Note: All extensions besides .gani are not used by The Phantom Pain. They are just used by the tool to reference an extracted chunk.

 .trk
 .chnk
 .exchnk
 .enchnk

To repack an archive, the user needs to drag the output .xml file onto the tool. This can also be done by command line, by providing the filepath as an argument (example: MtarTool Example.xml).

To add a new file to the archive, the user needs to add it as an entry in the .xml, and add the file to the unpacked folder. If the file has an .exchnk and/or a .enchnk, they should be added to the unpacked folder as well, but do not need to be added as entries in the .xml. The tool will automatically detect these files if they are present.

### Commands

Currently, the MtarTool only supports one command. The -n, or number command. The -n command adds a four digit id to the beginning of every file's name, indicating its position in the archive. The command can be used by command line like this: MtarTool Example.mtar -n. If the first file in the archive was named 333558ec7872a, it will instead be output as 0000\_333558ec7872a. The user does not need to use the -n command when repacking, as the tool automatically detects if the name of a file contains an id or not.

## Dictionary

MtarTool utilizes a dictionary of strings called mtar*\_dictionary.txt* to match hashed file names to original file path names. If it does not find a match it will output the files with the hash in the root of the extraction folder for the mtar, if it does find a match it will create the original file/folder layout and name.

An up to date dictionary can be found at https://github.com/TinManTex/mgsv-lookup-strings
Unsolved problems

While a lot of progress has been made in modding MGSV since its release, there are still some major unsolved problems and mysteries. This page should serve as an index of major outstanding problems, what's known about them, and why they're important.

Will try to serve this page as a check list, and update the information as necessary.

## Missions

### iDroid mission limit

While custom missions are possible, there is a limit to how many missions can be displayed in the iDroid. it is currently unknown if this limit exists in the exe or in a UI file.

## Levels

As theorized, custom levels are possible and have been implemented thanks to CapLagRobin's research and experimentation, it is now possible to load GNTN(Camp Omega) empty maps, and maps from MGO3.

Work is needed to improve the accessibility of custom level editing and loading.

### Navmeshes

While custom routes would allow you to place soldiers in a custom level, navmeshes are required to facilitate AI navigation of the map. ~~This file format (.nav2, .nta) is completely unexplored.~~

This file format has been reversed and more information can be found on the .nav2 wiki page. Thanks to OldBanana and Ventos for their hard work and implementation!

Still, there is much work that needs to be done to make it more accessible.

## Models

### Levels of Detail

It is unknown exactly how the level of detail faces are triggered in models, making it difficult to implement and nearly impossible to test LOD faces for custom models.

## Animations

### Game Animations

The .gani format has almost no public documentation, meaning custom animations cannot be created. The other chunks of data contained by .mtar files are also undocumented (.trk, .exchnk, .enchnk), making editing them infeasible as well.

### Motion Graph

The motion graph format, which controls animation states, is completely undocumented. This limits animation editing to swapping files.

## Player Mechanics

### Dual-Wielding

It is unknown how Ocelot's dual-wielding mechanic is triggered, making it impossible to dual-wield the Tornadoes in mods that allow him to be used outside of FOB missions.
Commands

Commands in The Phantom Pain's lua files are typically used in the format of:

```
   GameObject.SendCommand(gameObjectId, {id='commandName'})

```

e.g. to get a player's vehicle type index do:

```
   GameObject.SendCommand(vars.playerVehicleGameObjectId, {id='GetVehicleType'})

```

Commands are specific to a game object type, and to a specific instance or overall object of that type.

## Commands by GameObject Type

TppBear

(hash if unknown)

TppBossQuiet2 (includes both boss Quiet and sniper Parasite Unit)

TppBuddyDog2

TppBuddyQuiet2

TppBuddyPuppy

(hash if unknown)
 SetEnabled
 SetRoute

TppCommandPost2

TppCorpse

TppCritterBird, TppEagle, TppStork

TppDecoySystem

(hash if unknown)
 EnableForceUnrealizeAll
 StorePlayerDecoyInfos

TppGoat, TppNubian

TppHeli2, TppEnemyHeli, TppOtherHeli (WestHeli), TppOtherHeli2 (some likely exclusive to one)

TppHorse2 and TppCommonHorse2

TppHorse2forVr (volgin\_horse) and TppPlayerHorse2forVr (ocelot\_horse) (some likely exclusive to one)

TppHostage2, TppHostageUnique, TppHostageUnique2, TppHostageKaz, TppOcelot2, TppHuey2, TppCodeTalker2, TppSkullFace2, TppMantis2 (some likely exclusive to one)

TppLiquid2

TppMarker2LocatorSystem

(hash if unknown)

TppMbQuiet

(hash if unknown)
 StartWakeUp

TppParasite2 (only mist and armoured Skulls)

TppPlayer2

TppRat

(hash if unknown)

TppSahelan2

TppSecurityCamera2

TppSoldier2

TppSupplyCboxSystem

(hash if unknown)
 EnableRequest
 RestoreRequest

TppSupportAttackSystem

(hash if unknown)
 EnableRequest
 RestoreRequest

TppUav

TppVehicle2

TppVolgin2

TppVolgin2forVr (volgin\_vr)

TppWalkerGear2 and TppCommonWalkerGear2 (some likely exclusive to one)

TppWolf, TppJackal

TppZebra

Invalid

(hash if unknown)
 DEBUG\_ChangeEquip
 ExecuteScriptAll

## Sources

https://github.com/unknown321/mgsvdump/blob/master/tpp/sequences/commands\_for\_sequences.lua
Custom Side-Ops List

Custom / Addon Side-Ops / Quests created for Metal Gear Solid V: The Phantom Pain.

See MissionCodes#Side\_Op\_ids for vanilla questIds.

Infinite Heaven is required to add custom side-ops to the game.

Note for side-op authors:
Due to how the engine uses questIds must be unique for each sideop. So if you are creating sideops you should make sure you don't conflict with existing ones, and update this page with the ids you intend to use.
FsmTool

FsmTool is open-source unpacker and repacker for Metal Gear Solid V: The Phantom Pain's .fsm files written by BobDoleOwndU. The tool can extract the DEMO and SND chunks from .fsm files. Additionally, when extracting SND chunks, the tool automatically builds them into a Wwise sound file (.wem).

## Usage

To unpack a .fsm, a user simply needs to drag and drop a .fsm onto the tool. The tool will output the extracted chunks into a folder named *<filename>\_fsm* along with a .xml file documenting the contained chunks. A .wem file built from the file's SND chunks will also be inside the folder containing the chunks.

To repack a .fsm file, the user needs to drag an output .xml file onto the tool. The tool will read the file list from the .xml and repack the .fsm file based on that list.
Sonic 1 SMS Remake

Sonic 1 SMS Remake é um Fan Remake do Sonic 1 de Game Gear e Master System.

* uma Nova Opção Chamada "Music FM", Quando Habilitada as Música em 8-Bits Ficam em 16-Bits
* o Debug Mode está Presente

### Mudanças

* as Esmeraldas do Chaos Agora Ficam no Special Stages Ao Invés de Ficar nas Fases Normais Como no Jogo Original
* as Cores da Paleta estão Diferentes
* o Contador de Anéis Agora Conta Anéis Infinitos
* Agora o Robotinik Tem uma Barra de Vida
* Ao Destruir os Badniks, o Jogador Liberta os Animais, Como Nos Jogos 16-Bits
* Os Monitores Agora Tem Animação
BirdEchoSplash

BirdEchoSplash is one of Metts favorite user. She did gained controversy from Therandom and his friends which Metts isn't involved in. BES thinks she's sexy even though users don't know her looks. Metts believed she could possibly be sexy but would be way better looking at adult age. She wants to be an actress when she gets older. She's an Australian user just like Hugh Jackman being an Australian actor. She would be the female version of Hugh Jackman if she becomes an actress. Unfortunately some users used bad nicknames like BayEchoSplash, BirdEchoTrash, B::::EchoS::: which are offensive nicknames to her.