Survive mod

General
Survive mod adds another layer of immersion that is saved for the hardcore gamers.

Survive mod adds the ability to scavenge for food, ammo and weapons and the need to drink, eat where the world climate effects the player and can cause him to get sick and more.

It is recommended to use survive mod with the MCC campaign but you can use it any way you like to.

Enabling Survive Mode
Enable survival mod either from the setting module or the mission settings in MCC.

Scavenging
Scavenging is a basic aspect in the survival mode where the player can use ACE self interaction key or hold the MCC interaction key while close to any map object in order to search this item and maybe find some useful stuff.

Stashes
Useful stuff would be found in most of the map objects and custom object placed by the mission maker.

Any stash discovered by the player will be saved on the server and it will persistent as scavenging requires iniDBi mod running on the server side. This means that players can hide their valuable goods under a specific tree and come back even after server restart to find out that their stash is intact, unless it was raided but some other players.

More to that, empty stashes will re-spawn every in-game 24 hours by default. The mission maker can change the time period before stash refresh by altering the "MCC_surviveModRefresh" variable in the init.sqf file, where the default value is 1 which means 24 hours.

For example if the mission maker want empty stashes to re-spawn every 48 hours he should put "MCC_surviveModRefresh = 2;" in the init.sqf file. Or "MCC_surviveModRefresh = 0.5" for every 12 hours refresh.

Stashes locations and behavior
Stashes can be found in garbage, barrels, furniture, bushes, graves, boxes, pallets, wrecks and ammo boxes. Each stash has a random chance to have one or more valuable items inside. The items changes by the stash type, for example military vehicle wreck will have more chance to have weapons and ammunition and bushes and trees will most likely yield fruits and dry wood.

Stashes Items
Items in the stashes are randmoly selected from the items and weapons, mod included, that are running on the server.

Custom MCC items
MCC comes with some default custom survival items that can be found while scavenging. This items include: antibiotics, painkillers, fuel cans, food, water exc.

This survival items can be used by the player - see bellow or turned in the start location box for some personal valor points and global resources. For example turning in a fuel can will add the player 50 personal valor points that he in turn can spend in-order to take some new weapons or ammo from the shared box, and additional 50 supply points that the side leader can spend on a new vehicle.

Player can use some of the items by double clicking them in the inventory and selecting the desired action:

Antibiotics: used to heal sickness permanently.

Painkillers: used to remove sickness effects temporary.

Vitamins: slow down hunger effects.

Food Container,Cereal Box,Rice, Powdered Milk, Fruits: Can be eaten.

Bacon, Baked Beans: Can be eaten but need to open the can first.

Water, Canteen, soda cans: Can be drank.

Empty Bottle: Can be used to fill water or fuel.

Empty Canteen: Can be used to fill water only from any water source.

Empty fuel canister: Can be used to fill water from any vehicle with fuel.

Can-opener or a Screwdriver: Can be used to open cans.

Head torch: lights the dark requires batteries.

Matches: Create fire places, needs dry wood.

Food and Drink
When survival mode is on players will need to drink and eat from time to time, preventing doing it will cause players to loose stamina and suffer from visual effects such as blurry vision and may end up in death.

Players can see their status when opening the inventory.

Adding custom interactions with inventory items and gear
You can set custom actions to any item in the players inventory by adding a new cfg called CfgMCCitemsActions in the description.ext file.

Example:

In the example above you can see that I've added interaction for the MCC_canteenMurky magazine class. When the player will double click this item in his inventory he would have up to two available actions:

Purificat water - that requires MCC_waterpure in the player magazines as defined in the "condition" entry.

Drink Murky Waters - which doesn't have any conditions and call for the MCC_fnc_surviveUseFood.

You can use the MCC survival functions which can be found in the in-game function library or create your own functions and conditions.

it is important that each class in the CfgMCCitemsActions will have the same className as the object you are trying to add the custom interaction. You can download example file here.


 *  Setting Custom Water and Food Consumption Rate 

You can change consumption rate by adding this variables in the init.sqf of your mission:

"MCC_survivalCaloriesPerHour" by default it is 1000 calories per hour.

"MCC_survivalWaterPerHour" by default it is 100 milliliters per hour.

