PlaneShift

Development => Development Team Blog => Topic started by: Uadjet on November 25, 2018, 07:46:45 pm

Title: Missing Skill-Boosting Quests
Post by: Uadjet on November 25, 2018, 07:46:45 pm
 As most players will likely know by now, a number of skills now have quests that can be completed every x hours to boost that skill to the next level. These are quite useful for those who want to raise skills without grinding, while still allowing those who do grind to level much faster than those who only do quests. Not all skills have this option as the quests were not done or not completed, so I'm hoping we can get a few players involved and make the quests ourselves.

This thread is here to provide basic information about quest-making and to list the skills that could use new quests. When it comes time to actually work out the details we should probably take that info private so as not to provide spoilers for everyone to see.

First, there are a few links that may come in handy. I'll post a few, and if anyone else suggests a link I'll happily add it here.

First, Venalan provided some data about quest syntax/format and some examples from the game: Very Useful!!! (https://www.dropbox.com/sh/syayy5kms8hyewa/AAB3TFmFcgXMdKYHk5r-WWMTa?dl=0)

The thread itself has some useful information in it, so here's the link: This thing here. (http://207.244.96.64/PlaneShift/smf/index.php?topic=43222.0)

Regarding art for new items: Creating Art and mods (http://planeshift.top-ix.org/pswiki/index.php?title=Creating_Art_and_mods)

Adding images to books and maps (http://207.244.96.64/PlaneShift/smf/index.php?topic=41973.msg483080#msg483080)

Now, some skills already have quests that give them boosts. These are:
All Combat Skills
Alchemy
Baking
Cooking
Drawing
Empathy
Fishing
Harvesting
Herbal
Mace Making
Mining

Did I miss any? That leaves:

Armor Making
Blacksmith
Blades Making
Body Development
Bow Making
Brewing
Jewelry Making
Leatherworking
Lockpicking
Metallurgy
Musical Instrument
Repair Armors
Repair Weapons
Shield Making

Now, some of those fit quite well into the "make x of these and get your level" type of quest and are explained very well in their intro quests. I'd say that Armor Making, Blades Making, Bow Making, Brewing, Jewelry Making, Leatherworking, Metallurgy, and Shield Making fall into that category. We can do those just like the Mace Making or Alchemy quests, and they should do fine.

Crafting Skills

Some of the quests already in game are in pairs, so you get one quest at lower skill levels and a second quest at higher levels. This, I think, makes it easier to set up tasks with differing difficulty levels. For example, the Mace Making quests are a lower-level one where you make normal blunt weapons, and a second quest where you make platinum-steel items. I rather like that, though I'd like to set it up so that a player does the first quest at least once no matter their skill level as a kind of intro.

That leaves:

Blacksmith, Repair Armors, Repair Weapons, Body Development, Lockpicking, and Musical Instrument.

Blacksmith

Blacksmith is odd because while tons of tasks use the skill, they all also fall under another skill. Like blades making, or armor making. Other than hammering heated stocks and ingots, I can't think of anything that uses just Blacksmith. Leatherworking is similar, but at least some of the tasks use only leatherworking. So what do we do for Blacksmith? There are plenty of tasks a blacksmith might do that aren't weapon or armor related, but those activities aren't in game.

So what do we do? We could pick out some basic tasks and have the player do them. We could make up new general items made of metal that the player could do (tankards, cutlery, etc.), but that means adding a crafting book. Would be awesome, but not easy. Any thoughts?

Repair Armors/Weapons

Got a couple ideas for this. First, we can just make up new base items and give them to the player in damaged form. Is that possible? NPCs can give items of various qualities, but can the max quality and the current quality be different? Second, we could have the player actually need to learn how to repair items, and retrieve the materials needed for that task. Oilstones, waterstones, etc. The hard way would require mining for materials not currently in game OR just getting them from mining NPCs. Heck, maybe players could be sent out to gather materials for repair kits, if we can determine what's in them.

Body Development

This is all about toughness. Getting hit for damage already provides training, but there could certainly be other ways to train the skill. Long distance running? Maybe deliveries to other cities with the pterosaur travel quests disabled. Or collecting body parts from tough creatures. Tasks that require large amounts of physical exertion.

Lockpicking

This could be a lot of fun to do. I'm picturing the appropriate NPCs (blacksmiths at low level, thieves at higher level) giving tasks. They can start out with a quest explaining how locks work, and subsequent quests can be about repairing locks, then picking chests to retrieve and deliver the contents (maybe having to find the chests?), and maybe even a maze like in Menita's Puzzle where the doors are locked.

Musical Instrument

As suggested in the meeting, the player could be sent on quests to learn about music from different people/groups, and may have to do something in exchange for that knowledge. Perform basic tasks, fetch items, or just outright pay for the info with gems or whatever that person/group wants.


Okay, this is just a quick start. Hopefully it'll get the ball rolling, just a bit. Please post any thoughts you have, and we'll see how far the community can take this.  :thumbup:

Update: Nov. 25/20

Okay, a lot of those quests are done! Here's what's left:

Blacksmith
Body Development
Leatherworking
Lockpicking
Musical Instrument
Repair Armors
Repair Weapons

The repair skills are partially done and awaiting inspiration, and there's a really good musical instrument quest out there that is I think at the polishing stage. I've written two leatherworking quests, four lockpicking quests, and a body development quest that I don't ever remember doing awaiting testing. That leaves Blacksmith, which I must admit I put off because there isn't much that can be done with just that skill. Hammering stocks back into stocks is kinda it, I think, and I may be wrong about that. I have a plan for items that could be made just using Blacksmithing, but that mostly means new items, new art, and a new crafting book, and maybe a new piece of equipment. That's.. a bit much. I can still write a fetch quest as a stand-in, though.

Also, the armor skills (combat skills, I mean) have no quest that I can think of. I started writing a quest for light armor, but that was ages ago and I need to find my notes.

And seriously, I have no memory of writing the Body Development quest! Just... vague recollections of the idea behind it. It's freaking me out!  :o
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on November 29, 2018, 09:06:36 pm
Okay, I'm writing a really basic sample quest that assigns one of several tasks to a player using the glassmaking skill. Which isn't active, but the idea just popped into my head and I'm going with it. This should show you how a basic quest works, so that you don't have to poke around in other files.

The first section is the header that appears at the top of all quests.The '#' means the line is commented out, so it has no effect on what the player sees or what the server does. It's just to help people reading the raw quest file.

Code: [Select]
# Quest name: Glassblowing Training Quest.
# Quest Description: Repeatable quest to train glassblowing.
# Quest Category: Repeatables ???
# ----------------------
# Quest Items: Item name/Item description
# Item name - Description here.
# ----------------------
# Author(s): Uadjet
# Current Version: 0.1 Alpha
# Player lockout: -1 ???
# Quest lockout: 0 ???
# Prerequisites: <pre><completed quest="???"/></pre>
#----------------------
# Version history and change log
# Last edited by: Nobody, as should be obvious
# Version 0.1: Never checked, Venaland and Mordaan will likely laugh when they see it
# ---------------------

That's mostly self-explanatory, I think, and I've filled most of it out as I would for a quest I was writing. The ??? mark lines I don't really understand, but again they're all commented out so the server ignores them.

This step isn't really necessary, but you can have NPCs say things to players as they walk past. You can also check various traits about the player, so that the NPC will only say things for a specific skill level or if a quest is completed. I think. I'm mainly including it because it's a very simple introduction to one aspect of quest writing.

Code: [Select]
P: !shortrange
Glassblower McUnimplemented:

Okay, that has two lines to it. The line starting with "P:" and the line starting with the NPCs name. The P: line includes what the player says to the NPC. The trigger text. It can also read "Player gives Glassblower McUnimplemented Glass Mug" if the player walks up to the NPC in question and trades him/her/kra a glass mug. In this case, the trigger is being at short range.

The line of dialogue includes the full NPC full name (always the full name) and whatever that NPC says when the player triggers that step of a quest.

So let's try making something quest-specific.

Code: [Select]
P: !shortrange
Glassblower McUnimplemented: Damnation! I've broken another glass mug. I'm going to have to buy some more soon.

That's simple enough. If a player walks by at short range, Glassblower McUnimplemented (which seemed much cleverer when I first used it) will say that line. Easy. Now, what if we only wanted people who can actually work with glass items to get that prompt? We can add a restriction to that step. The documentation I linked to has far more examples of that kind of thing, but we'll assume the NPC knows the player has some training in glassblowing because the player has done a quest before. That line goes before the P: line. Like this:

Code: [Select]
Require completion of Introduction to Glassblowing
P: !shortrange
Glassblower McUnimplemented: Ah, $playername! I remember you. Could you give me a moment of your time?

So the first line checks to see if the player nearby (at !shortrange) has completed the quest "Introduction to Glassblowing" and if he/she/kra has it will display the dialog line. The dialog line contains "$playername", which is one of the wildcards you can use when writing quests. Enter that, and the NPC will say the player's name.

So that actually gives us examples of three different types of lines in a quest step. There's a lot more you can do with them, but they aren't too complex so far, are they?

So the player hears this and decides to see what the NPC wants. We'll now have the second step in the quest.

Code: [Select]
... NoRepeat

#Step 2.
P: give quest. quest. glass mug. glassblowing.
Menu: Did you need something?
Glassblower McUnimplemented: Yes, I'm badly in need of some new glass mugs and I was hoping you could help me.
Assign Quest

That's a nice, simple first step. First, note the '...' on the top there. That tells the server you're starting a new step in the quest. The "#Step 2." bit doesn't do that, as the '#' means that line isn't read by the server, remember? The "NoRepeat" bit means that after this step is run that particular dialog option doesn't show again. Most steps will have this, as if they didn't each dialog bubble would keep repeating. Remember what popups were like before adblocking was available? Yeah...

So the P:... part lists the various things the player could say to trigger this if they weren't using the dialog bubbles, as usual. Nothing exciting or new there.

Now the "Menu" line is new. That's what the player actually sees in the dialog bubble that they click on. That's the player's 'voice', so to speak. Here there's only one option, but we'll change that shortly. After clicking on that, the NPC responds with the line listed just under the Menu line.

Next is the line that actually starts the quest: "Assign Quest" Pretty simple, right? Well, it's simple but maybe not the best way to do it. The player actually hasn't agreed to help yet, so setting the quest as accepted is a bit premature. Let's give the player the option to say Yes or No. There are a couple ways to do that.

Code: [Select]
... NoRepeat

#Step 2.
P: give quest. quest. glass mug. glassblowing.
Menu: Did you need something?
Glassblower McUnimplemented: Yes, I'm badly in need of some new glass mugs and I was hoping you could help me.
Complete Glassblowing Training Quest step 2

... NoRepeat

#Step 3
Require completion of Glassblowing Training Quest step 2. Require no completion of Glassblowing Training Quest step 4.


... NoRepeat

#Step 4
Require completion of Glassblowing Training Quest step 2. Require no completion of Glassblowing Training Quest step 3.


I'll stop here for a moment to explain. Note that completing step 2 is a requirement for completing both step 3 and step 4, so both of those will pop up after completing step 2. You'll also see that steps 3 and 4 both require that the player not have completed the other step, so if a player does step 3, step 4 will not show up as an option. Otherwise the player could, in this case, both accept and decline the quest. I'll fill it in a bit more now:

Code: [Select]
... NoRepeat

#Step 2.
P: give quest. quest. glass mug. glassblowing.
Menu: Did you need something?
Glassblower McUnimplemented: Yes, I'm badly in need of some new glass mugs and I was hoping you could help me.
Complete Glassblowing Training Quest step 2

... NoRepeat

#Step 3
Require completion of Glassblowing Training Quest step 2. Require no completion of Glassblowing Training Quest step 4.
P: Decline. No. Nohelp.
Menu: No, I'm too busy right now.
Glassblower McUnimplemented: Oh, that's a shame. Come back later if you change your mind.
Complete Glassblowing Training Quest step 3

... NoRepeat

#Step 4
Require completion of Glassblowing Training Quest step 2. Require no completion of Glassblowing Training Quest step 3.
P: Accept. Yes. Yeshelp.
Menu: Yes, I can help you.
Glassblower McUnimplemented: Wonderful! I'll need six glass mugs as quickly as you can make them.
Complete Glassblowing Training Quest step 4. Assign Quest.

If the player chooses to help, they can continue on. If they say no, the quest is over before it began and cannot be restarted again. Not too much fun, I suppose. Perhaps if the player says "no' the NPC can give them another chance?

Code: [Select]
... NoRepeat

#Step 2.
P: give quest. quest. glass mug. glassblowing.
Menu: Did you need something?
Glassblower McUnimplemented: Yes, I'm badly in need of some new glass mugs and I was hoping you could help me.
Complete Glassblowing Training Quest step 2

... NoRepeat

#Step 3
Require completion of Glassblowing Training Quest step 2. Require no completion of Glassblowing Training Quest step 4.
P: Decline. No. Nohelp.
Menu: No, I'm too busy right now.
Glassblower McUnimplemented: Oh, that's a shame. Come back later if you change your mind.
Complete Glassblowing Training Quest step 3

... NoRepeat

#Step 4
Require completion of Glassblowing Training Quest step 2.
P: Accept. Yes. Yeshelp.
Menu: Yes, I can help you.
Glassblower McUnimplemented: Wonderful! I'll need six glass mugs as quickly as you can make them.
Complete Glassblowing Training Quest step 4. Assign Quest.

That's better. I removed the requirement that step 3 NOT be completed off step 4, so if you decline the quest once you can still go back later and say Yes. Still, there's a better way. You know how sometimes an NPC will give you a choice in conversation and no dialog bubbles from other quests will pop up? It shows only the options for that one quest. Here's how that works.

Code: [Select]
... NoRepeat

#Step 2.
P: give quest. quest. glass mug. glassblowing.
Menu: Did you need something?
Glassblower McUnimplemented: Yes, I'm badly in need of some new glass mugs and I was hoping you could help me.
P:nohelp. P: yeshelp
Menu: No, I'm too busy right now. Menu: Yes, I can help you.
Glassblower McUnimplemented: Oh, that's a shame. Come back later if you change your mind.
Glassblower McUnimplemented: Wonderful! I was worried I'd come up short during the rush.
Assign Quest

That's a little more complex to write, but in the end I think it makes things easier.  You write the P: , Menu: , and NPC: lines as normal, but after them you add an additional P: line with one entry per option the player is to be given. In this case you have only yes and no options, so the line is: "P:nohelp. P: yeshelp"

After that is a Menu: line where you enter the Dialog options that will fill the bubbles defined by the line above. In this case: "Menu: No, I'm too busy right now. Menu: Yes, I can help you."

Note that in both cases you need the "P:" and "Menu:" component for each option. You can't simply say "Menu: No, I'm too busy right now.  Yes, I can help you." That's only one entry. You need this: ""Menu: No, I'm too busy right now. Menu: Yes, I can help you.""

The lines of NPC dialog are given their own lines, but the order must match the order given in the P: and Menu: lines.

I don't know why the quest doesn't complete step 2. I'll have to ask about that.

Assuming the player chooses to continue the quest, we move on to actually giving the task required. For that we need a new step, which will be step 3 if we use the last example for step 2.

Code: [Select]
... NoRepeat

#Step 3
P: Task
Menu: What did you need me to make?
Glassblower McUnimplemented: Six glass mugs, please. As quickly as you can make them!
Complete Glassblowing Training Quest step 3

That's it. Pretty simple, right? Now you'll need a step where you hand in the items, but what if the player forgets what they were supposed to make? They could take a break from the game or just have a lot of open quests. We should add in a reminder step that will tell them what to do.

Code: [Select]
...

#Step 4
Require completion of Glassbowing Training Quest step 3.
Require no completion of Glassblowing Training Quest step 5
Require  no  possessed  amount  6  item  Glass Mug
P: Iforgot
Menu: What did you need me to make again?
Glassblower McUnimplemented: Glass mugs. Six of them. Please try to hurry.
Complete Glassblowing Training Quest step 4.

That should do it. Left out the NoRepeat bit at the top so the player can get as many reminders as necessary and put in a "require no completion" so that this option won't show up after the step where you hand in the items is completed.

Now we can add the step where we hand in the items.

Code: [Select]
... NoRepeat

#Step 5
Require completion of Glassbowing Training Quest step 3.
Require possessed amount 6 Glass Mug.
Player gives Glassblower McUnimplemented 6 Glass Mug.
Menu: Here they are.
Glassblower McUnimplemented: Thank you! Just in time for the after work rush.

So as usual we require the completion of the previous step to start this one to keep the quest nice and clean. We also require that the player actually have the required items to see this option. That's the "Require possessed amount 6 Glass Mug." bit. You'll probably notice that instead of "P: something" we have a "Player gives..." line. That's so that the player actually hands over the items needed, and is used in place of the triggering text format. Other than that, it's pretty normal. Would be nice to complete the quest, though, right?

Code: [Select]
... NoRepeat

#Step 5
Require completion of Glassbowing Training Quest step 3.
Require possessed amount 6 Glass Mug.
Player gives Glassblower McUnimplemented 6 Glass Mug.
Menu: Here they are.
Glassblower McUnimplemented: Thank you! Just in time for the after work rush.
Complete Glassblowing Training Quest step 5. Complete Glassblowing Training Quest.

There we go. Completed the step and then the quest. No rewards, though. Kinda cheap of me.

Code: [Select]
... NoRepeat

#Step 5
Require completion of Glassbowing Training Quest step 3.
Require possessed amount 6 Glass Mug.
Player gives Glassblower McUnimplemented 6 Glass Mug.
Menu: Here they are.
Glassblower McUnimplemented: Thank you! Just in time for the after work rush.
Run script give_quest_exp <<1>>.
Run script give_quest_money <<1>>.
Run script give_quest_skill <<'Glassblowing',1>>.
Complete Glassblowing Training Quest step 5. Complete Glassblowing Training Quest.

Better! Now we've added the rewards of exp, tria, and a skill point. The tria and exp rewards work with a multiplier based on character skill, stats, nostril size, and probably other things as well, so even though it says "1" you aren't giving 1 tria and 1 exp point. It's just the base reward, and entering a value of 2 would give double that.

So, putting that all together gives us:

Code: [Select]
# Quest name: Glassblowing Training Quest.
# Quest Description: Repeatable quest to train glassblowing.
# Quest Category: Repeatables ???
# ----------------------
# Quest Items: Item name/Item description
# Item name - Description here.
# ----------------------
# Author(s): Uadjet
# Current Version: 0.1 Alpha
# Player lockout: -1 ???
# Quest lockout: 0 ???
# Prerequisites: <pre><completed quest="???"/></pre>
#----------------------
# Version history and change log
# Last edited by: Nobody, as should be obvious
# Version 0.1: Never checked, Venaland and Mordaan will likely laugh when they see it
# ---------------------

Require completion of Introduction to Glassblowing
P: !shortrange
Glassblower McUnimplemented: Ah, $playername! I remember you. Could you give me a moment of your time?

... NoRepeat

#Step 2.
P: give quest. quest. glass mug. glassblowing.
Menu: Did you need something?
Glassblower McUnimplemented: Yes, I'm badly in need of some new glass mugs and I was hoping you could help me.
P:nohelp. P: yeshelp
Menu: No, I'm too busy right now. Menu: Yes, I can help you.
Glassblower McUnimplemented: Oh, that's a shame. Come back later if you change your mind.
Glassblower McUnimplemented: Wonderful! I was worried I'd come up short during the rush.
Assign Quest

... NoRepeat

#Step 3
P: Task
Menu: What did you need me to make?
Glassblower McUnimplemented: Six glass mugs, please. As quickly as you can make them!
Complete Glassblowing Training Quest step 3

...

#Step 4
Require completion of Glassbowing Training Quest step 3.
Require no completion of Glassblowing Training Quest step 5
Require  no  possessed  amount  6  item  Glass Mug
P: Iforgot
Menu: What did you need me to make again?
Glassblower McUnimplemented: Glass mugs. Six of them. Please try to hurry.
Complete Glassblowing Training Quest step 4.

... NoRepeat

#Step 5
Require completion of Glassbowing Training Quest step 3.
Require possessed amount 6 Glass Mug.
Player gives Glassblower McUnimplemented 6 Glass Mug.
Menu: Here they are.
Glassblower McUnimplemented: Thank you! Just in time for the after work rush.
Run script give_quest_exp <<1>>.
Run script give_quest_money <<1>>.
Run script give_quest_skill <<'Glassblowing',1>>.
Complete Glassblowing Training Quest step 5. Complete Glassblowing Training Quest.

Okay, that's the basic format as I understand it. I'll expand on that below by showing how to add Quest notes and how to give variable tasks as the skill quests in game already do. I might have figured out how to do the timer, but I'm not sure...
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on November 29, 2018, 10:01:10 pm
That was a fairly long post, so I'll try to make this shorter. This is how to add the quest notes that players can use to remind themselves of what they're supposed to be doing. Probably not needed for the relatively short quest above, but what the heck.

You add Quest Notes by adding a line starting with "Questnote" just below the line containing the NPC dialog. No colon on that line, which is going to bug me. Here's a quick example from Abelia's Welcome, the quest from the tutorial.

Code: [Select]
... NoRepeat

P: start tutorial. start. start here. begin. give quest. quest.
Menu: [This is the option you need to click to start the quest.] Hi, is all this equipment yours?
Abelia Aruine: [Abelia places her broom against the table and dusts her hands off on her apron to help compose herself before smiling at you.] Why yes, yes it is. And welcome to Hydlaa, the central and main city of the top level of Yliakum! I've been told to say that to all new people I see round here. [Abelia smirks as she turns round and starts gathering items from the table behind her.] Apparently there have been attacks coming from the Stone Labyrinths recently and lots of people fled this way. It's been quiet today so far, but since it's been busy all week with new arrivals I've been half expecting a rush this afternoon as well. [She peers over her shoulder at you.] You didn't see a giant crowd of people headed this way did you? [--] [INFORMATION: To see how to interact with NPCs click on the 'HELP' icon in the toolbar and in the 'START HERE' section read the heading 'INTERACTING WITH NPCs'.] [Skipping NPC dialogue: You can speed up how quickly NPCs talk by clicking on the bubbles which appear displaying the NPCs dialogue. You should be careful about skipping forward as you might miss important information the NPC tells you.] [This text is appearing in the chat window. There are 10 tabs in total. You can display more by going to the options window in the main tool bar and under 'Interface' and then 'Chat - Tabs' select the ones you want to see.]
QuestNote Abelia welcomed you to the tutorial and asked if you had seen many people coming her way. You can go to the 'HELP' window and in the 'START HERE' section read the heading 'INTERACTING AND SPEAK WITH NPCs' to see about how to interact with NPCs.
Assign Quest.

That's not too bad. Just add a quick note every time you give the player important information or assign a task to complete, and the player will be able to find the information in the quest notes no matter how long they leave the quest. I think this shouldn't be used before the quest is actually assigned because how could it add a note to a quest that doesn't appear in your quest list? Could be wrong, but I'll play it safe.

Here's a Questnote added to the quest from the post just above:

Code: [Select]
... NoRepeat

#Step 2.
P: give quest. quest. glass mug. glassblowing.
Menu: Did you need something?
Glassblower McUnimplemented: Yes, I'm badly in need of some new glass mugs and I was hoping you could help me.
P:nohelp. P: yeshelp
Menu: No, I'm too busy right now. Menu: Yes, I can help you.
Glassblower McUnimplemented: Oh, that's a shame. Come back later if you change your mind.
Glassblower McUnimplemented: Wonderful!  I was worried I'd come up short during the rush.
Questnote Glassblower McUnimplemented needs my help in replacing some glassware.
Assign Quest

That's pretty simple. Gives the NPC name, and the purpose of the quest. It's added below the NPC line where you accept the quest (like the Assign quest line) so it would only be added if you accept the quest.

Once you get a specific task you can add another quest note, which would be added to the notes the player sees when they click on the quest.

Code: [Select]
... NoRepeat

#Step 3
P: Task
Menu: What did you need me to make?
Glassblower McUnimplemented: Six glass mugs, please. As quickly as you can make them!
Questnote Glassblower McUnimplemented has asked me to provide six glass mugs.
Complete Glassblowing Training Quest step 3

There we go. Now if the player looks at the quest notes they'll see what they're supposed to bring to the NPC.

The "don't know what I needed to bring" step doesn't add anything new, and if the player was checking quest notes they wouldn't need the reminder option to begin with.

The last stage may or not need a questnote depending on what type of quest it is. If the quest is repeatable having a note saying that you should come back later sounds like a good idea, and if the quest points the player to another person a note would be helpful there too. Other than that, I think it's optional. Here's the last step with a quest note added.

Code: [Select]
... NoRepeat

#Step 5
Require completion of Glassbowing Training Quest step 3.
Require possessed amount 6 Glass Mug.
Player gives Glassblower McUnimplemented 6 Glass Mug.
Menu: Here they are.
Glassblower McUnimplemented: Thank you! Just in time for the after work rush.
Run script give_quest_exp <<1>>.
Run script give_quest_money <<1>>.
Run script give_quest_skill <<'Glassblowing',1>>.
Questnote Glassblower thanked you for the help and suggested that you come back later in case he needed more glassware.
Complete Glassblowing Training Quest step 5. Complete Glassblowing Training Quest.

There we go. Added some quest notes so the player can check their quest log for tips. Next up I'll try to add some randomness to the tasks so that the player isn't asked to do the same thing every time.
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on November 29, 2018, 11:20:00 pm
So I looked long and hard for an option to send the player to a randomized step and couldn't find it. I tried searching the Basic Quest Syntax document for it, but searching for the word "random" wasn't expecially helpful when the sample quest Venalan used was "Random Quest". Lots of hits, but none useful.

Eventually I realized that you can use other requirements to simulate randomness. Specifically you can allow/disallow steps from appearing by using the in-game time of day, which is bloody well good enough, I think. Here's the Require command for that:

Code: [Select]
Require  time  of  day  #-#.
The clock runs from 0-23, and doesn't wrap around so you can go "10-18" but not "22-4". There is an "OR" command using "|", so if need be you could go:

Code: [Select]
Require  time  of  day  22-23 | time of day 0-4
So the time has to be between 22 and 23 OR between 0 and 4. Since the game only checks hours that'll cover the whole span between 22 and 4 the next day without exception. Also, no need to write in the "Require" part twice. Just once at the beginning of the line.

Now to apply that tidbit of knowledge to this quest. Maybe you want the player to be asked for mugs on some occasionas, glasses on another, and some of each every once in a while. That might looks something like this:

Code: [Select]
... NoRepeat

#Step 2.
P: give quest. quest. glass mug. glassblowing.
Menu: Did you need something?
Glassblower McUnimplemented: Yes, I'm badly in need of some new glass mugs and I was hoping you could help me.
P:nohelp. P: yeshelp
Menu: No, I'm too busy right now. Menu: Yes, I can help you.
Glassblower McUnimplemented: Oh, that's a shame. Come back later if you change your mind.
Glassblower McUnimplemented: Wonderful!  I was worried I'd come up short during the rush.
Questnote Glassblower McUnimplemented needs my help in replacing some glassware.
Assign Quest

... NoRepeat

#Step 3
Require  time  of  day  0-9.
P: Task
Menu: What did you need me to make?
Glassblower McUnimplemented: Six glass mugs, please. As quickly as you can make them!
Questnote Glassblower McUnimplemented has asked me to provide six glass mugs.
Complete Glassblowing Training Quest step 3

#Step 4
Require  time  of  day  10-19.
P: Task
Menu: What did you need me to make?
Glassblower McUnimplemented: Ten glasses, please. As quickly as you can make them!
Questnote Glassblower McUnimplemented has asked me to provide ten glasses.
Complete Glassblowing Training Quest step 4

#Step 5
Require  time  of  day  20-23.
P: Task
Menu: What did you need me to make?
Glassblower McUnimplemented: Three glass mugs and five glasses, please. As quickly as you can make them!
Questnote Glassblower McUnimplemented has asked me to provide three glass mugs and five glasses.
Complete Glassblowing Training Quest step 5

There we go. Three different requests, each with its own step. I made the requests for only mugs or only glasses take up 10 hours each and the mixture option only taking up 4 hours, but that's just me being stubborn. There's no reason why the different tasks shouldn't be assigned the same amount of time during the PS day.

Now, if we've got different tasks the player might be assigned we need different steps to accept those items. We'll also need a step for each option to remind the player of what they should make. So for each different task we need three steps: A step that assigns the task, a reminder step, and a completion step.

Note: For simplicity's sake I'll group the steps by task, so the order goes: Get task A, Reminder of task A, complete task A, get task B, etc.  I could do all of the task assignment steps first, then the reminders, then the completion steps, but that would require a lot more jumping around and I think I might go mad if I try that.

Code: [Select]
... NoRepeat

#Step 3
Require  time  of  day  0-9.
P: Task
Menu: What did you need me to make?
Glassblower McUnimplemented: Six glass mugs, please. As quickly as you can make them!
Questnote Glassblower McUnimplemented has asked me to provide six glass mugs.
Complete Glassblowing Training Quest step 3

...

#Step 4
Require completion of Glassbowing Training Quest step 3.
Require no completion of Glassblowing Training Quest step 5
Require  no  possessed  amount  6  item  Glass Mug
P: Iforgot. 6 Glass Mugs
Menu: What did you need me to make again?
Glassblower McUnimplemented: Glass mugs. Six of them. Please try to hurry.
Complete Glassblowing Training Quest step 4.

... NoRepeat

#Step 5
Require completion of Glassbowing Training Quest step 3.
Require possessed amount 6 Glass Mug.
Player gives Glassblower McUnimplemented 6 Glass Mug.
Menu: Here they are.
Glassblower McUnimplemented: Thank you! Just in time for the after work rush.
Run script give_quest_exp <<1>>.
Run script give_quest_money <<1>>.
Run script give_quest_skill <<'Glassblowing',1>>.
Questnote Glassblower thanked you for the help and suggested that you come back later in case he needed more glassware.
Complete Glassblowing Training Quest step 5. Complete Glassblowing Training Quest./code]

That'll do for one task. The first step listed gives the assignment and adds a quest note telling the player what to make. The second step shows if the player hasnt' got the items and hasn't handed them in already, and tells them what to make again. And lacks the NoRepeat bit so the player can get multiple reminders. The last step checks the step that gives the assignment, makes sure the player has the items before showing up, and completes the quest.

Now we'll add in the other two tasks:

[code]... NoRepeat

#Step 3
Require  time  of  day  0-9.
P: Task 1
Menu: What did you need me to make?
Glassblower McUnimplemented: Six glass mugs, please. As quickly as you can make them!
Questnote Glassblower McUnimplemented has asked me to provide six glass mugs.
Complete Glassblowing Training Quest step 3

...

#Step 4
Require completion of Glassbowing Training Quest step 3.
Require no completion of Glassblowing Training Quest step 5
Require  no  possessed  amount  6  item  Glass Mug
P: Iforgot. 6 Glass Mugs
Menu: What did you need me to make again?
Glassblower McUnimplemented: Glass mugs. Six of them. Please try to hurry.
Complete Glassblowing Training Quest step 4.

... NoRepeat

#Step 5
Require completion of Glassbowing Training Quest step 3.
Require possessed amount 6 Glass Mug.
Player gives Glassblower McUnimplemented 6 Glass Mug.
Menu: Here they are.
Glassblower McUnimplemented: Thank you! Just in time for the after work rush.
Run script give_quest_exp <<1>>.
Run script give_quest_money <<1>>.
Run script give_quest_skill <<'Glassblowing',1>>.
Questnote Glassblower thanked you for the help and suggested that you come back later in case he needed more glassware.
Complete Glassblowing Training Quest step 5. Complete Glassblowing Training Quest.

... NoRepeat

#Step 6
Require  time  of  day  10-19.
P: Task 2
Menu: What did you need me to make?
Glassblower McUnimplemented: Ten glass cups, please. As quickly as you can make them!
Questnote Glassblower McUnimplemented has asked me to provide ten glass cups.
Complete Glassblowing Training Quest step 6

...

#Step 7
Require completion of Glassbowing Training Quest step 6.
Require no completion of Glassblowing Training Quest step 8
Require  no  possessed  amount  10  item  Glass Cup
P: Iforgot. 10 Glass Cup
Menu: What did you need me to make again?
Glassblower McUnimplemented: Glass Cups. Ten of them. Please try to hurry.
Complete Glassblowing Training Quest step 7.

... NoRepeat

#Step 8
Require completion of Glassbowing Training Quest step 6.
Require possessed amount 10 Glass Cup.
Player gives Glassblower McUnimplemented 10 Glass Cup.
Menu: Here they are.
Glassblower McUnimplemented: Thank you! Just in time for the after work rush.
Run script give_quest_exp <<1>>.
Run script give_quest_money <<1>>.
Run script give_quest_skill <<'Glassblowing',1>>.
Questnote Glassblower thanked you for the help and suggested that you come back later in case he needed more glassware.
Complete Glassblowing Training Quest step 8. Complete Glassblowing Training Quest.

... NoRepeat

#Step 9
Require  time  of  day  20-23.
P: Task 3
Menu: What did you need me to make?
Glassblower McUnimplemented: Three glass mugs and five glass cups, please. As quickly as you can make them!
Questnote Glassblower McUnimplemented has asked me to provide three glass mugs and five glass cups.
Complete Glassblowing Training Quest step 9

...

#Step 10
Require completion of Glassbowing Training Quest step 9.
Require no completion of Glassblowing Training Quest step 11.
Require  no  possessed  amount  3 item Glass Mug | no possessed amount item 5 Glass Cup
P: Iforgot. 3 Glass Mugs. 5 Glass Cups
Menu: What did you need me to make again?
Glassblower McUnimplemented: Three glass mugs and five glass cups, please. Please try to hurry.
Complete Glassblowing Training Quest step 10.

... NoRepeat

#Step 11
Require completion of Glassbowing Training Quest step 9.
Require possessed amount 3 Glass Mug.
Require possessed amount 5 Glass Cup.
Player gives Glassblower McUnimplemented 3 Glass Mug.
Player gives Glassblower McUnimplemented 5 Glass Cup.
Menu: Here they are.
Glassblower McUnimplemented: Thank you! Just in time for the after work rush.
Run script give_quest_exp <<1>>.
Run script give_quest_money <<1>>.
Run script give_quest_skill <<'Glassblowing',1>>.
Questnote Glassblower thanked you for the help and suggested that you come back later in case he needed more glassware.
Complete Glassblowing Training Quest step 5. Complete Glassblowing Training Quest.

Okay, that's a quest with three branches/tasks that they player might get. Given that I'm figuring this out as I go, it's not too bad.

One thing I am wondering about is if I should be blocking out the other task assignment steps. For example, if the time of day tells the server to go to step 3 and assign that, then the player walks away for a few in game hours, might they talk to Glassblower again and get assigned step 6 for a brand new task? I'll have to ask about that. If it is necessary, it just means adding lines to each step that assigns a task (3, 6, and 9 above) that say not to show that step if one of the other two has been completed.

For those who are wondering, the quest would currently look like this:

Code: [Select]
# Quest name: Glassblowing Training Quest.
# Quest Description: Repeatable quest to train glassblowing.
# Quest Category: Repeatables ???
# ----------------------
# Quest Items: Item name/Item description
# Item name - Description here.
# ----------------------
# Author(s): Uadjet
# Current Version: 0.1 Alpha
# Player lockout: -1 ???
# Quest lockout: 0 ???
# Prerequisites: <pre><completed quest="???"/></pre>
#----------------------
# Version history and change log
# Last edited by: Nobody, as should be obvious
# Version 0.1: Never checked, Venaland and Mordaan will likely laugh when they see it
# ---------------------


Require completion of Introduction to Glassblowing
P: !shortrange
Glassblower McUnimplemented: Ah, $playername! I remember you. Could you give me a moment of your time?

... NoRepeat

#Step 2.
P: give quest. quest. glass mug. glassblowing.
Menu: Did you need something?
Glassblower McUnimplemented: Yes, I'm badly in need of some new glass mugs and I was hoping you could help me.
P:nohelp. P: yeshelp
Menu: No, I'm too busy right now. Menu: Yes, I can help you.
Glassblower McUnimplemented: Oh, that's a shame. Come back later if you change your mind.
Glassblower McUnimplemented: Wonderful!  I was worried I'd come up short during the rush.
Questnote Glassblower McUnimplemented needs my help in replacing some glassware.
Assign Quest

... NoRepeat

#Step 3
Require  time  of  day  0-9.
Require no completion of Glassblowing Training Quest step 6
Require no completion of Glassblowing Training Quest step 9
P: Task 1
Menu: What did you need me to make?
Glassblower McUnimplemented: Six glass mugs, please. As quickly as you can make them!
Questnote Glassblower McUnimplemented has asked me to provide six glass mugs.
Complete Glassblowing Training Quest step 3

...

#Step 4
Require completion of Glassbowing Training Quest step 3.
Require no completion of Glassblowing Training Quest step 5
Require  no  possessed  amount  6  item  Glass Mug
P: Iforgot. 6 Glass Mugs
Menu: What did you need me to make again?
Glassblower McUnimplemented: Glass mugs. Six of them. Please try to hurry.
Complete Glassblowing Training Quest step 4.

... NoRepeat

#Step 5
Require completion of Glassbowing Training Quest step 3.
Require possessed amount 6 Glass Mug.
Player gives Glassblower McUnimplemented 6 Glass Mug.
Menu: Here they are.
Glassblower McUnimplemented: Thank you! Just in time for the after work rush.
Run script give_quest_exp <<1>>.
Run script give_quest_money <<1>>.
Run script give_quest_skill <<'Glassblowing',1>>.
Questnote Glassblower thanked you for the help and suggested that you come back later in case he needed more glassware.
Complete Glassblowing Training Quest step 5. Complete Glassblowing Training Quest.

... NoRepeat

#Step 6
Require  time  of  day  10-19.
Require no completion of Glassblowing Training Quest step 3
Require no completion of Glassblowing Training Quest step 9
P: Task 2
Menu: What did you need me to make?
Glassblower McUnimplemented: Ten glass cups, please. As quickly as you can make them!
Questnote Glassblower McUnimplemented has asked me to provide ten glass cups.
Complete Glassblowing Training Quest step 6

...

#Step 7
Require completion of Glassbowing Training Quest step 6.
Require no completion of Glassblowing Training Quest step 8
Require  no  possessed  amount  10  item  Glass Cup
P: Iforgot. 10 Glass Cup
Menu: What did you need me to make again?
Glassblower McUnimplemented: Glass Cups. Ten of them. Please try to hurry.
Complete Glassblowing Training Quest step 7.

... NoRepeat

#Step 8
Require completion of Glassbowing Training Quest step 6.
Require possessed amount 10 Glass Cup.
Player gives Glassblower McUnimplemented 10 Glass Cup.
Menu: Here they are.
Glassblower McUnimplemented: Thank you! Just in time for the after work rush.
Run script give_quest_exp <<1>>.
Run script give_quest_money <<1>>.
Run script give_quest_skill <<'Glassblowing',1>>.
Questnote Glassblower thanked you for the help and suggested that you come back later in case he needed more glassware.
Complete Glassblowing Training Quest step 8. Complete Glassblowing Training Quest.

... NoRepeat

#Step 9
Require  time  of  day  20-23.
Require no completion of Glassblowing Training Quest step 6
Require no completion of Glassblowing Training Quest step 3
P: Task 3
Menu: What did you need me to make?
Glassblower McUnimplemented: Three glass mugs and five glass cups, please. As quickly as you can make them!
Questnote Glassblower McUnimplemented has asked me to provide three glass mugs and five glass cups.
Complete Glassblowing Training Quest step 9

...

#Step 10
Require completion of Glassbowing Training Quest step 9.
Require no completion of Glassblowing Training Quest step 11.
Require  no  possessed  amount  3 item Glass Mug | no possessed amount item 5 Glass Cup
P: Iforgot. 3 Glass Mugs. 5 Glass Cups
Menu: What did you need me to make again?
Glassblower McUnimplemented: Three glass mugs and five glass cups, please. Please try to hurry.
Complete Glassblowing Training Quest step 10.

... NoRepeat

#Step 11
Require completion of Glassbowing Training Quest step 9.
Require possessed amount 3 Glass Mug.
Require possessed amount 5 Glass Cup.
Player gives Glassblower McUnimplemented 3 Glass Mug.
Player gives Glassblower McUnimplemented 5 Glass Cup.
Menu: Here they are.
Glassblower McUnimplemented: Thank you! Just in time for the after work rush.
Run script give_quest_exp <<1>>.
Run script give_quest_money <<1>>.
Run script give_quest_skill <<'Glassblowing',1>>.
Questnote Glassblower thanked you for the help and suggested that you come back later in case he needed more glassware.
Complete Glassblowing Training Quest step 5. Complete Glassblowing Training Quest.
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on November 29, 2018, 11:33:21 pm
That takes care of the basic format, 'randomizing' tasks, and quest notes. Those are basically the things that I think I know well enough to use. I'm not entirely clear, however, on how to make a quest repeatable. Well, I basically have no idea. Leaving the "NoRepeat" out would mean those dialog options would keep showing up during each run-through of the quest, which is no good.

Two things occur to me. First, there is the "Run script" option that might be used to reset a quest. Tricky thing is it isn't used at the end of a repeatable quest, as the steps completed in one of those quests remain set until you accept the quest again. But if you have to accept a quest to reset a quest, how do you make it appear so that it can be accepted?

Second, there is the option of setting a timer within a quest that makes you wait x amount of minutes before continuing. Is that what's used to prevent the mysteriously repeatable quest from appearing too soon? From what i understand, the timer sets an invisible effect on the player. The next step won't be available while that timer is in effect. It looks like this:

Code: [Select]
Run  script  give_quest_timeout  <<‘Name  of  timer  goes  here',x>> 
So a condition could be added on the first step like this:

Code: [Select]
... NoRepeat

#Step 2
Require no active magic Quest waiting timer.
P: give quest. quest. glass mug. glassblowing.
Menu: Did you need something?
Glassblower McUnimplemented: Yes, I'm badly in need of some new glass mugs and I was hoping you could help me.
P:nohelp. P: yeshelp
Menu: No, I'm too busy right now. Menu: Yes, I can help you.
Glassblower McUnimplemented: Oh, that's a shame. Come back later if you change your mind.
Glassblower McUnimplemented: Wonderful!  I was worried I'd come up short during the rush.
Questnote Glassblower McUnimplemented needs my help in replacing some glassware.
Assign Quest

Again, something I'll have to ask about.
Title: Re: Missing Skill-Boosting Quests
Post by: Migg on November 30, 2018, 03:44:39 pm
On a topic that predominates Migg's interests in-game:

Musical Instrument

As suggested in the meeting, the player could be sent on quests to learn about music from different people/groups, and may have to do something in exchange for that knowledge. Perform basic tasks, fetch items, or just outright pay for the info with gems or whatever that person/group wants.

I have not gone about trying to write a script about this since I would first like to know if it is doable, but here are some thoughts I'd like to know more info on (tried to withhold as many details as possible):
I am assuming (based on existing quests) that requests like "bring me N blank music sheets" or "Get me whatever musical instrument" are doable.

In general I would prefer that the player can get more than one quest and that each is given by a different NPC, but since these have to be repeatable, the mechanics I would prefer are that you should be able to, say, do quest A and then quest B after 6 hours and then quest C after 6 more hours, but if you repeatedly do quest A without doing B or C in between you would need to wait, say, 12 hours. I realize you can just set the repetition delay for each of A, B and C to 12 hours, but that is not the same, since then I could do A, B and C with no delay between them, or even concurrently, and then wait 12 hours till I do them again (which allows me to get one skill level every 4 hours on average instead of 6 hours minimum).

I know I could find the answers by studying the quest syntax notes, but guess I am too lazy to do my homework right now  :-[ so just asking if someone can answer off the top of their head  :)
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on November 30, 2018, 07:07:48 pm
On a topic that predominates Migg's interests in-game:

I have not gone about trying to write a script about this since I would first like to know if it is doable, but here are some thoughts I'd like to know more info on (tried to withhold as many details as possible):
  • Player has to retrieve an item from an NPC X and return it to NPC Y to gain a skill level. What could that item be, and how could it be checked? Does it need to be a unique quest item? Could it be a normal music sheet filled with some music (i.e. not a blank music sheet) that X delivers to the player?

You can check for any item in the game, not just unique quest items. There are quests that look for apples, after all.  :D Checking for music could be harder. The server can certainly check for a blank musical score, but one that has been written in and renamed? I'm not sure. I did a test and renamed a generic item I was sent to get by a quest. The quest giver wouldn't accept the renamed item, but gave a different error than the "you don't have it" type message. Something about having too many types of that item, even though I only had the one. 

  • Could a quest involve a "Bring me N music sheets you have written" with the requirement that these sheets have at least one note inscribed on them (to prove the player at least knows how to open a music sheet in the in-game editor, add a note to it and save)? Is it possible to check who wrote a sheet? (not a public music sheet)

I think we can only check for number of items in a stack, unfortunately, and I don't see a way to check who wrote/crafted an item.

I am assuming (based on existing quests) that requests like "bring me N blank music sheets" or "Get me whatever musical instrument" are doable.

Oh, yes. Both of those are easily doable.

In general I would prefer that the player can get more than one quest and that each is given by a different NPC, but since these have to be repeatable, the mechanics I would prefer are that you should be able to, say, do quest A and then quest B after 6 hours and then quest C after 6 more hours, but if you repeatedly do quest A without doing B or C in between you would need to wait, say, 12 hours. I realize you can just set the repetition delay for each of A, B and C to 12 hours, but that is not the same, since then I could do A, B and C with no delay between them, or even concurrently, and then wait 12 hours till I do them again (which allows me to get one skill level every 4 hours on average instead of 6 hours minimum).

::|

Ummm... I dunno. That's...tricky. Obviously we can set timers so that people have to wait x hours to redo a quest. I'm just waiting on a Dev to explain how. I've asked for access to Assisting Gardr, but I don't have the permissions to view quests in the Dev Console (GM's don't have access to that) and I'll have to pester Venalan or Mordaan to see if they can get me a txt version of that quest. Timers set an invisible buff and quests can check to see if that buff is active or not. I'm assuming that's how the quest restart delay is handled, though I'm not sure. The wording of the documentation Ven provided makes me think that multiple quests could set/check one timer, but I'd have to ask.

I know I could find the answers by studying the quest syntax notes, but guess I am too lazy to do my homework right now  :-[ so just asking if someone can answer off the top of their head  :)

Well, I can't technically give you real answers, but I made some relevant-sounding noises.  ;D
Title: Re: Missing Skill-Boosting Quests
Post by: Migg on December 01, 2018, 02:13:44 pm
Your help is greatly appreciated, Uadjet  \\o// \\o// \\o//, even if it's of the generic audible encouragement type. If tests can be combined with "AND" and "OR" operators, and multiple timers set, perhaps a scheme could be devised to achieve what I want, once you figure out how these commands are supposed to work. Is there some way to actually test these, or does one just have to rely on a dev uploading the quest to the server (and probably debugging it as well)?
Title: Re: Missing Skill-Boosting Quests
Post by: Nightflyer0ne on December 01, 2018, 09:25:38 pm
What happens if two different people come up with different quests for the same skill?
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on December 01, 2018, 10:19:01 pm
Well, it kinda depends on the skill. If two people did a crafting repeatable like the ones already in game they might not be able to be merged. That's one of the main reasons I posted this thread, actually.  Now if it's a skill that isn't all about crafting items the quest would require a little more creativity, and in that case it would be easier to combine the ideas or just use both.
Title: Re: Missing Skill-Boosting Quests
Post by: Migg on December 02, 2018, 03:17:55 pm
Couldn't you just use both quests instead of merging, but have them apply to different skill levels? That way all proposed quests can be added to the game. Alternatively, you can use these as questlines given by the same NPC at random, but I would prefer to have more than one NPC give quests for a skill, since there are more than one NPC interested in any particular craft or activity.

Title: Re: Missing Skill-Boosting Quests
Post by: Nightflyer0ne on December 04, 2018, 02:37:49 am
I think it will depend on how similar the quests are to each other, but I couldn't say for sure.
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on December 05, 2018, 07:25:06 pm
Yes, having two quests is an option. There is already one skill that has two repeatable quests that can grant a level. The only thing we'd need to do is make sure that the timers are longer to balance out how quickly the skill can advance using quests. I don't think we'd have to double the length of the timer, as the two quests I mentioned aren't double the usual timer length, just a few hours longer.
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on December 05, 2018, 09:55:37 pm
Okay, just a few thoughts that come to me while I was working on things.

First off, plan out your steps before you actually start writing the quest in the proper syntax. Very important, as having to alter what happens at a certain step can cause errors in other parts of the quest that rely on that step.

Second, I've found it easier to group all steps for one task together and establish clear patterns. For example:

Code: [Select]
Step 1 - Quest acquired
Step 2 - Task 1 assigned
Step 3 - Task 1 reminder
Step 4 - Task 1 completed
Step 5 - Task 2 assigned
Step 6 - Task 2 reminder
Step 7 - Task 2 completed
Step 8 - Task 3 assigned
etc.

That seems to be the easiest way to to do things, as it keeps all steps near their related steps.

Third, it seems easier much of the time to work on a 'set' of steps all at the same time instead of fully writing each step and then moving on to the next. Here's what I mean: First, I copy/paste in some basic step blocks like these:
Code: [Select]

#Step
Require
P:
Menu:
NPC:
Questnote
Complete

... NoRepeat

#Step
Require
P:
Menu:
NPC:
Questnote
Complete

... NoRepeat

#Step
Require
P:
Menu:
NPC:
Questnote
Complete

... NoRepeat

#Step
Require
P:
Menu:
NPC:
Questnote
Complete

Then I number the steps and enter the trigger text lines, which are also useful as reminders of what each step should be about.
Code: [Select]
#Step 1
Require
P: Give me a quest
Menu:
NPC:
Questnote
Complete

... NoRepeat

#Step 2
Require
P: Get Task 1
Menu:
NPC:
Questnote
Complete

... NoRepeat

#Step 3
Require
P: Reminder task 1
Menu:
NPC:
Questnote
Complete

... NoRepeat

#Step 4
Require
P: Complete task 1
Menu:
NPC:
Questnote
Complete

Now that each step is nicely labeled, I can write in the dialog. Player dialog in the Menu lines, and NPC responses to that dialog in the NPC lines (with the NPC's full name in place of NPC).

Code: [Select]
#Step 1
Require
P: Give me a quest
Menu: I'm bored. Got anything for me to do?
NPC: Gee, there's the attitude that I love. Have time to run an errand for me?
P: Nohelp. P: Yeshelp.
Menu: Nah, I'll just go whack a dummy for a bit. Menu: Sure, why not?
NPC: Whatever. Stop bothering me.
NPC: Okay. I'm sure I can think of something for you to do.
Questnote
Complete

... NoRepeat

#Step 2
Require
P: Get Task 1
Menu: So, what do you need done?
NPC: Nothing much. Just get me three steel stock.
Questnote
Complete

... NoRepeat

#Step 3
Require
P: Reminder task 1
Menu: What did you need again?
NPC: Three steel stock. What, you lose count at two?
Questnote
Complete

... NoRepeat

#Step 4
Require
P: Complete task 1
Menu: Here it is.
NPC: Great. Just in time.
Questnote
Complete

Okay, real quest dialog should be better than that, but it'll do for now. Once that's all in I want to add in some of the technical parts. Completing steps, setting which steps are required, assigning and completing the quest, etc. Oh, and removing the NoRepeat from the reminder line, as players should be able to use that as often as they need to.

Code: [Select]
#Step 1
P: Give me a quest
Menu: I'm bored. Got anything for me to do?
NPC: Gee, there's the attitude that I love. Have time to run an errand for me?
P: Nohelp. P: Yeshelp.
Menu: Nah, I'll just go whack a dummy for a bit. Menu: Sure, why not?
NPC: Whatever. Stop bothering me.
NPC: Okay. I'm sure I can think of something for you to do.
Questnote
Complete Random Quest step 1. Assign Quest.

... NoRepeat

#Step 2
Require completion of Random Quest step 1
P: Get Task 1
Menu: So, what do you need done?
NPC: Nothing much. Just get me three steel stock.
Questnote
Complete random quest step 2

...

#Step 3
Require completion of Random Quest step 2
Require no possessed amount 3 item Steel Stock
P: Reminder task 1
Menu: What did you need again?
NPC: Three steel stock. What, you lose count at two?
Questnote
Complete Random Quest step 3

... NoRepeat

#Step 4
Require completion of Random Quest step 2
Require possessed amount 3 item Steel Stock
P: Complete task 1
Menu: Here it is.
NPC: Great. Just in time.
Questnote
Run script give_quest_exp <<2>>.
Run script give_quest_money <<2>>.
Complete Random Quest step 4. Complete Random Quest.

Okay, that looks good. Added in step requirements to make sure the player only sees the right options at the right time. Added in rewards, because players like those. Now I can add in the questnotes. Could have done those after adding in dialog, and that would have worked just fine too.

Code: [Select]
#Step 1
P: Give me a quest
Menu: I'm bored. Got anything for me to do?
NPC: Gee, there's the attitude that I love. Have time to run an errand for me?
P: Nohelp. P: Yeshelp.
Menu: Nah, I'll just go whack a dummy for a bit. Menu: Sure, why not?
NPC: Whatever. Stop bothering me.
NPC: Okay. I'm sure I can think of something for you to do.
Questnote NPC wants me to do something.
Complete Random Quest step 1. Assign Quest.

... NoRepeat

#Step 2
Require completion of Random Quest step 1
P: Get Task 1
Menu: So, what do you need done?
NPC: Nothing much. Just get me three steel stock.
Questnote NPC wants three steel stocks.
Complete random quest step 2

...

#Step 3
Require completion of Random Quest step 2
Require no possessed amount 3 item Steel Stock
P: Reminder task 1
Menu: What did you need again?
NPC: Three steel stock. What, you lose count at two?
Complete Random Quest step 3

... NoRepeat

#Step 4
Require completion of Random Quest step 2
Require possessed amount 3 item Steel Stock
P: Complete task 1
Menu: Here it is.
NPC: Great. Just in time.
Run script give_quest_exp <<2>>.
Run script give_quest_money <<2>>.
Complete Random Quest step 4. Complete Random Quest.

There we go. The step that assigns the quest gets a note about what the quest is and who gave it, and the step that assigns the task gets a note saying what that NPC wants. No need to add a questnote to the reminder step, as that might cause issues if the player chooses it more than once, and the quest completion step has no need of one either.

Now if I need to add another task, I can look at steps 2-4 and think of them as one task block. Adding another task should probably use the same number of steps just to keep things simple, so the next task would be the 5-7 block. I can work on one block at a time so I don't forget what task I'm working on.

That's all for now. If I think of something else I'll post it here.
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on December 16, 2018, 03:03:06 am
Okay, found a few mistakes in that last post. I didn't use periods at the end of  each line, which may cause an issue. Also, I didn't set up the step where you hand in the items properly. I checked for them, but I didn't add in the part where the player actually gives them to the NPC.  :-[

Also, I think I figured out how the timer works and how to set quests as repeatable. The timer wasn't too hard, assuming a timer that causes a delay between quests works the same as a timer that causes a delay during a quest. As for the repeatable part, it finally occurred to me that instead of a command to make a quest repeatable, it's possible that all quests would be repeatable but for a simple command to block the quest from appearing if you've already done it. Much simpler.

Here's what I would do now for the intro line and the first task:

Code: [Select]
#Step 1
Require no active magic Glassblowing_Repeatable_Lockout.
P: Give me a quest.
Menu: I'm bored. Got anything for me to do?
Glassblower McUnimplemented: Gee, there's the attitude that I love. Have time to run an errand for me?
P: Nohelp. P: Yeshelp.
Menu: Nah, I'll just go whack a dummy for a bit. Menu: Sure, why not?
Glassblower McUnimplemented: Whatever. Stop bothering me.
Glassblower McUnimplemented: Okay. I'm sure I can think of something for you to do.
Questnote NPC wants me to do something.
Complete Random Quest step 1. Assign Quest.

... NoRepeat

#Step 2
Require completion of Random Quest step 1.
P: Get Task 1
Menu: So, what do you need done?
Glassblower McUnimplemented: Nothing much. Just get me three steel stock.
Questnote NPC wants three steel stocks.
Complete random quest step 2.

...

#Step 3
Require completion of Random Quest step 2.
Require no completion of Random Quest step 4.
Require no possessed amount 3 item Steel Stock.
P: Reminder task 1.
Menu: What did you need again?
Glassblower McUnimplemented: Three steel stock. What, you lose count at two?
Complete Random Quest step 3.

... NoRepeat

#Step 4
Require completion of Random Quest step 2.
Require possessed amount 3 item Steel Stock.
Player gives Glassblower McUnimplemented 3 Steel Stock.
Menu: Here it is.
Glassblower McUnimplemented: Great. Just in time.
Run script give_quest_exp <<2>>.
Run script give_quest_money <<2>>.
run script give_quest_skill <<'Glassblowing',1>>
Run script give_quest_timeout <<‘Glassblowing_Repeatable_Lockout',480>>
Complete Random Quest step 4. Complete Random Quest.

There we go. Added the timer being set on the step that completes the quest and checked for it on the first line. If I wanted the quest to NOT be repeatable I'd leave the timer off and add a line to the first step like:

Code: [Select]
Require no completion of Random Quest.
Checking for the completion of itself should prevent a quest from popping up again. Ever. Still, I can see completed quests when I talk to NPCs. I get an error message if I try to restart a non-repeatable quest, but I don't think I should even see the option if it works this way. Ah, well. I'll pester a Dev at the next meeting.  ;D
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on December 18, 2018, 11:29:58 am
I talked to Venalan yesterday and discovered that there are some better ways to do things. Suspected as much.  ;D

First, the whole repeatable/unrepeatable thing and the delay in restarting repeatable quests is handled "elsewhere", so we don't need to use timers at all. That's nice, although I spent more time than I care to admit trying to figure that out.   :@#\

Second, we can leave out the reminder step for each task by using the "Menu:" line of the completion step as the reminder. As in: "I have the two daggers and three small battle axes that you asked for." That line already has the "Player gives" instead of just a "P:" so if the player clicks on it without the items they'll just get an error message. I don't know that it needs to be done this way, but it'll save steps. A standard crafting repeatable would be 3 steps per task the way I was doing it, but only two if done this way.

Third, the quests use variables to block the player from getting more than one assignment at a time if they return to the quest giver during another time range. I was using a stupid number of "Require no completion of QuestName step #", with one of those per possible task. Using a variable is much easier, as you can just check to see if the variable has been set at all. So set the variable to the task or step number when you get a task, and start that same block with a "Require no variable..." requirement. Then, when you complete the task, use the "Unsetvariable" command to erase it.

Let's see if I can write that up. Here's the Intro step where the quest is assigned:

Code: [Select]
Require completion of Learning Blade Making.
P: Give me a quest. Blades making.
Menu: Veja, do you need help with something?
Veja Pontor: [Vega looks up from her work. Her ears are slanted back and there's some soot in her fur, making her look somewhat harried.] What? Oh, $playername. Yes, I absolutely could use your help! [Veja gestures around herself at the stacks of metal on the ground.] On top of my duties to the Arena I've now got additional orders from the Eagle Fortress, and I could use a hand getting it all done. Do you have time to lend me a paw?
P:nohelp. P: yeshelp.
Menu: No, I just don't have time right now. Menu: Sure, I've got some time.
Veja Pontor: Fine. Don't bother me then unless you have business to do with me, then.
Veja Pontor: [Veja sighs with relief, her ears relaxing somewhat.] Glad to hear it. Can't lose business from either.
Unsetvariable Quest_####_Blades_Making_Started.
Assign Quest

That's not too hard. Checks to make sure the player can actually make basic blades, which is the only such check I'll use in this quest. Used [] to denote activity. Used $playername so the NPC will actually use the player name. Not entirely sure I should, as there's no requirement that the player has met her before.

Then I used Unsetvariable like I mentioned before to completely clear the variable set by each task. That line should be unnecessary as I'm going to include it on every step that completes a task and therefore the quest, right? Well, it's always possible that something goes wrong or the player discards the quest but the variable isn't deleted. In those cases, it would mess things up. So it goes into the Intro step.

Now each task requires a few steps. I used three in each of my examples above, so I'll post the first task in my Blades Making quest here. I'll post the way I initially did it first:

Code: [Select]
... NoRepeat

#Step 2
Require no completion of Stocking the Armory step 5. Require no completion of Stocking the Armory step 8. Require no completion of Stocking the Armory step 11. Require no completion of Stocking the Armory step 14. Require no completion of Stocking the Armory step 17. Require no completion of Stocking the Armory step 20. Require no completion of Stocking the Armory step 23. Require no completion of Stocking the Armory step 26. Require no completion of Stocking the Armory step 29. Require no completion of Stocking the Armory step 32. Require no completion of Stocking the Armory step 35.
Require no completion of Stocking the Armory step 38. Require no completion of Stocking the Armory step 41. Require no completion of Stocking the Armory step 44. Require no completion of Stocking the Armory step 47. Require no completion of Stocking the Armory step 50. Require no completion of Stocking the Armory step 53. Require no completion of Stocking the Armory step 56. Require no completion of Stocking the Armory step 59. Require no completion of Stocking the Armory step 62. Require no completion of Stocking the Armory step 65. Require no completion of Stocking the Armory step 68. Require no completion of Stocking the Armory step 71.
Require skill Blades Making 0-14.
Require time of day 0-3 | time of day 12-15.
P: Task1. What do you need. About order. About blades.
Menu: So what do you need me to make?
Veja Pontor: Well, you're new to this so I'll keep it simple. Make me a single shortsword and that will be good for now. If you have any trouble, check your book. All of the instructions are in there.
Questnote Veja has asked you to make her a Shortsword.
Complete Stocking the Armory step 2

...

#Step 3
Require completion of Stocking the Armory step 2.
Require no possessed item Shortsword.
P: What you need. Reminder.
Menu: Sorry, but what did you need again?
Veja Pontor: [Throws up her arms in frustration.] A shortsword! One single shortsword! How did you forget that?!
Complete Stocking the Armory step 3

... NoRepeat

#Step 4
Require completion of Stocking the Armory step 2.
Require possessed item Shortsword.
Player gives Veja Pontor 1 Shortsword.
Menu: Here's the Shortsword you asked for.
Veja Pontor: [Veja takes the Shortsword and gives it a quick inspection, including tapping the side of the blade against the anvil.] Yeah, this will do. Here, take some circles for your efforts. I may need more help again in the future, so check back in occasionally. Oh, and let me show you a trick that'll help you in the future. [Veja spends a few minutes showing you some of the tricks of the trade.]
Run script give_quest_exp <<1>>.
Run script give_quest_money <<1>>.
Run script give_quest_skill <<'Blades Making',1>>.
Run script give_quest_timeout <<'Stocking_the_Armory_Lockout',480>>.
Complete Stocking the Armory step 4. Complete Stocking the Armory.

Okay, so there are a few errors there. That big block of "Require no completion of..." at the top of step 2? Total waste of time to copy/paste that in, and I've been adding them to each task assignment step. Variables are much easier. Also, the timer stuff is unneeded as the repeatable and delay stuff is done in the database, so it can go.

Tidy that up a bit and edit out what isn't needed and we get this:

Code: [Select]
... NoRepeat

#Step 2
Require skill Blades Making 0-14. Require time of day 0-3 | time of day 12-15.
P: Task1. What do you need. About order. About blades.
Menu: So what do you need me to make?
Veja Pontor: Well, you're new to this so I'll keep it simple. Make me a single shortsword and that will be good for now. If you have any trouble, check your book. All of the instructions are in there.
Questnote Veja has asked you to make her a Shortsword.
setvariable Quest_####_Blades_Making_Started 2.
Complete Stocking the Armory step 2

...

#Step 3
Require completion of Stocking the Armory step 2.
Require no possessed item Shortsword.
P: What you need. Reminder.
Menu: Sorry, but what did you need again?
Veja Pontor: [Throws up her arms in frustration.] A shortsword! One single shortsword! How did you forget that?!
Complete Stocking the Armory step 3

... NoRepeat

#Step 4
Require completion of Stocking the Armory step 2.
Require possessed item Shortsword.
Player gives Veja Pontor 1 Shortsword.
Menu: Here's the Shortsword you asked for.
Veja Pontor: [Veja takes the Shortsword and gives it a quick inspection, including tapping the side of the blade against the anvil.] Yeah, this will do. Here, take some circles for your efforts. I may need more help again in the future, so check back in occasionally. Oh, and let me show you a trick that'll help you in the future. [Veja spends a few minutes showing you some of the tricks of the trade.]
Run script give_quest_exp <<1>>.
Run script give_quest_money <<1>>.
Run script give_quest_skill <<'Blades Making',1>>.
Unsetvariable Quest_####_Blades_Making_Started.
Complete Stocking the Armory step 4. Complete Stocking the Armory.

Got rid of the timer and that big block of nonsense in step 2, and things are looking a bit better. Note that the variable is set to 2, which is just the step # where that task is assigned. I could set it to 1 as it's the first task. Heck, the value is never checked again so I could set it to anything. Still, to keep it orderly it's best to set values either by step number or task number.

It's possible to tidy that up even more. Venalan pointed out that the reminder steps aren't really necessary for these repeatable crafting quests if you move that reminder to the task completion step. If you remove the line that prevents the task completion step from appearing if the player doesn't have the items it will show up, but if the player clicks on it without the items they'll get an error message. Turn the Menu: line into the reminder and you get this:

Code: [Select]
... NoRepeat

#Step 2
Require skill Blades Making 0-14. Require time of day 0-3 | time of day 12-15.
P: Task1. What do you need. About order. About blades.
Menu: So what do you need me to make?
Veja Pontor: Well, you're new to this so I'll keep it simple. Make me a single shortsword and that will be good for now. If you have any trouble, check your book. All of the instructions are in there.
Questnote Veja has asked you to make her a Shortsword.
setvariable Quest_####_Blades_Making_Started 2.
Complete Stocking the Armory step 2

... NoRepeat

#Step 3
Require completion of Stocking the Armory step 2.
Player gives Veja Pontor 1 Shortsword.
Menu: Here's the Shortsword you asked for.
Veja Pontor: [Veja takes the Shortsword and gives it a quick inspection, including tapping the side of the blade against the anvil.] Yeah, this will do. Here, take some circles for your efforts. I may need more help again in the future, so check back in occasionally. Oh, and let me show you a trick that'll help you in the future. [Veja spends a few minutes showing you some of the tricks of the trade.]
Run script give_quest_exp <<1>>.
Run script give_quest_money <<1>>.
Run script give_quest_skill <<'Blades Making',1>>.
Unsetvariable Quest_####_Blades_Making_Started.
Complete Stocking the Armory step 3. Complete Stocking the Armory.

Only two steps per task this way, which is very helpful as we are (I think) limited to 99 steps per quest. That's no more than 32 tasks if you have 3 steps per task, or 44 if you have two steps per task. I'll still have to split Shield Making into two quests though.  ;D

Speaking of that, I think I found a good way to do it. When splitting a quest into 2 like that the most obvious way to do it is by skill level. Say, 0-99 levels is the first quest, and 100+ is the second quest. That's easy to do if the quests are from the same NPC, but I want different NPCs in this case and I want the player to only be able to get the quest from the second NPC if they've done the first quest at least once. The Quest1 NPC giving the player a recommendation for the Quest2 NPC.

So, how do I do that? I think I worked it out. By using " | " (meaning OR) we can set it up so that the first quest will trigger if your skill is under 100 AND if it's over 100 but you haven't done Quest 1 yet. Like this:

Code: [Select]
Require skill Shield Making 0-99 | Require no completion of Quest1
P: Shield Making. Quest1.
Menu: Need any help?
NPC: Yes. Have some time?
P:nohelp. P: yeshelp.
Menu: No, I just don't have time right now. Menu: Sure, I've got some time.
NPC: Fine. Don't bother me then.
NPC: Good.
Unsetvariable Quest_####_Quest1_started.
Assign Quest

Quest2 is easy then. Just require both Quest1 to be complete and a skill of 100 or higher.

Code: [Select]
Require completion of Quest1. Require no skill Shield Making 0-99
P: Shield Making. Quest2.
Menu: Need any help?
NPC: Yes. Have some time?
P:nohelp. P: yeshelp.
Menu: No, I just don't have time right now. Menu: Sure, I've got some time.
NPC: Fine. Don't bother me then.
NPC: Good.
Unsetvariable Quest_####_Quest2_started.
Assign Quest

The problem is that if a player discards Quest1 they'll no longer be able to do quest 2 until they complete Quest1 again. Might be able to work around that like this:

Code: [Select]
Require completion of Quest1 | completion of Quest2
I'll have to ask.

Oh, and you may note (if you are for some reason actually reading all of this) that when doing the second quest instead of requiring a skill of 100-200 I required the skill NOT be 0-99. The reason is that if a player has a skill close to 200 and uses items or buffs that give them a boost to over 200 the first way won't work. They won't fit into the 0-99 or 100-200 ranges so they won't be able to do the quest even though their actual skill is under 200. Using the "Require no skill" method instead leaves the upper range infinite, so even with a skill of 5000 I can still do the quests as a GM.

Off to restart the Blades Making quest! Think I'll leave in the reminder steps, as I rather like having an exasperated Veja yell at the player.  ;D
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on December 20, 2018, 11:26:08 pm
The Blades Making quest is done!  :beta: Just need to have it checked to make sure I haven't done anything remarkably stupid, but I think it'll work. Tried to check each line of code using Find Next so that I only needed to keep the syntax for one command in mind at a time, so I'm relatively optimistic.

Started work on Shield Making, then realized that I should probably ask about referral thing I mentioned in my last post before doing all the work. I'll start on a different quest until I have a chance to ask about that.

Edit: Going to post the intro step I'm working on here on the off chance a Dev pops in to see what's going on.
Code: [Select]
Require completion of Learning Shield Making.
P: Give me a quest. Shield Making.
Menu: NPC, is there anything I can help you with?
NPCfullname: Ah, $playername. It's a nice $time for getting some work done, isn't it? If you have the time, I've got some shields that need to be made. You'll have to provide your own raw materials, but I'll pay you for the job. You interested?
P:nohelp. P: yeshelp. P: GohelpNPC2
Menu: Not right now. Menu: Yes, I can help you with that. Menu: Yes, I can help you with that.
NPCfullname: [NPC shrugs.] Nevermind, then. I'll talk to you later.
Require no skill Shield Making 0-99.
NPCfullname: Actually, you might be of better use elsewhere. Got a letter from an administrator at the Bronze Doors Fortress, and they're in need of shields. Go talk to NPCfullname2 if you're interested in helping. Don't forget to bring your supplies, though. The Fortresses aren't known for having well-supplied merchants.
Require skill Shield Making 0-99.
NPCfullname: Good! I've got orders from all over the place and I could really use the help.
Unsetvariable Quest_####_Shield_Making_Started.
Assign Quest.

Now, if I've got that right the player should ask for work and then get two of the three possible responses: Say no and wander away; Say yes and get a task if their skill is under 100; Say yes but get sent to another NPC if their skill if 100 or higher.

I'd like to set the second quest to require the first as a kind of recommendation, but the fact that the first quest is discardable makes that problematic. Like the Way quest lines all requiring a certain quest to begin. If a player discards that first quest or restarts it and doesn't finish it the specific Way quest lines won't start. Think I mentioned that earlier. I considered a few ways of trying to make that work, like having the first quest complete itself when the player gets the 'go to the other person' message, or having the second quest requiring either the first quest or itself. Not sure if either would work properly though. Another thing to ask!  ;D
Title: Re: Missing Skill-Boosting Quests
Post by: Venalan on December 22, 2018, 03:32:57 pm
I can try and keep an eye on this topic to answer any questions you have.

I have some comments, for starters all steps in a quest need the same locks or not all options will be visible. So they will need to be split into different steps.

It's better not to have stacked menus and answers in one step, as this can cause problems with progression. I think all cases of that have been removed, especially at the start of quests when giving items over.

It is possible to randomize the quest options by creating a server script which randomly assigns a variable number which determines what the player is asked to do. This would have been my preferred options when starting the skill quests but it was not implemented. We could, it's not hard to do.

Repeatable quests do cause problems with progression. But with skill quests only one quest should be active at a time, meaning only the hardest options available to the player are possible to do. If you have two quests one for skill 0-100 and one 101-200. Then the moment they move from skill level 100 to 101 the first quest is no longer possible to start and they can only do the second. Without this players could be asked to do very simple things and gain very high levels, its a way to try and always make sure effort scales with the level given to the player. A current example in game is the fishing quests.

If, however, you wanted multiple quests to allow multiple ways for people to train a skill. Then you can just extend the time periods allowing the quest to be repeatable.

1 quest = X hours between repeats
2 quests = 2X hours between repeats.... etc

Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on December 26, 2018, 01:57:05 pm
Got a second quest "done"!  :beta:

Actually finished that a few days ago, but I've pretty much been cooking since then so I haven't done much else. I do have a question for those with experience with quest writing though.

Okay, I'm trying to split one of the repeatable quests in two, so that the player gets one from 0-99 and the other from 100+. There's already a quest that does that, but there are a few things I'd like to do differently that, I must admit: overcomplicate things. Well, overcomplicate things to a greater degree than I normally overcomplicate things.  ::)

The issue is that I'd like the quests to come from different people. I came up with that idea back when I thought I was limited to 32 tasks due to the reminder step, but I've since to to like it. That alone is easy enough, but there are a couple complications:

1) I'd like the player to have to complete the first quest at least once, so that they could be recommended to the person who gives the second quest. That means there needs to be at least one task that is available to anyone no matter how high their skill, and that ideally it would only trigger once and then the quest is unavailable.

2) I'd like (but am willing to change if it's a bad idea) for the second quest only to be available if the first quest has been completed at least once. That would be easy, except that the first quest is repeatable and therefore discardable. Can't just use that as a requirement then.

So, I've had a few ideas. I don't want to use a variable that doesn't get removed later, as that's specifically warned against. This is the best I've come up with, I think:

Code: [Select]
... NoRepeat

#Step 96
Require no skill ThisSkill 0-99. Require no completion of QuestName2. Require no assignment of QuestName2.
P.Referral.
Menu: Insert generic 'give me work' quest opener.
NPCFullname: Go to this other person instead.
Questnote Why do these not require colons when everything else does? Seriously, it's really bugging me.
Complete QuestName1 step 96.

...

#Step 97
Require completion of QuestName step 96. Require no possessed 200-300 item Doodad.
P: Oops!
Menu: Here you go.
NPCFullname: That's terrible. Try again.
Complete QuestName step 97.

... NoRepeat

#Step 98
Require completion of QuestName step 96. Require possessed 200-300 item Doodad.
P: Wheee!
Menu: How's this?
NPCFullname: That looks good. Take it to NPCFullname2 along with this note.
Questnote Take Doodad to NPCFullname2.
Complete QuestName step 98.

#Step 99
Require completion of QuestName step 98. Require possessed 200-300 item Doodad.
Player give NPCFullname2 Doodad.
Menu: NPCFullname asked me to give this to you.
NPCFullname2: Takes the item, does a spiel, ends quest, opens up quest2.
Give rewards.
Complete QuestName step 99. Complete QuestName.

And then the second quest would start with something like:

Code: [Select]
#Step 1
Require no SkillName 0-99. Require completion of QuestName | completion of QuestName2.
Etc.

Does that make any sense? I have no idea what will happen with that set of quest requirements in the second quest will do. I think it will allow the quest to start if either quest1 or quest2 have been completed. The first time the player goes to the second NPC would be to complete the last task of the first quest, and the second quest should pop up immediately.

One problem is that a player could (for some reason) discard both Quest1 and Quest2. That would block Quest2 from starting. The first quest would then be able to start that last task again, which would allow the player to get the second quest again, but it's not elegant.

Thoughts?
Title: Re: Missing Skill-Boosting Quests
Post by: Migg on December 29, 2018, 02:40:42 pm
I'd think if the player discards both Quest1 and Quest2, then they should be required to do Quest1 again, at least once, to get Quest2 again. Of course that could be abused to continue getting the easy Quest1, and gaining skill levels the easy way. I don't know if this is possible, but could you have a trigger for Quest1 "require skillX 0-100 | no completion Quest1", but if skillX is above 100 formulate Quest1 so that it does not grant a skill level, but just directs the player to find NPC for Quest2 and completes without granting any rewards?
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on December 29, 2018, 07:08:49 pm
Yeah, I was thinking of handing the item in for a basic tria and xp reward (no skill level), but I could change it to a simple check to see if the player has the item. The second quest giver would close the first quest, and the second should be immediately available. That way the first quest is on the delay timer, but the player can still do the second quest. They could still discard the second quest to get the referral task of the first quest again, but since there's no reward it would be pointless. I like that.
Title: Re: Missing Skill-Boosting Quests
Post by: Venalan on December 30, 2018, 10:17:02 am
Hey, to answer might, quest 1 can't use 'no completion of quest 1' within quest 1 as once you have started it, the quest can never be completed as it is active so that check is always true. And you can't use it to start the quest as you could complete the quest once at level 70 then train to 100 and then can't get quest 1 again and will never get the pointer.

What you need to do is assign a variable that blocks quest1 from starting and activates quest 2, and is removed within quest 2. You can then set up the quest 1 and 2 locks to take this complecation into account.

I think this would work but it's not been tried. The reason I suggest to not use variables all over the place is just to try and keep the database as clean as possible.

Let me do some checks and I'll post a series of locks for quest 2 if it will work.
Title: Re: Missing Skill-Boosting Quests
Post by: Venalan on December 30, 2018, 10:28:08 am
What I was thinking won't work.

But I have another idea which will use the active step variables of quest 2 as a way to lock out quest1. So this will work. Once the quests are ready we can load test and release them.
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on January 01, 2019, 12:46:02 pm
I haven't updated this thread in a bit, so I'll give the readers a little update.

So far we've got one new quest live and available for players to do. There's a second quest on the test server that appears to work as intended, so I just need someone more competent to give it a look before it goes live. I've got a third quest completed, and I'm just need it loaded onto the test server before I can test it out. Fourth quest has been started, and I have it all planned out so it shouldn't take too long. Just need to come up with dozens of ways to say "Give me x" and "Thanks for bringing me x", really.

Let's see. We've got a couple music instrument quests being worked on. Repair armors/weapons quests too. Oh, and I'm going to do the simpler Blacksmith tasks that don't require new art and crafting books, so that won't take as long as I thought.

All in all, I think we're getting it done!  ;D
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on January 03, 2019, 09:38:32 pm
Another little update here: There are currently four new repeatable quests live on the production server. There's a fifth that I'm currently testing on the test server, and unless something goes quite badly wrong it may be live tomorrow. Now, two of these quests (one of the live ones and the one I'm testing) are for the same skill, just different skill ranges. You do the first at least once, and when your skill is high enough you get sent to do the second. Which isn't live yet. Confusing enough?  ::|

But yeah, 4 new quests active and another should be ready soon.  \\o//
Title: Re: Missing Skill-Boosting Quests
Post by: Stalfos on January 04, 2019, 09:16:26 am
Thanks for these Uadjet, they were much needed.

Can you give us some hints as to where they are though?

Found the first one in the Arena, and another in Amdeneir - swear I have checked everyone although it can be easy to miss some people that move around and hide.

Telling us which cities they are in wouldn't be too much of a spoiler I think (pretty sure I got everyone between the cities too)
Title: Re: Missing Skill-Boosting Quests
Post by: Venalan on January 04, 2019, 03:06:35 pm
As there are so few people searching these days. I don't mind making life a little easier.

Amdeneir x2, arena, oja (once quest is activated later today).

Thomas.
Title: Re: Missing Skill-Boosting Quests
Post by: Stalfos on January 05, 2019, 06:53:31 am
Aha, found them thank you
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on January 06, 2019, 07:35:31 pm
Yeah, that one NPC was a little hard to find. I spend a lot of time hovering in the area so I could see how long it would take for someone to find that quest.  ;D
Title: Re: Missing Skill-Boosting Quests
Post by: Venalan on January 12, 2019, 05:43:38 pm
We have just released two new skill based quests for Jewelry Making and Metallurgy.

Enjoy.
Title: Re: Missing Skill-Boosting Quests
Post by: Mairon on January 14, 2019, 03:44:06 pm
Thank the Gods you did it. These were just the quests I was looking for.
Title: Re: Missing Skill-Boosting Quests
Post by: Migg on February 17, 2019, 12:21:26 pm
Bringing this thread back from the dead (just call me Dakru  ;D) to ask this simple question: :detective:
Is it possible to differentiate between similar items in a quest when testing what the player needs to have with them? i.e. can I require they have a "Basic Lute score by Zakena", as opposed to just any "Music Score", which would include an empty music score bought from Jayose?
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on February 18, 2019, 04:04:45 am
I'm not entirely sure myself, but if the item in question is in the item database rather than created by a player the game absolutely can tell the difference between it and any other item. I suspect that's the case with the recently released music scores.
Title: Re: Missing Skill-Boosting Quests
Post by: Venalan on February 18, 2019, 07:26:58 am
There are specifics which apply to all creative items which make them harder to use in quests. First, NPC's can't give them out. NPC gives don't have the same instancing support buying items does. I also don't know how NPC's will behave if you try and give one to them. When you buy music score they are all renamed 'of name' this new item wont be recognised as correct as it's name does not match. So at the least you will have to rename the items, I will have to test that it works even once you've done that. Even if it does work, I would not make players buy and then manually rename items as it would be a hidden non intuitive requirement. I would completely avoid it.

Venalan.
Title: Re: Missing Skill-Boosting Quests
Post by: Migg on February 18, 2019, 03:27:10 pm
Thanks for the replies. As Uadjet correctly guessed, what I am trying is to figure if the player has an instrument (Lyra, lute, Drum, Tamborine) and the corresponding music sheet (e.g. Basic Lute score by Zakena) before they can start practicing with said instrument (Lute).
Of course I now find there might be a fly in the ointment: If my notes are correct, there does not appear to be an NPC selling the "Basic Lyra score by Zakena"  :oops:
Title: Re: Missing Skill-Boosting Quests
Post by: Venalan on February 23, 2019, 03:44:44 pm
NPCs sell all of the music scores which were donated to me.
Title: Re: Missing Skill-Boosting Quests
Post by: Migg on February 24, 2019, 04:38:52 pm
NPCs sell all of the music scores which were donated to me.

Never implied they didn't, it's just that I couldn't find one for Lyra. My basic idea for a starter quest was having the NPC ask the player their preferred instrument, then have them produce it along with the corresponding "Basic <YourFavoriteInstrumentHere> Score by Zakena". That can't work if there is no score for Lyra. Or did I miss it?

Also, isn't it possible for a quest to just test the player has the required items (say, "Lute" and "Basic Lute Score by Zakena") with them when they talk to the NPC?
Title: Re: Missing Skill-Boosting Quests
Post by: Migg on February 26, 2019, 03:55:47 pm
OK, I decided I should stop talking and start working, so I am inching my way towards writing my first quest, an introductory quest to music learning. Then I realized there is already an introduction to music learning, and you even get your first skill level from it, but I decided i should still keep along, and make another quest that will grant an additional two skill levels, not be repeatable, and suggest ways to further progress with the art. I have a couple of requirements I don't really know if I can successfully implement the way I want them to be (the "score by Zakena" issues I mentioned earlier) but I'll leave that for when it is done.

But I digress. I wonder what would be a good place to talk about it, since whatever I say is a spoiler. I think I have a good understanding of how to write it (Venalan has posted some very helpful material, I even managed to get my editor to syntax-highlight PS quest text using it :D). I just want to discuss the general plot, there is a point that ails me and I would appreciate a more authoritative opinion.
Title: Re: Missing Skill-Boosting Quests
Post by: Migg on March 11, 2019, 03:20:42 pm
Another question I hope to get an answer to: Suppose we have this quest with a longish intro, because the first step has a proximity trigger and it is step 2 that asks the player if they want the quest, step 3 that explains what the NPC wants, step 4 to handle the answer, and step 5 onwards to continue the quest, like this:
Code: [Select]
#Step 1
P: !shortrange
NPC: Ah, here comes a $playerrace, I will ask for $his help! [NPC puts on a bright smile and turns to you expectantly].

...

#Step 2
P: whatyouwant.
Menu: Did you need something?
NPC: Hello dear $sir, I have been looking for a valiant $playerrace to help me with some quest. Are you willing to help?
Complete Some Quest step 2.

... NoRepeat

#Step 3
Require completion of Some Quest step 2.
P: whatquest.
Menu: What kind of quest?
NPC: I need to get xyz from SomeRandomLocation, but I can't leave my post. Can you go and get one for me?
Complete Some Quest step 3.

... NoRepeat

#Step 4
Require completion of Some Quest step 3.
P: nohelp. P: yeshelp.
Menu: No, I don't have time for that. Menu: Yes, I will go right away.
NPC: Oh, what a pity! Come back if you change your mind later.
#??? What should I place here?
NPC: Great! I am so glad you can help.
Complete Some Quest step 4. Assign  quest.

... NoRepeat

#Step 5
Require completion of Some Quest step 4
etc...

Now if you look at that quest, and correct me if I am wrong, the first step will cause the NPC to say "Here comes..." every time the player comes into range, that is why I removed the NoRepeat after step 1.

Then the player will be presented with a menu giving option "Did you need something" since step 1 has no menu and step 2 has no requirements. When the player clicks on that option the NPC replies with "Hello dear ..." and since the step ends in NoRepeat this step will not be shown again. Also step 2 will be marked as complete.

Step 3 will now be open since step 2 is complete and the menu will give option "What kind of quest", clicking it will get the "I need to get..." reply from the NPC, and complete step 3.

The next step is now open and gives options "No" and "Yes". If the player choses "yes" the NPC responds "Great!...", step 4 completes and the quest is assigned, proceeding with step 5. If the player choses "No" however, what should I place after the NPC reply "Oh, what a pity" to ensure that when the player returns, they will be shown step 2 again, but have none of the step 3 or 4 options open, since the quest has not been assigned yet?
Title: Re: Missing Skill-Boosting Quests
Post by: Venalan on March 14, 2019, 04:00:52 pm
Hi Migg,

So a bunch of things come up with this.

The 'quest locks' only apply to the first step of a quest so your step 2 will always be visible to players. Also you can't completed a quest step before the quest is assigned. There are ways around the first problem by assigning the same locks to step 2 as you do the quest so they are both (in)active at the same time. But I doubt this would work with repeatable skill quests as the quest lockout timer will probably only apply to step 1 not any subsequent steps. So as long as you can start the quest once you have completed it step 2 would always be accessible and you could repeat with no timer. If quest lockout times do only apply to step 1 you could apply a 'no assigned' and 'no completed' lock to step 2 and then once the proximity tirgger is triggered discard the quest which would then satisfy the requirement not to be assigned or compelted. The main problem with this is the lack of certainty the proximnity trigger would work. So you could get stuck for ages trying to get the quest and you wouldnt know if the timer has not run out or the trigger was not triggering.

Either way I would not use this for a repeatable quest as its too problematic.

If you really want to use this I would assign the quest at step 2, and then discard the quest at step 4 if they turn the npc down.

Venalan.
Title: Re: Missing Skill-Boosting Quests
Post by: Migg on March 14, 2019, 04:16:22 pm
This is not repeatable, it is supposed to just direct the player to the repeatable quests, mostly acting as detailed intro and informing on the repeatable quests' requirements.

I too assumed step 2 should always be visible, but the first step would cause the NPC to say something as you pass by even if you don't click on them. Of course if you do click, you will find the menu from step 2, and can proceed thus.

Since you can't complete steps before assigning, I would need to assign, then unassign the quest if needed. Would then something like this work better?

Code: [Select]
#Step 1
P: !shortrange
NPC: Ah, here comes a $playerrace, I will ask for $his help! [NPC puts on a bright smile and turns to you expectantly].

...

#Step 2
P: whatyouwant.
Menu: Did you need something?
NPC: Hello dear $sir, I have been looking for a valiant $playerrace to help me with some quest. Are you willing to help?
Assign quest. Complete Some Quest step 2.

... NoRepeat

#Step 3
Require completion of Some Quest step 2.
P: whatquest.
Menu: What kind of quest?
NPC: I need to get xyz from SomeRandomLocation, but I can't leave my post. Can you go and get one for me?
Complete Some Quest step 3.

... NoRepeat

#Step 4
Require completion of Some Quest step 3.
P: nohelp. P: yeshelp.
Menu: No, I don't have time for that. Menu: Yes, I will go right away.
NPC: Oh, what a pity! Come back if you change your mind later.
Uncomplete Some Quest.
NPC: Great! I am so glad you can help.
Complete Some Quest step 4.

... NoRepeat

#Step 5
Require completion of Some Quest step 4
etc...
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on August 07, 2019, 06:33:03 pm
Okay, got a few more quests submitted. So far, I have two leatherworking quests, four lockpicking quests, and a body development quest. I'm working on the armor skill quests at the moment. I think I may have messed up part of the repeatable lockpicking quests, though, in an attempt to make the first time you do it a little different than the subsequent times. Maybe I can do something with a variable...
Title: Re: Missing Skill-Boosting Quests
Post by: Zerxzz on December 29, 2019, 09:22:01 pm
This is the design decision that I don't like the most about PS. So I am placing my feedback here.

The skill boosting quests make level up too easy, in part because they reward an entire level. For those who choose to grind their skills, this devalues their accomplishments, and overall can make one less motivated/incentivized to grind. For example grinding from 190-200 doesn't feel like much of an achievement when someone could do this just by completing 10 quests.

I hope the developers reconsider their decision to make repeatable quests that grant one full skill level. One solution to my concern is to change the reward of these quests so that they reward a certain amount of exp (not too much exp) that is variable on the level of the corresponding skill.
Title: Re: Missing Skill-Boosting Quests
Post by: Migg on December 30, 2019, 04:02:56 pm
I am definitely not a developer, just a player trying to write a few skill boosting quests (and taking an awfull lot of time doing it), but if I may chime in, here are my personal thoughts on the matter:

If I read your suggestion correctly, what you propose is to give part of a skill level instead of a full one. The game however doesn't currently support that. You can either give a full level (effectively providing the player with just enough skill practice points to get them to the next level) with the statement
Run script give_quest_skill <<'skillname',level>>.
or give experience points (which, if I understand correctly, are progression points - PP - used towards leveling up your basic stats) using the statement
Run script give_quest_exp <<X>>.
On the current state of affairs, while I cannot really talk about all repeatable progression quests, I have found the ones I used do require some training of the skill, though arguably not as much as would normally be needed to gain a full level, and even though someone could buy their way out of doing even that, I find them to be a good compromise.

And as for the Musical Instrument skill I am trying to implement, my motive is to allow players to overcome the biggest obstacle to actually enjoying the current implementation of music in the game: Music is the only skill where having a low level essentially makes it impossible for a player to do anything even remotely resembling an actual music performance as could be performed by even a beginner who has practiced playing a single song for a few hours. The high entry level makes it hard for people to level up enough to be able to play the songs at their normal speed, whereas even a beginner herbalist can still create a herbal tea, and do so in a reasonable amount of time.

I think on the whole this setup will be perceived differently by different types of players: Power grinders will find that the quests diminish the value of their efforts, whereas roleplayers will think they allow them to build the character they are trying to enact faster. There is no one solution fits all, but I for one have found the quests improve my experience of the game.
Title: Re: Missing Skill-Boosting Quests
Post by: Emaline on December 30, 2019, 04:43:24 pm

The skill boosting quests make level up too easy, in part because they reward an entire level.

Just as an FYI it does not grant an entire level. It takes you to the next level. so if your bar is halfway to 155 it will only take to you the start of level 156, not to 156 and a half. Also, a lot of these quests require you to gather items, travel have knowledge or information of certain things not to mention the fact that they have all a timer so you can't just sit there and repeat it and get 10 levels right away. The quests scale as well depending on your current level.  I think this was the compromise for several players who felt they were spending way to much time and energy grinding skills that it was cutting into roleplay time. As well as with the current engine we have the possibilities are very limited. The server can't even tell if you are wearing skill-boosting jewelry and will not award you a point if your boost takes you over the max skill level. As with most things we are excitedly awaiting the Unreal Engine upgrade to be able to really start focusing and fine-tuning issues such as this one.
Title: Re: Missing Skill-Boosting Quests
Post by: Nightflyer0ne on January 07, 2020, 01:03:20 pm
Just wanted to let you know that I am poking at my quest script again, trying to finish it up. No guarantees. Really having writer's block with some of it.  :-\
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on January 11, 2020, 12:42:04 pm
When I get writer's block I either do something physical or work on another project. Honestly I think writer's block is akin to the 'yips', where a person over-thinks things and essentially gets in their own way. Distractions are often an effective way around that.
Title: Re: Missing Skill-Boosting Quests
Post by: Eonwind on January 13, 2020, 02:54:46 am

The skill boosting quests make level up too easy, in part because they reward an entire level.

Just as an FYI it does not grant an entire level. It takes you to the next level. so if your bar is halfway to 155 it will only take to you the start of level 156, not to 156 and a half. Also, a lot of these quests require you to gather items, travel have knowledge or information of certain things not to mention the fact that they have all a timer so you can't just sit there and repeat it and get 10 levels right away. The quests scale as well depending on your current level.  I think this was the compromise for several players who felt they were spending way to much time and energy grinding skills that it was cutting into roleplay time. As well as with the current engine we have the possibilities are very limited. The server can't even tell if you are wearing skill-boosting jewelry and will not award you a point if your boost takes you over the max skill level. As with most things we are excitedly awaiting the Unreal Engine upgrade to be able to really start focusing and fine-tuning issues such as this one.

I just wanted to add a few technical notes to this discussion:

Title: Re: Missing Skill-Boosting Quests
Post by: MishkaL1138 on January 16, 2020, 03:37:46 am
Hi, it's been a while since I last posted here, I mostly lurk. I'd like to offer my two tria, however:  (http://planeshift.teamix.org/myplane/images/trias.png)(http://planeshift.teamix.org/myplane/images/trias.png)
There.
----------
Just kidding, actually - the implementation of skill-point giving quests has given me a reason to develop my character's skills further. There's a point during leveling up in which you start feeling the stagnation, that you'll never see the end of the current level, etc. It's not just discouraging, it's also disheartening. I was just about ready to call it quits trying to level up and just go along with what I had at the moment. But then, these skill-awarding quests appeared, and they changed how I play.

Instead of making Mishka (I'll stop saying 'my character' and use her name now :'P) train and grind and maybe once in a blue moon get an order for weapons or armors, I have turned her into a commissioner for the Octarchy/Guards/Arena/Squadrons. It has given my character a new purpose, to be fair.

I might agree that giving a full skill point to starting players might be too big of a kickstart, but as has been mentioned, there are ways to give 25, 50, 75% of completion on a skill, or so I think - correct me if I'm wrong.

I don't know whether my argument helps or not, but it's an opinion - and opinions are like, uh... I'll spare the comparison.

In regards to quest writing, if the system hasn't changed from back when I wrote some, I am more than willing to offer my skills as a writer in my free time to offer ideas, flux diagrams, possibly quest-writing/drafting, and proofreading. After all, unless it's been rescinded, I have an NDA contract signed still...
Title: Re: Missing Skill-Boosting Quests
Post by: Eonwind on January 18, 2020, 04:14:37 am
Instead of making Mishka (I'll stop saying 'my character' and use her name now :'P) train and grind and maybe once in a blue moon get an order for weapons or armors, I have turned her into a commissioner for the Octarchy/Guards/Arena/Squadrons. It has given my character a new purpose, to be fair.

opening up new possibility, also from a RP / character development point of view, was one of the main reason we designed this gameplay change. It is very hard to reconcile RP and gameplay in RP-focused game like PS (believe me, we try  :D) but we feel like training and raising own character skills should be possible in-game and in-character as well. It should be fun too.

In regards to quest writing, if the system hasn't changed from back when I wrote some, I am more than willing to offer my skills as a writer in my free time to offer ideas, flux diagrams, possibly quest-writing/drafting, and proofreading. After all, unless it's been rescinded, I have an NDA contract signed still...

the system has always been the same but with a few more edges added from time to time, feel free to discuss your ideas and drafts in discord-prospects. The NDA is still valid.
Title: Re: Missing Skill-Boosting Quests
Post by: Nightflyer0ne on January 19, 2020, 08:07:12 pm
When I get writer's block I either do something physical or work on another project. Honestly I think writer's block is akin to the 'yips', where a person over-thinks things and essentially gets in their own way. Distractions are often an effective way around that.

It could be that. Mostly, I'm having trouble coming up with errands for the character to run in each instance that aren't too basic and aren't too hard. Over-thinking, like you said.
Title: Re: Missing Skill-Boosting Quests
Post by: Eonwind on January 20, 2020, 03:54:44 am
Uadjet: could you please strikeout the skill-boosting quests that have already been implemented in the first post. Thanks.
Title: Re: Missing Skill-Boosting Quests
Post by: Uadjet on January 21, 2020, 09:01:16 am
I've done so. Here's a quick summary of where it stands. The remaining quests that need to be added are:

Blacksmith: I swear I'll get to it!
Body Development: Apparently I wrote one! Awaiting testing
Leatherworking: Waiting for testing/items
Lockpicking: Waiting for testing/items
Musical Instrument: Someone is writing it
Repair Armors: Someone is writing it
Repair Weapons: Someone is writing it
Title: Re: Missing Skill-Boosting Quests
Post by: Eonwind on January 28, 2020, 02:45:15 am
I've done so. Here's a quick summary of where it stands. The remaining quests that need to be added are:

Blacksmith: I swear I'll get to it!
Body Development: Apparently I wrote one! Awaiting testing
Leatherworking: Waiting for testing/items
Lockpicking: Waiting for testing/items
Musical Instrument: Someone is writing it
Repair Armors: Someone is writing it
Repair Weapons: Someone is writing it

great progress, thank you a lot!  :D