Mr Pure Pazaak

Creature Spawning

25 posts in this topic

Hey everyone, I can't seem to find much information on the spawning of extra creatures. I'm working on a small project and require more creatures in order to do so. For example, if I wanted to spawn 50 Gizka on the beach of the Unknown World, how would I go about it? I don't have too much modding experience but am pretty familiar with the KotOR tool. Any information would be awesome!

Share this post


Link to post
Share on other sites

The specifics can vary depending on what exactly you want to do, but as a general rule you typically define what creatures are in a module via the module's GIT.  This dictates exactly how many instances of a given UTC are in the module (each creature doesn't necessarily need a unique UTC, you can spawn any number of duplicates) and where they are positioned. Alternatively, some situations may instead call for the creature/s to be spawned via script. This is typically the case for cutscenes or quests, where you only want the creature/s to appear under specific circumstances.

In the case of your Gizka example, assuming you want them to be neutral (i.e. non-combat) background creatures, adding them to the GIT would be the way to go. For that you could just reference the pre-existing generic c_gizka.utc without needing to add a custom UTC of your own. All you'd need to do is figure out how many you want and where to position them, then add that info to the module's GIT and inject it into a MOD (that should be Central Beach I believe - UNK_M41AA).

If you wanted to get more fancy and make them interactable, you could look at the Yavin station and Ebon Hawk modules to see how they handled being able to kill them.

  • Light Side Points 1

Share this post


Link to post
Share on other sites

Yeah I just want them to hop around and behave as normal Gizka would. If you could simplify the procedure down to steps on how to do this, that would be amazing, from what you've said it doesn't seem to complicated, I'm just not very familiar with modding terms and "where to position them, then add that info to the module's GIT and inject it into a MOD (that should be Central Beach I believe - UNK_M41AA)". 

I'm fairly noob, thank you for you the quick reply!

Share this post


Link to post
Share on other sites

This is a brief overview.

  • I would suggest starting by creating a folder to hold all your working files, with sub-folders as appropriate (here's an example)
  • Extract both the RIM files for the module in KTool under RIMs -> Modules.
  • Select unk_m41aa.rim and unk_m41aa_s.rim in turn and hit the "Extract Entire RIM File" button on the top right (I put them in the SOURCE folder in the above example)
  • Using the ERF/RIM Editor, create a new MOD file named unk_m41aa.mod
  • Select all the module's files you extracted in KTool, and drag them into the ERFEdit window, then save the MOD
  • Make a copy of the module's GIT file, m41aa.git
  • Open the GIT with K-GFF
  • Start by going to View -> Fold All, then expand the base STRUCT node to reveal the GIT's structure
  • Expand the CreatureList node
  • If you expand the first few STRUCTS, you'll see there are already three Gizka in this module using two ResRefs - unk41_gizka and unk41_gizka002
  • Checking those UTCs in KTool, we can see some important dev notes in the Comments tab, so we'll go with unk41_gizka
  • In K-GFF, right click on the first STRUCT and choose Copy STRUCT and then right click on the base CreatureList node, right click, and choose Paste STRUCT
  • A duplicate of that STRUCT will appear at the bottom of the list, which we can now edit as appropriate
  • Before proceeding further, you'll need some co-ordinates. You can generate these either via loading up the module layout in Max/GMax or by running around in-game with an armband that spits out co-ords of the player's position.
  • Edit your new entry in the GIT, changing the X/Y/ZPosition values as appropriate
  • You will see two values for rotation, XOrientation and YOrientation. These are the COS and SIN of the rotation in degrees, respectively. As these Gizka will be hopping around anyway, just leave the existing values.
  • Repeat with duplicating and editing the STRUCT for however many new Gizka you want to add. Save the GIT when done.
  • For testing purposes, you can just copy the MOD into your K1 modules folder, then open it with ERFEdit and drag and drop your edited GIT in. Save the MOD.
  • Start the game and load a save from before entering the Central Beach module for the first time.
  • Examine the quality of your handiwork.
  • You'll probably want to test various position tweaks. They take a little bit to start hopping, so probably don't put them right outside the Hawk's loading ramp.
  • Once you are happy, you can set up the mod with a TSLPatcher installer
  • Read the included PDF for instructions on how to create a TSLPatcher setup
  • The gist in this instance is you need to difference your edited GIT against the original and have it inject those changes into the MOD
  • Here's a basic setup so you can see how it works
  • Like 1
  • Thanks 1
  • Light Side Points 1

Share this post


Link to post
Share on other sites

Could you elaborate on the GIT? I'm making a copy of the file in "Dynamic Area Info" right? And I'm Extracting the entire subtype, will I need to rename it or anything?

Share this post


Link to post
Share on other sites

You extract the entirety of both RIMs. Don't expand them or select any of the contents, just click on the top level and use the button noted above.

KTool_Extract_RIM.jpg.77420f4b764ec9a2113dc150c00589a5.jpg

  • Light Side Points 1

Share this post


Link to post
Share on other sites

Oh I have the two RIMs extracted and have the new .mod file saved from the ERF editor, but am stuck with what to do next in regards to copying the GIT and using K-GFF. The file I'm looking at is m41aa.git (31484)... I just want to make sure that this is the right file and what to do with it next.

Share this post


Link to post
Share on other sites

The is only a single GIT per module. As I said above, make a copy of the GIT somewhere and then edit it with K-GFF. You no longer need KTool after having extracted the RIMs. Have a look at the archive I linked to at the end of the summary.

  • Light Side Points 1

Share this post


Link to post
Share on other sites

Alright I've duplicated around 20 Structs with different X coordinates with intervals of about 5 values between each one just to test it out. Once I save this new .git, what is the procedure to move the right files into my game? I have the newly edited .git and .mod files. Where do these need to go, and I'm assuming I need to backup the files if I'm replacing things in the actual games files?

Share this post


Link to post
Share on other sites

As detailed above:

4 hours ago, DarthParametric said:

For testing purposes, you can just copy the MOD into your K1 modules folder, then open it with ERFEdit and drag and drop your edited GIT in. Save the MOD.

There will only be an existing MOD file if you have one from another mod. That's why they are used, so as not to overwrite the vanilla game files.

  • Light Side Points 1

Share this post


Link to post
Share on other sites
9 hours ago, Mr Pure Pazaak said:

How can I get this magic armband that'll give me coords?

If for K1, you don't really need it. Enter "whereami" into the in-game console (need cheats enabled/console on in .ini, use tilde "~" to access). This will give you your player's location and I think orientation, without any armband.

However, Star Admiral made good stuff and if you need more info, the link @DarthParametric gave will provide it :)

  • Light Side Points 1

