casper667

csca
CSCA Quest System

26 posts in this topic

CSCA Quest System
By: Casper Gaming (Casper667)
Last Update: July 30, 2013
Latest version: 1.0.0

Introduction

Creates a powerful but easy to use quest system in your game.
- Separate quest lists show only quests in progress, completed, or all quests!
- Each quest list can be sorted by alphabetical order, difficulty, or location!
- Unlimited rewards for each quest, automatically earned (or not) on quest completion!
- Unlimited amount of objectives per quest.
- Easy to manage quests and use quest data in conditional branches.


Screenshots

Basic view of the quest system and displayed information:

d2k.png

Want to know more about the quest? View the objective history and description of the quest:

jkc2.png

Make it easy on the user by allowing them to sort the quests in various ways:

x7tu.png

Show pop up toast window when quest is completed:

1i8k.png


How to Use
Place in your materials section. Setup required. Instructions in script.

 

Script
Text file is found here(copy and paste everything into your script editor in the materials section): LINK
Requires CSCA Core Script to work properly - Get it here!

Optional: To easily add this script to the menu, use the CSCA Menu Organizer - Get it here!

Optional: The CSCA Toast Manager is required for the pop up toast messages - Get it here!

 

Credit
Casper Gaming

Terms
http://www.caspergam...rms_of_use.html

Wren, Anderson88, Darkanine and 1 other like this

Share this post


Link to post
Share on other sites

After testing this script I noticed just one issue: Once you start a new game and make a save any changes made to the quests will not show up in the game, so you must start a new game to see them.

 

For example:

1) You have a quest called "Annoy the Villagers!". You start a new game and make a save (without accepting any quest)

2) You then decide that the quest should be named "Annoy all the Villagers!" instead. You make the change, but when you load your save game and accept the quest it shows the old name

If you want to see the new name you MUST start a new game.

3) Then you decide that the quest should be named "Annoy all of the Villagers!" instead. Cue a third new game if you want to see the change in the game

 

If this script is used in an incomplete game where new quests get added over time, the players will not be able to use old saves and will have to start a new game every time a quest is added or updated (because of a typo, for example).

Share this post


Link to post
Share on other sites

It's not recommended to test using old saves in the first place, or to expect to be able to use an old save file with an updated game (default scripts also have this "issue").

If you absolutely must re initialize the quests, you can make the script call: 

$csca.initialize_quests
Edited by casper667

Share this post


Link to post
Share on other sites

Hello, and thank you for this script. I am new to the game and the community, and am currently designing a personal game for my sons to play. I have been busily learning and watching tutorials, and I tried me best over the past couple of days to figure out how to implement your script. I am unsure if I am supposed to create a common event with the script calls or if I have to edit the script itself or both. Some of the terminology is still new to me so forgive me if I'm missing something simple. Thanks again for your support; I'll keep trying to figure it out on my own in the mean time. This is a terrific learning experience.

Share this post


Link to post
Share on other sites

TheDito, please do not double post within 72 hours - edit your previous post instead (edit link is to the left of the quote button in your posts). Thanks.

Share this post


Link to post
Share on other sites

@Amber the armor is working in my test project (you can see from the screenshots). You'll need to give me some more information to think of what could possibly be going wrong.

@theDito glad you were able to get it to work for you :)

Share this post


Link to post
Share on other sites

Amazing quest script!! I love scripts that are simple to apply to your current projects, and yet powerful enough to be able to do exactly what you need them to do. Awesome, awesome, awesome! Will definitely be using and crediting! :)

Share this post


Link to post
Share on other sites

Hello, I've run into a problem when using the quest_start(:symbol) command:

rpgvxscreenshot.png

Referring to this section of the Game_Interpreter script:

 

 

 #--------------------------------------------------------------------------
  # * Script
  #--------------------------------------------------------------------------
  def command_355
    script = @list[@index].parameters[0] + "\n"
    while next_event_code == 655
      @index += 1
      script += @list[@index].parameters[0] + "\n"
    end
    eval(script)
  end
end
 

 

 

And here is my quest setup:

 

 

