Lesson 1: General Setup

What will I learn in this lesson?

In this lesson you will learn how to set specific OgreBot settings that will allow your bots to function in a uniform manner.

Example File: 1- Solo Quest - A Fine Halasian Welcome 

For all content types, you will want to have these settings in your "Quest" file to ensure that everything runs smoothly.

  1. BJ Command - Gear Score - Set to the appropriate level and the content creator named.
  2. Ogre MCP Command - Ogre Follow enabled and set to the person "running" the quest.
  3. Ogre MCP Command - Ogre Assist set to the person "running" the quest.
  4. Ogre MCP Command - Ogre Move Behind disabled.
  5. Ogre MCP Command - Ogre Move into Melee Range disabled.
  6. Ogre MCP Command - Ogre Ignore 100% NPC Health enabled.
  7. Ogre MCP Command - Ogre Move to Area enabled.
  8. Load any additional scripts. IE. BJ Movement

Gear Score MUST be the first Quest Step in order for it to display in the top right corner of Quest Bot.  The formula to determine the gear score can be found here.

Ogre Follow is recommended for both ground and air navigation.  The suggested minimum distance value is 2.

Ogre Assist is set to the person who had Quest Bot running the quest.

Ogre Move Behind and Move into Melee Range are disabled because we don't want the bots moving too far from the navigation path and in open world zones we don't want them looking more like a bot.  Less combat movement is better in the open world.

Ogre Ignore 100% NPC Health is enabled so that when we target something it will be attacked.

Ogre Move to Area is enabled so that we can easily set camp spots.

At the very end of our general setup section we should start any additional scripts we might need to complete the task.  If you were creating content for an instance run you might want to start BJ Movement to handle some of the named fights.

Lesson 2: Navigation - Getting From Point A to Point B

What will I learn in this lesson?

In this lesson you will learn how to create both ground based and flight based navigation.

Example File: 87- Solo Quest - The Footsteps of Destiny (Good Alignment)

The way that Quest Bot navigates is different than the way that Ogre does things.  Ogre allows you to map out an area and gives the bot the ability to roam within this area.  This works well for the things it is intended for like harvesting where we don't know where the harvest nodes will spawn.  For navigation between quest NPC, kill targets or other quest related tasks this method of movement wouldn't work as well.  Quest Bot navigation follows a very simple system of navigation points that are chained together to create a path. There are two general rules that are followed when using Quest Bot navigation: The character actively running Quest Bot will target themselves before moving and if hate is detected the bot will pause navigation until aggro is cleared.  Let's start by familiarizing ourselves with the navigation options.

The Navigation User Interface
Click image for a larger picture. Click image for a larger picture.

Looking at the above pictures we can see that there are three main areas in the navigation area: Navigation Points, Navigation Options and Navigation Information

  1. Navigation Points List: This is where your mapped points will go as they are created.  For normal navigation this list is read from the top down and reversed navigation from the bottom up.  The information displayed here includes: Point Name, X Co-Ordinate, Y Co-Ordinate and Z Co-Ordinate.  The point name is only for humans to read and the rest is what is read by the bot.
  2. Navigation Options: Start BJ Mapper Button will load the navigation mapper script and the on-screen HUD (right picture) will be displayed.  Start BJ Mover will load the navigation path testing script that will mimic ground based navigation (this option does not work for flight).  Reverse Path Direction will make the bot read the navigation paths from the bottom of the list moving up and Ignore Combat will force it to not stop if hate/aggro is detected.
  3. Navigation Information: This HUD is displayed when you start the mapping script.  It provides information about your current navigation path mapping, as well as, gives you control over adding specific navigation points and changing the precision (how often the mapper will create auto points).
Ground Based Navigation

1.  Load Quest Creator, start a new project and give your new project a name.  I have named mine, Navigation Tutorial.

2.  From the Project Management combo box, select your newly created quest and press the Load Quest button.  This will set your active quest file for saving purposes.

3.  From the Actions combo box, select Move to Location.  This will make the Movement Type combo box visible.

