Important crafting tags: Synthesize: Code: <Synthesize RecipeId="1023"/> Required Parameters: RecipeId: Id of the recipe to craft. Looking into a nice way for users to dump their currently known recipes. For now you'll have to use a service like Final Fantasy XIV : A Realm Reborn (FFXIV ARR) Database Optional Parameters: MinimumCp: If this value is specified, and the players current max cp is less then this value the profile will stop. Default:0 RequiredSkills: List of skill ids required to complete this craft, if any are missing from the player then crafting will not start. UseCR: If set to true then the tag will not exit but rather will call the current combat routines CombatBehavior until crafting is complete. Default: false HQMats: List of how many high quality materials to use for each ingredient in the recipe. Example HQMats="0,3,2" This will use all normal items for the first ingredient, 3 high quality items for the second, and 2 high quality items for the third. Default: all zero. Special numbers: If you set an index to -1 then it will prefer high quality mats, and then use normal mats once you run out of high quality. A value of -2 will use normal quality until you run out then use high quality. What it does: It starts the crafting process and then exits unless UseCR is set to true. [HR][/HR] CraftAction: Code: <CraftAction ActionId="100001" Name="Basic Synthesis"/> Required Parameters: ActionId: Id of the spell to use Optional Parameters: MinDelay: Lower bound of milliseconds to wait after crafting to appear more human Default:250 MaxDelay: Upper bound of milliseconds to wait after crafting to appear more human Default:500 What it does: Executes the supplied actionId then waits for the animation lock to be done, then waits for a random number of milliseconds between MinDelay and MaxDelay. If the action couldn't be cast for any reason execution of the profile will stop [HR][/HR] StopCrafting: Code: <StopCrafting/> What it does: Will make sure the crafting log window is closed and that the player is standing up so that you may move around. [HR][/HR] EatFood: Code: <EatFood ItemId="4666" Name="Salt Cod"/> Required Parameters: ItemId: Id of the item to use Optional Parameters: HqOnly: Only use High quality items Default:false NqOnly: Only use Normal quality items Default:false MinDuration: Only eat if remaining duration in minutes on food buff is less then this Default:5 What it does: Eats food. Will not eat food if we already have the food buff active on the player and its remaining time is greater then MinDuration. Prefers high quality food first, then moves on to normal quality once high quality is depleted. Will stop profile execution if we are out of the provided itemId.
Useful apis for developers of profiles and routines: From CraftingManager: public static bool IsCrafting public static bool AnimationLocked public static int IconId public static int Progress public static int ProgressRequired public static int Durability public static int DurabilityCap public static int HQPercent public static int Step public static int ItemId public static int QualityCap public static int Quality public static CraftingCondition Condition public static uint LastActionId public static ushort CurrentRecipeId Example Profiles: Craft maple lumber until we run out of materials: Code: <Profile> <Name>Craft maple lumber</Name> <KillRadius>50</KillRadius> <GrindAreas> </GrindAreas> <Order> <While Condition="True"> <Synthesize RecipeId="1008"/> <While Condition="CraftingManager.IsCrafting"> <CraftAction ActionId="100001"/> </While> </While> </Order> </Profile> You can now dump the currently listed recipes by running the attached profile.
Crafting, yeah! Thanks for all your hard work ^_^ Any chance AnimationLocked returns true on combat abilities animation lock? XD
XD don't be bad. People use the word animationlock in a combat context incorrectly 100% of the time. ie: "can't use spell cause of animation lock ... blah blah blah". This just in, there is no "animationlock" for combat. Just a limiting factor of if an ability is already queued and if it is of the proper type. I don't wanna see this used in an actual combat based combatroutine. I'll delete it off the forums for being a bad example for others.
Sorry if this is off topic and my terminology is wrong. Do you mean after you use an ability the animation starts while the ability is still in queue and the queue is cleared before the animation finishes? I just figured that was animation lock, when you can't cast or queue during the beginning of the animation of an ability. Should there be some term i should use while referring to this limiting factor, spell queue lock during animation? I just thought it's a notworthy limiting factor to casting :S
People need to just forget the word animation, it has nothing to do with anything in this game except during crafting. During crafting you can only execute one thing at a time. Any other time its has absolutely nothing to do with anything. The limiting factor during combat is something like currentGCD < 500ms && requestedSpell.Type != weaponskill if i recall correctly. But this is another discussion for another time and a different thread.
Thank you so much for this crafting update to the API; this opens up some significant new plugin opportunities for advanced crafting rotations, and represents a massive improvement over the in-game macro system. Yay!
Is crafting supposed to work right now? I literally copy and pasted your example to try it out and it doesn't seem to work. The crafting window pops up on maple lumber, but then I get an error in rebornbuddy. Please see attached files
Thanks Mastahg! Trying to figure out the ActionIds for crafting. So far I've just been using Log(CraftingManager.LastActionId); in the console to try to identify them. I have: 100001 = Basic Synth 100002 = Basic Touch 100003 = Master's Mend 100004 = Standard Touch 100005 = Master's Mend II 100006 = Brand of Wind 100007 = Standard Synthesis 100008 = Advanced Touch 100009 = Byregot's Blessing 100010 = Observe 100011 = ??? Not known 100012 = ??? Not known 100013 = ??? 100014 = ??? 100015 = ??? 100039 = Piece by Piece 100069 = Careful Synthesis II 252 = Inner quiet??? 260 = Great Strides??? 279 = Waste Not??? 281 = Steady Hand II ??? 283 = Ingenuity II??? 284 = Innovation??? 286 = Comfort Zone??? 287 = Reclaim??? all the 1000##s work fine. However, the 2## don't and I get the error "[CraftAction] Invalid action id specified (279) is not a craft action" when I try to use them. Is there a better way to find out these ActionIDs? / Where can I find them? Thanks
Look at xivdb.com, filter by the crafting job you want. Here's carpenter: Search - Final Fantasy XIV : A Realm Reborn (FFXIV ARR) Database When you click on each spell, the url will look like: /?skill/100009/Byregot%27s-Blessing where 100009 is the action id. - kagami
Oh! That's great. Thanks for the info. There's still the problem of getting the error: "[CraftAction] Invalid action id specified (252) is not a craft action" for the crafting abilities with ID #s in the 200s :S
Just to clarify, crossclass skills have just one ActionId. However the 'basic' abilities, like advanced synthesis and master's mend, have different ActionId's for each class's version.
Works great! Thanks Mastahg! And Azoth, that's what I've found so far. Also, in terms of using CraftingManager.Condition, what are the possible values? (I tried Excellent and Good, but that didn't seem to work)
Since its an enum you need to preface it with the enums name ie; CraftingCondition.Good, CraftingCondition.Excellent etc
Yes. Just use the HqMats and specify how many you want to use, it doesn't have to be the entire amount required, the rest will use normal quality.