Jump to content

general things you should know about FO3 Quest-Scripts


Site Bot

Recommended Posts

Article link: general things you should know about FO3 Quest-Scripts

 

Introduction

 

So if you are new to scripting you should know a few things first:

 

- there is a website about FO3 scripting right here:

http://geck.bethsoft.com/index.php/Category:Scripting

- there is a FOSE-documentation on the web:

http://fose.silverlock.org/fose_command_doc.html

 

- you should check those websites for functions you could use in your script first, BEFORE you start scripting the actual script (this step often saves you a lot of time)

 

- even if your script seems to be pretty good, the game-engine will most likely cause some problems, it is not the smartest

 

 

 

The Quest scripts:

 

- if you want a script to run while the player is doing something else, or the player should not be bothered to do something for the script to start, the Quest-Script is your friend

 

- first you have to create a new quest in the GECK (watch a different tutorial for that)

 

- create your script (make sure you save it as quest-script, default is object!!!)

 

- open up your new quest again and set your script as the new questscript

 

- now there are some fields that are mandatory for your script-running-behaviour:

 

--- if the priority field is left empty, your quest-script most likely will not run at all, you should set this to 50 or 60 for a normal execution

 

--- if your script is not required to run really often, you should leave the script-delay alone, otherwise you need to try it out, what's best for you

 

--- there are now a few things you should NOT do in a quest-script:

 

------ you should not show a message every time the script processes, this will cause serious problems since you are rowing up dozens of messages (this is even worse if you use message boxes)

 

------ the game-engine seems to have problems if you disable/enable things in the same script-run (most likely the object will not be en-/disabled correctly)

 

---------- so here is how you do it

-------------- use a condition for your showmessage line, like

 

if sDoOnce == 1

--showmessage blabla (the -- are only for better reading this article, do NOT copy them into your script, the same for this text in brackets)

--set sDoOnce to 0

endif

 

 

- only enable/disable the same object once during the script, like

 

if sState == 1

--enable myREF

--set sState to 2

elseif sState == 2

--disable myREF

endif

 

(the "ELSEif" part here is important, if it only would be "if" myREF would get disabled in the same script-process and everything would be messed up)

 

- and for God's sake use sensible names for your variables!

 

- another important issue is that you cannot stop QuestA in its own script, so you have to create another script (e.g. an object script bind to a token (armor without biped slots))

 

---so it should look like this:

 

QuestAscript:

 

begin GameMode

--player.additem QuestAstopToken 1 0 ;the "1" is the number added, the "0" disables the add-message, the ";" marks the rest of the line as comment

end

 

 

QuestAstopTokenScript:

 

begin OnAdd Player

--stopQuest QuestA

--player.removeitem QuestAstopToken 1 0 ;you should remove the item after it has stopped the quest to ensure proper working

end

 

 

other useful sites:

http://www.cipscis.com/fallout/utilities/validator.aspx

http://www.cipscis.com/fallout/tutorials/loops.aspx

Link to comment
Share on other sites

  • 2 months later...

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.
×
×
  • Create New...