4.  From the Movement Type combo box, select Run Point to Point.  This will make all of our navigation options visible.

5.  Next, we need to be in the zone we wish to ground navigate around.  For this tutorial, I'll be making a path from the docks in Frostfang Sea to the center of New Halas.

6.  Ensure that there are not any pre-existing navigation points in the navigation window by clicking the Clear Path button and then start the mapper by clicking the Start BJ Mapper button.  This will load the HUD on your screen and enter the start point into the navigation window.

7.  I am going to leave my precision set to the default of 3.

8.  Next, run your path.

9.  When we are finished running our path it is important to end the mapper.  We can do this by pressing Ctrl+F12 on your keyboard.  You will see the HUD disappear from your screen when the mapper has ended.

10. Now, we need to save our new navigation path.  Click on the Show Create Options check box to display the Create Path button and Path Name text field.  It is important to note that Path Names must start with an alpha character, but can include both alpha and numeric.  Example: A Path Name of 001 will not work, but Path_001 will work.  Also, if you pressed the Show Save Options button instead of Create it will not work.  Create Options are for a new path, Save Options are for an existing and loaded path.

11. Once you have pressed the Create Path button, you can confirm that it saved by opening the Innerspace in-game console.

Click image for a larger picture.

12.  To add our new navigation path to the Quest Steps, we first need to load the Path Name from the Path Name combo box and press the Load Path button.

13.  Our last choices before we add it to the Quest Steps list box are the direction we want to run the path (forwards or reverse) and if we want to ignore any combat while moving.  This is our first path, so I'm going to choose NOT to enable reverse pathing and NOT to ignore combat.

14.  Press the Add Action button at the top to add our navigation path to the Quest Steps.

15.  Lastly, we need to save our quest.  In the Project Management section at the top, click on the Save Quest check box.  If it is not visible, you probably still have the Create Quest check box selected.  Un-select it and you should see the Save Quest check box appear.

16.  Press the Save Quest button to save your project and complete your ground navigation tutorial.  You can now load your quest in Quest Bot and let it move you from the point to point on the ground.

 This video will work through the steps listed above.
Flight Based Navigation

Before we get started with flight based navigation, I'd like to give the suggestion that if you can reach your intended destination without flying, then you should do so.  While flight does work, it can be interrupted more easily than ground based navigation. The way that we create a flight based navigation path is very similar to the way we create a ground based navigation path, but with two key differences.  There needs to be an extra command issued to launch yourself into the air and another command to bring yourself to the ground.  This flight based navigation tutorial will start where the ground based tutorial left off.  It is assumed that you have read/watched and completed ground based navigation first.

1.  Start by having your Navigation Tutorial quest loaded.

2.  From the Actions combo box, select BJ Commands.  This will make your Commands options show.

3.  From the Command combo box, select Flying.

4.  Parameter 1 will be Take Off.  Add it to the Additional Parameters list box and then Add Action.

5.  It is important to add a small timed wait after taking off and landing to allow any bots following you to adjust themselves.  I'm going to add a 1 second timed wait by selecting Wait from the Command combo box with Parameter 1 being Timed and Parameter 2 being 1.  Add it to the Quest Steps by clicking the Add Action button and save your quest.

6.  Now, this is where I'll share a little secret for those of you still reading.  The way that I create content with Quest Creator is by having Quest Bot running alongside it.  This allows me to add something in Quest Creator, save it, and then load it in Quest Bot to immediately test my changes.  I'm going to load Quest Bot now before I start creating my navigation path.  This will ensure that I am at the right height from taking off when I start my first flight navigation point.

7.  Load your tutorial quest in Quest Bot.  If you are not at the end of your previously created ground path, start the bot and let it work through everything.  If you were already at the end of your ground path, double click on the second quest step in the Quest Bot Quest Step box and this will set your starting step to # 2.  Press Start Quest.  When it completes the steps you will be in the air and ready to start making a flight navigation path.

8.  Swap back to Quest Creator and from the Actions combo box, select Move to Location.  This will make the Movement Type combo box visible.