#==============================================================================
# ** Description Setup
#==============================================================================
    #DESCRIPTION[x] = ["Description. Separate multiple", "lines with commas!"]
    DESCRIPTION[0] = ["Figure out how to","get into the kingdom.","You need to figure","out the strange things","going on in the castle."]
#==============================================================================
# ** Reward Setup
#==============================================================================
    #REWARD[x] = [amount, id, type]
    # The type can be either:
    # :item = amount of $data_items[id]
    # :weapon = amount of $data_weapons[id]
    # :armor = amount of $data_armors[id]
    # :gold = amount of gold, ignores id value *
    # :exp = amount of exp, ignores id value
    # :string = "Enter a string for the id and amount value" **
    # * If using CSCA Currency System(http://www.rpgmakervxace.net/topic/13153-csca-currency-system/)
    # the ID value for gold will be the currency symbol.
    # ** String rewards are NOT automatically earned upon quest completion.
    REWARD[0] = [50, :c, :gold] # 100 gold.
#==============================================================================
# ** Quest Step Setup
#==============================================================================
    #STEP[x] = ["Step 1", "Step 2", "Use \n for a new line"]
    STEP[0] = ["Talk to the girl.", "Travel to the kingdom\nof Ethrelem."]
#==============================================================================
# ** Quest Setup
#==============================================================================
    #QUEST[x] = {
    #:symbol => :annoy_the_villagers, # Symbol used to refer to this quest in script calls.
    #:name => "Annoy the Villagers!", # Name of the quest.
    #:description => DESCRIPTION[0],  # Description for the quest.
    #:location => "Test Town",        # Location the quest is assigned.
    #:questgiver => "Example Man",    # NPC who assigned the quest.
    #:difficulty => "Easy",           # Difficulty of the quest.
    #:steps => STEP[0],               # Objective list for the quest.
    #:rewards => [REWARD[0], REWARD[1]], # Rewards for the quest.
    #:auto_earn_reward => true        # Automatically earn rewards upon quest completion?
    #}
    
    QUEST[0] = {
    :symbol => :mysteries_of_the_castle,
    :name => "Mysteries of the Castle",
    :description => DESCRIPTION[0],
    :location => "Ethrelem Castle",
    :questgiver => "Girl at Inn",
    :difficulty => "Very Easy",
    :steps => STEP[0],
    :rewards => [REWARD[0]],
    :auto_earn_reward => true
    }
#==============================================================================
# ** Misc. Setup
#==============================================================================
    HEADER = "Quests" # Text displayed in the header window of the quest scene.
    CURRENCY_NAME = "Gold" # Currency name. Ignore if using CSCA Currency System.
    DIFFICULTIES = ["Very Easy", "Easy", "Hard", "Legendary"] # Sorting order of difficulties.
    SYSTEM_TEXT_COLOR = 4 # Text color used for data identifier text.
    FADE_AMOUNT = 15 # Amount text fades between objective in objective history.
    QUEST_COMPLETE_SOUND = "Powerup" # Sound played on quest completion. Set to nil if not using. Requires CSCA Toast Manager
    SHOW_COMPLETE_TOAST = true # Show toast window upon quest completion? Requires CSCA Toast Manager
    SHOW_LEVELUP = true # Show level up message if actor levels up from quest exp?
#==============================================================================
# ** End Setup
#==============================================================================
  end
end
$imported ||= {}
$imported["CSCA-QuestSystem"] = true

 

 

 

EDIT: The quest system script says it requires CSCA Core 1.0.8+ but the link for the core script only gives me 1.0.7. Is that a typo or the problem?

Edited by TheRPGLPer

Share this post


Link to post
Share on other sites

It was originally supposed to have 1.0.8 as a requirement, I must have just forgot to change that. 1.0.7 should still be the most recent version.

 

You're getting the error because there is no quest_start method. However, there is a start_quest method that probably does what you're trying to do ;)

Share this post


Link to post
Share on other sites

I totally forgot about those types of quests! Repeatable quests are not possible with this quest system, hopefully I'll have time to add that in soon (just got back from vacation).

