Jay_H's quest writing tutorial

For all talk about quests. Creating, testing, bugs, and development progress.
User avatar
Ziune Wolf
Posts: 51
Joined: Wed Aug 09, 2017 2:55 am

Re: Jay_H's quest writing tutorial: Vengeance build

Post by Ziune Wolf » Thu Aug 17, 2017 7:36 pm

Jay_H wrote:
Tealy Wolf wrote:Daggerfall has the best potential of any Elder Scrolls game in my opinion. The world is massive, there are so many factions and quests to do, so many skills, and a lot of room for roleplaying. When I first played it after it became free, I fell in love with it. It nearly instantly became my favorite Elder Scrolls game, and that was back when it was buggy and had more flaws. Now that it's being improved upon with a new engine, it's only getting better and better.
I completely agree. I believe no fantasy RPG can possibly compare in scope with what Daggerfall is capable of, especially once we're able to break into custom quest actions and begin creating whole new quest dimensions. I like the comments people have made on the most recent ZetaPlays video, that DFU could become the "ultimate RPG."
I can't wait to see more people playing this game and creating additional content for it. I think the ability of adding mods (including quests) to this game will really make it soar in popularity. Once the mod base is large enough, I feel Daggerfall Unity will almost be a "Build your own RPG" kind of game, where you can add just what you like into the game. If it reaches that state, it'll be the best.

User avatar
Midknightprince
Posts: 835
Joined: Fri Aug 11, 2017 6:51 am
Location: San Antonio TX
Contact:

Re: Jay_H's quest writing tutorial: Vengeance build

Post by Midknightprince » Fri Aug 25, 2017 9:37 pm

@Jay_H
You have some of the best quests I ever did in Daggerfall.
Don't let other people do quests, just take a break, think of some cool new stuff, and throw it out there.
They're good dude, and I'm not even kissing butt here.
But I kind of am :D
Check out my YouTube Channel!

User avatar
Jay_H
Posts: 1663
Joined: Tue Aug 25, 2015 1:54 am

Re: Jay_H's quest writing tutorial: Vengeance build

Post by Jay_H » Fri Aug 25, 2017 10:20 pm

A good compliment should never be misunderstood ;) Thank you for your encouragement. I'm hitting my creative limits on the current build, since all it supports are enemy creation and text messages, but I think we've done pretty well with those two elements. Soon items and people will be implemented, and that'll mean big new dimensions for quests. Once spells are added, that'll be a lot more, too.
Try over 120 all-new quests in the first Daggerfall Unity Quest Pack.

User avatar
Interkarma
Posts: 3608
Joined: Sun Mar 22, 2015 1:51 am

Re: Jay_H's quest writing tutorial: Vengeance build

Post by Interkarma » Sat Aug 26, 2017 8:27 am

Jay, I wanted to let you know that Item resources are almost 100% working (excluding magic items). You can place items to a building/dungeon or stick them into a monster's inventory. You can even wire up actions to items that trigger when item is used by player. For example, you could make a bell that summons a monster or banishes an NPC once you've clicked them and read their story.

I haven't done a lot of testing with items, but they were working fairly well when I built this out. Let me know if you need any examples to get started and I'd be happy to give your creative mind some ammo. :)

User avatar
Jay_H
Posts: 1663
Joined: Tue Aug 25, 2015 1:54 am

Re: Jay_H's quest writing tutorial: Vengeance build

Post by Jay_H » Sat Aug 26, 2017 11:29 am

I've excluded them up until now since I once placed an item in a building but it had no interaction. I suppose it was quite simple of me to suppose just placing it would include every other action :D I'll give it some testing and see what it takes to make it work. Thanks for the info.
Try over 120 all-new quests in the first Daggerfall Unity Quest Pack.

User avatar
Jay_H
Posts: 1663
Joined: Tue Aug 25, 2015 1:54 am

Re: Jay_H's quest writing tutorial: Vengeance build

Post by Jay_H » Sat Aug 26, 2017 5:51 pm

Interkarma wrote:Let me know if you need any examples to get started and I'd be happy to give your creative mind some ammo. :)
Hey, if you have ideas, that's what the quest prompt thread is for! Just hand them over and see if one of us doesn't do a good job :)
Try over 120 all-new quests in the first Daggerfall Unity Quest Pack.

User avatar
Interkarma
Posts: 3608
Joined: Sun Mar 22, 2015 1:51 am

Re: Jay_H's quest writing tutorial: Vengeance build

Post by Interkarma » Sat Aug 26, 2017 9:33 pm

I meant more on the tech side. :) I can give you some example quest scripts to show how to wire up items in various ways.

User avatar
Jay_H
Posts: 1663
Joined: Tue Aug 25, 2015 1:54 am

Re: Jay_H's quest writing tutorial: Vengeance build

Post by Jay_H » Sat Aug 26, 2017 9:57 pm

You were absolutely right. I don't know what I was doing wrong with my initial testing, but "place item at," "toting," and "get item" all work, as well as clicking on an item to pick it up. I'll make a tutorial on them when I get a chance. Thanks for the tip.
Try over 120 all-new quests in the first Daggerfall Unity Quest Pack.

