Complete noob tutorial

Discussion in 'Fallout General Modding' started by FeelTheRads, Jul 22, 2018.

  1. FeelTheRads

    FeelTheRads Vault Senior Citizen

    Sep 15, 2004
    Hi,

    Is there some kind of tutorial or guide that can get you started with Fallout 2 modding?
    Like something that tells you how to create a map, a script, a dialogue... just something basic at least that you can start from and expand and build from there?
    I don't necessarily need scripting/programming lessons, just you know... how to get started specifically with Fallout 2 modding.

    And, is sFall script editor recommended or usable for the scripting part? I used it a bit just to decompile some scripts and look at them. Though since I know nothing about how the scripts in Fallout 2 work it was a pretty useless thing to do, so that's also why I'm hoping there could be some basic stuff explained somewhere.
     
  2. Nirran

    Nirran Vault Senior Citizen
    Modder

    Apr 15, 2007
    • [Like] [Like] x 1
  3. Lexx

    Lexx Background Radiant
    Moderator Modder

    Apr 24, 2005
    Damn, I just notice that Lich's tutorials are down. Also coljacks website isn't working anymore. Luckily these websites can be accessed via Wayback Machine.. though it's quite a hassle.
     
  4. fffffffff

    fffffffff First time out of the vault

    19
    Mar 20, 2017
    I've made once short tutorial on youtube. If it contains mistakes, just someone tell me.
     
    • [Like] [Like] x 1
  5. FeelTheRads

    FeelTheRads Vault Senior Citizen

    Sep 15, 2004
    OK, those tutorials seem kinda outdated. Like they say that you can't add or change perks or many other things that people seem to have solved in the meantime given the TCs that were released.
    For example, about starting with the PipBoy and vault suit.. I only found out something about doing it with a separate executable. How would you do it the regular way? Say, to have them right when you start on your modified artemple map?
     
  6. Foxx

    Foxx Russian Modder

    195
    Oct 31, 2017
    Many edits have been made possible by sFall.
     
  7. FeelTheRads

    FeelTheRads Vault Senior Citizen

    Sep 15, 2004
    Oh yeah, just found how to change that with sFall, I'll have to dig deeper into that.
    Then to give the PipBoy at another time you have to do the "play a blank vault suit movie" thing or is there another way?
     
  8. Pwener

    Pwener FEV is the equivalent of a chest x-ray.

    536
    Aug 15, 2017
    There is an option in sfall to start out with the Pip-Boy 2000 so you can use it in the Temple. As for getting it later than the Vault Suit I would not recommend it. It might break the game, maybe?
     
  9. Lexx

    Lexx Background Radiant
    Moderator Modder

    Apr 24, 2005
    There isn't anything else and they are still a good start. The only other way for you then would be to read through the Sfall readme files to learn what's all possible nowadays (pretty much anything tbh).
     
  10. FeelTheRads

    FeelTheRads Vault Senior Citizen

    Sep 15, 2004
    Alright, I started making some progress.
    Need a bit of help, though:

    1. In a dialogue script, for example:

    Code:
    giq_option(4, 751, 114, Node999, 50);
    So, the first number is an intelligence check, if I understand correctly. How does it work exactly?

    But most importantly, what is the second number? The mapper documentation keeps referring to a msg_list but I couldn't find anything like that. I understand it tells the script from where to take the string number (114 in this case) but I don't understand how the msg files are numbered.Why is this one 751 and where can I see that?

    What is the 50? I got it's something about reaction, but what? In the dialogue scripts I looked through it seems like most dialogue options end with that "50".

    2. To add a new script I'm guessing it needs to be added in the SCRIPTS.LST, right? If so, what does the #local_vars=x part do?

    3. How do XP awards work with Swift Learner? If I do:

    Code:
    give_exp_points(100);
    will this automatically be increased by Swift Learner?

    Furthermore, how to write the messages for the player so they display the correct amount of XP received?

    For example, in the aswell (well to repair in arroyo) there's this:

    Code:
    give_exp_points(100);
          display_msg(message_str(14, 100) + 100 + message_str(14, 101));
    This looks like it will print "You gain 100 experience points." no matter what. Should I put the XP amount in a local variable and print that? When does Swift Learner activate? Meaning, how could I assign the XP amount modified by Swift Learner to that variable?
    Is there a better solution?

    Is another msg file I saw something like "You gain %d experience points". How does that one work?

    Thank you.
     
    Last edited: Jul 28, 2018
  11. Nirran

    Nirran Vault Senior Citizen
    Modder

    Apr 15, 2007
    Code:
     giq_option(4, 751, 114, Node999, 50); 
    4 is the int check,yes

    751 is the script number,find it in Scripts.lst

    114 is the entry number in the msg file(751 in scripts.list, named the script name in scripts list, '.msg')

    50 is the reaction in dialog,i dont use it much
     
  12. fffffffff

    fffffffff First time out of the vault

    19
    Mar 20, 2017
    Don't use giq_option, it's outdated.

    Code:
    procedure Node012 begin
    Reply(mstr(300));
    set_local_var(LVAR_Asked_bar,1);
    NOption(253,Node010,004);
    NOption(254,Node999,004);
    end
    
    You need also to add script name to SCRIPTS.H

    Code:
    #define NAME                    SCRIPT_SCMARK2
    This is in your script code

    Code:
     #define SCRIPT_SCMARK2   (1621)  //  GenEmit.int     ; your comment here 
    This is in scripts.h and scripts.h is in BIS mapper\scripts\HEADERS
     
  13. FeelTheRads

    FeelTheRads Vault Senior Citizen

    Sep 15, 2004
    OK, that NOption thing confused the hell out of me. I'm using the Sfall Script Editor, and while it seems to recognize it, I'm getting an "Assignment operator expected." error.

    And how would you use NOption to grab scripts from a different msg file than the one that has the same name as the script? With giq_option, it's the second number, which is the script number as Nirran said above.

    But how does it work? I don't quite understand. I saw that -3 was used for dumb characters for example. So, would that be for intelligence 3 and lower? And 4 would be for intelligence 4 or higher? Then say 7 would make it for intelligence 7 or higher? And say, -7 for intelligence 7 and lower?
     
  14. Nirran

    Nirran Vault Senior Citizen
    Modder

    Apr 15, 2007
    Sets up an option-choice for a reply block if the player's IQ statistic is equal to or greater than a given value (iq_test), getting the string from the message file (msg_list) and message number (msg_num), which will cause a given reaction (reaction), and if chosen will jump to the given (target) procedure.

    this is a little outdated but has info - http://falloutmods.wikia.com/wiki/Dialogue_scripting
     
  15. Lexx

    Lexx Background Radiant
    Moderator Modder

    Apr 24, 2005
    For dumb dialog options use
    Code:
    NLowOption(206,Node005);
    as example. These options are only shown if dude has < 4 INT.

    N.. is neutral. There is also G(ood) and B(ad). If you have the empathy perk, you'll see the lines in a different color (green, yellow, red).

    The amount of local variables that this script can hold. Not sure how big of an impact this has on nowadays computers, if any, so I usually set them to 12 by default and increase them later if necessary. If you use more LVARs than defined, they will be ignored by the game.
     
  16. FeelTheRads

    FeelTheRads Vault Senior Citizen

    Sep 15, 2004
    Thank you for the answers so far! Greatly appreciated!

    Here's something else. Using sfall to give the PipBoy and Vault suit at the beginning causes the Arroyo quests (find Vic and find GECK) to show up in the PipBoy.
    I solved this by putting:
    Code:
       set_global_var(480, -1);
       set_global_var(619, -1);
    in the artemple map script.
    Is this correct? Or is there a better way?
    I looked at the starting map script of the Shattered Destiny mod and I didn't see it doing that.

    I suppose I can also change the "quest accepted" numbers in quests.txt for these to something else and they won't show up.
    But since in Shattered Destiny that's not done either, I'm wondering if there's a "cleaner" way?
     
  17. FeelTheRads

    FeelTheRads Vault Senior Citizen

    Sep 15, 2004
    What does this line present in SOME of the map scripts do:

    Code:
    set_global_var(GVAR_LOAD_MAP_INDEX, 0);
    Thank you.
     
  18. Mr.Stalin

    Mr.Stalin Agent of Enclave Modder

    281
    Oct 29, 2015
    This global variable writes the number passed in the second(param) argument through this function
    load_map(string map_name, int param);

    In fact, your code is just cleaning the variable after loading.
     
    Last edited: Aug 10, 2018
  19. FeelTheRads

    FeelTheRads Vault Senior Citizen

    Sep 15, 2004
    Well, yes, I understand that part. But what does that specific global variable do and why only some map scripts include this line?
     
  20. FDO

    FDO It Wandered In From the Wastes

    148
    Jul 4, 2018
    It's a good question. All I know is that I didn't come across this global variable used that way in scripts I used for models/inspiration so far. I made some maps scripts for towns and random encounters without need of this particular line. To check the map index as a condition, sure, but it's a other line.

    In what scripts did you come across it?