WIP - [RPG] LDQuest - A True Quest System[1000]

Discussion in 'WIP and Development Status' started by Bilkokuya, Aug 26, 2011.

Thread Status:
Not open for further replies.
  1. Offline


    LDQuest [dead]
    [Status: Downloadable for Testing - Not recommended untill CB recommended build]
    [Downloads are at the bottom of this posts]
    After seeing many new quest systems being created - each of which with similar styles of tasks and methods; I still felt that there was a big gap between what we get in good old RP games, and what is achieved by these other plugins. Most of them, are single tasks, with no real problem solving or credit for intelligence.

    To counter this the LDQuest system acts as a full framework for quests; giving you endless possibilities for stories, interaction and getting your ideas across. At the same time, it is simple and easy to use for the players without adding too many barriers for the quest makers either.

    So What is Unique?
    This system works on what could be compared in real-life terms to knowledge. You speak to people to learn more about something; the things you can talk to them about are limited by their knowledge and by your own knowledge. By talking to people about things, you'll progress the quest and therefore the story, allowing you to have a true RP experience that does much deeper than the current "did you kill that cow for me" style quests that other plugins achieve.

    The system, as a framework for quests, allows endless branches off every quest, endless routes to get into a single quest and a real feeling of involvement with the NPCs and the world you play in. Beyond this it, allows every player to feel involved with choices that can lock off or open up new quests.

    Main Features
    * Quests with infinite branches -<font color="rgb(136, 136, 136)"> allowing truly non linear quests</font>
    * Inheritance of Knowlegde - <font color="rgb(136, 136, 136)">Meaning you'll never be stuck looking for "that" specific NPC or Sign.</font>
    * Signs and NPCs - <font color="rgb(136, 136, 136)">Allowing you to add things like secret diaries etc. So that quests can be diverse.</font>
    * Requirements for each part of the quest -<font color="rgb(136, 136, 136)"> allowing unlockable sidequests, or bonus objectives.</font>
    * Objectives allowing tasks such as collecting items <font color="rgb(136, 136, 136)">- to add onto the existing problem solving.</font>
    * Dialogue system<font color="rgb(136, 136, 136)"> - allowing you to choose what to chat about to each NPC.</font>
    * Reward System - <font color="rgb(136, 136, 136)">allowing rewards for each part of the quest you want.</font>
    * Reward Requirements <font color="rgb(136, 136, 136)">- allowing you to specify bonus rewards for players who've gone and done something particularly special.</font>
    * <font color="rgb(136, 136, 136)"><font color="rgb(0, 0, 0)">Few Commands</font> - Interaction is done by intuitive right-clicking, the only command needed is to reply to a dialogue.</font>
    * Citizens NPCs <font color="rgb(136, 136, 136)">- Works perfectly with Citizens NPCs or the built in sign-system.</font>
    * Permissions<font color="rgb(136, 136, 136)"> - Uses Bukkit Standard Permissions, so you're not restricted to a single plugin.</font>
    * Protection <font color="rgb(136, 136, 136)">- Preventing unauthorised players from damaging quest signs, including by TNT, Creepers or physical attack - without interfering with existing protection.</font>
    * MySQL -<font color="rgb(136, 136, 136)"> Fast data lookups using MySQL for holding your Quests.</font>
    * Freedom <font color="rgb(136, 136, 136)">- Allowing your old DnD story writers to express their true quest-making potential.</font>
    * Quest Development Tool <font color="rgb(136, 136, 136)">- Giving an easy way to make the quests without directly touching your database. [* Currently in development. This is the last piece to do before release]</font>

    So What's Next?
    After release I'll be focusing on developing a couple of new features, as well as looking after the plugin and making sure to implement any new ideas.
    The biggest new feature I want to get done after launch is a quest import and export function; so that you can share individual quests with each other. As it is right now, you'd either have to do a database dump and share it all or just write on a txt file what you've done - clearly not the most appropriate feature.
    After that I plan to develop some quick new objectives, such as the standard kill objectives etc; the ability to make quests easily repeatable and global quests - where a trigger will activate after a certain number of players have finished the quest.
    Finally, the idea is to create a quest API that will allow you to define new rewards and objectives; such as giving you experience in your favourite Levels plugin.

    An Example Please?
    When I was first developing this; the original idea was shown fairly well by this example quest post I've made. Although a lot has changed since then, making it far more powerful - it should give you an idea of what can be achieved at it's base:

    I apologize for such terrible video quality, for no apparent reason, fraps decided to record the video in a rubbish resolution. I hope you can forgive me for that, but this should give you an idea of how it works and what it looks like in game.

    As I've mentioned in the video - I'm not a good quest maker, and so I hope you can understand that there is no real story behind what I've written; you guys will be able to really blow my mind with your own creations I'm sure.

    [PS: I will be re-making this video when I get time, unless I have a newer video before then]


    LDQuest.jar: <Edit by Moderator: Redacted mediafire url>
    Exemplar: <Edit by Moderator: Redacted mediafire url>
    CompactExemplar: <Edit by Moderator: Redacted mediafire url>

    The exemplars show how to make a quest file - treat them as a tutorial.
    Put the compactExemplar in plugins/LDQuest/Quests/<here> to run it in game.
    To try it, make an NPC (Citizens, with the name Dave) or a Sign (line1: #quest# , line2: Dave). You will need the permissions:
    The plugin will make the directories itself when you first run it. Simply right-click the NPCs to chat and use /LDReply <number> to reply to the options given when speaking to them.

    Thanks for reading this, I hope it's got you a little exited. I'll be checking back often to answer any questions or ideas for this. If you want to catch me in person, I'm normally sitting on my server at
    Last edited by a moderator: Nov 12, 2016
    Gousby, alexh, MrShad0w and 2 others like this.
  2. Offline


    It's amazing! We administrators have even more choices now!

    I'm wondering if you can provide a copy of the current beta, so we (I) can test it out and report glitches in it.
  3. Offline


    Thanks very much, I'm glad you're exited about it.

    I'm afraid I'm not going to release the current version as it stands, simply because it lacks the quest-creation tool and so would be nearly impossible for you to get anything out of it. However, I'm in the process of coding that now (It's effectively just an HTML interface to get the quests into your database. Without it, you'd be really limited in what you could do - without spending a whole day manually inserting everything into the database).

    I plan to have this tool finished over the weekend, so as soon as it's ready, I'll be releasing a version and just updating from there. Of course, it's never too early to start getting some quests planned out :D
  4. Offline


    Wow, sounds great!
    I'm looking forward to test it :)
  5. Offline


    sounds immense! Cant wait to see this get released.


    Will setting up quests to kill people be available? specific people, or any PVP kill, or personally i would mostly like the ability to define a quest to kill a members of a certain permissions group.
  6. Offline


    The kill objectives won't be available with the first release, but it'll be added in shortly after. I definitely like the idea of using the permissions groups, but I'd have to check how possible that would be, without making it hellish for the quest designers.
  7. Offline


    wow simply amazing. this is exactly what i have been looking all over for. Finaly a quest system where i have practicaly limitless potential to story line! Me and the friends were talking today about how i could add in an actual story line and i told them at the moment its incredibly limited with whats out at the moment. You just solved all my problems! (although i have never used a mysql database or anything like that, any idea's how to start and if its free? Also having a mysql wont effect all my other plugins that dont use it right?)
  8. Offline


    I just got a MySQL database just for this :p
  9. Offline


    I've posted a quick "What it's does right now" video to show you what you can expect roughly. I really do apologize for the poor video quality, I'm not sure why Fraps has decided that it's going to record it to such a poor resolution, but I simply don't have the time to re-record it.

    Even so, I read out the text anyway, so you should still be able to get the gist of what's going on and get an idea of what it's all like. Hopefully you'll be looking at this thinking "I could make a quest that will totally blow Bilko's brain" and not "That quest was terrible". I know my quest is bad, it's because the questmaking tool isn't finished and because I'm not a good story-writer - but it should still give you an idea of how the mechanic works.

    Thanks again, I'll keep everybody updated as often as possible.
    Currently, working with some AJAX stuff to get the web interface nice and easy to use, without limiting your options.
  10. Offline


    will this be compatible with BOSEconomy?
  11. Offline


    @Bilkokuya - very nice. Unfortunately I think the current quester system in Citizens is more like the 'bad systems' you described :(. I'd love to include this in Citizens... :S
  12. Offline


    @Bilkokuya You should definitely assist the Citizens Team and implement this in Citizens.
  13. Offline


    Im wondering if its possible for u to add in a quest item part? ex:
    1. what do you know about TNT?

    you select 1 as reply to the NPC and he says " I know a fair bit about TNT! go kill creepers and bring me some "Explosive Material" as well as Gun Powder!"

    0/20 Explosive Material
    0/20 Gun Powder

    and you could have an item name database for specific items that have no existence in the world (its all just Text for quest!)
    So when you go and kill a creeper, it knows you killed a creeper and gives you "Explosive Material" and says in chat: You gain 1 Explosive Material". Once u get to whatever amount you have set, thats 1 objective complete.

    The item "explosive material" in itself is nothing but text and doesnt actualy show up in your inventory since its all text based.

    Possible i hope?
  14. Offline


    @jazzman170 You normally ask these questions after the actual plugin is released. I also doubt it is possible.

    One suggestion for making your quests. Try to have your quests fit into Minecraft, than trying to get Minecraft to fit into your quests. You'll end up more disappointed if you don't.
  15. Offline


    whats the difference if i ask it now or later? lol. either way i would like to know haha. And i wouldnt actualy make a quest like that unless it was in a tutorial place for "Constructors" or such :p

    But thanks for the input :)
  16. Offline


    @Tauryuu - perhaps we could provided the default system, and @Bilkokuya could make his own quester.JAR for more advanced questing.
    Tauryuu likes this.
  17. Offline


    Currently, the system can support you making a quest where they tell you "get the Explosive Material", and you have to pick up the gunpowder from the creepers. In the future, I'll be adding support for the "kill creepers" objective; which you could hide under the premise of "collect X explosive material by killing creepers".

    Adding in an API for your own reward types, objective types etc is something I have no idea where to start with, but I'll definitely look to do it after the default plugin is released.

    As for implementing this in Citizens, I'd be happy to share what I've done with Fullwall and the team once the first release is out. But at the same time - it might be easier for it to remain a separate plugin and just work closely with Citizens.
  18. Offline


    @Bilkokuya - I'll contact you once 1.1 is out and show you what I mean with regards to the new type system - types can be hotswappable so conceivably there could be the basic Citizens quester and an LDQuest variant. All that would be needed is a different JAR in the types/ folder.
  19. Offline


    Will the SQL include who finished the quest? I have an idea combining it with a site. :)
  20. Offline


    This is amazing. How does it integrate with Citizens at the moment, though? Does LDQuest just hook into Citizens for the NPC code, or do you flag it like @fullwall suggested?
  21. Offline


    Currently it hooks in by the right-click events - but I acknowledge that's if anything a poor solution. I'll definitely make sure to do my best to support the citizens types properly so that it won't interfere with people's normal NPCs.

    I'll definitely do my best, (possibly not in release 1), to make it easy to see who created a quest and what their site is. Supporting the quest-makers is a high priority with this.
  22. Offline


    can you make it possible to have ncps where as part of a quest they can transport you (teleport) to another town/ location?
  23. Offline


    Alright, sounds great. I'm really excited for this, and want you finish the web interface so I can go about building my quest! It's going to be legendary.
  24. Offline


    For the commands, I think it would be better if they are in the format of /quest reply # to make it understandable, and all the commands that have to do with the plugin would start with /quest and then the next argument.

    It makes the commands feel a bit more grouped. If they player didn't know which command to reply, understand, etc, they could just type /quest to see the list.
  25. Offline


    *dances excitably*
    n00b initiations here we come :p

    hmm that should be pretty simple to do, might get messy if you have alot of traffic though :S

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 19, 2016
    Tauryuu likes this.
  26. Offline


    Any news on progress?
  27. Offline


    Right now, the loading system works - you can make quests by hand that are complex and don't take too long to do. The main logic inside works fine and you can get the expected results in the game itself; with the exception of getting your rewards. The things that are needed before I can release a test version for you are:
    • - The player saving. (Player loading is fine, but there's no fun in losing all your quest-data everytime you log-off).
    • - The Reward system . (Currently just need a quick method to tell it to give you the reward; otherwise it's complete.)
    • - File version checking (For later compatibility. So that the system can auto-convert old files if I change the file structure).
    It's not particularly much work left to do, I'd imagine I could have it done in a day of coding - the problem is I move house today, so it pretty well knocks my weekend off the schedule. After the weekend though I can get back to working on it.

    I'll probably be uploading a quest .qst file example soon to show you how the file looks and give you an impression of what you're editing (I'd do it now, but all my test examples are really basic and involve nearly none of the complex things you can achieve). At their heart, they are just a renamed .yml file - the extension is changed simple so you won't mistake them for anything other than a quest file.

    (I'm moving house to begin a course at university; specifically in games development. This will do two things in the long run; take away time from maintaining and improving this plugin, make maintaining and improving this plugin easier and faster as I become more proficient and learn the right way to have done this).
    HSAR, Tauryuu, MrShad0w and 1 other person like this.
  28. Offline


    Very nice to hear that its progressing :)
    And by all means take your time for your personal things and come back later to finish this plugin. No need to hurry and leave us with unfinished product :D
    Im looking foward for this .qst file you mentioned. Me and my frends have some quest writen down already...just wating for plugin :)
  29. Offline


    Hello :) I have some questions (sorry for my english :D).

    1. Are you going to release this plugin soon?
    2. Will it be Open Source? (i want to translate it to polish and integrate with xLevel)
    3. Can I make quests chains with this plugin? (for example - Bob tell me to cut some wood and bring it to Mike, then he tell me to go to John, who give me the reward)
    4. Can I use custom text's to NPC?
  30. Offline


    1. Yes, I've literally just got my stuff working in Dundee (my new house) today, so I can resume and finish the parts missing.
    2. Yes, it will be open-source, but the quest-text will all be user-made and so you wouldn't need to re-make it in polish - you just write the .qst file in polish. Integrating it with xLevel is something I could do for you, instead of having many different versions of the same plugin released.
    3. Yes, that's one of the key ideas behind this plugin. Beyond just making a chain, you can actually make a tree - which branches off into sidequests etc.
    4. Yes, each NPC will have an "opening" line, which they say when you start talking to them. For each part of the quest, you then add responses. I am planning to implement (in the future) a better "opening" system where the line they tell you to start, depends on their situation/what quests have been completed etc. Each "opening" is different for each NPC and you set it in the quest file.

    I hope that answers some quests, I'm looking forward to getting the last few bits of this done so that we can all have some fun with it. As always, feel free to ask questions and I'll answer them as best I can.
Thread Status:
Not open for further replies.

Share This Page