daily pastebin goal
88%
SHARE
TWEET

Untitled

a guest Jan 13th, 2018 43 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * config
  3.  *
  4.  * Exile Mod
  5.  * www.exilemod.com
  6.  * © 2015 Exile Mod Team
  7.  *
  8.  * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
  9.  * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
  10.  */
  11.  
  12.  
  13. class CfgClans
  14. {
  15.     /*
  16.         Defines the amount of pop tabs needed to register a new clan
  17.  
  18.         Default: 20,000
  19.     */
  20.     registrationFee = 20000;
  21.  
  22.     /*
  23.         A list of all characters allowed in a clan *name*
  24.  
  25.         NOTE:
  26.     */
  27.     clanNameAlphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ._-!\\/";
  28.  
  29.     /*
  30.  
  31.         Maximum markers per clan
  32.  
  33.     */
  34.     maximumIcons = 20;
  35.  
  36.     /*
  37.         Maximum number of characters on a Marker in a presistent system
  38.  
  39.         Note: MAX 255!
  40.        
  41.     */
  42.     maximumIconText = 50;
  43.  
  44.     /*
  45.  
  46.         Maximum poly markers per clan
  47.  
  48.     */
  49.     maximumPolys = 10;
  50.  
  51.  
  52.     /*
  53.  
  54.         Maximum points in poly
  55.     */
  56.     maximumPolyNode = 10;
  57. };
  58. class Exile_AbstractCraftingRecipe
  59. {
  60.     name = "";
  61.     pictureItem = "";
  62.     returnedItems[] = {};
  63.     components[] = {}; // Required components
  64.     tools[] = {}; // Required tools (matches, gas cooker etc.)
  65.     requiredInteractionModelGroup = ""; // See CfgInteractionModels
  66.     requiresOcean = 0; // isSurfaceWater test
  67.     requiresFire = 0; // inflamed object nearby
  68.     requiresConcreteMixer = 0; // Check if concrete mixer is nearby
  69. };
  70.  
  71. class CfgCraftingRecipes
  72. {
  73.    
  74. class BreachingChargeBigMomma: Exile_AbstractCraftingRecipe
  75. {
  76.     name = "Breaching Charge (Big Momma)";
  77.     pictureItem = "Exile_Item_BreachingCharge_BigMomma";
  78.     returnedItems[] =
  79.     {
  80.         {1, "Exile_Item_BreachingCharge_BigMomma"}
  81.     };
  82.     tools[] =
  83.     {
  84.         "Exile_Item_Foolbox"
  85.     };
  86.     components[] =
  87.     {
  88.         {3, "Exile_Item_BreachingCharge_Metal"},
  89.         {1, "Exile_Item_MobilePhone"},
  90.         {1, "Exile_Item_DuctTape"},
  91.         {1, "Exile_Item_ZipTie"}
  92.     };
  93. };
  94.  
  95. class BreachingChargeMetal: Exile_AbstractCraftingRecipe
  96. {
  97.     name = "Breaching Charge (Metal)";
  98.     pictureItem = "Exile_Item_BreachingCharge_Metal";
  99.     returnedItems[] =
  100.     {
  101.         {1, "Exile_Item_BreachingCharge_Metal"}
  102.     };
  103.     tools[] =
  104.     {
  105.         "Exile_Item_Foolbox"
  106.     };
  107.     components[] =
  108.     {
  109.         {1, "Exile_Item_DuctTape"},
  110.         {1, "SatchelCharge_Remote_Mag"}
  111.     };
  112. };
  113.  
  114. class BreachingChargeWood: Exile_AbstractCraftingRecipe
  115. {
  116.     name = "Breaching Charge (Wood)";
  117.     pictureItem = "Exile_Item_BreachingCharge_Wood";
  118.     returnedItems[] =
  119.     {
  120.         {1, "Exile_Item_BreachingCharge_Wood"}
  121.     };
  122.     tools[] =
  123.     {
  124.         "Exile_Item_Foolbox"
  125.     };
  126.     components[] =
  127.     {
  128.         {1, "Exile_Item_DuctTape"},
  129.         {1, "DemoCharge_Remote_Mag"}
  130.     };
  131. };
  132.  
  133. class CookBBQSandwich: Exile_AbstractCraftingRecipe
  134. {
  135.     name = "Cook BBQ Sandwich";
  136.     pictureItem = "Exile_Item_BBQSandwich_Cooked";
  137.     requiresFire = 1;
  138.     returnedItems[] =
  139.     {
  140.         {1, "Exile_Item_BBQSandwich_Cooked"}
  141.     };
  142.     tools[] =
  143.     {
  144.         "Exile_Item_CookingPot"
  145.     };
  146.     components[] =
  147.     {
  148.         {1, "Exile_Item_BBQSandwich"}
  149.     };
  150. };
  151.  
  152. class CookCatFood: Exile_AbstractCraftingRecipe
  153. {
  154.     name = "Cook Cat Food";
  155.     pictureItem = "Exile_Item_CatFood_Cooked";
  156.     requiresFire = 1;
  157.     returnedItems[] =
  158.     {
  159.         {1, "Exile_Item_CatFood_Cooked"}
  160.     };
  161.     tools[] =
  162.     {
  163.         "Exile_Item_CookingPot"
  164.     };
  165.     components[] =
  166.     {
  167.         {1, "Exile_Item_CatFood"}
  168.     };
  169. };
  170.  
  171. class CookChristmasTinner: Exile_AbstractCraftingRecipe
  172. {
  173.     name = "Cook Christmas Tinner";
  174.     pictureItem = "Exile_Item_ChristmasTinner_Cooked";
  175.     requiresFire = 1;
  176.     returnedItems[] =
  177.     {
  178.         {1, "Exile_Item_ChristmasTinner_Cooked"}
  179.     };
  180.     tools[] =
  181.     {
  182.         "Exile_Item_CookingPot"
  183.     };
  184.     components[] =
  185.     {
  186.         {1, "Exile_Item_ChristmasTinner"}
  187.     };
  188. };
  189. class CookCoffee: Exile_AbstractCraftingRecipe
  190. {
  191.     name = "Brew Coffee";
  192.     pictureItem = "Exile_Item_PlasticBottleCoffee";
  193.     requiresFire = 1;
  194.     returnedItems[] =
  195.     {
  196.         {1, "Exile_Item_PlasticBottleCoffee"}
  197.     };
  198.     tools[] =
  199.     {
  200.         "Exile_Item_CookingPot"
  201.     };
  202.     components[] =
  203.     {
  204.         {1, "Exile_Item_PlasticBottleFreshWater"},
  205.         {1, "Exile_Item_InstantCoffee"}
  206.     };
  207. };
  208. class CookDogFood: Exile_AbstractCraftingRecipe
  209. {
  210.     name = "Cook Dog Food";
  211.     pictureItem = "Exile_Item_DogFood_Cooked";
  212.     requiresFire = 1;
  213.     returnedItems[] =
  214.     {
  215.         {1, "Exile_Item_DogFood_Cooked"}
  216.     };
  217.     tools[] =
  218.     {
  219.         "Exile_Item_CookingPot"
  220.     };
  221.     components[] =
  222.     {
  223.         {1, "Exile_Item_DogFood"}
  224.     };
  225. };
  226.  
  227. class CookGloriousKnakworst: Exile_AbstractCraftingRecipe
  228. {
  229.     name = "Cook Glorious Knakworst";
  230.     pictureItem = "Exile_Item_GloriousKnakworst_Cooked";
  231.     requiresFire = 1;
  232.     returnedItems[] =
  233.     {
  234.         {1, "Exile_Item_GloriousKnakworst_Cooked"}
  235.     };
  236.     tools[] =
  237.     {
  238.         "Exile_Item_CookingPot"
  239.     };
  240.     components[] =
  241.     {
  242.         {1, "Exile_Item_GloriousKnakworst"}
  243.     };
  244. };
  245.  
  246. class CookMacasCheese: Exile_AbstractCraftingRecipe
  247. {
  248.     name = "Cook Macas Cheese";
  249.     pictureItem = "Exile_Item_MacasCheese_Cooked";
  250.     requiresFire = 1;
  251.     returnedItems[] =
  252.     {
  253.         {1, "Exile_Item_MacasCheese_Cooked"}
  254.     };
  255.     tools[] =
  256.     {
  257.         "Exile_Item_CookingPot"
  258.     };
  259.     components[] =
  260.     {
  261.         {1, "Exile_Item_MacasCheese"}
  262.     };
  263. };
  264.  
  265. class CookPlasticBottleDirtyWater: Exile_AbstractCraftingRecipe
  266. {
  267.     name = "Cook Dirty Water";
  268.     pictureItem = "Exile_Item_PlasticBottleFreshWater";
  269.     requiresFire = 1;
  270.     returnedItems[] =
  271.     {
  272.         {1, "Exile_Item_PlasticBottleFreshWater"}
  273.     };
  274.     tools[] =
  275.     {
  276.         "Exile_Item_CookingPot"
  277.     };
  278.     components[] =
  279.     {
  280.         {1, "Exile_Item_PlasticBottleDirtyWater"}
  281.     };
  282. };
  283. class CookPlasticBottleSaltWater: Exile_AbstractCraftingRecipe
  284. {
  285.     name = "Cook Salt Water";
  286.     pictureItem = "Exile_Item_PlasticBottleFreshWater";
  287.     requiresFire = 1;
  288.     returnedItems[] =
  289.     {
  290.         {1, "Exile_Item_PlasticBottleFreshWater"}
  291.     };
  292.     tools[] =
  293.     {
  294.         "Exile_Item_CookingPot"
  295.     };
  296.     components[] =
  297.     {
  298.         {1, "Exile_Item_PlasticBottleSaltWater"}
  299.     };
  300. };
  301.  
  302. class CookSausageGravy: Exile_AbstractCraftingRecipe
  303. {
  304.     name = "Cook Sausage Gravy";
  305.     pictureItem = "Exile_Item_SausageGravy_Cooked";
  306.     requiresFire = 1;
  307.     returnedItems[] =
  308.     {
  309.         {1, "Exile_Item_SausageGravy_Cooked"}
  310.     };
  311.     tools[] =
  312.     {
  313.         "Exile_Item_CookingPot"
  314.     };
  315.     components[] =
  316.     {
  317.         {1, "Exile_Item_SausageGravy"}
  318.     };
  319. };
  320.  
  321. class CookSurstromming: Exile_AbstractCraftingRecipe
  322. {
  323.     name = "Cook Surströmming";
  324.     pictureItem = "Exile_Item_Surstromming_Cooked";
  325.     requiresFire = 1;
  326.     returnedItems[] =
  327.     {
  328.         {1, "Exile_Item_Surstromming_Cooked"}
  329.     };
  330.     tools[] =
  331.     {
  332.         "Exile_Item_CookingPot"
  333.     };
  334.     components[] =
  335.     {
  336.         {1, "Exile_Item_Surstromming"}
  337.     };
  338. };
  339.  
  340. class CraftBandage: Exile_AbstractCraftingRecipe
  341. {
  342.     name = "Craft Bandage";
  343.     pictureItem = "Exile_Item_Bandage";
  344.     returnedItems[] =
  345.     {
  346.         {1, "Exile_Item_Bandage"}
  347.     };
  348.     components[] =
  349.     {
  350.         {4, "Exile_Item_ToiletPaper"}
  351.     };
  352. };
  353.  
  354. class CraftConcreteDoorway: Exile_AbstractCraftingRecipe
  355. {
  356.     name = "Craft Concrete Doorway";
  357.     pictureItem = "Exile_Item_ConcreteDoorwayKit";
  358.     requiresConcreteMixer = true;
  359.     returnedItems[] =
  360.     {
  361.         {1, "Exile_Item_ConcreteDoorwayKit"},
  362.         {3, "Exile_Item_WaterCanisterEmpty"},
  363.         {1, "Exile_Item_FuelCanisterEmpty"}
  364.     };
  365.     components[] =
  366.     {
  367.         {3, "Exile_Item_Cement"},
  368.         {3, "Exile_Item_Sand"},
  369.         {3, "Exile_Item_MetalPole"},
  370.         {3, "Exile_Item_WaterCanisterDirtyWater"},
  371.         {1, "Exile_Item_FuelCanisterFull"}
  372.     };
  373. };
  374. class CraftConcreteFloor: Exile_AbstractCraftingRecipe
  375. {
  376.     name = "Craft Concrete Floor";
  377.     pictureItem = "Exile_Item_ConcreteFloorKit";
  378.     requiresConcreteMixer = true;
  379.     returnedItems[] =
  380.     {
  381.         {1, "Exile_Item_ConcreteFloorKit"},
  382.         {2, "Exile_Item_WaterCanisterEmpty"},
  383.         {1, "Exile_Item_FuelCanisterEmpty"}
  384.     };
  385.     components[] =
  386.     {
  387.         {2, "Exile_Item_Cement"},
  388.         {2, "Exile_Item_Sand"},
  389.         {2, "Exile_Item_MetalPole"},
  390.         {2, "Exile_Item_WaterCanisterDirtyWater"},
  391.         {1, "Exile_Item_FuelCanisterFull"}
  392.     };
  393. };
  394. class CraftConcreteFloorPort: Exile_AbstractCraftingRecipe
  395. {
  396.     name = "Craft Concrete Floor Port";
  397.     pictureItem = "Exile_Item_ConcreteFloorPortKit";
  398.     requiresConcreteMixer = true;
  399.     returnedItems[] =
  400.     {
  401.         {1, "Exile_Item_ConcreteFloorPortKit"},
  402.         {3, "Exile_Item_WaterCanisterEmpty"},
  403.         {1, "Exile_Item_FuelCanisterEmpty"}
  404.     };
  405.     components[] =
  406.     {
  407.         {3, "Exile_Item_Cement"},
  408.         {3, "Exile_Item_Sand"},
  409.         {3, "Exile_Item_MetalPole"},
  410.         {3, "Exile_Item_WaterCanisterDirtyWater"},
  411.         {1, "Exile_Item_FuelCanisterFull"}
  412.     };
  413. };
  414. class CraftConcreteGate: Exile_AbstractCraftingRecipe
  415. {
  416.     name = "Craft Concrete Gate";
  417.     pictureItem = "Exile_Item_ConcreteGateKit";
  418.     requiresConcreteMixer = true;
  419.     returnedItems[] =
  420.     {
  421.         {1, "Exile_Item_ConcreteGateKit"},
  422.         {4, "Exile_Item_WaterCanisterEmpty"},
  423.         {1, "Exile_Item_FuelCanisterEmpty"}
  424.     };
  425.     components[] =
  426.     {
  427.         {4, "Exile_Item_Cement"},
  428.         {4, "Exile_Item_Sand"},
  429.         {4, "Exile_Item_MetalPole"},
  430.         {4, "Exile_Item_WaterCanisterDirtyWater"},
  431.         {1, "Exile_Item_FuelCanisterFull"}
  432.     };
  433. };
  434. class CraftConcretStairs: Exile_AbstractCraftingRecipe
  435. {
  436.     name = "Craft Concrete Stairs";
  437.     pictureItem = "Exile_Item_ConcreteStairsKit";
  438.     requiresConcreteMixer = true;
  439.     returnedItems[] =
  440.     {
  441.         {1, "Exile_Item_ConcreteStairsKit"},
  442.         {1, "Exile_Item_WaterCanisterEmpty"},
  443.         {1, "Exile_Item_FuelCanisterEmpty"}
  444.     };
  445.     components[] =
  446.     {
  447.         {1, "Exile_Item_Cement"},
  448.         {1, "Exile_Item_Sand"},
  449.         {1, "Exile_Item_MetalPole"},
  450.         {1, "Exile_Item_WaterCanisterDirtyWater"},
  451.         {1, "Exile_Item_FuelCanisterFull"}
  452.     };
  453. };
  454. class CraftConcretSupport: Exile_AbstractCraftingRecipe
  455. {
  456.     name = "Craft Concrete Support";
  457.     pictureItem = "Exile_Item_ConcreteSupportKit";
  458.     requiresConcreteMixer = true;
  459.     returnedItems[] =
  460.     {
  461.         {1, "Exile_Item_ConcreteSupportKit"},
  462.         {1, "Exile_Item_WaterCanisterEmpty"},
  463.         {1, "Exile_Item_FuelCanisterEmpty"}
  464.     };
  465.     components[] =
  466.     {
  467.         {1, "Exile_Item_Cement"},
  468.         {1, "Exile_Item_Sand"},
  469.         {1, "Exile_Item_MetalPole"},
  470.         {1, "Exile_Item_WaterCanisterDirtyWater"},
  471.         {1, "Exile_Item_FuelCanisterFull"}
  472.     };
  473. };
  474. class CraftConcreteWall: Exile_AbstractCraftingRecipe
  475. {
  476.     name = "Craft Concrete Wall";
  477.     pictureItem = "Exile_Item_ConcreteWallKit";
  478.     requiresConcreteMixer = true;
  479.     returnedItems[] =
  480.     {
  481.         {1, "Exile_Item_ConcreteWallKit"},
  482.         {2, "Exile_Item_WaterCanisterEmpty"},
  483.         {1, "Exile_Item_FuelCanisterEmpty"}
  484.     };
  485.     components[] =
  486.     {
  487.         {2, "Exile_Item_Cement"},
  488.         {2, "Exile_Item_Sand"},
  489.         {2, "Exile_Item_MetalPole"},
  490.         {2, "Exile_Item_WaterCanisterDirtyWater"},
  491.         {1, "Exile_Item_FuelCanisterFull"}
  492.     };
  493. };
  494. class CraftFirePlace: Exile_AbstractCraftingRecipe
  495. {
  496.     name = "Craft Fire Place";
  497.     pictureItem = "Exile_Item_CampFireKit";
  498.     returnedItems[] =
  499.     {
  500.         {1, "Exile_Item_CampFireKit"}
  501.     };
  502.     components[] =
  503.     {
  504.         {2, "Exile_Item_WoodLog"}
  505.     };
  506. };
  507. class CraftFloodLight: Exile_AbstractCraftingRecipe
  508. {
  509.     name = "Craft Flood Light";
  510.     pictureItem = "Exile_Item_FloodLightKit";
  511.     requiresFire = 1;
  512.     returnedItems[] =
  513.     {
  514.         {1, "Exile_Item_FloodLightKit"}
  515.     };
  516.     components[] =
  517.     {
  518.         {1, "Exile_Item_MetalPole"},
  519.         {1, "Exile_Item_LightBulb"},
  520.         {1, "Exile_Item_ExtensionCord"}
  521.     };
  522. };
  523. class CraftFortificationUpgrade: Exile_AbstractCraftingRecipe
  524. {
  525.     name = "Craft Fortification Upgrade";
  526.     pictureItem = "Exile_Item_MetalBoard"; //<< CHANGE IT
  527.     requiresFire = 1;
  528.     requiredInteractionModelGroup = "WorkBench";
  529.     returnedItems[] =
  530.     {
  531.         {1, "Exile_Item_FortificationUpgrade"}
  532.     };
  533.     components[] =
  534.     {
  535.         {2, "Exile_Item_MetalPole"},
  536.         {4, "Exile_Item_MetalBoard"}
  537.     };
  538.     tools[] = {"Exile_Item_Grinder"};
  539. };
  540. class CraftHBarrier5Kit: Exile_AbstractCraftingRecipe
  541. {
  542.     name = "Craft H-barrier (5 Blocks)";
  543.     pictureItem = "Exile_Item_HBarrier5Kit";
  544.     requiredInteractionModelGroup = "WorkBench";
  545.     tools[] =
  546.     {
  547.         "Exile_Item_Pliers"
  548.     };
  549.     returnedItems[] =
  550.     {
  551.         {1, "Exile_Item_HBarrier5Kit"}
  552.     };
  553.     components[] =
  554.     {
  555.         {3, "Exile_Item_SandBagsKit_Long"},
  556.         {2, "Exile_Item_MetalWire"}
  557.     };
  558. };
  559. class CraftMetalBoard: Exile_AbstractCraftingRecipe
  560. {
  561.     name = "Craft Metal Board";
  562.     pictureItem = "Exile_Item_MetalBoard";
  563.     requiresFire = 1;
  564.     returnedItems[] =
  565.     {
  566.         {1, "Exile_Item_MetalBoard"}
  567.     };
  568.     components[] =
  569.     {
  570.         {2, "Exile_Item_JunkMetal"}
  571.     };
  572.     tools[] = {"Exile_Item_Grinder"};
  573. };
  574. class CraftMetalHedgehog: Exile_AbstractCraftingRecipe
  575. {
  576.     name = "Craft Metal Hedgehog";
  577.     pictureItem = "Exile_Item_MetalHedgehogKit";
  578.     requiresFire = 1;
  579.     returnedItems[] =
  580.     {
  581.         {1, "Exile_Item_MetalHedgehogKit"}
  582.     };
  583.     components[] =
  584.     {
  585.         {4, "Exile_Item_MetalPole"}
  586.     };
  587.     tools[] = {"Exile_Item_Grinder"};
  588. };
  589. class CraftMetalPole: Exile_AbstractCraftingRecipe
  590. {
  591.     name = "Craft Metal Pole";
  592.     pictureItem = "Exile_Item_MetalPole";
  593.     requiresFire = 1;
  594.     returnedItems[] =
  595.     {
  596.         {1, "Exile_Item_MetalPole"}
  597.     };
  598.     components[] =
  599.     {
  600.         {4, "Exile_Item_JunkMetal"}
  601.     };
  602.     tools[] = {"Exile_Item_Grinder"};
  603. };
  604. class CraftPortableGenerator: Exile_AbstractCraftingRecipe
  605. {
  606.     name = "Craft Portable Generator";
  607.     pictureItem = "Exile_Item_PortableGeneratorKit";
  608.     requiresFire = 1;
  609.     returnedItems[] =
  610.     {
  611.         {1, "Exile_Item_PortableGeneratorKit"}
  612.     };
  613.     components[] =
  614.     {
  615.         {4, "Exile_Item_MetalBoard"},
  616.         {1, "Exile_Item_FuelCanisterFull"},
  617.         {1, "Exile_Item_ExtensionCord"}
  618.     };
  619. };
  620. /*class CraftRazorWireKit: Exile_AbstractCraftingRecipe
  621. {
  622.     name = "Craft Razor Wire Kit Kit";
  623.     pictureItem = "Exile_Item_RazorWireKit_Long";
  624.     requiredInteractionModelGroup = "WorkBench";
  625.     tools[] =
  626.     {
  627.         "Exile_Item_Grinder",
  628.         "Exile_Item_Pliers",
  629.         "Exile_Item_Screwdriver"
  630.     };
  631.     returnedItems[] =
  632.     {
  633.         {1, "Exile_Item_RazorWireKit_Long"}
  634.     };
  635.     components[] =
  636.     {
  637.         {2, "Exile_Item_MetalPole"},
  638.         {4, "Exile_Item_MetalWire"},
  639.         {1, "Exile_Item_MetalScrews"}
  640.     };
  641. };*/
  642. class CraftRepairKitConcrete: Exile_AbstractCraftingRecipe
  643. {
  644.     name = "Craft Concrete Repair Kit";
  645.     pictureItem = "Exile_Item_Cement";
  646.     requiresConcreteMixer = true;
  647.     returnedItems[] =
  648.     {
  649.         {1, "Exile_Item_RepairKitConcrete"},
  650.         {1, "Exile_Item_WaterCanisterEmpty"},
  651.         {1, "Exile_Item_FuelCanisterEmpty"}
  652.     };
  653.     components[] =
  654.     {
  655.         {4, "Exile_Item_Cement"},
  656.         {2, "Exile_Item_Sand"},
  657.         {1, "Exile_Item_WaterCanisterDirtyWater"},
  658.         {1, "Exile_Item_FuelCanisterFull"}
  659.     };
  660. };
  661. class CraftRepairKitMetal: Exile_AbstractCraftingRecipe
  662. {
  663.     name = "Craft Metal Repair Kit";
  664.     pictureItem = "Exile_Item_RepairKitMetal";
  665.     requiresFire = 0;
  666.     requiredInteractionModelGroup = "WorkBench";
  667.     returnedItems[] =
  668.     {
  669.         {1, "Exile_Item_RepairKitMetal"}
  670.     };
  671.     components[] =
  672.     {
  673.         {4, "Exile_Item_MetalBoard"}
  674.     };
  675.     tools[] =
  676.     {
  677.         "Exile_Item_Foolbox",
  678.         "Exile_Item_Grinder"
  679.     };
  680. };
  681. class CraftRepairKitWood: Exile_AbstractCraftingRecipe
  682. {
  683.     name = "Craft Wood Repair Kit";
  684.     pictureItem = "Exile_Item_RepairKitWood";
  685.     requiresFire = 0;
  686.     requiredInteractionModelGroup = "WorkBench";
  687.     returnedItems[] =
  688.     {
  689.         {1, "Exile_Item_RepairKitWood"}
  690.     };
  691.     components[] =
  692.     {
  693.         {4, "Exile_Item_WoodPlank"}
  694.     };
  695.     tools[] =
  696.     {
  697.         "Exile_Item_Foolbox"
  698.     };
  699. };
  700. class CraftSandBagsKitCorner: Exile_AbstractCraftingRecipe
  701. {
  702.     name = "Craft Sandbags Kit (Corner)";
  703.     pictureItem = "Exile_Item_SandBagsKit_Corner";
  704.     requiredInteractionModelGroup = "WorkBench";
  705.     returnedItems[] =
  706.     {
  707.         {1, "Exile_Item_SandBagsKit_Corner"}
  708.     };
  709.     components[] =
  710.     {
  711.         {3, "Exile_Item_Sand"}
  712.     };
  713. };
  714. class CraftSandBagsKitLong: Exile_AbstractCraftingRecipe
  715. {
  716.     name = "Craft Sand Bags Kit (Long)";
  717.     pictureItem = "Exile_Item_SandBagsKit_Long";
  718.     requiredInteractionModelGroup = "WorkBench";
  719.     returnedItems[] =
  720.     {
  721.         {1, "Exile_Item_SandBagsKit_Long"}
  722.     };
  723.     components[] =
  724.     {
  725.         {6, "Exile_Item_Sand"}
  726.     };
  727. };
  728. class CraftStorageCrate: Exile_AbstractCraftingRecipe
  729. {
  730.     name = "Craft Storage Crate";
  731.     pictureItem = "Exile_Item_StorageCrateKit";
  732.     requiredInteractionModelGroup = "WorkBench";
  733.     returnedItems[] =
  734.     {
  735.         {1, "Exile_Item_StorageCrateKit"}
  736.     };
  737.     components[] =
  738.     {
  739.         {5, "Exile_Item_WoodPlank"}
  740.     };
  741. };
  742. class CraftWaterBarrel: Exile_AbstractCraftingRecipe
  743. {
  744.     name = "Craft Water Barrel";
  745.     pictureItem = "Exile_Item_WaterBarrelKit";
  746.     requiredInteractionModelGroup = "WorkBench";
  747.     requiresFire = 1;
  748.     returnedItems[] =
  749.     {
  750.         {1, "Exile_Item_WaterBarrelKit"}
  751.     };
  752.     components[] =
  753.     {
  754.         {20, "Exile_Item_PlasticBottleEmpty"}
  755.     };
  756. };
  757. class CraftWireFenceKit: Exile_AbstractCraftingRecipe
  758. {
  759.     name = "Craft Wire Fence Kit";
  760.     pictureItem = "Exile_Item_WireFenceKit";
  761.     requiredInteractionModelGroup = "WorkBench";
  762.     tools[] =
  763.     {
  764.         "Exile_Item_Grinder",
  765.         "Exile_Item_Pliers",
  766.         "Exile_Item_Screwdriver"
  767.     };
  768.     returnedItems[] =
  769.     {
  770.         {1, "Exile_Item_WireFenceKit"}
  771.     };
  772.     components[] =
  773.     {
  774.         {4, "Exile_Item_MetalPole"},
  775.         {6, "Exile_Item_MetalWire"},
  776.         {1, "Exile_Item_MetalScrews"}
  777.     };
  778. };
  779. class CraftWoodDoorWay: Exile_AbstractCraftingRecipe
  780. {
  781.     name = "Craft Wood Doorway";
  782.     pictureItem = "Exile_Item_WoodDoorwayKit";
  783.     requiredInteractionModelGroup = "WorkBench";
  784.     returnedItems[] =
  785.     {
  786.         {1, "Exile_Item_WoodDoorwayKit"}
  787.     };
  788.     components[] =
  789.     {
  790.         {6, "Exile_Item_WoodPlank"}
  791.     };
  792. };
  793. class CraftWoodDrawBridge: Exile_AbstractCraftingRecipe
  794. {
  795.     name = "Craft Wood Draw Bridge";
  796.     pictureItem = "Exile_Item_WoodDrawBridgeKit";
  797.     requiredInteractionModelGroup = "WorkBench";
  798.     returnedItems[] =
  799.     {
  800.         {1, "Exile_Item_WoodDrawBridgeKit"}
  801.     };
  802.     components[] =
  803.     {
  804.         {8, "Exile_Item_WoodPlank"},
  805.         {1, "Exile_Item_JunkMetal"},
  806.         {1, "Exile_Item_MetalScrews"}
  807.     };
  808. };
  809. class CraftWoodFloor: Exile_AbstractCraftingRecipe
  810. {
  811.     name = "Craft Wood Floor";
  812.     pictureItem = "Exile_Item_WoodFloorKit";
  813.     requiredInteractionModelGroup = "WorkBench";
  814.     returnedItems[] =
  815.     {
  816.         {1, "Exile_Item_WoodFloorKit"}
  817.     };
  818.     components[] =
  819.     {
  820.         {4, "Exile_Item_WoodPlank"}
  821.     };
  822. };
  823. class CraftWoodFloorPort: Exile_AbstractCraftingRecipe
  824. {
  825.     name = "Craft Wood Floor Port";
  826.     pictureItem = "Exile_Item_WoodFloorPortKit";
  827.     requiredInteractionModelGroup = "WorkBench";
  828.     returnedItems[] =
  829.     {
  830.         {1, "Exile_Item_WoodFloorPortKit"}
  831.     };
  832.     components[] =
  833.     {
  834.         {6, "Exile_Item_WoodPlank"}
  835.     };
  836. };
  837. class CraftWoodFloorPortSmall: Exile_AbstractCraftingRecipe
  838. {
  839.     name = "Craft Wood Floor Port (Small)";
  840.     pictureItem = "Exile_Item_WoodFloorPortSmallKit";
  841.     requiredInteractionModelGroup = "WorkBench";
  842.     returnedItems[] =
  843.     {
  844.         {1, "Exile_Item_WoodFloorPortSmallKit"}
  845.     };
  846.     components[] =
  847.     {
  848.         {6, "Exile_Item_WoodPlank"}
  849.     };
  850. };
  851. class CraftWoodGate: Exile_AbstractCraftingRecipe
  852. {
  853.     name = "Craft Wood Gate";
  854.     pictureItem = "Exile_Item_WoodGateKit";
  855.     requiredInteractionModelGroup = "WorkBench";
  856.     returnedItems[] =
  857.     {
  858.         {1, "Exile_Item_WoodGateKit"}
  859.     };
  860.     components[] =
  861.     {
  862.         {8, "Exile_Item_WoodPlank"}
  863.     };
  864. };
  865. class CraftWoodLadder: Exile_AbstractCraftingRecipe
  866. {
  867.     name = "Craft Wood Ladder";
  868.     pictureItem = "Exile_Item_WoodLadderKit";
  869.     requiredInteractionModelGroup = "WorkBench";
  870.     returnedItems[] =
  871.     {
  872.         {1, "Exile_Item_WoodLadderKit"}
  873.     };
  874.     components[] =
  875.     {
  876.         {6, "Exile_Item_WoodPlank"}
  877.     };
  878. };
  879. class CraftWoodPlank: Exile_AbstractCraftingRecipe
  880. {
  881.     name = "Craft Wood Plank";
  882.     pictureItem = "Exile_Item_WoodPlank";
  883.     requiredInteractionModelGroup = "WorkBench";
  884.     returnedItems[] =
  885.     {
  886.         {1, "Exile_Item_WoodPlank"}
  887.     };
  888.     components[] =
  889.     {
  890.         {2, "Exile_Item_WoodLog"}
  891.     };
  892.     tools[] = {"Exile_Item_Handsaw"};
  893. };
  894. class CraftWoodStairs: Exile_AbstractCraftingRecipe
  895. {
  896.     name = "Craft Wood Stairs";
  897.     pictureItem = "Exile_Item_WoodStairsKit";
  898.     requiredInteractionModelGroup = "WorkBench";
  899.     returnedItems[] =
  900.     {
  901.         {1, "Exile_Item_WoodStairsKit"}
  902.     };
  903.     components[] =
  904.     {
  905.         {6, "Exile_Item_WoodPlank"}
  906.     };
  907. };
  908. class CraftWoodSupport: Exile_AbstractCraftingRecipe
  909. {
  910.     name = "Craft Wood Support";
  911.     pictureItem = "Exile_Item_WoodSupportKit";
  912.     requiredInteractionModelGroup = "WorkBench";
  913.     returnedItems[] =
  914.     {
  915.         {1, "Exile_Item_WoodSupportKit"}
  916.     };
  917.     components[] =
  918.     {
  919.         {6, "Exile_Item_WoodPlank"}
  920.     };
  921. };
  922. class CraftWoodWall: Exile_AbstractCraftingRecipe
  923. {
  924.     name = "Craft Wood Wall";
  925.     pictureItem = "Exile_Item_WoodWallKit";
  926.     requiredInteractionModelGroup = "WorkBench";
  927.     returnedItems[] =
  928.     {
  929.         {1, "Exile_Item_WoodWallKit"}
  930.     };
  931.     components[] =
  932.     {
  933.         {4, "Exile_Item_WoodPlank"}
  934.     };
  935. };
  936. class CraftWoodWallHalf: Exile_AbstractCraftingRecipe
  937. {
  938.     name = "Craft 1/2 Wood Wall";
  939.     pictureItem = "Exile_Item_WoodWallHalfKit";
  940.     requiredInteractionModelGroup = "WorkBench";
  941.     returnedItems[] =
  942.     {
  943.         {1, "Exile_Item_WoodWallHalfKit"}
  944.     };
  945.     components[] =
  946.     {
  947.         {2, "Exile_Item_WoodPlank"}
  948.     };
  949. };
  950. class CraftWoodWindow: Exile_AbstractCraftingRecipe
  951. {
  952.     name = "Craft Wood Window";
  953.     pictureItem = "Exile_Item_WoodWindowKit";
  954.     requiredInteractionModelGroup = "WorkBench";
  955.     returnedItems[] =
  956.     {
  957.         {1, "Exile_Item_WoodWindowKit"}
  958.     };
  959.     components[] =
  960.     {
  961.         {6, "Exile_Item_WoodPlank"}
  962.     };
  963. };
  964. class CraftWorkBench: Exile_AbstractCraftingRecipe
  965. {
  966.     name = "Craft Work Bench";
  967.     pictureItem = "Exile_Item_WorkBenchKit";
  968.     returnedItems[] =
  969.     {
  970.         {1, "Exile_Item_WorkBenchKit"}
  971.     };
  972.     components[] =
  973.     {
  974.         {4, "Exile_Item_WoodLog"}
  975.     };
  976. };
  977. class CookAlsatianSteak: Exile_AbstractCraftingRecipe
  978. {
  979.     name = "Cook Alsatian Steak";
  980.     pictureItem = "Exile_Item_AlsatianSteak_Cooked";
  981.     requiresFire = 1;
  982.     returnedItems[] =
  983.     {
  984.         {1, "Exile_Item_AlsatianSteak_Cooked"}
  985.     };
  986.     tools[] =
  987.     {
  988.         "Exile_Item_CookingPot"
  989.     };
  990.     components[] =
  991.     {
  992.         {1, "Exile_Item_AlsatianSteak_Raw"}
  993.     };
  994. };
  995.  
  996. ///////////////////////////////////////////////////////////////////////////////
  997.  
  998. class CookCatSharkFilet: Exile_AbstractCraftingRecipe
  999. {
  1000.     name = "Cook Cat Shark Filet";
  1001.     pictureItem = "Exile_Item_CatSharkFilet_Cooked";
  1002.     requiresFire = 1;
  1003.     returnedItems[] =
  1004.     {
  1005.         {1, "Exile_Item_CatSharkFilet_Cooked"}
  1006.     };
  1007.     tools[] =
  1008.     {
  1009.         "Exile_Item_CookingPot"
  1010.     };
  1011.     components[] =
  1012.     {
  1013.         {1, "Exile_Item_CatSharkFilet_Raw"}
  1014.     };
  1015. };
  1016.  
  1017. ///////////////////////////////////////////////////////////////////////////////
  1018.  
  1019. class CookChickenFilet: Exile_AbstractCraftingRecipe
  1020. {
  1021.     name = "Cook Chicken Filet";
  1022.     pictureItem = "Exile_Item_ChickenFilet_Cooked";
  1023.     requiresFire = 1;
  1024.     returnedItems[] =
  1025.     {
  1026.         {1, "Exile_Item_ChickenFilet_Cooked"}
  1027.     };
  1028.     tools[] =
  1029.     {
  1030.         "Exile_Item_CookingPot"
  1031.     };
  1032.     components[] =
  1033.     {
  1034.         {1, "Exile_Item_ChickenFilet_Raw"}
  1035.     };
  1036. };
  1037.  
  1038. ///////////////////////////////////////////////////////////////////////////////
  1039.  
  1040. class CookFinSteak: Exile_AbstractCraftingRecipe
  1041. {
  1042.     name = "Cook Fin Steak";
  1043.     pictureItem = "Exile_Item_FinSteak_Cooked";
  1044.     requiresFire = 1;
  1045.     returnedItems[] =
  1046.     {
  1047.         {1, "Exile_Item_FinSteak_Cooked"}
  1048.     };
  1049.     tools[] =
  1050.     {
  1051.         "Exile_Item_CookingPot"
  1052.     };
  1053.     components[] =
  1054.     {
  1055.         {1, "Exile_Item_FinSteak_Raw"}
  1056.     };
  1057. };
  1058.  
  1059. ///////////////////////////////////////////////////////////////////////////////
  1060.  
  1061. class CookGoatSteak: Exile_AbstractCraftingRecipe
  1062. {
  1063.     name = "Cook Goat Steak";
  1064.     pictureItem = "Exile_Item_GoatSteak_Cooked";
  1065.     requiresFire = 1;
  1066.     returnedItems[] =
  1067.     {
  1068.         {1, "Exile_Item_GoatSteak_Cooked"}
  1069.     };
  1070.     tools[] =
  1071.     {
  1072.         "Exile_Item_CookingPot"
  1073.     };
  1074.     components[] =
  1075.     {
  1076.         {1, "Exile_Item_GoatSteak_Raw"}
  1077.     };
  1078. };
  1079.  
  1080. ///////////////////////////////////////////////////////////////////////////////
  1081.  
  1082. class CookMackerelFilet: Exile_AbstractCraftingRecipe
  1083. {
  1084.     name = "Cook Mackerel Filet";
  1085.     pictureItem = "Exile_Item_MackerelFilet_Cooked";
  1086.     requiresFire = 1;
  1087.     returnedItems[] =
  1088.     {
  1089.         {1, "Exile_Item_MackerelFilet_Cooked"}
  1090.     };
  1091.     tools[] =
  1092.     {
  1093.         "Exile_Item_CookingPot"
  1094.     };
  1095.     components[] =
  1096.     {
  1097.         {1, "Exile_Item_MackerelFilet_Raw"}
  1098.     };
  1099. };
  1100.  
  1101. ///////////////////////////////////////////////////////////////////////////////
  1102.  
  1103. class CookMulletFilet: Exile_AbstractCraftingRecipe
  1104. {
  1105.     name = "Cook Mullet Filet";
  1106.     pictureItem = "Exile_Item_MulletFilet_Cooked";
  1107.     requiresFire = 1;
  1108.     returnedItems[] =
  1109.     {
  1110.         {1, "Exile_Item_MulletFilet_Cooked"}
  1111.     };
  1112.     tools[] =
  1113.     {
  1114.         "Exile_Item_CookingPot"
  1115.     };
  1116.     components[] =
  1117.     {
  1118.         {1, "Exile_Item_MulletFilet_Raw"}
  1119.     };
  1120. };
  1121.  
  1122. ///////////////////////////////////////////////////////////////////////////////
  1123.  
  1124. class CookOrnateFilet: Exile_AbstractCraftingRecipe
  1125. {
  1126.     name = "Cook Ornate Filet";
  1127.     pictureItem = "Exile_Item_OrnateFilet_Cooked";
  1128.     requiresFire = 1;
  1129.     returnedItems[] =
  1130.     {
  1131.         {1, "Exile_Item_OrnateFilet_Cooked"}
  1132.     };
  1133.     tools[] =
  1134.     {
  1135.         "Exile_Item_CookingPot"
  1136.     };
  1137.     components[] =
  1138.     {
  1139.         {1, "Exile_Item_OrnateFilet_Raw"}
  1140.     };
  1141. };
  1142.  
  1143. ///////////////////////////////////////////////////////////////////////////////
  1144.  
  1145. class CookRabbitSteak: Exile_AbstractCraftingRecipe
  1146. {
  1147.     name = "Cook Rabbit Steak";
  1148.     pictureItem = "Exile_Item_RabbitSteak_Cooked";
  1149.     requiresFire = 1;
  1150.     returnedItems[] =
  1151.     {
  1152.         {1, "Exile_Item_RabbitSteak_Cooked"}
  1153.     };
  1154.     tools[] =
  1155.     {
  1156.         "Exile_Item_CookingPot"
  1157.     };
  1158.     components[] =
  1159.     {
  1160.         {1, "Exile_Item_RabbitSteak_Raw"}
  1161.     };
  1162. };
  1163.  
  1164. ///////////////////////////////////////////////////////////////////////////////
  1165.  
  1166. class CookRoosterFilet: Exile_AbstractCraftingRecipe
  1167. {
  1168.     name = "Cook Rooster Filet";
  1169.     pictureItem = "Exile_Item_RoosterFilet_Cooked";
  1170.     requiresFire = 1;
  1171.     returnedItems[] =
  1172.     {
  1173.         {1, "Exile_Item_RoosterFilet_Cooked"}
  1174.     };
  1175.     tools[] =
  1176.     {
  1177.         "Exile_Item_CookingPot"
  1178.     };
  1179.     components[] =
  1180.     {
  1181.         {1, "Exile_Item_RoosterFilet_Raw"}
  1182.     };
  1183. };
  1184.  
  1185. ///////////////////////////////////////////////////////////////////////////////
  1186.  
  1187. class CookSalemaFilet: Exile_AbstractCraftingRecipe
  1188. {
  1189.     name = "Cook Salema Filet";
  1190.     pictureItem = "Exile_Item_SalemaFilet_Cooked";
  1191.     requiresFire = 1;
  1192.     returnedItems[] =
  1193.     {
  1194.         {1, "Exile_Item_SalemaFilet_Cooked"}
  1195.     };
  1196.     tools[] =
  1197.     {
  1198.         "Exile_Item_CookingPot"
  1199.     };
  1200.     components[] =
  1201.     {
  1202.         {1, "Exile_Item_SalemaFilet_Raw"}
  1203.     };
  1204. };
  1205.  
  1206. ///////////////////////////////////////////////////////////////////////////////
  1207.  
  1208. class CookSheepSteak: Exile_AbstractCraftingRecipe
  1209. {
  1210.     name = "Cook Sheep Steak";
  1211.     pictureItem = "Exile_Item_SheepSteak_Cooked";
  1212.     requiresFire = 1;
  1213.     returnedItems[] =
  1214.     {
  1215.         {1, "Exile_Item_SheepSteak_Cooked"}
  1216.     };
  1217.     tools[] =
  1218.     {
  1219.         "Exile_Item_CookingPot"
  1220.     };
  1221.     components[] =
  1222.     {
  1223.         {1, "Exile_Item_SheepSteak_Raw"}
  1224.     };
  1225. };
  1226.  
  1227. ///////////////////////////////////////////////////////////////////////////////
  1228.  
  1229. class CookSnakeFilet: Exile_AbstractCraftingRecipe
  1230. {
  1231.     name = "Cook Snake Filet";
  1232.     pictureItem = "Exile_Item_SnakeFilet_Cooked";
  1233.     requiresFire = 1;
  1234.     returnedItems[] =
  1235.     {
  1236.         {1, "Exile_Item_SnakeFilet_Cooked"}
  1237.     };
  1238.     tools[] =
  1239.     {
  1240.         "Exile_Item_CookingPot"
  1241.     };
  1242.     components[] =
  1243.     {
  1244.         {1, "Exile_Item_SnakeFilet_Raw"}
  1245.     };
  1246. };
  1247.  
  1248. ///////////////////////////////////////////////////////////////////////////////
  1249.  
  1250. class CookTunaFilet: Exile_AbstractCraftingRecipe
  1251. {
  1252.     name = "Cook Tuna Filet";
  1253.     pictureItem = "Exile_Item_TunaFilet_Cooked";
  1254.     requiresFire = 1;
  1255.     returnedItems[] =
  1256.     {
  1257.         {1, "Exile_Item_TunaFilet_Cooked"}
  1258.     };
  1259.     tools[] =
  1260.     {
  1261.         "Exile_Item_CookingPot"
  1262.     };
  1263.     components[] =
  1264.     {
  1265.         {1, "Exile_Item_TunaFilet_Raw"}
  1266.     };
  1267. };
  1268.  
  1269. ///////////////////////////////////////////////////////////////////////////////
  1270.  
  1271. class CookTurtleFilet: Exile_AbstractCraftingRecipe
  1272. {
  1273.     name = "Cook Turtle Filet";
  1274.     pictureItem = "Exile_Item_TurtleFilet_Cooked";
  1275.     requiresFire = 1;
  1276.     returnedItems[] =
  1277.     {
  1278.         {1, "Exile_Item_TurtleFilet_Cooked"}
  1279.     };
  1280.     tools[] =
  1281.     {
  1282.         "Exile_Item_CookingPot"
  1283.     };
  1284.     components[] =
  1285.     {
  1286.         {1, "Exile_Item_TurtleFilet_Raw"}
  1287.     };
  1288. };
  1289.  
  1290.  
  1291. class EmptyFuelCanister: Exile_AbstractCraftingRecipe
  1292. {
  1293.     name = "Empty Fuel Canister";
  1294.     pictureItem = "Exile_Item_FuelCanisterEmpty";
  1295.     returnedItems[] =
  1296.     {
  1297.         {1, "Exile_Item_FuelCanisterEmpty"}
  1298.     };
  1299.     components[] =
  1300.     {
  1301.         {1, "Exile_Item_FuelCanisterFull"}
  1302.     };
  1303. };
  1304. class EmptyPlasticBottleDirtyWater: Exile_AbstractCraftingRecipe
  1305. {
  1306.     name = "Empty Dirty Water";
  1307.     pictureItem = "Exile_Item_PlasticBottleEmpty";
  1308.     returnedItems[] =
  1309.     {
  1310.         {1, "Exile_Item_PlasticBottleEmpty"}
  1311.     };
  1312.     components[] =
  1313.     {
  1314.         {1, "Exile_Item_PlasticBottleDirtyWater"}
  1315.     };
  1316. };
  1317. class EmptyPlasticBottleSaltWater: Exile_AbstractCraftingRecipe
  1318. {
  1319.     name = "Empty Salt Water";
  1320.     pictureItem = "Exile_Item_PlasticBottleEmpty";
  1321.     returnedItems[] =
  1322.     {
  1323.         {1, "Exile_Item_PlasticBottleEmpty"}
  1324.     };
  1325.     components[] =
  1326.     {
  1327.         {1, "Exile_Item_PlasticBottleSaltWater"}
  1328.     };
  1329. };
  1330. class FillEmptyPlasticBottleWithDirtyWater: Exile_AbstractCraftingRecipe
  1331. {
  1332.     name = "Fill Dirty Water";
  1333.     pictureItem = "Exile_Item_PlasticBottleDirtyWater";
  1334.     requiredInteractionModelGroup = "WaterSource";
  1335.     returnedItems[] =
  1336.     {
  1337.         {1, "Exile_Item_PlasticBottleDirtyWater"}
  1338.     };
  1339.     components[] =
  1340.     {
  1341.         {1, "Exile_Item_PlasticBottleEmpty"}
  1342.     };
  1343. };
  1344. class FillEmptyPlasticBottleWithFreshWater: Exile_AbstractCraftingRecipe
  1345. {
  1346.     name = "Fill Fresh Water";
  1347.     pictureItem = "Exile_Item_PlasticBottleFreshWater";
  1348.     requiredInteractionModelGroup = "CleanWaterSource";
  1349.     returnedItems[] =
  1350.     {
  1351.         {1, "Exile_Item_PlasticBottleFreshWater"}
  1352.     };
  1353.     components[] =
  1354.     {
  1355.         {1, "Exile_Item_PlasticBottleEmpty"}
  1356.     };
  1357. };
  1358. class FillEmptyPlasticBottleWithSaltWater: Exile_AbstractCraftingRecipe
  1359. {
  1360.     name = "Fill Salt Water";
  1361.     pictureItem = "Exile_Item_PlasticBottleSaltWater";
  1362.     requiresOcean = 1;
  1363.     returnedItems[] =
  1364.     {
  1365.         {1, "Exile_Item_PlasticBottleSaltWater"}
  1366.     };
  1367.     components[] =
  1368.     {
  1369.         {1, "Exile_Item_PlasticBottleEmpty"}
  1370.     };
  1371. };
  1372. class FillEmptyWaterCanisterWithDirtyWater: Exile_AbstractCraftingRecipe
  1373. {
  1374.     name = "Fill Dirty Water";
  1375.     pictureItem = "Exile_Item_WaterCanisterDirtyWater";
  1376.     requiredInteractionModelGroup = "WaterSource";
  1377.     returnedItems[] =
  1378.     {
  1379.         {1, "Exile_Item_WaterCanisterDirtyWater"}
  1380.     };
  1381.     components[] =
  1382.     {
  1383.         {1, "Exile_Item_WaterCanisterEmpty"}
  1384.     };
  1385. };
  1386. class FillFuelCanister: Exile_AbstractCraftingRecipe
  1387. {
  1388.     name = "Fill Fuel Canister";
  1389.     pictureItem = "Exile_Item_FuelCanisterFull";
  1390.     requiredInteractionModelGroup = "FuelSource";
  1391.     returnedItems[] =
  1392.     {
  1393.         {1, "Exile_Item_FuelCanisterFull"}
  1394.     };
  1395.     components[] =
  1396.     {
  1397.         {1, "Exile_Item_FuelCanisterEmpty"}
  1398.     };
  1399. };
  1400. class UpgradeToConcreteDoor: Exile_AbstractCraftingRecipe
  1401. {
  1402.     name = "Upgrade to Concrete Door";
  1403.     pictureItem = "Exile_Item_ConcreteDoorKit";
  1404.     requiredInteractionModelGroup = "WorkBench";
  1405.     returnedItems[] =
  1406.     {
  1407.         {1, "Exile_Item_ConcreteDoorKit"}
  1408.     };
  1409.     components[] =
  1410.     {
  1411.         {1, "Exile_Item_ConcreteDoorwayKit"},
  1412.         {2, "Exile_Item_MetalPole"},
  1413.         {4, "Exile_Item_MetalBoard"}
  1414.     };
  1415. };
  1416. class UpgradeToConcreteFloorPort: Exile_AbstractCraftingRecipe
  1417. {
  1418.     name = "Upgrade to Concrete Floor Port";
  1419.     pictureItem = "Exile_Item_ConcreteFloorPortKit";
  1420.     requiredInteractionModelGroup = "WorkBench";
  1421.     returnedItems[] =
  1422.     {
  1423.         {1, "Exile_Item_ConcreteFloorPortKit"}
  1424.     };
  1425.     components[] =
  1426.     {
  1427.         {1, "Exile_Item_ConcreteFloorKit"},
  1428.         {2, "Exile_Item_MetalPole"},
  1429.         {4, "Exile_Item_MetalBoard"}
  1430.     };
  1431. };
  1432. class UpgradeToConcreteGate: Exile_AbstractCraftingRecipe
  1433. {
  1434.     name = "Upgrade to Concrete Gate";
  1435.     pictureItem = "Exile_Item_ConcreteGateKit";
  1436.     requiredInteractionModelGroup = "WorkBench";
  1437.     returnedItems[] =
  1438.     {
  1439.         {1, "Exile_Item_ConcreteGateKit"}
  1440.     };
  1441.     components[] =
  1442.     {
  1443.         {1, "Exile_Item_ConcreteWallKit"},
  1444.         {2, "Exile_Item_MetalPole"},
  1445.         {4, "Exile_Item_MetalBoard"}
  1446.     };
  1447. };
  1448. class UpgradeToConcreteWindow: Exile_AbstractCraftingRecipe
  1449. {
  1450.     name = "Upgrade to Concrete Window";
  1451.     pictureItem = "Exile_Item_ConcreteWindowKit";
  1452.     requiredInteractionModelGroup = "WorkBench";
  1453.     returnedItems[] =
  1454.     {
  1455.         {1, "Exile_Item_ConcreteWindowKit"}
  1456.     };
  1457.     components[] =
  1458.     {
  1459.         {1, "Exile_Item_ConcreteWallKit"},
  1460.         {2, "Exile_Item_MetalPole"},
  1461.         {4, "Exile_Item_MetalBoard"}
  1462.     };
  1463. };
  1464. class UpgradeToWoodDoor: Exile_AbstractCraftingRecipe
  1465. {
  1466.     name = "Upgrade to Wood Door";
  1467.     pictureItem = "Exile_Item_WoodDoorKit";
  1468.     requiredInteractionModelGroup = "WorkBench";
  1469.     returnedItems[] =
  1470.     {
  1471.         {1, "Exile_Item_WoodDoorKit"}
  1472.     };
  1473.     components[] =
  1474.     {
  1475.         {1, "Exile_Item_WoodDoorwayKit"},
  1476.         {2, "Exile_Item_WoodPlank"}
  1477.     };
  1478. };
  1479. class UpgradeToWoodDrawBridge: Exile_AbstractCraftingRecipe
  1480. {
  1481.     name = "Upgrade to Wood Draw Bridge";
  1482.     pictureItem = "Exile_Item_WoodDrawBridgeKit";
  1483.     requiredInteractionModelGroup = "WorkBench";
  1484.     returnedItems[] =
  1485.     {
  1486.         {1, "Exile_Item_WoodDrawBridgeKit"}
  1487.     };
  1488.     components[] =
  1489.     {
  1490.         {1, "Exile_Item_WoodGateKit"},
  1491.         {2, "Exile_Item_WoodPlank"},
  1492.         {1, "Exile_Item_JunkMetal"},
  1493.         {1, "Exile_Item_MetalScrews"}
  1494.     };
  1495. };
  1496. class UpgradeToWoodFloorPort: Exile_AbstractCraftingRecipe
  1497. {
  1498.     name = "Upgrade to Wood Floor Port";
  1499.     pictureItem = "Exile_Item_WoodFloorPortKit";
  1500.     requiredInteractionModelGroup = "WorkBench";
  1501.     returnedItems[] =
  1502.     {
  1503.         {1, "Exile_Item_WoodFloorPortKit"}
  1504.     };
  1505.     components[] =
  1506.     {
  1507.         {1, "Exile_Item_WoodFloorKit"},
  1508.         {2, "Exile_Item_WoodPlank"}
  1509.     };
  1510. };
  1511. class UpgradeToWoodGate: Exile_AbstractCraftingRecipe
  1512. {
  1513.     name = "Upgrade to Wood Gate";
  1514.     pictureItem = "Exile_Item_WoodGateKit";
  1515.     requiredInteractionModelGroup = "WorkBench";
  1516.     returnedItems[] =
  1517.     {
  1518.         {1, "Exile_Item_WoodGateKit"}
  1519.     };
  1520.     components[] =
  1521.     {
  1522.         {1, "Exile_Item_WoodWallKit"},
  1523.         {4, "Exile_Item_WoodPlank"}
  1524.     };
  1525. };
  1526. class UpgradeToWoodWall: Exile_AbstractCraftingRecipe
  1527. {
  1528.     name = "Upgrade to Wood Wall";
  1529.     pictureItem = "Exile_Item_WoodWallHalfKit";
  1530.     requiredInteractionModelGroup = "WorkBench";
  1531.     returnedItems[] =
  1532.     {
  1533.         {1, "Exile_Item_WoodWallKit"}
  1534.     };
  1535.     components[] =
  1536.     {
  1537.         {2, "Exile_Item_WoodWallHalfKit"}
  1538.     };
  1539. };
  1540. class UpgradeToWoodWindow: Exile_AbstractCraftingRecipe
  1541. {
  1542.     name = "Upgrade to Wood Window";
  1543.     pictureItem = "Exile_Item_WoodWindowKit";
  1544.     requiredInteractionModelGroup = "WorkBench";
  1545.     returnedItems[] =
  1546.     {
  1547.         {1, "Exile_Item_WoodWindowKit"}
  1548.     };
  1549.     components[] =
  1550.     {
  1551.         {1, "Exile_Item_WoodWallKit"},
  1552.         {2, "Exile_Item_WoodPlank"}
  1553.     };
  1554. };
  1555. };
  1556. class CfgExileAnimals
  1557. {
  1558.     /**
  1559.      * Should animals spawn on your server? Y/N?
  1560.      */
  1561.     enabled = 1;
  1562.  
  1563.     /**
  1564.      * Should vanilla Arma animals (fish, rabbits, bees, etc.) be disabled?
  1565.      * We think it should, since it might confuse players if they cant eat them. *munches on bees*
  1566.      */
  1567.     disableVanillaAnimals = 1;
  1568.  
  1569.     /**
  1570.      * Which animals to spawn.
  1571.      * Exile automatically spawns a color variation of that animal, if variations exist.
  1572.      * Each player (client) has a maximum of one animal at a time.
  1573.      * Exile checks which animal type can spawn in front of the player and then
  1574.      * picks a random one.
  1575.      *
  1576.      * For now it is like this:
  1577.      *
  1578.      * - Goats spawn on hill tops, but not in forests
  1579.      * - Sheep spawn on meadows, but not next to forests and not on hill tops
  1580.      * - Hens and roosters spawn next to buildings only
  1581.      *
  1582.      * => More animal types will follow in upcoming Exile versions, hopefully.
  1583.      */
  1584.     animalTypes[] =
  1585.     {
  1586.         "Exile_Animal_Rooster_Abstract",
  1587.         "Exile_Animal_Hen_Abstract",
  1588.         "Exile_Animal_Goat_Abstract",
  1589.         "Exile_Animal_Sheep_Abstract"
  1590.     };
  1591.  
  1592.     /**
  1593.      * Animals are always spawned in front of the player, but
  1594.      * at least a certain distance away. The radius is applied on top.
  1595.      *
  1596.      * Example:
  1597.      * Distance = 150
  1598.      * Radius = 50
  1599.      *
  1600.      * => Minimum Distance from Player = 150
  1601.      * => Maximum Distance from Player = 150 + 50 * 2
  1602.      */
  1603.     spawnDistance = 150;
  1604.     spawnRadius = 50;
  1605.  
  1606.     /**
  1607.      * Specifies the minimum time in seconds between spawning animals.
  1608.      * When the animal diededed, this time has to pass before it spawns
  1609.      * a new one.
  1610.      *
  1611.      * It is a min/max setting, so the intervals will be uneven and a bit random.
  1612.      * By default it will take 5 to 10 minutes to respawn a new animal.
  1613.      */
  1614.     minimumSpawnDelay = 5 * 60;
  1615.     maximumSpawnDelay = 10 * 60;
  1616.  
  1617.     /**
  1618.      * Clients will despawn animals if no player is in this radius around the animal
  1619.      * This check is ran every 1 minute, so it is pretty unprecise, but performance-friendly.
  1620.      */
  1621.     keepAliveRadius = 500;
  1622.  
  1623.     /**
  1624.      * Defines the minimum lifetime of an animal in seconds. During this time, right after spawning,
  1625.      * it will not despawn. (+-0..1 minute delay)
  1626.      */
  1627.     minimumLifetime = 5 * 60;
  1628. };
  1629. class CfgExileArsenal
  1630. {
  1631.     #include "TRADERS\APEX\ItemListAPEX.hpp",
  1632.     #include "TRADERS\CUNITS\ItemListCUNITS.hpp",
  1633.     #include "TRADERS\CUPW\ItemListCUPW.hpp",
  1634.     #include "TRADERS\ARMA3V\ItemListARMA3V.hpp",
  1635.     #include "TRADERS\ARMA3W\ItemListARMA3W.hpp",
  1636.     #include "TRADERS\Exile\ItemListExile.hpp",
  1637.     #include "TRADERS\CUSTOM\ItemListCUSTOM.hpp",
  1638.     #include "TRADERS\CUPV\ItemListCUPV.hpp"
  1639.  
  1640. };
  1641. class CfgExileCustomCode
  1642. {
  1643.     /*
  1644.         You can overwrite every single file of our code without touching it.
  1645.         To do that, add the function name you want to overwrite plus the
  1646.         path to your custom file here. If you wonder how this works, have a
  1647.         look at our bootstrap/fn_preInit.sqf function.
  1648.  
  1649.         Simply add the following scheme here:
  1650.  
  1651.         <Function Name of Exile> = "<New File Name>";
  1652.  
  1653.         Example:
  1654.  
  1655.         ExileClient_util_fusRoDah = "myaddon\myfunction.sqf";
  1656.     */
  1657. };
  1658. class CfgExileEnvironment
  1659. {
  1660.     class Altis
  1661.     {
  1662.         class FireFlies
  1663.         {
  1664.             // 1 = enabled, 0 = disabled
  1665.             enable = 0;
  1666.  
  1667.             // At this hour fire flies begin to spawn
  1668.             startHour = 18;
  1669.  
  1670.             // At this hour fire flies stop spawning
  1671.             endHour = 4;
  1672.         };
  1673.  
  1674.         class Anomalies
  1675.         {
  1676.             // 1 = enabled, 0 = disabled
  1677.             enable = 0;
  1678.  
  1679.             // At this hour anomalies begin to spawn
  1680.             startHour = 19;
  1681.  
  1682.             // At this hour anomalies stop spawning
  1683.             endHour = 6;
  1684.         };
  1685.  
  1686.         class Breathing
  1687.         {
  1688.             // 1 = enabled, 0 = disabled
  1689.             enable = 0;
  1690.         };
  1691.  
  1692.         class Snow
  1693.         {
  1694.             // 1 = enabled, 0 = disabled
  1695.             enable = 0;
  1696.  
  1697.             // https://community.bistudio.com/wiki/surfaceType
  1698.             surfaces[] = {};
  1699.         };
  1700.  
  1701.         class Radiation
  1702.         {
  1703.             // 1 = enabled, 0 = disabled
  1704.             enable = 1;
  1705.         };
  1706.  
  1707.         class Temperature
  1708.         {
  1709.             // Temperature in °C for the time of day, per hour
  1710.             // Add the first index to the last index, so it is 25 indizes!
  1711.             daytimeTemperature[] = {15.93,16.89,18.42,20.40,22.68,25.10,27.48,29.63,31.40,32.66,33.32,33.80,33.80,33.32,32.66,31.40,29.63,27.48,25.10,22.68,20.40,18.42,16.89,15.93,15.93};
  1712.        
  1713.             // Temperature change in °C when it is 100% overcast
  1714.             overcast = -2;
  1715.  
  1716.             // Temperature change in °C when it is 100% raining
  1717.             rain = -5;
  1718.  
  1719.             // Temperature change in °C when it is 100% windy
  1720.             wind = -1;
  1721.  
  1722.             // Temperature change per 100m altitude in °C
  1723.             altitude = -0.5;
  1724.  
  1725.             // Difference from the daytime temperature to the water temperature
  1726.             water = -5;
  1727.         };
  1728.     };
  1729.  
  1730.     class Namalsk: Altis
  1731.     {
  1732.         class FireFlies: FireFlies
  1733.         {
  1734.             enable = 1;
  1735.         };
  1736.  
  1737.         class Anomalies: Anomalies
  1738.         {
  1739.             enable = 1;
  1740.         };
  1741.  
  1742.         class Breathing: Breathing
  1743.         {
  1744.             enable = 1;
  1745.         };
  1746.  
  1747.         class Snow: Snow
  1748.         {
  1749.             enable = 1;
  1750.             surfaces[] = {"#nam_snow"};
  1751.         };
  1752.  
  1753.         class Radiation: Radiation
  1754.         {
  1755.             enable = 1;
  1756.             contaminatedZones[] =
  1757.             {
  1758.                 {{3960.14,  8454.75,    152.862},   80,     140},   // Object A1
  1759.                 {{4974.70,  6632.82,    4.74293},   40,     150},   // Object A2
  1760.                 {{6487.92,  9302.03,    36.0014},   60,     110}    // Sebjan Chemical Factory
  1761.             };
  1762.         };
  1763.  
  1764.         class Temperature: Temperature
  1765.         {
  1766.             daytimeTemperature[] = {-2.00,-1.77,-1.12,-0.10,1.24,2.78,4.40,6.00,7.46,8.65,9.50,9.90,9.90,9.50,8.65,7.46,6.00,4.40,2.78,1.24,-0.10,-1.12,-1.77,-2.00,-2.00};
  1767.         };
  1768.     };
  1769.  
  1770.     class Tanoa: Altis
  1771.     {
  1772.         class FireFlies: FireFlies
  1773.         {
  1774.             enable = 0;
  1775.         };
  1776.  
  1777.         class Anomalies: Anomalies
  1778.         {
  1779.             enable = 0;
  1780.         };
  1781.  
  1782.         class Breathing: Breathing
  1783.         {
  1784.             enable = 0;
  1785.         };
  1786.  
  1787.         class Snow: Snow
  1788.         {
  1789.             enable = 0;
  1790.         };
  1791.  
  1792.         class Radiation: Radiation
  1793.         {
  1794.             enable = 1;
  1795.         };
  1796.  
  1797.         class Temperature: Temperature
  1798.         {
  1799.             daytimeTemperature[] = {15.93,16.89,18.42,20.40,22.68,25.10,27.48,29.63,31.40,32.66,33.32,33.80,33.80,33.32,32.66,31.40,29.63,27.48,25.10,22.68,20.40,18.42,16.89,15.93,15.93};
  1800.         };
  1801.     };
  1802.  
  1803.     class Malden: Altis
  1804.     {
  1805.         class FireFlies: FireFlies
  1806.         {
  1807.             enable = 1;
  1808.         };
  1809.  
  1810.         class Anomalies: Anomalies
  1811.         {
  1812.             enable = 0;
  1813.         };
  1814.  
  1815.         class Breathing: Breathing
  1816.         {
  1817.             enable = 0;
  1818.         };
  1819.  
  1820.         class Snow: Snow
  1821.         {
  1822.             enable = 0;
  1823.         };
  1824.  
  1825.         class Radiation: Radiation
  1826.         {
  1827.             enable = 0;
  1828.         };
  1829.  
  1830.         class Temperature: Temperature
  1831.         {
  1832.             daytimeTemperature[] = {15.93,16.89,18.42,20.40,22.68,25.10,27.48,29.63,31.40,32.66,33.32,33.80,33.80,33.32,32.66,31.40,29.63,27.48,25.10,22.68,20.40,18.42,16.89,15.93,15.93};
  1833.         };
  1834.     };
  1835.    
  1836. };
  1837. class CfgExileHUD
  1838. {
  1839.     class ShortItemNames
  1840.     {
  1841.         SmokeShell[]                        = {"WHITE",     "SMOKE"};
  1842.         1Rnd_Smoke_Grenade_shell[]          = {"WHITE",     "SMOKE"};
  1843.         3Rnd_Smoke_Grenade_shell[]          = {"WHITE",     "SMOKE"};
  1844.  
  1845.         SmokeShellBlue[]                    = {"BLUE",      "SMOKE"};
  1846.         1Rnd_SmokeBlue_Grenade_shell[]      = {"BLUE",      "SMOKE"};
  1847.         3Rnd_SmokeBlue_Grenade_shell[]      = {"BLUE",      "SMOKE"};
  1848.  
  1849.         SmokeShellGreen[]                   = {"GREEN",     "SMOKE"};
  1850.         1Rnd_SmokeGreen_Grenade_shell[]     = {"GREEN",     "SMOKE"};
  1851.         3Rnd_SmokeGreen_Grenade_shell[]     = {"GREEN",     "SMOKE"};
  1852.  
  1853.         SmokeShellOrange[]                  = {"ORANGE",    "SMOKE"};
  1854.         1Rnd_SmokeOrange_Grenade_shell[]    = {"ORANGE",    "SMOKE"};
  1855.         3Rnd_SmokeOrange_Grenade_shell[]    = {"ORANGE",    "SMOKE"};
  1856.  
  1857.         SmokeShellPurple[]                  = {"PURPLE",    "SMOKE"};
  1858.         1Rnd_SmokePurple_Grenade_shell[]    = {"PURPLE",    "SMOKE"};
  1859.         3Rnd_SmokePurple_Grenade_shell[]    = {"PURPLE",    "SMOKE"};
  1860.  
  1861.         SmokeShellRed[]                     = {"RED",       "SMOKE"};
  1862.         1Rnd_SmokeRed_Grenade_shell[]       = {"RED",       "SMOKE"};
  1863.         3Rnd_SmokeRed_Grenade_shell[]       = {"RED",       "SMOKE"};
  1864.                
  1865.         SmokeShellYellow[]                  = {"YELLOW",    "SMOKE"};
  1866.         1Rnd_SmokeYellow_Grenade_shell[]    = {"YELLOW",    "SMOKE"};
  1867.         3Rnd_SmokeYellow_Grenade_shell[]    = {"YELLOW",    "SMOKE"};
  1868.                
  1869.         UGL_FlareCIR_F[]                    = {"IR",        "FLARE"};
  1870.         3Rnd_UGL_FlareCIR_F[]               = {"IR",        "FLARE"};
  1871.  
  1872.         UGL_FlareGreen_F[]                  = {"GREEN",     "FLARE"};
  1873.         3Rnd_UGL_FlareGreen_F[]             = {"GREEN",     "FLARE"};
  1874.  
  1875.         UGL_FlareRed_F[]                    = {"RED",       "FLARE"};
  1876.         3Rnd_UGL_FlareRed_F[]               = {"RED",       "FLARE"};
  1877.  
  1878.         UGL_FlareWhite_F[]                  = {"WHITE",     "FLARE"};
  1879.         3Rnd_UGL_FlareWhite_F[]             = {"WHITE",     "FLARE"};
  1880.  
  1881.         UGL_FlareYellow_F[]                 = {"YELLOW",    "FLARE"};
  1882.         3Rnd_UGL_FlareYellow_F[]            = {"YELLOW",    "FLARE"};
  1883.  
  1884.         Chemlight_blue[]                    = {"BLUE",      "LIGHT"};
  1885.         Chemlight_green[]                   = {"GREEN",     "LIGHT"};
  1886.         Chemlight_red[]                     = {"RED",       "LIGHT"};
  1887.         Chemlight_yellow[]                  = {"YELLOW",    "LIGHT"};
  1888.  
  1889.         1Rnd_HE_Grenade_shell[]             = {"40MM"};
  1890.         3Rnd_HE_Grenade_shell[]             = {"40MM"};
  1891.  
  1892.         O_IR_Grenade[]                      = {"IR"};
  1893.         I_IR_Grenade[]                      = {"IR"};
  1894.         B_IR_Grenade[]                      = {"IR"};
  1895.  
  1896.         HandGrenade[]                       = {"RGO"};
  1897.         MiniGrenade[]                       = {"RGN"};
  1898.  
  1899.         Exile_Item_ZipTie[]                 = {"ZIP", "TIE"};
  1900.     };
  1901. };
  1902. class CfgExileLootSettings
  1903. {
  1904.     /**
  1905.      * Lifetime of loot in minutes. Synchronize this with
  1906.      * the garbage collector settings of your server
  1907.      * CfgSettings!
  1908.      */
  1909.     lifeTime = 8;
  1910.  
  1911.     /**
  1912.      * Interval in seconds when the client searches for
  1913.      * new buildings to spawn loot in
  1914.      */
  1915.     spawnInterval = 30;
  1916.  
  1917.     /**
  1918.      * This is a percentage value to determine how many loot
  1919.      * positions should contain loot when the system spawns loot.
  1920.      *
  1921.      * If a building has 20 positions defined, Exile will
  1922.      * spawn loot in 10 random positions of them.
  1923.      *
  1924.      * This means smaller buildings spawn less loot and larger
  1925.      * ones spawn more loot.
  1926.      *
  1927.      * You can also cap it at a maximum value. See below.
  1928.      */
  1929.     maximumPositionCoverage = 30;
  1930.  
  1931.     /**
  1932.      * Limit the number of loot positions per building. If the
  1933.      * above percentage value exceeds this value, it will be capped.
  1934.      *
  1935.      * Example: Coverage is 50%. Building has 60 loot positions defined.
  1936.      * This results in 30 loot positions and that is too much. So we
  1937.      * cap this at 10
  1938.      */
  1939.     maximumNumberOfLootSpotsPerBuilding = 30;
  1940.  
  1941.     /**
  1942.      * Exile spawns a random number of items per loot spot. This
  1943.      * is the upper cap for that. So 3 means it could spawn 1, 2
  1944.      * or 3.
  1945.      */
  1946.     maximumNumberOfItemsPerLootSpot = 10;
  1947.  
  1948.     /**
  1949.      * Radius in meter to spawn loot AROUND each player.
  1950.      * Do NOT touch this value if you dont know what you do.
  1951.      * The higher the number, the higher the drop rates, the
  1952.      * easier your server will lag.
  1953.      *
  1954.      * 50m  = Minimum
  1955.      * 200m = Maximum
  1956.      */
  1957.     spawnRadius = 60;
  1958.  
  1959.     /**
  1960.      * Defines the radius around trader cities where the system should
  1961.      * not spawn loot. Set this to 0 if you want to have loot spawning
  1962.      * in trader citites, ugh.
  1963.      */
  1964.     minimumDistanceToTraderZones = 500;
  1965.  
  1966.     /**
  1967.      * Defines the radius around territories where no loot spawns.
  1968.      * This does not regard the actual size of a territory. So do not
  1969.      * set this to a lower value than the maximum radius of a territory,
  1970.      * which is 150m by default.
  1971.      */
  1972.     minimumDistanceToTerritories = 50;
  1973. };
  1974. class CfgExileMobileXM8
  1975. {
  1976.     /**
  1977.      * Add the 4 digit permission code here, so players can authorize
  1978.      * your server to send them messages to their Mobile XM8 app.
  1979.      */
  1980.     code = "";
  1981. };
  1982. class CfgExileMusic
  1983. {
  1984.     Ambient[] = {"ExileTrack03","ExileTrack04"};
  1985.     Combat[] = {"ExileTrack06","ExileTrack07"};
  1986.     Intro[] = {"ExileTrack02","ExileTrack03"};
  1987. };
  1988. class CfgExileParty
  1989. {
  1990.     showESP = 1;
  1991.     allow3DMarkers = 1;
  1992. };
  1993. class CfgExileRussianRoulette
  1994. {
  1995.     /*
  1996.         Minimum amount to join a session of
  1997.         russian roulette
  1998.     */
  1999.     buyInAmount = 100;
  2000. };
  2001. class CfgFlags
  2002. {
  2003.     class USA
  2004.     {
  2005.         name = "USA";
  2006.         texture = "\A3\Data_F\Flags\flag_us_co.paa";
  2007.         uids[] = {};
  2008.     };
  2009. };
  2010.  
  2011. class ExileAbstractAction
  2012. {
  2013.     title = "";
  2014.     condition = "true";
  2015.     action = "";
  2016.     priority = 1.5;
  2017.     showWindow = false;
  2018. };
  2019.  
  2020. /**
  2021.  * Sort this by probability of occurence to speed things up a bit
  2022.  */
  2023. class CfgInteractionMenus
  2024. {
  2025.     class Car
  2026.     {
  2027.         targetType = 2;
  2028.         target = "Car";
  2029.  
  2030.         class Actions
  2031.         {
  2032.             class ScanLock: ExileAbstractAction
  2033.             {
  2034.                 title = "Scan Lock";
  2035.                 condition = "('Exile_Item_ThermalScannerPro' in (magazines player)) && !ExilePlayerInSafezone && ((locked ExileClientInteractionObject) != 1)";
  2036.                 action = "_this call ExileClient_object_lock_scan";
  2037.             };
  2038.  
  2039.             // Locks a vehicle
  2040.             class Lock: ExileAbstractAction
  2041.             {
  2042.                 title = "Lock";
  2043.                 condition = "((locked ExileClientInteractionObject) isEqualTo 0) && ((locked ExileClientInteractionObject) != 1)";
  2044.                 action = "true spawn ExileClient_object_lock_toggle";
  2045.             };
  2046.  
  2047.             // Unlocks a vehicle
  2048.             class Unlock: ExileAbstractAction
  2049.             {
  2050.                 title = "Unlock";
  2051.                 condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)";
  2052.                 action = "false spawn ExileClient_object_lock_toggle";
  2053.             };
  2054.  
  2055.             // Repairs a vehicle to 100%. Requires Duckttape
  2056.             class Repair: ExileAbstractAction
  2057.             {
  2058.                 title = "Repair";
  2059.                 condition = "true";
  2060.                 action = "['RepairVehicle', _this select 0] call ExileClient_action_execute";
  2061.             };
  2062.  
  2063.             // Hot-wires a vehicle
  2064.             class Hotwire: ExileAbstractAction
  2065.             {
  2066.                 title = "Hotwire";
  2067.                 condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)";
  2068.                 action = "['HotwireVehicle', _this select 0] call ExileClient_action_execute";
  2069.             };
  2070.  
  2071.             // Flips a vehicle so the player doesnt have to call an admin
  2072.             // Check if vector up is fucked
  2073.             class Flip: ExileAbstractAction
  2074.             {
  2075.                 title = "Flip";
  2076.                 condition = "call ExileClient_object_vehicle_interaction_show";
  2077.                 action = "_this call ExileClient_object_vehicle_flip";
  2078.             };
  2079.  
  2080.             // Fills fuel from a can into a car
  2081.             class Refuel: ExileAbstractAction
  2082.             {
  2083.                 title = "Refuel";
  2084.                 condition = "call ExileClient_object_vehicle_interaction_show";
  2085.                 action = "_this call ExileClient_object_vehicle_refuel";
  2086.             };
  2087.  
  2088.             // Drains fuel from a car into an empty jerry can
  2089.             class DrainFuel: ExileAbstractAction
  2090.             {
  2091.                 title = "Drain Fuel";
  2092.                 condition = "call ExileClient_object_vehicle_interaction_show";
  2093.                 action = "_this call ExileClient_object_vehicle_drain";
  2094.             };
  2095.         };
  2096.     };
  2097.  
  2098.     class Air
  2099.     {
  2100.         target = "Air";
  2101.         targetType = 2;
  2102.  
  2103.         class Actions
  2104.         {
  2105.             class ScanLock: ExileAbstractAction
  2106.             {
  2107.                 title = "Scan Lock";
  2108.                 condition = "('Exile_Item_ThermalScannerPro' in (magazines player)) && ((locked ExileClientInteractionObject) != 1) && !ExilePlayerInSafezone";
  2109.                 action = "_this call ExileClient_object_lock_scan";
  2110.             };
  2111.  
  2112.             // Locks a vehicle
  2113.             class Lock: ExileAbstractAction
  2114.             {
  2115.                 title = "Lock";
  2116.                 condition = "((locked ExileClientInteractionObject) isEqualTo 0) && ((locked ExileClientInteractionObject) != 1)";
  2117.                 action = "true spawn ExileClient_object_lock_toggle";
  2118.             };
  2119.  
  2120.             // Unlocks a vehicle
  2121.             class Unlock: ExileAbstractAction
  2122.             {
  2123.                 title = "Unlock";
  2124.                 condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)";
  2125.                 action = "false spawn ExileClient_object_lock_toggle";
  2126.             };
  2127.  
  2128.             // Hot-wires a vehicle
  2129.             class Hotwire: ExileAbstractAction
  2130.             {
  2131.                 title = "Hotwire";
  2132.                 condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)";
  2133.                 action = "['HotwireVehicle', _this select 0] call ExileClient_action_execute";
  2134.             };
  2135.  
  2136.             // Repairs a vehicle to 100%. Requires Duckttape
  2137.             class Repair: ExileAbstractAction
  2138.             {
  2139.                 title = "Repair";
  2140.                 condition = "true";
  2141.                 action = "['RepairVehicle', _this select 0] call ExileClient_action_execute";
  2142.             };
  2143.  
  2144.             // Flips a vehicle so the player doesnt have to call an admin
  2145.             // Check if vector up is fucked
  2146.             class Flip: ExileAbstractAction
  2147.             {
  2148.                 title = "Flip";
  2149.                 condition = "call ExileClient_object_vehicle_interaction_show";
  2150.                 action = "_this call ExileClient_object_vehicle_flip";
  2151.             };
  2152.  
  2153.             // Fills fuel from a can into a car
  2154.             class Refuel: ExileAbstractAction
  2155.             {
  2156.                 title = "Refuel";
  2157.                 condition = "call ExileClient_object_vehicle_interaction_show";
  2158.                 action = "_this call ExileClient_object_vehicle_refuel";
  2159.             };
  2160.  
  2161.             // Drains fuel from a car into an empty jerry can
  2162.             class DrainFuel: ExileAbstractAction
  2163.             {
  2164.                 title = "Drain Fuel";
  2165.                 condition = "call ExileClient_object_vehicle_interaction_show";
  2166.                 action = "_this call ExileClient_object_vehicle_drain";
  2167.             };
  2168.  
  2169.             class RotateLeft: ExileAbstractAction
  2170.             {
  2171.                 title = "Rotate Left"; 
  2172.                 condition = "call ExileClient_object_vehicle_interaction_show";
  2173.                 action = "[ExileClientInteractionObject,-15] call ExileClient_object_vehicle_rotate";
  2174.             };
  2175.  
  2176.             class RotateRight: ExileAbstractAction
  2177.             {
  2178.                 title = "Rotate Right";
  2179.                 condition = "call ExileClient_object_vehicle_interaction_show";
  2180.                 action = "[ExileClientInteractionObject,15] call ExileClient_object_vehicle_rotate";
  2181.             };
  2182.         };
  2183.     };
  2184.  
  2185.     class Safe
  2186.     {
  2187.         targetType = 2;
  2188.         target = "Exile_Container_Safe";
  2189.  
  2190.         class Actions
  2191.         {
  2192.             class ScanLock: ExileAbstractAction
  2193.             {
  2194.                 title = "Scan Lock";
  2195.                 condition = "('Exile_Item_ThermalScannerPro' in (magazines player)) && !((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 1) && !ExilePlayerInSafezone";
  2196.                 action = "_this call ExileClient_object_lock_scan";
  2197.             };
  2198.  
  2199.             // Locks a vehicle
  2200.             class Lock : ExileAbstractAction
  2201.             {
  2202.                 title = "Lock";
  2203.                 condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0)";
  2204.                 action = "true spawn ExileClient_object_lock_toggle";
  2205.             };
  2206.  
  2207.             class Unlock : ExileAbstractAction
  2208.             {
  2209.                 title = "Unlock";
  2210.                 condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo -1)";
  2211.                 action = "false spawn ExileClient_object_lock_toggle";
  2212.             };
  2213.  
  2214.             class Pack : ExileAbstractAction
  2215.             {
  2216.                 title = "Pack";
  2217.                 condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0)";
  2218.                 action = "_this spawn ExileClient_object_container_pack";
  2219.             };
  2220.  
  2221.             class SetPinCode : ExileAbstractAction
  2222.             {
  2223.                 title = "Set PIN";
  2224.                 condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0)";
  2225.                 action = "_this spawn ExileClient_object_lock_setPin";
  2226.             };
  2227.         };
  2228.     };
  2229.  
  2230.     class Laptop
  2231.     {
  2232.         targetType = 2;
  2233.         target = "Exile_Construction_Laptop_Static";
  2234.  
  2235.         class Actions
  2236.         {
  2237.             class CameraSystem: ExileAbstractAction
  2238.             {
  2239.                 title = "CCTV Access";
  2240.                 condition = "((ExileClientInteractionObject animationPhase 'LaptopLidRotation') >= 0.5)";
  2241.                 action = "_this call ExileClient_gui_baseCamera_show";
  2242.             };
  2243.         };
  2244.     };
  2245.  
  2246.     class SupplyBox
  2247.     {
  2248.         targetType = 2;
  2249.         target = "Exile_Container_SupplyBox";
  2250.  
  2251.         class Actions
  2252.         {
  2253.             class Mount: ExileAbstractAction
  2254.             {
  2255.                 title = "Mount";
  2256.                 condition = "(isNull (attachedTo ExileClientInteractionObject)) && ((ExileClientInteractionObject getvariable ['ExileOwnerUID',1]) isEqualTo 1)";
  2257.                 action = "_this call ExileClient_object_supplyBox_mount";
  2258.             };
  2259.  
  2260.             class Install: ExileAbstractAction
  2261.             {
  2262.                 title = "Install";
  2263.                 condition = "isNull (attachedTo ExileClientInteractionObject) && ((ExileClientInteractionObject getvariable ['ExileOwnerUID',1]) isEqualTo 1)";
  2264.                 action = "_this call ExileClient_object_supplyBox_install";
  2265.             };
  2266.  
  2267.             class Unmount: ExileAbstractAction
  2268.             {
  2269.                 title = "Unmount";
  2270.                 condition = "!(isNull (attachedTo ExileClientInteractionObject)) && ((ExileClientInteractionObject getvariable ['ExileOwnerUID',1]) isEqualTo 1)";
  2271.                 action = "_this call ExileClient_object_supplyBox_unmount";
  2272.             };
  2273.         };
  2274.     };
  2275.    
  2276.     class Drawbridge
  2277.     {
  2278.         targetType = 2;
  2279.         target = "Exile_Construction_WoodDrawBridge_Abstract";
  2280.  
  2281.         class Actions
  2282.         {
  2283.             class Lower: ExileAbstractAction
  2284.             {
  2285.                 title = "Lower";
  2286.                 condition = "ExileClientInteractionObject call ExileClient_object_construction_openBridgeShow";
  2287.                 action = "ExileClientInteractionObject animateSource ['DrawBridge_Source', 0];";
  2288.             };
  2289.            
  2290.             class Raise: ExileAbstractAction
  2291.             {
  2292.                 title = "Raise";
  2293.                 condition = "((ExileClientInteractionObject animationSourcePhase 'DrawBridge_Source') < 0.5)";
  2294.                 action = "ExileClientInteractionObject animateSource ['DrawBridge_Source', 2]";
  2295.             };
  2296.         };
  2297.     };
  2298.  
  2299.     class Construction
  2300.     {
  2301.         targetType = 2;
  2302.         target = "Exile_Construction_Abstract_Static";
  2303.  
  2304.         class Actions
  2305.         {
  2306.             class ScanLock: ExileAbstractAction
  2307.             {
  2308.                 title = "Scan Lock";
  2309.                 condition = "('Exile_Item_ThermalScannerPro' in (magazines player)) && !((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 1)";
  2310.                 action = "_this call ExileClient_object_lock_scan";
  2311.             };
  2312.  
  2313.             class Unlock : ExileAbstractAction
  2314.             {
  2315.                 title = "Unlock";
  2316.                 condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo -1)";
  2317.                 action = "false spawn ExileClient_object_lock_toggle";
  2318.             };
  2319.  
  2320.             class Lock : ExileAbstractAction
  2321.             {
  2322.                 title = "Lock";
  2323.                 condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0)";
  2324.                 action = "true spawn ExileClient_object_lock_toggle";
  2325.             };
  2326.  
  2327.             // Picks up the construction so you can move it
  2328.             class Move: ExileAbstractAction
  2329.             {
  2330.                 title = "Move";
  2331.                 condition = "call ExileClient_util_world_isInOwnTerritory";
  2332.                 action = "_this spawn ExileClient_object_construction_move";
  2333.             };
  2334.  
  2335.             // Removes the construction.
  2336.             class Deconstruct: ExileAbstractAction
  2337.             {
  2338.                 title = "Remove";
  2339.                 condition = "call ExileClient_util_world_isInOwnTerritory";
  2340.                 action = "_this spawn ExileClient_object_construction_deconstruct";
  2341.             };
  2342.  
  2343.             class AddALock : ExileAbstractAction
  2344.             {
  2345.                 title = "Add a Lock";
  2346.                 condition = "call ExileClient_object_construction_lockAddShow";
  2347.                 action = "_this spawn ExileClient_object_construction_lockAdd";
  2348.             };
  2349.  
  2350.             class Upgrade : ExileAbstractAction
  2351.             {
  2352.                 title = "Upgrade";
  2353.                 condition = "call ExileClient_object_construction_upgradeShow";
  2354.                 action = "_this call ExileClient_object_construction_upgrade";
  2355.             };
  2356.  
  2357.             class MakeBoom : ExileAbstractAction
  2358.             {
  2359.                 title = "Plant charge";
  2360.                 condition = "call ExileClient_system_breaching_condition";
  2361.                 action = "_this call ExileClient_system_breaching_action";
  2362.             };
  2363.  
  2364.             class Repair : ExileAbstractAction
  2365.             {
  2366.                 title = "Repair";
  2367.                 condition = "(!((ExileClientInteractionObject getVariable ['ExileConstructionDamage',0]) isEqualTo 0)) && (call ExileClient_util_world_isInOwnTerritory)";
  2368.                 action = "_this call ExileClient_object_construction_repair";
  2369.             };
  2370.  
  2371.         };
  2372.     };
  2373.  
  2374.     /*
  2375.         Tent, Storage crate etc.
  2376.     */
  2377.     class Container
  2378.     {
  2379.         targetType = 2;
  2380.         target = "Exile_Container_Abstract";
  2381.  
  2382.         class Actions
  2383.         {
  2384.             class Pack
  2385.             {
  2386.                 title = "Pack";
  2387.                 condition = "!((typeOf ExileClientInteractionObject) isEqualTo 'Exile_Container_SupplyBox')";
  2388.                 action = "_this spawn ExileClient_object_container_pack";
  2389.             };
  2390.             // Picks up the container so you can move it
  2391.             class Move: ExileAbstractAction
  2392.             {
  2393.                 title = "Move";
  2394.                 condition = "(getNumber(configFile >> 'CfgVehicles' >> typeOf ExileClientInteractionObject >> 'exileIsLockable') isEqualTo 0) || ((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0)";
  2395.                 action = "_this spawn ExileClient_object_construction_move";
  2396.             };
  2397.         };
  2398.     };
  2399.    
  2400.     class Flag
  2401.     {
  2402.         targetType = 2;
  2403.         target = "Exile_Construction_Flag_Static";
  2404.  
  2405.         class Actions
  2406.         {
  2407.             /*
  2408.             class Manage : ExileAbstractAction
  2409.             {
  2410.                 title = "Manage";
  2411.                 condition = "true";
  2412.                 action = "_this call ExileClient_gui_baseManagement_event_show";
  2413.             };
  2414.             */
  2415.             class StealFlag: ExileAbstractAction
  2416.             {
  2417.                 title = "Steal Flag";
  2418.                 condition = "((ExileClientInteractionObject getvariable ['ExileFlagStolen',1]) isEqualTo 0)";
  2419.                 action = "['StealFlag', _this select 0] call ExileClient_action_execute";
  2420.             };
  2421.            
  2422.             class RestoreFlag: ExileAbstractAction
  2423.             {
  2424.                 title = "Restore Flag";
  2425.                 condition = "((ExileClientInteractionObject getvariable ['ExileFlagStolen',0]) isEqualTo 1)";
  2426.                 action = "['restoreFlagRequest', [netID ExileClientInteractionObject]] call ExileClient_system_network_send";
  2427.             };
  2428.         };
  2429.     };
  2430.  
  2431.     class Boat
  2432.     {
  2433.         targetType = 2;
  2434.         target = "Ship";
  2435.  
  2436.         class Actions
  2437.         {
  2438.             // Locks a vehicle
  2439.             class Lock: ExileAbstractAction
  2440.             {
  2441.                 title = "Lock";
  2442.                 condition = "((locked ExileClientInteractionObject) isEqualTo 0) && ((locked ExileClientInteractionObject) != 1)";
  2443.                 action = "true spawn ExileClient_object_lock_toggle";
  2444.             };
  2445.  
  2446.             // Unlocks a vehicle
  2447.             class Unlock: ExileAbstractAction
  2448.             {
  2449.                 title = "Unlock";
  2450.                 condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)";
  2451.                 action = "false spawn ExileClient_object_lock_toggle";
  2452.             };
  2453.  
  2454.             // Hot-wires a vehicle
  2455.             class Hotwire: ExileAbstractAction
  2456.             {
  2457.                 title = "Hotwire";
  2458.                 condition = "((locked ExileClientInteractionObject) isEqualTo 2) && ((locked ExileClientInteractionObject) != 1)";
  2459.                 action = "['HotwireVehicle', _this select 0] call ExileClient_action_execute";
  2460.             };
  2461.  
  2462.             // Repairs a vehicle to 100%. Requires Duckttape
  2463.             class Repair: ExileAbstractAction
  2464.             {
  2465.                 title = "Repair";
  2466.                 condition = "true";
  2467.                 action = "['RepairVehicle', _this select 0] call ExileClient_action_execute";
  2468.             };
  2469.  
  2470.             // Fills fuel from a can into a car
  2471.             class Refuel: ExileAbstractAction
  2472.             {
  2473.                 title = "Refuel";
  2474.                 condition = "call ExileClient_object_vehicle_interaction_show";
  2475.                 action = "_this call ExileClient_object_vehicle_refuel";
  2476.             };
  2477.  
  2478.             // Drains fuel from a car into an empty jerry can
  2479.             class DrainFuel: ExileAbstractAction
  2480.             {
  2481.                 title = "Drain Fuel";
  2482.                 condition = "call ExileClient_object_vehicle_interaction_show";
  2483.                 action = "_this call ExileClient_object_vehicle_drain";
  2484.             };
  2485.  
  2486.             // Pushes a boat into look direction to move into water
  2487.             class Push: ExileAbstractAction
  2488.             {
  2489.                 title = "Fus Ro Dah!";
  2490.                 condition = "((crew ExileClientInteractionObject) isEqualTo [])";
  2491.                 action = "_this call ExileClient_object_vehicle_push";
  2492.             };
  2493.         };
  2494.     };
  2495.  
  2496.     class Bikes
  2497.     {
  2498.         targetType = 2;
  2499.         target = "Bicycle";
  2500.  
  2501.         class Actions
  2502.         {
  2503.             class Flip: ExileAbstractAction
  2504.             {
  2505.                 title = "Flip";
  2506.                 condition = "true";
  2507.                 action = "_this call ExileClient_object_vehicle_flip";
  2508.             };
  2509.         };
  2510.     };
  2511.  
  2512.     class Player
  2513.     {
  2514.         targetType = 2;
  2515.         target = "Exile_Unit_Player";
  2516.  
  2517.         class Actions
  2518.         {
  2519.             class Free: ExileAbstractAction
  2520.             {
  2521.                 title = "Free";
  2522.                 condition = "(alive ExileClientInteractionObject) && (ExileClientInteractionObject getVariable ['ExileIsHandcuffed', false]) && !ExileClientIsHandcuffed";
  2523.                 action = "_this call ExileClient_object_handcuffs_free";
  2524.             };
  2525.            
  2526.             class Search: ExileAbstractAction
  2527.             {
  2528.                 title = "Search Gear";
  2529.                 condition = "(alive ExileClientInteractionObject) && (ExileClientInteractionObject getVariable ['ExileIsHandcuffed', false]) && !ExileClientIsHandcuffed";
  2530.                 action = "_this call ExileClient_object_handcuffs_searchGear";
  2531.             };
  2532.  
  2533.             class Identify: ExileAbstractAction
  2534.             {
  2535.                 title = "Identify Body";
  2536.                 condition = "!(alive ExileClientInteractionObject)";
  2537.                 action = "_this call ExileClient_object_player_identifyBody";
  2538.             };
  2539.            
  2540.             class HideCorpse: ExileAbstractAction
  2541.             {
  2542.                 title = "Hide Body";
  2543.                 condition = "!(alive ExileClientInteractionObject) && ('Exile_Melee_Shovel' isEqualTo (currentWeapon player))";
  2544.                 action = "['HideBody', (_this select 0)] call ExileClient_action_execute";
  2545.             };
  2546.         };
  2547.     };
  2548.    
  2549.     class Animal
  2550.     {
  2551.         targetType = 2;
  2552.         target = "Exile_Animal_Abstract";
  2553.  
  2554.         class Actions
  2555.         {          
  2556.             class Gut: ExileAbstractAction
  2557.             {
  2558.                 title = "Gut Animal";
  2559.                 condition = "!(alive ExileClientInteractionObject) && (ExileClientInteractionObject getVariable ['CanBeGutted', false])";
  2560.                 action = "['GutAnimal', ExileClientInteractionObject] call ExileClient_action_execute";
  2561.             };
  2562.         };
  2563.     };
  2564. };
  2565. /**
  2566.  * Classname is used for reference
  2567.  * name is displayed in crafting requirements
  2568.  * models is used for crafting and interaction menus
  2569.  */
  2570. class CfgInteractionModels
  2571. {
  2572.     class WaterSource
  2573.     {
  2574.         name = "Water tanks, barrels, coolers or pumps";
  2575.         models[] =  
  2576.         {
  2577.             "barrelwater_f",
  2578.             "barrelwater_grey_f",
  2579.             "waterbarrel_f",
  2580.             "watertank_f",
  2581.             "stallwater_f",
  2582.             "waterpump_01_f",
  2583.             "water_source_f",
  2584.  
  2585.             // Namalsk
  2586.             "wellpump",
  2587.             "Land_jhad_stand_water",
  2588.             "Land_Jbad_Misc_Well_L",
  2589.             "Land_jbad_Fridge",
  2590.             "Land_jbad_reservoir",
  2591.             "Land_jbad_teapot",
  2592.             "Land_KBud",
  2593.            
  2594.             //Tanoa
  2595.             "watertank_01_f",
  2596.             "watertank_02_f",
  2597.             "watertank_03_f",
  2598.             "watertank_04_f"
  2599.         };
  2600.     };
  2601.  
  2602.     class CleanWaterSource
  2603.     {
  2604.         name = "Water cooler";
  2605.         models[] =  
  2606.         {
  2607.             "watercooler"
  2608.         };
  2609.     };
  2610.  
  2611.     class WorkBench
  2612.     {
  2613.         name = "Work Bench";
  2614.         models[] =
  2615.         {
  2616.             "workstand_f.p3d"
  2617.         };
  2618.     };
  2619.  
  2620.     class ShippingContainerSource
  2621.     {
  2622.         name = "Shipping Containers";
  2623.         models[] =
  2624.         {
  2625.             // Arma 3
  2626.             "CargoBox_V1_F",
  2627.             "Cargo20_blue_F",
  2628.             "Cargo20_brick_red_F",
  2629.             "Cargo20_cyan_F",
  2630.             "Cargo20_grey_F",
  2631.             "Cargo20_light_blue_F",
  2632.             "Cargo20_light_green_F",
  2633.             "Cargo20_military_green_F",
  2634.             "Cargo20_military_ruins_F",
  2635.             "Cargo20_orange_F",
  2636.             "Cargo20_red_F",
  2637.             "Cargo20_sand_F",
  2638.             "Cargo20_white_F",
  2639.             "Cargo20_yellow_F",
  2640.             "Cargo40_blue_F",
  2641.             "Cargo40_brick_red_F",
  2642.             "Cargo40_cyan_F",
  2643.             "Cargo40_grey_F",
  2644.             "Cargo40_light_blue_F",
  2645.             "Cargo40_light_green_F",
  2646.             "Cargo40_military_green_F",
  2647.             "Cargo40_orange_F",
  2648.             "Cargo40_red_F",
  2649.             "Cargo40_sand_F",
  2650.             "Cargo40_white_F",
  2651.             "Cargo40_yellow_F",
  2652.  
  2653.             // Namalsk
  2654.             "nam_container.p3d",
  2655.             "misc_cargo1d.p3d",
  2656.             "misc_cargo1b.p3d",
  2657.             "misc_cargo1bo.p3d",
  2658.             "misc_cargo2c.p3d",
  2659.             "misc_cargo1ao.p3d",
  2660.            
  2661.             //Tanoa
  2662.             "Land_ContainerLine_01_F",
  2663.             "Land_ContainerLine_02_F",
  2664.             "Land_ContainerLine_03_F",
  2665.  
  2666.             // Also allow wrecks
  2667.             "wreck_"
  2668. /*         
  2669.             "wreck_bmp2_f.p3d",
  2670.             "wreck_brdm2_f.p3d",
  2671.             "wreck_car2_f.p3d",
  2672.             "wreck_car3_f.p3d",
  2673.             "wreck_car_f.p3d",
  2674.             "wreck_cardismantled_f.p3d",
  2675.             "wreck_hmmwv_f.p3d",
  2676.             "wreck_hunter_f.p3d",
  2677.             "wreck_offroad2_f.p3d",
  2678.             "wreck_offroad_f.p3d",
  2679.             "wreck_skodovka_f.p3d",
  2680.             "wreck_slammer_f.p3d",
  2681.             "wreck_slammer_hull_f.p3d",
  2682.             "wreck_slammer_turret_f.p3d",
  2683.             "wreck_t72_hull_f.p3d",
  2684.             "wreck_t72_turret_f.p3d",
  2685.             "wreck_truck_dropside_f.p3d",
  2686.             "wreck_truck_f.p3d",
  2687.             "wreck_uaz_f.p3d",
  2688.             "wreck_ural_f.p3d"
  2689.             "wreck_van_f.p3d",
  2690.             */
  2691.  
  2692.  
  2693.             // TODO: Ask community for CUP/AiA model names 
  2694.         };
  2695.     };
  2696.  
  2697.     class WoodSource
  2698.     {
  2699.         name = "Trees";
  2700.         models[] =
  2701.         {
  2702.             " t_",
  2703.             " bo_t_",
  2704.  
  2705.             // A2 trees
  2706.             " str_",
  2707.             " Smrk_",
  2708.             " les_",
  2709.             " brg_"        
  2710.         };
  2711.     };
  2712.  
  2713.     // TODO: Add https://community.bistudio.com/wikidata/images/thumb/6/60/Arma3_CfgVehicles_Land_Tank_rust_F.jpg/150px-Arma3_CfgVehicles_Land_Tank_rust_F.jpg
  2714.     class FuelSource
  2715.     {
  2716.         name = "Fuel pumps, stations or barrels";
  2717.         models[] =
  2718.         {
  2719.             "fuelstation_feed_f.p3d",
  2720.             "metalbarrel_f.p3d",
  2721.             "flexibletank_01_f.p3d",
  2722.             "fs_feed_f.p3d",
  2723.             //Tanoa
  2724.             "fuelstation_01_pump_f.p3d",
  2725.             "fuelstation_02_pump_f.p3d"
  2726.         }; 
  2727.     };
  2728. };
  2729. class CfgLocker
  2730. {
  2731.     numbersOnly = "0123456789";
  2732.    
  2733.     maxDeposit = 30000000;
  2734. };
  2735.  
  2736. class CfgPlayer
  2737. {
  2738.     // In minutes ammount of time it takes to go from 100 - 0 if stationary
  2739.     hungerDecay = 180;
  2740.     thirstDecay = 120;
  2741.  
  2742.     // Damage taken from 0 (health||thirst)/sec
  2743.     healthDecay = 5.0;
  2744.  
  2745.     // Health regen if over BOTH
  2746.     thirstRegen = 90;
  2747.     hungerRegen = 90;
  2748.  
  2749.     // IF above meet recover HP%/MIN
  2750.     recoveryPerMinute = 2;
  2751.  
  2752.     // Set custom aim precision coefficient for weapon sway
  2753.     // https://community.bistudio.com/wiki/Arma_3_Stamina
  2754.     // Set to -1 if you want to use Arma 3 default value
  2755.     // setCustomAimCoef
  2756.     customAimCoefficient = 0.5;
  2757.  
  2758.     // 0 or 1
  2759.     enableFatigue = 0;
  2760.     enableStamina = 0;
  2761.  
  2762.     disableMapDrawing = 1;
  2763.    
  2764.     // Use the current gradient to affect the players movement when autorunning.
  2765.     // 0 == default exile auto run
  2766.     useGradientAffectedAutoRun = 0;
  2767. };
  2768. class CfgSlothMachine
  2769. {
  2770.     spinCost = 100;
  2771.     Jackpot = 10100;
  2772.    
  2773.     chances[] =
  2774.     {
  2775.         {85, ""},                   // 85% = Nothing
  2776.         {95, "Level1"},             // 10% = 1pt
  2777.         {96, "Level2"},             // 1% = 10pt
  2778.         {97, "Level3"},             // 1% = 25pt
  2779.         {98, "Level4"},             // 1% = 50pt
  2780.         {99, "Level5"},             // 1% = 100pt
  2781.         {100, "Jackpot"}            // 1% = Jackpot
  2782.     };
  2783.  
  2784.     class Prizes
  2785.     {
  2786.         class Level1
  2787.         {
  2788.             symbol = "\exile_assets\texture\item\Exile_Item_ToiletPaper.paa";
  2789.             prize = 101;
  2790.         };
  2791.  
  2792.         class Level2
  2793.         {
  2794.             symbol = "\exile_assets\texture\item\Exile_Item_CockONut.paa";
  2795.             prize = 110;
  2796.         };
  2797.  
  2798.         class Level3
  2799.         {
  2800.             symbol = "\exile_assets\texture\item\Exile_Item_Beer.paa";
  2801.             prize = 125;
  2802.         };
  2803.  
  2804.         class Level4
  2805.         {
  2806.             symbol = "\exile_assets\texture\item\Exile_Item_Knife.paa";
  2807.             prize = 150;
  2808.         };
  2809.  
  2810.         class Level5
  2811.         {
  2812.             symbol = "\exile_assets\texture\item\Exile_Item_Safe.paa";
  2813.             prize = 200;
  2814.         };
  2815.        
  2816.         class Jackpot
  2817.         {
  2818.             symbol = "\exile_assets\texture\item\Exile_Item_XmasPresent.paa";
  2819.         };
  2820.     };
  2821. };
  2822. class CfgTerritories
  2823. {
  2824.     // Base Cost / Radius
  2825.     // Level 1 is allways for Pop Tabs, >= 2 for Respect
  2826.     prices[] =
  2827.     {
  2828.         // Purchase Price       Radius      Number of Objects
  2829.         {5000,                  15,         30                  }, // Level 1
  2830.         {10000,                 20,         60                  }, // Level 2
  2831.         {15000,                 30,         90                  }, // Level 3
  2832.         {20000,                 40,         120                 }, // Level 4
  2833.         {25000,                 50,         150                 }, // Level 5
  2834.         {30000,                 60,         180                 }, // Level 6
  2835.         {35000,                 70,         210                 }, // Level 7
  2836.         {40000,                 80,         240                 }, // Level 8
  2837.         {45000,                 90,         270                 }, // Level 9
  2838.         {50000,                 100,        300                 }  // Level 10
  2839.     };
  2840.  
  2841.     // A shortcut of the above maximum radius
  2842.     maximumRadius = 100;
  2843.  
  2844.     // The above * 2 plus coverving the 20m you can move while placing things
  2845.     minimumDistanceToOtherTerritories = 325;
  2846.  
  2847.     // Maximum number of territories a player can own
  2848.     maximumNumberOfTerritoriesPerPlayer = 1;
  2849.  
  2850.     /**
  2851.      * Defines the minimum distance to safe zones / trader cities where players
  2852.      * cannot build territories
  2853.      */
  2854.     minimumDistanceToTraderZones = 1000;
  2855.  
  2856.     /**
  2857.      * Defines the minimum distance to spawn zones where players
  2858.      * cannot build territories
  2859.      */
  2860.     minimumDistanceToSpawnZones = 1000;
  2861.  
  2862.     // Amount of pop tabs per object to pay
  2863.     popTabAmountPerObject = 10;
  2864. };
  2865. class CfgTraderCategories
  2866. {
  2867.     #include "TRADERS\APEX\TraderCategoriesAPEX.hpp",
  2868.     #include "TRADERS\ARMA3V\TraderCategoriesARMA3V.hpp",
  2869.     #include "TRADERS\ARMA3W\TraderCategoriesARMA3W.hpp",
  2870.     #include "TRADERS\CUNITS\TraderCategoriesCUNITS.hpp",
  2871.     #include "TRADERS\CUPW\TraderCategoriesCUPW.hpp",
  2872.     #include "TRADERS\CUSTOM\TraderCategoriesCUSTOM.hpp",
  2873.     #include "TRADERS\Exile\TraderCategoriesExile.hpp",
  2874.     #include "TRADERS\CUPV\TraderCategoriesCUPV.hpp"
  2875.  
  2876. };
  2877.  
  2878. class CfgTraders
  2879. {
  2880.     #include "TRADERS\CfgTraders.hpp"
  2881. };
RAW Paste Data
Top