News:

Happy 20th, FFvT3R!

Main Menu

Against The Freedom (work name) - a campaign I work on

Started by Imperios, February 07, 2011, 08:06:54 PM

Previous topic - Next topic

Imperios

Okay, so I am making a thread about my first mod for Freedom Force - "Against The Freedom". It is currently being created. It seems I learned the FFEdit, basics at least. Now I am going to make scripts.
Well, it is going to be a campaign for villians, Nuclear Winter being the leader. Once mod will progress, I will add more info.

And since it is my first mod, here should I write my questions about modmaking.
* I've heard there are two modding languages. I think I'll use Python, but still, what is better?
* In FFEdit, original game's data is not seen despite me choosing it as a Secondary. Is it any way to fix it?
* Hm... Are there any meshes of cops or soldiers with grenades, clubs, etc?

Oh, BTW. I've hear there are mods about forum, with heroes representing users. Is it right? When I will finally make some mods, add me as a Liberty Lad/Mentor/Black Jack combo   :)

yell0w_lantern

I do not know what the Secondary Data Path actually does.

If you want access to all the power and everything from the game, just copy and paste the DAT files (found by renaming then unzipping the .FF files) into your working folder.

There is a soldier mesh from Irrational in one of the early yahoo groups. He has a grenade throw animation. He also carries a rifle. There are some pulp_versatile meshes that look like cops and carry billy clubs for certain animations.

As far as languages there is only Python. If you know or want to learn Python, great! It's very powerful. M25, a forum member, wrote an interface program, called EZScript. It gets translated on-the-fly and is even easier than straight Python. It has some glitches and difficulty performing certain things. You also cannot reload a game from inside a mission which makes sense when you realize that the translator starts with the start of the mission.


http://ezscript.wikispaces.com/
http://frworld.wikispaces.com/ezscript
Yellow Lantern smash!

GogglesPizanno

Setting the Primary data path tells the game when playing the mod to look in the specified mod folder first for any game content (skins, meshes, sounds etc...)

The secondary data path is like a fall back, that tells the mod that when trying to find some game asset that appear to be missing, look in the secondary path (it is almost always the data folder so that it defaults to the raw game assets).

As Yellow Lantern indicated, when doing a mod, your mod folder needs to include copies of all the dat files from the data folder. The dats are basically a data file that has the pointers that defines all the "stuff" in the game. Copying them from the data folder to the mod folder preps the mod with references to all the existing game content. When you edit things in FFEdit, you are editing those dat files in the mod folder to include any new content or changes you made.

BentonGrey

Good explanations guys.  Remember Imperios, as the others have indicated, and as the tutorial states, the very first order of business is to unpack all of the "stuff" of the basic game.  I'd actually advise you to unpack it into your main FF directory, as this way you have all of those ".dat" files (the files that tell the game what everything is) in a central location.  Next, I'd recommend downloading the latest version of FFX if you haven't already.  Then, it might actually be very helpful to simply copy the FFX folder, and use it as a basis for your mod.  That way you have the basic file structure and all of the things that you'll need, and it is all already set-up to work with FFX.

On another note, it would be a good idea to decide which thread you want to be your mod thread.  It is often considered a bit rude to make several different threads on the same topic. :)
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

Imperios

Quote from: BentonGrey on February 08, 2011, 03:07:59 AM
Good explanations guys.  Remember Imperios, as the others have indicated, and as the tutorial states, the very first order of business is to unpack all of the "stuff" of the basic game.  I'd actually advise you to unpack it into your main FF directory, as this way you have all of those ".dat" files (the files that tell the game what everything is) in a central location.  Next, I'd recommend downloading the latest version of FFX if you haven't already.  Then, it might actually be very helpful to simply copy the FFX folder, and use it as a basis for your mod.  That way you have the basic file structure and all of the things that you'll need, and it is all already set-up to work with FFX.

On another note, it would be a good idea to decide which thread you want to be your mod thread.  It is often considered a bit rude to make several different threads on the same topic. :)