9.  From the Movement Type combo box, select Run Point to Point.  This will make all of our navigation options visible.

10.  Ensure that there are not any pre-existing navigation points in the navigation window by clicking the Clear Path button and then start the mapper by clicking the Start BJ Mapper button.  This will load the HUD on your screen and enter the start point into the navigation window.

11.  I am going to leave my precision set to the default of 3.

12.  Next, fly your path from the end of the last ground navigation path to the beginning on the docks.  Do not make any sharp movements (up, down, left or right), get aggro or land as the bot will not deal with these conditions well.

13.  When we are finished flying our path it is important to end the mapper.  We can do this by pressing Ctrl+F12 on your keyboard.  You will see the HUD disappear from your screen when the mapper has ended.

14. Now, we need to save our new navigation path.  Click on the Show Create Options check box to display the Create Path button and Path Name text field.  It is important to note that Path Names must start with an alpha character, but can include both alpha and numeric.  Example: A Path Name of 001 will not work, but Path_001 will work.  Also, if you pressed the Show Save Options button instead of Create it will not work.  Create Options are for a new path, Save Options are for an existing and loaded path.

15. Once you have pressed the Create Path button, you can confirm that it saved by opening the Innerspace in-game console.

16.  To add our new navigation path to the Quest Steps, we first need to load the Path Name from the Path Name combo box and press the Load Path button.

17.  Press the Add Action button at the top to add our navigation path to the Quest Steps.

18.  Before we test our changes in Quest Bot I want to add another one second wait and the Touch Down step.

19.  Lastly, we need to save our quest.  In the Project Management section at the top, click on the Save Quest check box.  If it is not visible, you probably still have the Create Quest check box selected.  Un-select it and you should see the Save Quest check box appear.

20.  Press the Save Quest button to save your project and complete your flight navigation tutorial.  You can now load your quest in Quest Bot and let it move you from the point to point on the ground and in the air. 

This video will work through the steps listed above.

**This lesson is still being written.**

Lesson 3: Quest Requirements

What will I learn in this lesson?

In this lesson you will learn how to acquire, set and check Quest Requirements.

Example File: Coming soon...

Quest Requirements in Quest Bot are how the bot keeps track of what Everquest II requires for it's quest steps and your character's progress on completing them.  When designing Quests for Quest Bot to follow, it is important to keep in mind that people can choose to have up to two characters in the group working on content at the same time.


Acquiring Quest Requirements

This is probably the most annoying part of actually creating quest type content for Quest Bot.  To start, we want to click on the Start Quest Info button located in the Actions and Quest Information section.  This will read the quest information as your client receives it.  Quest information can only be read when you first receive it or an update occurs that triggers the quest text.  Any other time, the client doesn't know about the quest steps.  Having said that, you can force the quest information gathering script to receive the information again by left clicking the quest in your quest journal.

 Let's take a look at the information we receive when we accept our example quest.

Click either image for a larger view.

The top image is what the quest information looks like in our quest journal and the bottom image is what the Quest Information script reads from the server.

  • QstName: The name of the quest.
  • CurrentZone: The current zone category the quest fits into.  This is one of two categories that we can sort by in the quest journal when viewing our quests.
  • Category:  The category the quest fits into.
  • Description:  The flavor text that can give background information about the lore of the quest.  Generally, this information is for story driven purposes and is useless to us.
  • Arg#1:  This is where we are going to start being interested in what is being said.  In this example, Arg#1 will match the very top bullet point in our quest journal.  This is the primary quest step.
  • Arg#2:  This is a secondary or slave bullet quest requirement because it is indented under the previous bullet point.  If we complete this quest requirement it will update the text of the primary point, which in this case is Arg#1 or the top bullet point.

Navigating the Quest Requirements User Interface

Let's take a look at what the UI looks like for our Quest Requirements section.

Click image for a larger view.

Our available parameters look like this: 

Parameter 1 Parameter 3 Parameter 4 Parameter 5 Parameter 6
For Who all or team or *Me.Name*      
Parameter 2        
Set  Quest Requirement Order  Progress Text  Completion Text Number of Updates Required
Check Quest Requirement Number to Check  Quest Step Number to Return to     