Setting object as spawn points
By default all ArmA3 map objects such as wrecks, trees, trash bins exc serves as spawn points for survival items. Mission Makers can change the default spawn points and thier drop chance. Keep in mind that the object are just place holders and the don't really hold loot so you don't need to confine yourself to cargo objects and even objects such as pile of trash can spawn loot in it. Also keep in mind that MCC take into account the object position, means an object that can be move around such as - car, little ammo box exc will count as a new spawn object every time they move - this can lead to exploit by the players.

To set up custom Spawn Points Objects you'll need to expand the description.ext file or just include (#include "myObjects.hpp") new file from the description file.

MCC will first look for a custom spawn object file in the mission and if not is found it will use it default spawn objects config file.

The config class name must be: CfgMCCspawnObjects

The sub class names is up to you and have no effect.

each class holds this values which you have to take into consideration. Example:

You can [https://www.dropbox.com/s/5s0na85pnpy5yec/CfgMCCspawnObjects.hpp?dl=0 download an example file here. ] class CfgMCCspawnObjects { class MCC_barrels { itemClasses[] = {"garbagebarrel","garbagebin"}; //Full object class name or partial chanceWeapon = 5;  //Chnace to drop weapons maxWeapon = 1;  //Max weapons per drop chanceAmmo = 20; //Chance to drop ammo maxAmmo = 2; //Max magazines in drop chanceMed = 10; //Chance to drop medical stuff maxMed = 2; //Max medical items in drop chanceFuel = 10; //Chance to drop fuel maxFuel = 2; //Max fuel items  in drops chanceRepair = 20; //Chance to drop Repair maxRepair = 2; //Max repair items in drops chanceFood = 20; //Chance to drop food maxFood = 2; //Max food items in drop chanceMoney = 15; //Chance to drop money maxMoney = 5; //Max money in drop chanceFruit = 0; //Chance to drop fruits or wood maxFruit = 0; //Max fruit items in drop }; 	class MCC_grave { itemClasses[] = {"grave_forest","grave_dirt","grave_rocks"}; chanceWeapon = 15; maxWeapon = 1; chanceAmmo = 20; maxAmmo = 6; chanceMed = 10; maxMed = 2; chanceFuel = 10; maxFuel = 2; chanceRepair = 10; maxRepair = 2; chanceFood = 10; maxFood = 2; chanceMoney = 15; maxMoney = 5; chanceFruit = 1; maxFruit = 1; }; };

Setting custom loot
You can set what loot can be spawned in each object category as you have seen above there are the: MCC_medItems, MCC_fuelItems, MCC_repairItems, MCC_foodItem, MCC_money, MCC_fruits, MCC_survivalWeapons, MCC_survivalMagazines, MCC_survivalAttachments categories.

You can define each items/weapons/magazines in each category by creating custom CfgMCCspawnItems config in you description.ext file or just creating an new hpp file and including it in your mission. For example. class CfgMCCspawnItems { class MCC_medItems { itemClasses[] = {{"MCC_antibiotics"},{"MCC_painkillers"},{"MCC_bandage"},{"MCC_vitamine"}}; }; 	class MCC_fuelItems { itemClasses[] = {{"MCC_fuelCan"},{"MCC_fuelbot"}}; }; 	class MCC_repairItems { itemClasses[] = {{"MCC_ductTape"},{"MCC_butanetorch"},{"MCC_oilcan"},{"MCC_metalwire"},{"MCC_carBat"},{"MCC_canOpener"},{"MCC_screwdriver"},{"MCC_matches"}}; }; 	class MCC_foodItem { itemClasses[] = {{"MCC_foodcontainer"},{"MCC_cerealbox"},{"MCC_bacon"},{"MCC_rice"},{"MCC_bottle_water"},{"MCC_franta"},{"MCC_bottle_empty"},{"MCC_powderedMilk"},{"MCC_RedGull"},{"MCC_Spirit"},{"MCC_can_dented"}}; }; 	class MCC_money { itemClasses[] = {}; }; 	class MCC_fruits { itemClasses[] = {{"MCC_fruit1"},{"MCC_fruit2"},{"MCC_wood"}}; }; 	class MCC_survivalWeapons { itemClasses[] = {}; }; 	class MCC_survivalMagazines { itemClasses[] = {}; }; 	class MCC_survivalAttachments { itemClasses[] = {}; }; };

For example: MCC_survivalCaloriesPerHour = 500;

MCC_survivalWaterPerHour = 50;