andrewogai@ya.ru. BTW, I am seeking any dungeon/jail TXTs.

Imperios

Okay guys and girls, here is another question.

How can I hide (not remove) these "fog" things which are in underground missions (or make them unclickable in Edit In-Game)?

GogglesPizanno

I believe when editing the levels, you can use the "e" key to cycle through what objects are currently selectable/editable.

Imperios

Quote from: GogglesPizanno on February 10, 2011, 06:13:26 PM
I believe when editing the levels, you can use the "e" key to cycle through what objects are currently selectable/editable.

Thanks, I will try.

BTW, I've added this string in strings.txt.

Quote
nw_hero_01, nuclear winter
nw_hero_desc_01, frost-powered communist agent with a wish for revenge!

Yet nw_hero is still called nw_hero. No desc, either.

Why could it be?

GogglesPizanno

Once you change the text in the strings file, you still have to generate the language files.
You can use FFEdit to do this (slow) or M25's tool - http://ezscript.wikispaces.com/Mod+Tools

Previsionary

You... should probably peruse at least 2 tutorials before you start jumping head first into the realm of modding. If you have this many questions for the simplistic stuff, then you'll probably succumb and drown once you actually get to the actual coding/manufacturing part. At the very least, look at the actual help files that come with the editor because they explain the answers to your last two questions in full.
Disappear when you least expe--

Imperios

Quote from: Previsionary on February 10, 2011, 06:42:12 PM
You... should probably peruse at least 2 tutorials before you start jumping head first into the realm of modding. If you have this many questions for the simplistic stuff, then you'll probably succumb and drown once you actually get to the actual coding/manufacturing part. At the very least, look at the actual help files that come with the editor because they explain the answers to your last two questions in full.

Okay, thanks. I'll try to use it.

BentonGrey