User avatar
Jay_H
Posts: 1663
Joined: Tue Aug 25, 2015 1:54 am

Re: Jay_H's quest writing tutorial: Vengeance build

Post by Jay_H » Tue Aug 29, 2017 7:39 pm

Part Five: Placing and Delivering Items

Now it's time to learn about putting items on monsters and making items into quest requirements.

Code: Select all

Quest: TESTING4
DisplayName: Treasure Time
-- Message panels
QRC:

QuestorOffer:  [1000]
<ce>          Bring me one _clothes_.

RefuseQuest:  [1001]
<ce>              Then go away.

AcceptQuest:  [1002]
<ce>               But bring me the right one.

QuestFail:  [1003]
<ce>              ???

QuestComplete:  [1004]
<ce>                Good, but I'm gonna want more soon.
All standard fare.

Code: Select all

Item _reward_ gold
Item _clothes_ mens_clothing

Person _questgiver_ group Questor male

Clock _timer_ 00:20

Foe _enemy_ is Giant_bat

Place _guild_ local magery
We have defined an ordinary reward of leveled gold.

We have defined another item called _clothes_, which will draw from the game's table of men's clothing. You can find other item tables in the quest element topic.

We have set our questgiver as the person to click on to end the quest.

We have set a timer of 20 minutes. As I said before, it's always a good idea to have a timer of some kind on your quest, just in case something goes wrong and it can't finish properly.

We have created, but not placed, a Giant Bat to fight.

We have told Daggerfall to choose some guild in the current town. In Aldingdale, that can only be the Fighters Guild.

Code: Select all

--	Quest start-up:
	start timer _timer_
	place foe _enemy_ at _guild_
    give item _clothes_ to _enemy_
We have told Daggerfall to begin the 20-minute timer we previously created.

We have told Daggerfall to place our enemy, the Giant Bat, at the guild.

We have also told Daggerfall to give the item _clothes_ to the Giant Bat. The game will decide what kind of men's clothing it'll give. There's a way to specifically determine which item it'll choose from the table, which is a more advanced step.

Code: Select all

_victory_ task:
	toting _clothes_ and _questgiver_ clicked 
	give pc _reward_
	end quest 
Now we have a new condition: toting ITEM and NPC clicked. This is a verbatim statement, except for the variables, and cannot be altered, with one minor exception which we won't go into in this tutorial.

This is a conditional statement which means, "If the player character is carrying the ITEM and clicks on the NPC," which then follows through to say, "I'll give the PC the REWARD and end the quest."

Code: Select all

_timer_ task:
	end quest
This is our usual time-out trigger.

Back in Aldingdale, Illesan Hills:

Image
We see the game has chosen the item for us: a Formal tunic.

Image
Just a reminder that in Daggerfall, only the specific quest object suffices. That's the one with the green background that this specific quest generated. Even if two identical objects are generated in two different instances of the quest, it'll require the item it generated this time.

Image
We have killed our bat, and must now get its treasure.

Image
Ordinarily, natural beasts don't hold treasure in Daggerfall, but we've put a sweater on this one. We take it out of its inventory and put it into ours.

Image
Then we click on tunic guy, who accepts the item.

Image
And there's our reward. If anything in your game does not work the same way as what's shown here, something's wrong with the quest file.

A few notes about how this works:

1. Always, always put the "give item ITEM to ENEMY" in the quest start-up section. It cannot accept quest conditions, so don't try a "pick one" scenario where you let the game choose between three different enemies and you give the item to one of them. It will not work.
2. "toting" is only compatible with clicking on an NPC. We may find more sophisticated ways of mixing item possession with other quest conditions, but for now, "toting" only matters in conjunction with clicking on a quest NPC.

And that's tutorial five on making quests in the Vengeance build.

If you want, you can try to experiment with trying to place an item on the ground somewhere. This inherently has quest actions built in, such that if you click on the object, it'll be put into your inventory. It's equally compatible with the "toting" condition. As an example, take a look at a section of a sample quest:

Code: Select all

Person _questgiver_ group Questor male

Item _clothes_ mens_clothing

Place _res_ local house2

Clock _timer_ 00:20

--   Quest start-up:
   start timer _timer_
   place item _clothes_ at _res_   
If the quest functions properly, you'll be able to find some quest-related piece of clothing in some residence in the current city. Clicking on it should take it from the ground and into your inventory.

Not all quest objects work well being placed on the ground. Some weapons are simply invisible, so if you know where they are and click on them they'll enter your inventory, but that's asking too much of an ordinary player. The mens_clothing variable will always be visible, so start with that if you want to test it.
Last edited by Jay_H on Fri Nov 24, 2017 5:33 am, edited 1 time in total.
Try over 120 all-new quests in the first Daggerfall Unity Quest Pack.

User avatar
Interkarma
Posts: 3608
Joined: Sun Mar 22, 2015 1:51 am

Re: Jay_H's quest writing tutorial: Vengeance build

Post by Interkarma » Tue Aug 29, 2017 11:06 pm

Great addition Jay! :)

Post Reply