I wasn't able to find good information on Better Questing, so I made a tutorial, with a reference section. Feel free to copy this around.
This guide is for Better Questing 2.0.233, on Minecraft 1.7.10.
I assume you have a Minecraft installation with Better Questing and Better Questing Standard Expansion already installed. You can also grab the Quest Book mod as well if you want. The other sub-mods should be taken only if you actually need their features.
Your First Quest:
Start by creating a new world in creative mode.
Open the quest page with ` (default key), and choosing "Quests". (Note that this key is also used by veinminer; if you want both, I would suggest giving veinminer priority, and including the Quest Book mod.) Confirm that the quest page is present but blank.
Leave the quest page, and type "/bq_admin edit". It should say "Edit mode ON".
Re-enter the quest page, and click "Edit".
Click "Add New", and click on the "New Quest Line" that appears on the left. Change the name and description if you want, then click Designer.
The upper-right button will create a new quest. Select it, click on the canvas, then select the open button (upper-left) again.
Click the quest you just created, and hit edit. Change the name and description if you want.
Click the Tasks button, and select bq_standard:retrieval. This will add it to the list on the left.
Select the task you just added, and select requiredItems (bottom of list).
Click the +, choose Item, then click Done.
Click the "Item: Stone" list item.
Change the object to Oak Wood. (You can either select from your inventory, or choose from the item list to the right. It has a text search.)
Hit Done 4 times to return to the "Edit Quest" window.
Select the Rewards window
Click bq_standard:item, click the "Item Reward" list item, then click the "List..." list item.
Click the +, choose Item, then click Done
Click the "Item: Stone" list item.
Change the object to a furnace, change the quantity to 4, then hit Done until you return to the main quest window.
You have now created a quest that will take oak wood, and give you 4 furnaces. Cool.
Making it work:
Type "/bq_admin edit" to turn edit mode off. BE SURE TO DO THIS EVERY TIME. If you don't, you'll end up with weird errors such as repeatable quests not working, some quest types not working, and so on. In general, weird behavior is caused by edit mode being on.
Type "/bq_admin default save" to export your changes to the default version. If you don't, your questbook will only be available in this particular world.
Test it out by creating a new survival world. Open up the quest window, and make sure everything's there.
Better Questing will load quests from the default version when starting a new version, but it will NOT automatically update from the default version if it's been updated. This makes it harder to test, and if you release a modpack publicly, this puts a barrier to having people load your updates. There is a console command to do this, but it's a bit annoying, so I suggest doing this as a quest.
Create a new quest. Call it "Reload Quests" or something.
Leave tasks blank, or add a checkbox task.
Add a reward of "bq_standard:command", and set the command as "/bq_admin default load".
Go into the Advanced window, the Properties window, then the BetterQuesting Object.
Set the repeatTime to 0.
Set isSilent to true (optional, will prevent the quest from visibly triggering on game start if no tasks were set).
Non-admins can now reload quests at will.
Remember to turn edit mode off, then make your changes default.
Congratulations! This is basically all the must-know material. The rest of this is reference material; maybe skim over it?
Be sure to disable edit mode before uploading your modpack. If you have a checklist, put that in as a step. If you don't, make a checklist; it's a good idea in general, and will save you from embarrassment at least once.
If you want random loot drops, similar to the loot bags in HQM, check out the Loot Chest. The glowy one can edit drop tables.
Be careful about adding multiple tasks to a quest. The only indication that there's a second task is a small arrow at the bottom of the window. You *will* get people wondering why the quest doesn't work. Just stick with one task per quest unless you have a very good reason not to.
Xp: requires the player to hit an experience level. If isLevels is false, it'll use raw experience values instead. (Each level requires a greater amount of experience; this is mostly a consideration when consuming the experience. Level 1 requires 7 xp, but level 20 requires 57.)
checkbox: you check a box.
Fluid: Requires a fluid. Note that it can pull from the player's inventory, emptying buckets, bottles, and at least some mod containers. autoConsume will do this automatically. Also works with the Object Submission Station.
Location: Requires the player to visit a location. Range can be -1, in which case anywhere in the dimension will count, or else will be the distance in meters/blocks. Dimensions are -1=Nether, 0=Overworld, 1=End, and mods may add more. Visible doesn't appear to do anything(?). hideInfo will hide all info, leaving the player with no way to know which location they need to visit. (Presumably you would want to stick a hint in the description.)
Crafting: Requires the player to craft an item. Will not work in edit mode. requiredItems contains the list of items needed. Note that quantity is the number of items crafted, not the number of crafts; crafting a set of 4 torches counts as 4, not 1. For partialMatch and ignoreNBT see below. I do not recommend using this, as there are a large number of ways to create items that don't use crafting. I suggest a retrieval task instead.
Break Block: Requires the player to break a block. Does not work in edit mode. Note that if you try to add a second block, the object will be empty. Back out to the task list and re-enter, and it will automatically fill in the new object. The actual properties of the item are complicated, and there's no automatic way to fill them in, so don't touch this unless you know what you're doing. Also remember that there's ways to get blocks that don't involve actually breaking them, so a retrieval task is probably what you actually want.
Retrieval: Requires the player to gather specific items. Also works with the Object Submission Station. The requiredItems is the list of items. Consume will actually remove the items from the player's inventory instead of just requiring them to be present. AutoConsume will do this automatically. If you have multiple items in the list groupDetect requires all of them to be present at the same time. (For example, if you ask for 1 wood and 4 planks, without groupDetect the player can gather one wood, (getting the first bit) then craft it into planks (getting the second bit).) The other options are discussed in the next section.
Hunt: Requires the player to kill mobs. Note that this requires a "personal" touch; punching zombies off cliffs doesn't count, or setting them on fire, or getting some friendly iron golems. Any mob farms definitely don't count unless the player gets the last hit. While it may be possible to use the advanced NBT settings to create a quest to kill a specific named mob, be careful as it is possible to cause the monster to die without being the one to kill it, potentially making a quest uncompletable. If you're not doing that, there's no need to use the advanced settings.
Meeting: Like Hunt, but you only need to get near to the mob. Note that amount is the number of mobs that need to be nearby at the same time. Range is in blocks/meters. Using this with a specific mob is less likely to go horribly wrong through the player killing it through indirect means, but it is more likely to go wrong by a player killing the mob with a bow or something, so be careful.
Scoreboard: The requires the player to get a specific score. Scores can be changed via quest rewards. (This is the reputation system, if you're looking for that.) The scoreName is the score name to use; you can have multiple scores, stored in different names. scoreDisp is what it looks like to the player. unitSuffix is for display purposes. unitConversion can shrink the numbers displayed, though it doesn't change the math. (For example, unitConversion=1000, unitSuffix="k", and target=10000 will result in "0k >= 10k" instead of "0 >= 10000".) I don't know what type does.
Ore dictionary, NBT, and partial matches:
Let's say you want the player to make a wood slab. When you select an oak wood slab in the retrieval task item list, you can choose OreDict. (Default: none) This can be changed to slabWood because an Oak Wood Slab is known to be a slabWood. If the player crafts a wood slab out of any wood (that is marked as slabWood) it will count towards the quest if you've set the OreDict. If you just leave the OreDict as none, the player will need to craft it out of oak wood.
NBT is enchantments and similar properties. The ignoreNBT property will ignore that data. E.g., you make a quest for a leather helmet with a Projectile Protection enchant. If ignoreNBT is false, a unenchanted helmet will not work because the NBT data does not match. If it is true, it will work.
PartialMatch allows a partial match of NBT data. E.g., you make a quest for a leather helmet with a Projectile Protection enchant. The player has a leather helmet with Projectile Protection and Feather Falling on it. If partialMatch is false, the player will not be able to submit their helmet, as the NBT data is not an exact match. If it is true, they will be able to do that, as it has the parts you care about.
IgnoreNBT has priority. If it is true, partialMatch doesn't matter.
There are cases where you want a generic item, but there are variations that are technically different items. For example, Tinker's Construct Tool Forge has a bunch of variations, depending on the metal used. I don't think there's a good way to manage this within Better Questing. Instead, I would recommend the use of MineTweaker to add an oreDict entry, then use this oreDict entry when creating your quest.
Xp: Gives the player experience, either specified as raw xp or levels. See the related task for details on the difference.
Item: Gives the player a list of items.
Scoreboard: score is the name of the score to adjust. You can have multiple scores, and adjust them independently. I'm not sure what type does. Value is how much to change the score. Negative values work. Setting relative to false allows directly setting a specific score instead of increasing the player's score.
Choice acts like an item reward, but the player can only select one item.
Command will run a Minecraft console command. hideCommand will prevent displaying the actual command in the quest. Not sure what viaPlayer does.
Quick version: Get yourself a shiny loot chest, and right-click to open the loot group window. Create a loot group. Give it a name, then choose Add/Remove Drops. Create a loot entry, then choose Add/Remove Drops. Add an item, then hit done a lot.
When you open one of the regular loot chests, a random loot group is chosen, based on the weights listed in the loot group list. A random loot entry is then chosen, based on the weights in the loot entry list. Everything in that loot entry is found in the chest. If you don't fill this in, the player will just get random dungeon loot instead.
If you will be using loot tables, you should add a "/bqs_loot default load" command to the "Easy updates" quest from above.
You can set quests as requirements for a quest. The Logic button controls what behavior to use to determine if the quest can be opened.
This controls the quest's visibility within the quest line. (The quest line is the screen of quests.) None of these will allow opening a quest until it's unlocked.
Normal: quest will be visible, but grayed out until all requirements are cleared.
Completed: quest will be completely invisible until completed. Because the player cannot open the quest until complete, all tasks should be completable without opening the quest. (And presumably explained somewhere.)
Chain: quest will only be visible if at least one parent is visible.
Always: Similar to Normal, but by setting at least one quest to Always, the quest line will always be openable.
Hidden: Will never be displayed.
Unlocked: Quest will be invisible, not just grayed out, until all requirements are cleared.
The options are under Properties, then BetterQuesting. Some of these duplicate settings in other windows, but these should be the more interesting ones.
isMain (or Main button): just changes the appearance of the quest icon.
taskLogic: normally the player needs to complete all tasks. Set this to OR, they only need to complete one task.
icon can be set in the designer, but it's here as well.
RepeatTime is in ticks. (20 ticks = 1 second.) It can be set to 0 for instant repeat, or -1 for no repeat.
autoClaim will force the player to claim their reward as soon as it activates. It's not great for items, as you don't know if the player is currently falling into lava. Commands and scoreboard rewards both work well, though.
isSilent prevents the quest from playing a sound or displaying a message when the reward is claimed. It doesn't do anything for task completion, though, which does reduce the usefulness.
snd_update is the sound played when a task completes. Leaving it blank will make this silent.
snd_complete is the same, but for claiming a reward.
lockedProgress if set to true will prevent the player from getting credit for items acquired before the quest unlocked. This is mostly for cases where a previous quest consumes something, and you want the player to have another one. (Fluids, items, experience, and score all work well.) Obviously useless if the quest consumes stuff instead of just making sure it exists.
partySingleReward means that only one player per party can get a reward. (I think this is for store-type setups; if one person pays for an item, you don't want everybody able to also get the item as well.)
globalShare I'm not quite sure about. I think it means that only one player in the server(?) can claim the reward. Or possibly the reverse. I don't understand the code well enough to be certain. Anyway, it's a multiplayer thing.
Simultaneous is also unclear, but related to multiplayer.
Hey, I'm in the process of making a modpack and have already created a ton of quests for the pack - but have no clue how to make available for people to use. I asked this guy who made a tutorial on the mod but IDK what any of it means XD:
"Well newest versions of BQ you save as a default DB. Then each world on first load should use that as the quest book"
Better Questing - NPC Integration 3.x (3.0.30) for 1.7.10 (breaks with CustomNPCs 1.7.10d)
NPC Integration 3.0 still requires Noppes CustomNPCs mod to function, but CustomNPCs version for 1.7.10d hasn't been updated in years (2017) and the existing version blows up trying to load with the 3.x version of NPC Integration.
Is there any solution for this, or has anyone been able to get this working for 1.7.10 in their own set up?