QuestX
QuestX
Quests & Reputation
QuestX brings to you custom quests. You can design every aspect of a quest, anyone can design a quest using QuestX script. Quests will have customisable rewards and an effect on your characters reputation. Your character's reputation is an important feature in determining how you are treated by NPC's and other players. You will have to reach a certain reputation level in order to unlock some quests.
Quests support the same customisation as tasks except you can have multiple objectives and include a variety of NPC's in the quest.
Tasks
In addition to quests you will also be able to create your own tasks, these are similar to quests but are much shorter and are intended to provide further immersion and interaction with the world. These tasks will also have custom rewards and affect your reputation.
What you will be able to customise for each Task:
- Name of the task
- Task description
- What items need to be gathered
- How many entities need to be killed (Supports multiple entity types)
- What NPC's need to be killed
- The speech shown to a player if he has not completed a task
- The speech shown to a player upon completing a task
- The items the player receives as an award (Supports multiple items and data values)
- The exp a player will be awarded for completing a task.
- The reputation a player will receive for completing a task.
- The gold (economy currency) a player will receive for completing a task.
- The permission nodes to add/remove from a player when completing a task.
Roaming NPC's
A key feature of QuestX is that there will be roaming NPC's. No longer will you have to travel to a fixed location to find an NPC. They will be randomly walking around a pre-defined area. There will be fixed 'areas' where you have to go to start a certain quest or task but many NPC's you encounter will spawn dynamically so you never know who you might encounter.
NPC's themselves are highly customisable. You will be able to customise the following:
- Whether the NPC will load or not, easy to toggle on/off if you don't want certain NPC's spawning,
- The name of the NPC
- The colour of the NPC's name (optional - will require TagAPI)
- If the NPC will move around a fixed location or just stay in a certain spot all the time.
- If the NPC can be attacked
- If the NPC is agressive (Will attack players in a certain 'reputation' threshold, more on this later)
- Minimum and maximum number of ticks the NPC will wait between moving (A random number is chosen between these 2 values)
- The distance they will travel from their spawn point when they are walking about randomly.
- How many server ticks until the NPC will respawn if killed.
- The health of the NPC
- The damage the NPC will do when it hits a player
- How far the NPC will chase a player if attacked
- What the NPC will drop when it is killed, supports multiple items, item data and percentage chance drops with 0.01% precision.
- What armour the NPC will wear, including weapon.
- The reputation to award a player upon killing an NPC.
- The gold to award a player upon killing an NPC.
- The exp to award a player upon killing an NPC.
- The commands a player will execute upon killing an NPC.
- The commands the server wil lexecute upon killing an NPC.
Dialogue
With QuestX I am also trying to fill the gap that is interactivity with NPC's. Every NPC will have its own dialogue file which is fully customisable, it has to conform to a certain format so that it can be parsed and interpreted into a Dialogue tree. This means you can have multiple chat dialogues for an npc. Put simply every chat option you choose to say to an NPC will be met by a different response and a different selection set in turn. Speech options can be set so that only players with a certain reputation level can say certain things which will result in different responses. Each Speech option can have a trigger to start a task or quest.
Also I'm trying to make a multiple NPC quest but I dont understand how to do this
Is there a way of finding your current reputation? Also, is there a way to make a NPC only give you a quest if your reputation is at a certain amount?
QuestX v1.1.1 is released with some big performance updates. Pathfinding is now 10x quicker and only occurs if the player is in range. See Development Updates in the forum or view the change log for more information.
@Coldazz
What text is it? Just so I make sure to include it when I am doing the translations.
@Adamki11s
Thanks but theres still a little text that we can't edit, also i need the color codes to fit the server.
I really like the way dialogues are writen, thought. I'm quite used to the format and I've made tons of NPCs :)
@Coldazz
Yes I will be adding support for translations in future versions. As for NPCs though if you want to change their language just edit the dialogue file. I recommend making a back up once you have done this so you won't loose your files if anything goes wrong.
@Adamki11s
Ok thanks
Also, will you make a easy way to add translations?
@Coldazz
There are 2 new triggers. 'c' and 'c{customfile.qxs}'. The latter allows you to designate a custom script to load from, whereas if you use the trigger 'c' it will load the default custom_script.qxs file. Currently in v1.1.0 trying to use c{filename.qxs} will throw an error as it doesn't know how to parse that yet. In the next update, which I will submit later today, you will be able to use this feature, so for now only use 'c' as a trigger until v1.1.1 is released.
I will be publishing some example NPCs to help you and others understand how everything works in the Share NPCs section of the forum.
@Adamki11s
Wait so you can already execute a command without the c{your file.qxs} trigger? I don't get this, sorry :(
@alfjan
http://dev.bukkit.org/server-mods/questx/pages/commands/
Just do /questx quest next or /q quest next
More Quests will be arriving soon in updates :).
EDIT : Due to recent optimizations pathfinding code now runs roughly 10x faster :). You should be seeing performance increases in the next update.
I will test it more before I can tell you how it infuence the server.
The demoquest I cant get how to set the fixed location of the NPC.
1:Adam#Choose a spawn location for the main NPC of the quest (Recommended location : Town centre)
How to set the location?
@Coldazz
Yes it is possible in v1.1.0. http://dev.bukkit.org/server-mods/questx/pages/documentation-and-syntax/#w-color-00f-custom-script-color.
Just be aware that custom scripts from custom files using the c{your file.qxs} trigger is not available in the current version but will be available in the v1.1.1 update which I plan to release later today.
@Adamki11s
Is it possible to execute a command in a dialogue trigger now? Am i blind or didn't you add it yet?
@alfjan
QuestX is a fairly demanding plugin. What are your server specs?
I am not aware of any memory leaks, I have done basic testing but not thorough testing for memory leaks.
And yes, I am continually optimizing the plugin. In the next update will be some significant optimizations. I am working on them now. What these optimizations are that NPCs will only undergo pathfinding if there are players around because currently all NPCs are actively pathfinding which is quite costly. Also increase the minimum and maximum move ticks should help ease the load as NPCs will not be pathfinding as often.
Great Plugin. I understand it is in development now.
After installing I got a lot of delay/lags on my server. Just with the default Quests.
@tomori_peti
Yes I plan to add EpicBoss support. However there are other features which I am working on first such as more quest types and content.
Very good plugin! :D Could you add EpicBoss support?
QuestX v1.1.0 has been submitted for approval and should be available for download soon!
I just added the new jar, thank you very much for the quick response! It's very appreciated
@Debzy86
Unfortunately the v1.0.1 file has an error in the permissions YAML which causes the plugin not to load, this was an oversight on my part and unfortunately there is no way to 'cancel' the file. I don't want to trouble the Bukkit Dev team to trawl through checking for 'malicious' code again so for now there will be a temporary fix.
Plugin.yml : https://dl.dropbox.com/u/27260323/QuestX/plugin.yml QuestX.jar : https://dl.dropbox.com/u/27260323/QuestX/QuestX.jar
The link to the jar is QuestX v1.0.1 with a correct plugin.yml file. However if you prefer to only download BukkitDev approved files the plugin yml can just be downloaded and then replace the existing one.