Brun

[XM8 APP] BRAma Cookbook [UPDATED]

98 posts in this topic

Presenting [BRAma] Cookbook an XM8 App

Special Note
The below code is open for everyone to change and modify for any purposes, in other words do what you want with it :)

Overview
This App allows you to view from your xm8 all available crafting recipes and will show you everything required. Clicking Craft will open the regular exile crafting screen.
Categories are dynamically determined based on whether the item is available in traders or not, if they are not available in traders they will be marked as Priceless ( because money cant buy them )
Category is now defined against each recipe see installation instructions for details

GitHub
Manual Download
Zip
Download

Latest Change | Historical Changes
2016-03-01  |  Manual Recipe Categories
2016-02-14  |  Removed Invalid Control on ComboBox ( Doesnt cause a problem just put an error in the log )

Installation

Spoiler

Install Base XM8 Apps script
XM8 Apps

Installing BRAma Cookbook

  1. Create a Folder inside xm8Apps directory like so 
    
    xm8Apps\BRAmaRecipes

    Place init.sqf & BRAma.paa in xm8Apps\BRAmaRecipes

  2. Edit xm8Apps\XM8Apps_Init.sqf 

    Find a app button for example //App 1 change to 
    
    //App 1
    _app1Text = "Recipes";
    _app1Logo = "xm8Apps\BRAmaRecipes\BRAma.paa";
    app1_action = {
    execVM "xm8Apps\BRAmaRecipes\init.sqf";
    };

     

  3. If using Infistar you need to whitelist the controls

    Find

  4. 
    /* Use IDD White-List ? */ UDW = true;
    /* allowedIDDs: Insert IDDs here to prevent them from being closed! */
    allowedIDDs[] =
    {

    Add 

    
     	//BRAma Cookbook
    	5501,5502,5503,5504,5505,5506,5507,

     

Adding Categories to Recipes
Add a category class to each recipe as per below examples, if you do not add one they will fall under "Uncategorised"

Spoiler

class CookBBQSandwich: Exile_AbstractCraftingRecipe
{
    name = "Cook BBQ Sandwich";
    pictureItem = "Exile_Item_BBQSandwich_Cooked";
    requiresFire = 1;
    returnedItems[] =
    {
        {1, "Exile_Item_BBQSandwich_Cooked"}
    };
    tools[] =
    {
        "Exile_Item_CookingPot"
    };
    components[] = 
    {
        {1, "Exile_Item_BBQSandwich"}
    };
    category = "Food";
};

class CookCatFood: Exile_AbstractCraftingRecipe
{
    name = "Cook Cat Food";
    pictureItem = "Exile_Item_CatFood_Cooked";
    requiresFire = 1;
    returnedItems[] =
    {
        {1, "Exile_Item_CatFood_Cooked"}
    };
    tools[] =
    {
        "Exile_Item_CookingPot"
    };
    components[] = 
    {
        {1, "Exile_Item_CatFood"}
    };
    category = "Food";
};

class CookChristmasTinner: Exile_AbstractCraftingRecipe
{
    name = "Cook Christmas Tinner";
    pictureItem = "Exile_Item_ChristmasTinner_Cooked";
    requiresFire = 1;
    returnedItems[] =
    {
        {1, "Exile_Item_ChristmasTinner_Cooked"}
    };
    tools[] =
    {
        "Exile_Item_CookingPot"
    };
    components[] = 
    {
        {1, "Exile_Item_ChristmasTinner"}
    };
    category = "Food";
};
class CookCoffee: Exile_AbstractCraftingRecipe
{
    name = "Brew Coffee";
    pictureItem = "Exile_Item_PlasticBottleCoffee";
    requiresFire = 1;
    returnedItems[] =
    {
        {1, "Exile_Item_PlasticBottleCoffee"}
    };
    tools[] =
    {
        "Exile_Item_CookingPot"
    };
    components[] = 
    {
        {1, "Exile_Item_PlasticBottleFreshWater"},
        {1, "Exile_Item_InstantCoffee"}
    };
    category = "Drink";
};
class CookDogFood: Exile_AbstractCraftingRecipe
{
    name = "Cook Dog Food";
    pictureItem = "Exile_Item_DogFood_Cooked";
    requiresFire = 1;
    returnedItems[] =
    {
        {1, "Exile_Item_DogFood_Cooked"}
    };
    tools[] =
    {
        "Exile_Item_CookingPot"
    };
    components[] = 
    {
        {1, "Exile_Item_DogFood"}
    };
    category = "Food";
};

class CookGloriousKnakworst: Exile_AbstractCraftingRecipe
{
    name = "Cook Glorious Knakworst";
    pictureItem = "Exile_Item_GloriousKnakworst_Cooked";
    requiresFire = 1;
    returnedItems[] =
    {
        {1, "Exile_Item_GloriousKnakworst_Cooked"}
    };
    tools[] =
    {
        "Exile_Item_CookingPot"
    };
    components[] = 
    {
        {1, "Exile_Item_GloriousKnakworst"}
    };
    category = "Food";
};

class CookPlasticBottleDirtyWater: Exile_AbstractCraftingRecipe
{
    name = "Cook Dirty Water";
    pictureItem = "Exile_Item_PlasticBottleFreshWater";
    requiresFire = 1;
    returnedItems[] =
    {
        {1, "Exile_Item_PlasticBottleFreshWater"}
    };
    tools[] =
    {
        "Exile_Item_CookingPot"
    };
    components[] = 
    {
        {1, "Exile_Item_PlasticBottleDirtyWater"}
    };
    category = "Drink";
};
class CookPlasticBottleSaltWater: Exile_AbstractCraftingRecipe
{
    name = "Cook Salt Water";
    pictureItem = "Exile_Item_PlasticBottleFreshWater";
    requiresFire = 1;
    returnedItems[] =
    {
        {1, "Exile_Item_PlasticBottleFreshWater"}
    };
    tools[] =
    {
        "Exile_Item_CookingPot"
    };
    components[] = 
    {
        {1, "Exile_Item_PlasticBottleSaltWater"}
    };
    category = "Drink";
};

class CookSausageGravy: Exile_AbstractCraftingRecipe
{
    name = "Cook Sausage Gravy";
    pictureItem = "Exile_Item_SausageGravy_Cooked";
    requiresFire = 1;
    returnedItems[] =
    {
        {1, "Exile_Item_SausageGravy_Cooked"}
    };
    tools[] =
    {
        "Exile_Item_CookingPot"
    };
    components[] = 
    {
        {1, "Exile_Item_SausageGravy"}
    };
    category = "Food";
};

class CookSurstromming: Exile_AbstractCraftingRecipe
{
    name = "Cook Surströmming";
    pictureItem = "Exile_Item_Surstromming_Cooked";
    requiresFire = 1;
    returnedItems[] =
    {
        {1, "Exile_Item_Surstromming_Cooked"}
    };
    tools[] =
    {
        "Exile_Item_CookingPot"
    };
    components[] = 
    {
        {1, "Exile_Item_Surstromming"}
    };
    category = "Food";
};

class CraftBushKitGreen: Exile_AbstractCraftingRecipe
{
    name = "Craft a Bush Kit (Green)";
    pictureItem = "Exile_Item_BushKit_Green";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_BushKit_Green"}
    };
    components[] = 
    {
        {10, "Exile_Item_Leaves"},
        {5, "Exile_Item_WoodSticks"},
        {1, "Exile_Item_Rope"}
    };
    category = "Camo";
};
class CraftFirePlace: Exile_AbstractCraftingRecipe
{
    name = "Craft Fire Place";
    pictureItem = "Exile_Item_CampFireKit";
    returnedItems[] = 
    {
        {1, "Exile_Item_CampFireKit"}
    };
    components[] = 
    {
        {2, "Exile_Item_WoodLog"}
    };
    category = "Construction Props";
};
class CraftFloodLight: Exile_AbstractCraftingRecipe
{
    name = "Craft Flood Light";
    pictureItem = "Exile_Item_FloodLightKit";
    requiresFire = 1;
    returnedItems[] = 
    {
        {1, "Exile_Item_FloodLightKit"}
    };
    components[] = 
    {
        {1, "Exile_Item_MetalPole"},
        {1, "Exile_Item_LightBulb"},
        {1, "Exile_Item_ExtensionCord"}
    };
    category = "Construction Interactive";
};
class CraftFortificationUpgrade: Exile_AbstractCraftingRecipe
{
    name = "Craft Fortification Upgrade";
    pictureItem = "Exile_Item_MetalBoard"; //<< CHANGE IT
    requiresFire = 1;
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_FortificationUpgrade"}
    };
    components[] = 
    {
        {2, "Exile_Item_MetalPole"},
        {4, "Exile_Item_MetalBoard"}
    };
    tools[] = {"Exile_Item_Grinder"};
    category = "Construction Upgrades";
};
class CraftMetalBoard: Exile_AbstractCraftingRecipe
{
    name = "Craft Metal Board";
    pictureItem = "Exile_Item_MetalBoard";
    requiresFire = 1;
    returnedItems[] = 
    {
        {1, "Exile_Item_MetalBoard"}
    };
    components[] = 
    {
        {3, "Exile_Item_JunkMetal"}
    };
    tools[] = {"Exile_Item_Grinder"};
    category = "Construction Components";
};
class CraftMetalPole: Exile_AbstractCraftingRecipe
{
    name = "Craft Metal Pole";
    pictureItem = "Exile_Item_MetalPole";
    requiresFire = 1;
    returnedItems[] = 
    {
        {1, "Exile_Item_MetalPole"}
    };
    components[] = 
    {
        {5, "Exile_Item_JunkMetal"}
    };
    tools[] = {"Exile_Item_Grinder"};
    category = "Construction Components";
};
class CraftPortableGenerator: Exile_AbstractCraftingRecipe
{
    name = "Craft Portable Generator";
    pictureItem = "Exile_Item_PortableGeneratorKit";
    requiresFire = 1;
    returnedItems[] = 
    {
        {1, "Exile_Item_PortableGeneratorKit"}
    };
    components[] = 
    {
        {4, "Exile_Item_MetalBoard"},
        {1, "Exile_Item_FuelCanisterFull"},
        {1, "Exile_Item_ExtensionCord"}
    };
    category = "Construction Interactive";
};
class CraftStorageCrate: Exile_AbstractCraftingRecipe
{
    name = "Craft Storage Crate";
    pictureItem = "Exile_Item_StorageCrateKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_StorageCrateKit"}
    };
    components[] = 
    {
        {5, "Exile_Item_WoodPlank"}
    };
    category = "Storage";
};
class CraftWoodDoorWay: Exile_AbstractCraftingRecipe
{
    name = "Craft Wood Doorway";
    pictureItem = "Exile_Item_WoodDoorwayKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodDoorwayKit"}
    };
    components[] = 
    {
        {6, "Exile_Item_WoodPlank"}
    };
    category = "Construction Wooden";
};
/*
class CraftWoodDrawBridge: Exile_AbstractCraftingRecipe
{
    name = "Craft Wood Draw-Bridge";
    pictureItem = "Exile_Item_WoodDrawBridgeKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodDrawBridgeKit"}
    };
    components[] = 
    {
        {4, "Exile_Item_WoodPlank"},
        {2, "Exile_Item_Rope"}
    };
};
*/
class CraftWoodFloor: Exile_AbstractCraftingRecipe
{
    name = "Craft Wood Floor";
    pictureItem = "Exile_Item_WoodFloorKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodFloorKit"}
    };
    components[] = 
    {
        {4, "Exile_Item_WoodPlank"}
    };
    category = "Construction Wooden";
};
class CraftWoodFloorPort: Exile_AbstractCraftingRecipe
{
    name = "Craft Wood Floor Port";
    pictureItem = "Exile_Item_WoodFloorPortKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodFloorPortKit"}
    };
    components[] = 
    {
        {6, "Exile_Item_WoodPlank"}
    };
    category = "Construction Wooden";
};
class CraftWoodGate: Exile_AbstractCraftingRecipe
{
    name = "Craft Wood Gate";
    pictureItem = "Exile_Item_WoodGateKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodGateKit"}
    };
    components[] = 
    {
        {8, "Exile_Item_WoodPlank"}
    };
    category = "Construction Wooden";
};
class CraftWoodPlank: Exile_AbstractCraftingRecipe
{
    name = "Craft Wood Plank";
    pictureItem = "Exile_Item_WoodPlank";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodPlank"}
    };
    components[] = 
    {
        {2, "Exile_Item_WoodLog"}
    };
    tools[] = {"Exile_Item_Handsaw"};
    category = "Construction Wooden";
};
class CraftWoodStairs: Exile_AbstractCraftingRecipe
{
    name = "Craft Wood Stairs";
    pictureItem = "Exile_Item_WoodStairsKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodStairsKit"}
    };
    components[] = 
    {
        {6, "Exile_Item_WoodPlank"}
    };
    category = "Construction Wooden";
};
class CraftWoodSupport: Exile_AbstractCraftingRecipe
{
    name = "Craft Wood Support";
    pictureItem = "Exile_Item_WoodSupportKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodSupportKit"}
    };
    components[] = 
    {
        {6, "Exile_Item_WoodPlank"}
    };
    category = "Construction Wooden";
};
class CraftWoodWall: Exile_AbstractCraftingRecipe
{
    name = "Craft Wood Wall";
    pictureItem = "Exile_Item_WoodWallKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodWallKit"}
    };
    components[] = 
    {
        {4, "Exile_Item_WoodPlank"}
    };
    category = "Construction Wooden";
};
class CraftWoodWallHalf: Exile_AbstractCraftingRecipe
{
    name = "Craft 1/2 Wood Wall";
    pictureItem = "Exile_Item_WoodWallHalfKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodWallHalfKit"}
    };
    components[] = 
    {
        {2, "Exile_Item_WoodPlank"}
    };
    category = "Construction Wooden";
};
class CraftWoodWindow: Exile_AbstractCraftingRecipe
{
    name = "Craft Wood Window";
    pictureItem = "Exile_Item_WoodWindowKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodWindowKit"}
    };
    components[] = 
    {
        {6, "Exile_Item_WoodPlank"}
    };
    category = "Construction Wooden";
};
class CraftWorkBench: Exile_AbstractCraftingRecipe
{
    name = "Craft Work Bench";
    pictureItem = "Exile_Item_WorkBenchKit";
    returnedItems[] = 
    {
        {1, "Exile_Item_WorkBenchKit"}
    };
    components[] = 
    {
        {4, "Exile_Item_WoodLog"}
    };
    category = "Construction Interactive";
};
class EmptyFuelCanister: Exile_AbstractCraftingRecipe
{
    name = "Empty Fuel Canister";
    pictureItem = "Exile_Item_FuelCanisterEmpty";
    returnedItems[] = 
    {
        {1, "Exile_Item_FuelCanisterEmpty"}
    };
    components[] = 
    {
        {1, "Exile_Item_FuelCanisterFull"}
    };
    category = "Misc Consumables";
};
class EmptyPlasticBottleDirtyWater: Exile_AbstractCraftingRecipe
{
    name = "Empty Dirty Water";
    pictureItem = "Exile_Item_PlasticBottleEmpty";
    returnedItems[] =
    {
        {1, "Exile_Item_PlasticBottleEmpty"}
    };
    components[] =
    {
        {1, "Exile_Item_PlasticBottleDirtyWater"}
    };
    category = "Drink";
};
class EmptyPlasticBottleSaltWater: Exile_AbstractCraftingRecipe
{
    name = "Empty Salt Water";
    pictureItem = "Exile_Item_PlasticBottleEmpty";
    returnedItems[] =
    {
        {1, "Exile_Item_PlasticBottleEmpty"}
    };
    components[] =
    {
        {1, "Exile_Item_PlasticBottleSaltWater"}
    };
    category = "Drink";
};
class FillEmptyPlasticBottleWithDirtyWater: Exile_AbstractCraftingRecipe
{
    name = "Fill Dirty Water";
    pictureItem = "Exile_Item_PlasticBottleDirtyWater";
    requiredInteractionModelGroup = "WaterSource";
    returnedItems[] =
    {
        {1, "Exile_Item_PlasticBottleDirtyWater"}
    };
    components[] = 
    {
        {1, "Exile_Item_PlasticBottleEmpty"}
    };
    category = "Drink";
};
class FillEmptyPlasticBottleWithFreshWater: Exile_AbstractCraftingRecipe
{
    name = "Fill Fresh Water";
    pictureItem = "Exile_Item_PlasticBottleFreshWater";
    requiredInteractionModelGroup = "CleanWaterSource";
    returnedItems[] =
    {
        {1, "Exile_Item_PlasticBottleFreshWater"}
    };
    components[] = 
    {
        {1, "Exile_Item_PlasticBottleEmpty"}
    };
    category = "Drink";
};
class FillEmptyPlasticBottleWithSaltWater: Exile_AbstractCraftingRecipe
{
    name = "Fill Salt Water";
    pictureItem = "Exile_Item_PlasticBottleSaltWater";
    requiresOcean = 1;
    returnedItems[] = 
    {
        {1, "Exile_Item_PlasticBottleSaltWater"}
    };
    components[] = 
    {
        {1, "Exile_Item_PlasticBottleEmpty"}
    };
    category = "Drink";
};
class FillFuelCanister: Exile_AbstractCraftingRecipe
{
    name = "Fill Fuel Canister";
    pictureItem = "Exile_Item_FuelCanisterFull";
    requiredInteractionModelGroup = "FuelSource";
    returnedItems[] = 
    {
        {1, "Exile_Item_FuelCanisterFull"}
    };
    components[] = 
    {
        {1, "Exile_Item_FuelCanisterEmpty"}
    };
    category = "Misc Consumables";
};
class UpgradeToWoodDoor: Exile_AbstractCraftingRecipe
{
    name = "Upgrade to Wood Door";
    pictureItem = "Exile_Item_WoodDoorKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodDoorKit"}
    };
    components[] = 
    {
        {1, "Exile_Item_WoodDoorwayKit"},
        {2, "Exile_Item_WoodPlank"}
    };
    category = "Construction Wooden";
};
class UpgradeToWoodFloorPort: Exile_AbstractCraftingRecipe
{
    name = "Upgrade to Wood Floor Port";
    pictureItem = "Exile_Item_WoodFloorPortKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodFloorPortKit"}
    };
    components[] = 
    {
        {1, "Exile_Item_WoodFloorKit"},
        {2, "Exile_Item_WoodPlank"}
    };
    category = "Construction Wooden";
};
class UpgradeToWoodGate: Exile_AbstractCraftingRecipe
{
    name = "Upgrade to Wood Gate";
    pictureItem = "Exile_Item_WoodGateKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodGateKit"}
    };
    components[] = 
    {
        {1, "Exile_Item_WoodWallKit"},
        {4, "Exile_Item_WoodPlank"}
    };
    category = "Construction Wooden";
};
class UpgradeToWoodWall: Exile_AbstractCraftingRecipe
{
    name = "Upgrade to Wood Wall";
    pictureItem = "Exile_Item_WoodWallHalfKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodWallKit"}
    };
    components[] = 
    {
        {2, "Exile_Item_WoodWallHalfKit"}
    };
    category = "Construction Wooden";
};
class UpgradeToWoodWindow: Exile_AbstractCraftingRecipe
{
    name = "Upgrade to Wood Window";
    pictureItem = "Exile_Item_WoodWindowKit";
    requiredInteractionModelGroup = "WorkBench";
    returnedItems[] = 
    {
        {1, "Exile_Item_WoodWindowKit"}
    };
    components[] = 
    {
        {1, "Exile_Item_WoodWallKit"},
        {2, "Exile_Item_WoodPlank"}
    };
    category = "Construction Wooden";
};

Preview
BRAmaXM8APP.gif

 

Edited by Brun
new update
30 people like this

Share this post


Link to post
Share on other sites

That's really cool. I've seen some of these XM8 scripts posted but none have peaked my interest enough to consider using them so I've missed the instructions. How do you install an app like this on the server?

Share this post


Link to post
Share on other sites
Advertisement

Wtf, this is freakin cool!! Besides shix's xm8apps itself this is the coolest and most handy script so far. I really adore this one =) 

1 person likes this

Share this post


Link to post
Share on other sites

Nice addon!  You need to fix your Git though.  The image gets corrupted when you download it from there.  Would be better if you could allow the package to be downloaded as a zip instead of having to right click on the image file and "Save As".  

Share this post


Link to post
Share on other sites
Advertisement

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.