Share this post


Link to post
Share on other sites

That's allgood, I've been walking around with the armband manually putting in coordinates for different spawns around central beach, about to try it out with about 80 new spawns.

Share this post


Link to post
Share on other sites

Alright so it doesn't spawn them in as of yet, I've attached my working in K GFF just to confirm that I'm duplicating and editing the structs correctly. I'm thinking my issue is that I'm not moving the files into my game correctly or something. I saved that .git file, copied my .mod into my K1 modules folder, open it with ERF editor, drag my .git file in, click yes to replace, and then save the .mod. What could be going wrong? 

Screenshot (402).png

 

Share this post


Link to post
Share on other sites

If I were you I would just repackage the module file from scratch using the same files you have edited and kotor tool, this is what I do every time I edit a level, I don't use the ERF Editor, I just build each module through kotor tool every time I want to update it, trying to make as many changes as possible before re-building.

Edited by Thor110
More detail added to my reply.
  • Light Side Points 1

Share this post


Link to post
Share on other sites

I've already done all the steps in Darth's step by step instruction, I don't have much modding experience to be able to understand how to repackage from scratch or how it would be easier than what I've already tried. I'm just trying to troubleshoot where I've gone wrong from the guide using the method Darth has provided me with.

Share this post


Link to post
Share on other sites
2 hours ago, Mr Pure Pazaak said:

I saved that .git file, copied my .mod into my K1 modules folder, open it with ERF editor, drag my .git file in, click yes to replace, and then save the .mod. What could be going wrong?

When you go to test it, are you loading a save from before you ever visited that module?

  • Light Side Points 1

Share this post


Link to post
Share on other sites

Not from before ever going there, I have a save before going to the Unknown World I can try, I''m currently loading in from North Beach after already going through Central.

Share this post


Link to post
Share on other sites

The game only loads data from the module files the first time you visit the module. It stores a copy of each module visited in the .sav file and subsequently loads from this. That's how it knows what containers you've looted, what NPCs have been killed or otherwise left the area, etc. So typically, if you make any change to a module, you have to load from before you've ever visited it.

If you need to spawn creatures after you've visited the area, you would have to do it with a script.

  • Light Side Points 1

Share this post


Link to post
Share on other sites

This was expressly noted:

19 hours ago, DarthParametric said:

Start the game and load a save from before entering the Central Beach module for the first time

 

  • Light Side Points 1

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