Share this post


Link to post
Share on other sites

Hello,

 

I'm trying to get the start_quest(symbol) to work.

 

I have an NPC that says "start quest", and on the YES choice it's supposed to activate the quest symbol :quest_001.

start_quest(:quest_001)

Yet, I keep getting an error from the game interpreter.   Here is my Quest Script:

QUEST[0] = {
    :symbol => :quest_001,
    :name => "Sample Quest",
    :description => DESCRIPTION[0],
    :location => "City",
    :questgiver => "NPC",
    :difficulty => "Easy",
    :steps => STEP[0],
    :rewards => [REWARD[0]],
    :auto_earn_reward => true
    }

I'm not sure how to get the quest started, or how to activate that method.  Thanks for the help.

Share this post


Link to post
Share on other sites

It would help if we can see a screenshot of your event.

 

Are you trying to start the quest in a new game, or are you using an old save from before you made changes to the script's settings?

Share this post


Link to post
Share on other sites

Hello.  Thank you for the response.

 

I have an NPC that when spoken to should "GIVE" the quest.  I use the start_quest(:quest_001) call as the script shows.

 

http://imgur.com/zsWxoQ3

 

This is what my script looks like.

 

But i get an error.  I'm assuming I'm starting the quest incorrectly (with incorrect syntax).  

 

Do you have an example you could give me of how to initiate, advance, and end a quest?  I don't see any example within the script on how exactly to do this.  

 

Much appreciated.

 

edit:  So, I got it to work from a "NEW GAME" but it won't work from a saved game.  Why is that?  What do I need to do to get this to work from a saved game.  The screen shot that I used above worked from a NEW GAME.  But it won't work from a saved game.  Any ideas?

 

edit: I think the answer lies in what the author posted above.

I should use 

$csca.initialize_quests
start_quest(:quest_001)

if I am going to add quests to a game that already has a save.  That way the old saved game can pick up the new updated quests?  Is this correct?  So far this has worked for me, but I'm not sure if it's 100% correct.

Edited by npshmear

Share this post


Link to post
Share on other sites

Hey!

This script is freakin legendary!

One of the best scripts I ever used but there are some requests I have:

 

It would be much easier for people playing a game when...

 

...there is a progress bar when doing "collecting" quests like in your achievements-script

so you can see how many items you collected and how many left for quest completion (e.g. Collect Red Flowers 6/15)

 

...there is a sidebar of current progress of a selected quest like in all new MMORPGs

for example in diablo3:

 

dptkvndl.jpg

 

 

...there would automatically show up a text/animation when starting a new quest (like "New Quest recieved, open your Quest Journal to see detailed information")

 

 

and the last but not least

 

if you could set categories like "main story quest line" (quest line which have to done to finish the game)

and sidequests that can be abandoned or not relevant for the main story line

 

 

I have no Idea of scripting, but I hope my requests are within the bounds of possibility :]

 

 

Share this post


Link to post
Share on other sites

Is there a way to set up a toast for when a quest is started? Just I have an NPC who gives a quest right at the start of the game and I wanted to show the player that they have a quest straight off the bat.

 

I tried editing the script a bit and the toast would pop up but the box would be empty, is there a certain symbol I should be using to do this? or is it not possible?

Share this post


Link to post
Share on other sites

- ChrisCtrl

There's a script call that will let you create a toast for that so long as you have the Toast Manager script.

 

This would be how you set it up in the Script option from event commands tab 3:

text1 = "Quest Started!"
text2 = "<Quest Name>"

bt_reserve_toast(text1, text2)

Replace <Quest Name> with the name of the quest.

Share this post


Link to post
Share on other sites

Hi when I go to the quest tab in the menu I always get a error saying script ' CSCA Quest system'  line 609: nomethod error occured. undefined meatod 'each' for nil:nilclass

Share this post


Link to post
Share on other sites

I have a quest when I complete;

  • Quest with auto_earn_reward set to true it result an error stating NameType Error and pointing at Game_interpreter
  • Quest with auto_earn_reward set to false. Nothing happen.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.