#11
Prev. does have a point.  It is easy to get overwhelmed at first, so it is an excellent idea to read many of the tutorials that are available.  Read through a few of them, and then you should have a better idea of the basics before you start trying to swim in the deep end.  Modding is an undertaking that is all about details, and all those little details can be overwhelming if you try to do everything at once.  So, read up on the documentation of FFEdit and the map tool and such, then, and this is vital in the beginning, do one thing at a time.  I tend to work on multiple projects at once (because I'm a glutten for punishment), but I do always try and do one task at a time, no matter which mod I'm working on. That helps to keep me from losing track of what I'm doing, or from getting swamped by the amount of things I've got to do.

Let's work on your first mission.  We'll help you get a hold of things by focusing on just this first mission and everything we need for it.  Each mission in a campaign has three basic components.  These are the map, which you've already experimented with, the cast, and the script.  So, let's break down your first mission into three portions, and then deal with each of them in turn.  

Spoiler

  • Cast:
These are all of the folks who will show up in this mission.  You've obviously already started experimenting with these guys, but just as a review, every character you want to use needs entries in several different sections of FFEdit.  Personally, I like to design my characters in the game as herofiles, and then I transfer them to the mod using the EZHero tool.  If you want more information on that, just let me know.  Doing this allows you to see how everything works before building it in, and it also puts all the proper entries into FFEdit for you.  All of the following info is in the documentation, but this will at least tell you where to focus your reading.
  • Characters:
This tab contains the name of, and basic info about, your character.  You've got their attirbutes, their stats, and their powers here, as well as their voice ID and other sundries.  Be careful in how you name your characters.  Keep names simple and short.  The new Nuclear Winter character you made ha an example of a good name.  Also, capitalization counts.  It's better just to keep names lower cased.
  • Powers:
Surprisingly enough, this tab details the powers your character uses.  If you want them to have any custom powers, you create or edit them here.  It is fairly straight forward.  The names for powers do NOT need underscores like those of characters.
  • Defeneses:
Once again, pretty straight forward.
  • Templates:
This tab is important, and something I often forgot when I first started out.  Each character needs a character AND a template entry.  The template details your character's mesh, skin, weight, and other information.  Without this, he won't exist.
  • Resources:
This tab contains a lot of different types of info, but for you, the important thing is the "animportrait" entry.  You'll find these towards the top of the list.  Just copy one of them, change the name portion to be the same as that of your character, and change the file path to point to your character's mesh.
  • String Entries:
You've also obviously dabbled in this already.  As Goggles mentioned, you need to generate your language files before you can see changes to this file, or any of the other text files in this folder.  I'd strongly recommend using the slow, safe method of generation, FFEdit.  M25's tool is very fast and easy, but it can also introduce errors into your texts that are disruptive and very hard to catch.  For the moment, I would ignore this step.  Create the entries if you want, but wait to generate the language files when you are done with the mission and ready to test everything together.
  • Maps:
As you already know, this is where all of the action takes place.  I'd advise you to use a built-in map (or one made for FF2) for your first mission.  That will simplify things a great deal.  If you use a built in map, all you really need to do is copy the mission folder into your mod, rename it (01_villains, or what have you), and then edit it to look how you want.  After you've mastered the basics, then try to do fancier stuff, but for now, I'd definitely stick with built-in maps.
  • Markers:
I've mentioned this briefly already, but markers on maps are how you determine what happens where.  They're relatively straight forward.
  • Objects:
The "stuff" in your map.  If you're using a custom map, this gets more complicated, but for a built-in, you can pretty much put any object you want wherever you want.  
  • Script:
Here's where things begin to get more complex.  You asked earlier for a recommendation on which type of scripting to try, and I have to say that I'm biased to EZScript.  Prev., on the other hand, would likely recommend straight Python.  I'd encourage you to look at the examples already provided of scripting in Python, then check out the EZScript tutorial:
http://ffx.freedomforceforever.com/manual/ezscript/overview.htm
Then decide which one you want to use.  Take care of the other portions of the mission first, then we'll deal with scripting.  If you decide to use EZScript, I'll be happy to help you find your sea-legs.  If you choose Python, I'm afraid I can't be of much use, but there are a few other guys around here who can.[/list]

Why don't you tell us: 1) what you want to happen in mission one, 2) who you want to be involved, both as playable characters and their opposition, and 3) where you see this happening.  Then we'll work through each of these components.
God Bless
"If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
Check out mymods and blog!
https://bentongrey.wordpress.com/

Imperios

    Quote from: BentonGrey on February 10, 2011, 07:45:08 PM
    Prev. does have a point.  It is easy to get overwhelmed at first, so it is an excellent idea to read many of the tutorials that are available.  Read through a few of them, and then you should have a better idea of the basics before you start trying to swim in the deep end.  Modding is an undertaking that is all about details, and all those little details can be overwhelming if you try to do everything at once.  So, read up on the documentation of FFEdit and the map tool and such, then, and this is vital in the beginning, do one thing at a time.  I tend to work on multiple projects at once (because I'm a glutten for punishment), but I do always try and do one task at a time, no matter which mod I'm working on. That helps to keep me from losing track of what I'm doing, or from getting swamped by the amount of things I've got to do.

    Let's work on your first mission.  We'll help you get a hold of things by focusing on just this first mission and everything we need for it.  Each mission in a campaign has three basic components.  These are the map, which you've already experimented with, the cast, and the script.  So, let's break down your first mission into three portions, and then deal with each of them in turn.  

    Spoiler

    • Cast:
    These are all of the folks who will show up in this mission.  You've obviously already started experimenting with these guys, but just as a review, every character you want to use needs entries in several different sections of FFEdit.  Personally, I like to design my characters in the game as herofiles, and then I transfer them to the mod using the EZHero tool.  If you want more information on that, just let me know.  Doing this allows you to see how everything works before building it in, and it also puts all the proper entries into FFEdit for you.  All of the following info is in the documentation, but this will at least tell you where to focus your reading.
    • Characters:
    This tab contains the name of, and basic info about, your character.  You've got their attirbutes, their stats, and their powers here, as well as their voice ID and other sundries.  Be careful in how you name your characters.  Keep names simple and short.  The new Nuclear Winter character you made ha an example of a good name.  Also, capitalization counts.  It's better just to keep names lower cased.
    • Powers:
    Surprisingly enough, this tab details the powers your character uses.  If you want them to have any custom powers, you create or edit them here.  It is fairly straight forward.  The names for powers do NOT need underscores like those of characters.
    • Defeneses:
    Once again, pretty straight forward.
    • Templates:
    This tab is important, and something I often forgot when I first started out.  Each character needs a character AND a template entry.  The template details your character's mesh, skin, weight, and other information.  Without this, he won't exist.
    • Resources:
    This tab contains a lot of different types of info, but for you, the important thing is the "animportrait" entry.  You'll find these towards the top of the list.  Just copy one of them, change the name portion to be the same as that of your character, and change the file path to point to your character's mesh.
    • String Entries:
    You've also obviously dabbled in this already.  As Goggles mentioned, you need to generate your language files before you can see changes to this file, or any of the other text files in this folder.  I'd strongly recommend using the slow, safe method of generation, FFEdit.  M25's tool is very fast and easy, but it can also introduce errors into your texts that are disruptive and very hard to catch.  For the moment, I would ignore this step.  Create the entries if you want, but wait to generate the language files when you are done with the mission and ready to test everything together.
    • Maps:
    As you already know, this is where all of the action takes place.  I'd advise you to use a built-in map (or one made for FF2) for your first mission.  That will simplify things a great deal.  If you use a built in map, all you really need to do is copy the mission folder into your mod, rename it (01_villains, or what have you), and then edit it to look how you want.  After you've mastered the basics, then try to do fancier stuff, but for now, I'd definitely stick with built-in maps.
    • Markers:
    I've mentioned this briefly already, but markers on maps are how you determine what happens where.  They're relatively straight forward.
    • Objects:
    The "stuff" in your map.  If you're using a custom map, this gets more complicated, but for a built-in, you can pretty much put any object you want wherever you want.  
    • Script:
    Here's where things begin to get more complex.  You asked earlier for a recommendation on which type of scripting to try, and I have to say that I'm biased to EZScript.  Prev., on the other hand, would likely recommend straight Python.  I'd encourage you to look at the examples already provided of scripting in Python, then check out the EZScript tutorial:
    http://ffx.freedomforceforever.com/manual/ezscript/overview.htm
    Then decide which one you want to use.  Take care of the other portions of the mission first, then we'll deal with scripting.  If you decide to use EZScript, I'll be happy to help you find your sea-legs.  If you choose Python, I'm afraid I can't be of much use, but there are a few other guys around here who can.[/list]

    Why don't you tell us: 1) what you want to happen in mission one, 2) who you want to be involved, both as playable characters and their opposition, and 3) where you see this happening.  Then we'll work through each of these components.


    Well, I already figured how to make characters with powers. For mission, it will be about Nukey escaping from the prison, probably freeing Shadow and Deja Vu as well. I used Blitz's dungeon as a base, removed most of nazis and some utilities, added some new things, etc.

    Okay, characters will be:
    *Nukey (Nuclear Winter). His tiers are "Syberian cold" and "Living nuke". He has Nuclear Punch for his base attack, which deals radioactive damage and knockbacks. Another his attacks are Frost Punch (strong stunning cold attack), Irrradiation (pretty much self-explaining) and an active defense. He also can get a frost ranged attack, ice strom lke in original game and an extremely powerful are attack - Nuclear Explosion.

    First opponents will be special issue police with energy pistols. There will also be turrets which deal fire damage, and probably robots.

    In the same mission, you will get either Shadow or Deja Vu. I haven't decided yet. Shadow will have Darkpowers and Gadgets tiers,. Darkpowers will have teleportation, various electric attacks etc, while Gadgets will have grenades, etc.

    kkhohoho

    This may not be related to actual gameplay, but have you decided how you're going to treat the characters, as in their personalities, and relations and dynamic with one another?
    The Golden Age; 'A different look at a different era.'

    http://archiveofourown.org/works/1089779/chapters/2193203

    BentonGrey

    Quote from: Imperios on February 11, 2011, 08:37:37 AM
    Well, I already figured how to make characters with powers. For mission, it will be about Nukey escaping from the prison, probably freeing Shadow and Deja Vu as well. I used Blitz's dungeon as a base, removed most of nazis and some utilities, added some new things, etc.

    Okay, characters will be:
    *Nukey (Nuclear Winter). His tiers are "Syberian cold" and "Living nuke". He has Nuclear Punch for his base attack, which deals radioactive damage and knockbacks. Another his attacks are Frost Punch (strong stunning cold attack), Irrradiation (pretty much self-explaining) and an active defense. He also can get a frost ranged attack, ice strom lke in original game and an extremely powerful are attack - Nuclear Explosion.

    First opponents will be special issue police with energy pistols. There will also be turrets which deal fire damage, and probably robots.

    In the same mission, you will get either Shadow or Deja Vu. I haven't decided yet. Shadow will have Darkpowers and Gadgets tiers,. Darkpowers will have teleportation, various electric attacks etc, while Gadgets will have grenades, etc.


    That sounds good.  I'd vote for Shadow in the first mission.  I can see her more willingly joining a team.  However, you could always do both!  Something to remember while working on the map, you don't need to place enemies or allies on it if you are planning on using EZScript.  The script itself will generate them.  When you get your characters built and your map set, let us know.
    God Bless
    "If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
    Check out mymods and blog!
    https://bentongrey.wordpress.com/

    spydermann93

    Quote from: BentonGrey on February 11, 2011, 08:06:45 PM

    That sounds good.  I'd vote for Shadow in the first mission.  I can see her more willingly joining a team.  However, you could always do both!  Something to remember while working on the map, you don't need to place enemies or allies on it if you are planning on using EZScript.  The script itself will generate them.  When you get your characters built and your map set, let us know.

    I kind of think of Shadow as more secluded due to her vanity and complete disgust for herself (insecurity), so I think she would be a bit more reluctant to join a group of other villains just because of that flaw.

    Imperios

    Okay guys, I have a question.

    How in Python you can force a character to do some sort of attack? Trigger_Power does not work.

    Imperios


    BentonGrey

    Imperios, I'm afraid there aren't that many people who know actual Python scripting.  It might be a while before one of them can give you an answer.  In EZScript I always fake it when I want to trigger a power.  I play the animation, then play an effect out of the Resources tab of FFEdit on the target.  It looks like something happened, and it avoids the need to use a power, which I've never managed to get working.
    God Bless
    "If God came down upon me and gave me a wish again, I'd wish to be like Aquaman, 'cause Aquaman can take the pain..." -Ballad of Aquaman
    Check out mymods and blog!
    https://bentongrey.wordpress.com/

    stumpy

    I'm a bit rusty with actual mission scripting, but you will want to refer to the FF Scripting doc (the Word doc that comes with the editor) as your guide to the different FF-specific python functions in the game. They include AI commands that allow you to customize whether characters will attack one another.

    However, the starting point for getting characters to fight is the editor itself, because two characters will attack automatically if they have the proper fields set in their character and template tabs. That is, if you just put someone you want the player to fight (call her EnemyX) in a room and set her Class to GAME_OBJ_VILLIAN (or GAME_OBJ_MINION) in FFEdit's template tab, then if the player enters the room with a GAME_OBJ_HERO character, EnemyX will attack him, without the need for scripting to start the attack. (In fact, you will need to use one of the peace commands to prevent an attack, if you want a cut-scene or something to play before any combat starts.) So, look at how the characters for the base game are set up to see examples of how this should work. Keep in mind, of course, that in your mod the former bad guys are now the "heroes" under the players control and you would want to reverse the classes of any FF heroes that the player runs into so that they will fight.

    Keep in mind that there are two kinds of AI to use that will determine how the computer controlled characters (the enemies a player will fight) behave tactically in combat (i.e. what powers they will use when  attacking). The AI you set in the editor will model the character's tactics on those of that AI. So, if you have a baddy with two melee powers and a ranged attack, then you want to pick an FF baddy with corresponding powers in the same positions in his character sheet and the game will use your characters powers the same way the FF baddy used his corresponding powers.

    The other option is to use M25's AI. (That can be used whether or not you are using EZScript.) It's generally much smarter, more flexible, and easier to get to do what you want. There are other guides on using it (e.g. see this thread), but the most basic setup is to run the character through M25's AI generator mission in the game and then let it run on it's own during missions. (You can still script the characters to use particular powers during cut-scenes when AIPeace() has been called.)

    The tutorial advice others have given is good stuff. Of particular value to you might be the Scripting a Mugging tutorial , which puts together a simple encounter and scripts it. Once you have that down, I would also really advise picking a short FF (or FFvT3R) mission or encounter from the base game and closely examining the characters and scripting in that mission. It's always easier to figure out how something functions when you have a working example to study. Once you feel you understand what's going on in the scripting of a short or simple FF mission, then tackle a mission you want to use in your mod. Remember to start simple and add details when you have the simple stuff working.

    Good luck.
    Courage is knowing it might hurt, and doing it anyway. Stupidity is the same. And that's why life is hard. - Jeremy Goldberg

    Imperios

    Quote from: stumpy on February 14, 2011, 12:18:32 AM
    I'm a bit rusty with actual mission scripting, but you will want to refer to the FF Scripting doc (the Word doc that comes with the editor) as your guide to the different FF-specific python functions in the game. They include AI commands that allow you to customize whether characters will attack one another.

    However, the starting point for getting characters to fight is the ed
    itor itself, because two characters will attack automatically if they have the proper fields set in their character and template tabs. That is, if you just put someone you want the player to fight (call her EnemyX) in a room and set her Class to GAME_OBJ_VILLIAN (or GAME_OBJ_MINION) in FFEdit's template tab, then if the player enters the room with a GAME_OBJ_HERO character, EnemyX will attack him, without the need for scripting to start the attack. (In fact, you will need to use one of the peace commands to prevent an attack, if you want a cut-scene or something to play before any combat starts.) So, look at how the characters for the base game are set up to see examples of how this should work. Keep in mind, of course, that in your mod the former bad guys are now the "heroes" under the players control and you would want to reverse the classes of any FF heroes that the player runs into so that they will fight.

    Keep in mind that there are two kinds of AI to use that will determine how the computer controlled characters (the enemies a player will fight) behave tactically in combat (i.e. what powers they will use when  attacking). The AI you set in the editor will model the character's tactics on those of that AI. So, if you have a baddy with two melee powers and a ranged attack, then you want to pick an FF baddy with corresponding powers in the same positions in his character sheet and the game will use your characters powers the same way the FF baddy used his corresponding powers.

    The other option is to use M25's AI. (That can be used whether or not you are using EZScript.) It's generally much smarter, more flexible, and easier to get to do what you want. There are other guides on using it (e.g. see this thread), but the most basic setup is to run the character through M25's AI generator mission in the game and then let it run on it's own during missions. (You can still script the characters to use particular powers during cut-scenes when AIPeace() has been called.)

    The tutorial advice others have given is good stuff. Of particular value to you might be the Scripting a Mugging tutorial , which puts together a simple encounter and scripts it. Once you have that down, I would also really advise picking a short FF (or FFvT3R) mission or encounter from the base game and closely examining the characters and scripting in that mission. It's always easier to figure out how something functions when you have a working example to study. Once you feel you understand what's going on in the scripting of a short or simple FF mission, then tackle a mission you want to use in your mod. Remember to start simple and add details when you have the simple stuff working.

    Good luck.
    Well, thanks. But I already gave my characters proper titles. NW etc are HERO, minions are POLICE, police are MINION.
    I mostly try to copy scripts of FF missions, so for this I tried to copy evil El Diablo's attack in first FF2 mission. It didn't worked, but I used BentonGrey's advice and just made an animation.
    And yes, I've already seen Scripting For Mugging.

    But otherwise, thanks. I didn't know that there is ingame manual on script.