Putting Things Together

Now that we are comfortable with the UI and we know where to get our quest information from, let's start putting it together by entering the quest information into the UI.  For Arg#1 my parameters are going to look like:

Parameter Notes and Descriptions
all I want both team members to set their Quest Requirement so I have a for who parameter of all.
Set I am setting a Quest Requirement.
1.0 At the beginning of the quest, this is the first/primary quest objective so it gets the designation of 1.0.
I must locate Savtek, the accomplished animist, somewhere on Daarspire. This is the progress text associated with the quest requirement.  It will change when the step is complete.
I found Savtek, the accomplished animist, on the south eastern point of Daarspire. This is the completion text associated with the quest requirement.  It will appear when the step has been completed.
1 Number of updates required.

Since we have completed the first step of the quest, our quest journal and quest requirements have been changed/updated.  Here is what they look like now:

Click either image for a larger view.

From the above information you can see that we didn't need to use our Arg#2 from the initial set of pictures, but why is that?  We didn't use our initial Arg#2 or 1.1 because for this particular quest our Arg#1 or 1.0 quest requirement was updated when we completed Arg#2.  Some quests will have multiple sub-step requirements that must be completed before the primary will update (Example: To Speak As A Dragon has multiple sub-steps when you are on the rune gathering step.).

Next we are going to create our second Quest Requirement, which will look like this:

Parameter Notes and Descriptions
all I want both team members to set their Quest Requirement so I have a for who parameter of all.
Set I am setting a Quest Requirement.
2.0 This quest step is our second primary objective so it is given a designation of 2.0.
Savtek fears that it may take him too long to construct the needed sentinels.  I've volunteered to buy him some time by fighting the Horde within the Daarspire cave. This is the progress text associated with the quest requirement.  It will change when the step is complete.
 I have thinned the number of Harrowing Horde within the Daarspire cave. This is the completion text associated with the quest requirement.  It will appear when the step has been completed. *See Note*
1 Number of updates required.

*Note:  When you complete Arg#3 or 2.1 from the picture above, Arg#2 or 2.0 does not update because there are multiple sub-steps that it requires for completion.  I had to run through the quest far enough for 2.0 to update before I could obtain the Quest Completion text for 2.0.

This time we need to use Arg#3 or 2.1 from the picture above so let's make our Quest Requirement for it:

Parameter Notes and Descriptions
all I want both team members to set their Quest Requirement so I have a for who parameter of all.
Set I am setting a Quest Requirement.
2.1 This quest step is our first secondary objective for the second primary objective so it is given a designation of 2.1.
Enter the Daarspire cave that the Harrowing Horde have taken over This is the progress text associated with the quest requirement.  It will change when the step is complete.
 Enter the Daarspire cave that the Harrowing Horde have taken over This is the completion text associated with the quest requirement.  It will appear when the step has been completed.
1 Number of updates required.

After completing step 2.1, my console and quest journal now look like this:

Click either image for a larger view.

Now we should make a Quest Requirement for Arg#4 or 2.2.  It would look like this:

Parameter Notes and Descriptions
all I want both team members to set their Quest Requirement so I have a for who parameter of all.
Set I am setting a Quest Requirement.
2.2 This quest step is our second secondary objective for the second primary objective so it is given a designation of 2.2.
Slay Harrowing Horde within the Daarspire cave This is the progress text associated with the quest requirement.  It will change when the step is complete.
 I have thinned the number of Harrowing Horde within the Daarspire cave. This is the completion text associated with the quest requirement.  It will appear when the step has been completed.
5 Number of updates required.

With the completion of 2.0, 2.1 and 2.2 we are given our last primary objective.  This is what the console and quest journal looks like.

Click either image for a larger view.

I am not going to add 3.0 to the Quest Requirements box because I know that when 3.0 is completed the quest is over and this particular quest ends with talking to an NPC.  If the quest you are working on ends with something that can be random or unpredictable, you should add the Quest Requirement to ensure reliability.