Jump to content

Home

TSLPatcher v1.2.10b1 (mod installer)


Recommended Posts

Stoffe and or Chainz,

Here is a link to some screen shots that I took of my progress with the TSLpatcher.

I was wondering if one of you two or both could take a look and see if I’ve got it right so far, and tell me what I need to do next to get this thing up and running (working) like it should… Basically I have no clue as to what the 2damemory thing is or how to use it or how to get the gff files working like they should be or how to get them to reference the proper lines [Row Label] of the spells.2da in the properties subtype correctly of the uti files…

 

 

Screenshots:

 

http://img348.imageshack.us/img348/4600/step1thru55hw.jpg

 

 

You can see I’m try’n :D but there’s a few things I still ain’t got yet ( < ain’t proper English :D )…

Hope you can help, please… :)

 

 

Please and Thanks in advance... ;)

Link to comment
Share on other sites

  • Replies 312
  • Created
  • Last Reply
Originally posted by TheOssusKeeper

I was wondering if one of you two or both could take a look and see if I’ve got it right so far

 

For your spells.2da CopyRow modifiers, you don't need to set the NewRowLabel column if you just want it to get the next free number in line. If you leave it out the application will do that automatically. At the end of the modifier list for each grenade, add one line that stores the row index of your new line for later use.

 

For Napalm, add:

Column: 2DAMEMORY1

Value: RowIndex

 

For Flash, add:

Column: 2DAMEMORY2

Value: RowIndex

 

For Shock, add:

Column: 2DAMEMORY3

Value: RowIndex

 

And finally for Combo, add:

Column: 2DAMEMORY4

Value: RowIndex

 

See below for more in-depth description of what this does.

 

Looking at the titlebar, do you have the patcher inside your Override folder? I wouldn't recommend this, since the game would attempt to load any (still unpatched) data files it encounters within the tslpatchdata folder as well.

 

Originally posted by TheOssusKeeper

Basically I have no clue as to what the 2damemory thing is or how to use it

 

2DAMEMORY tokens are a way to temporarily retrieve a value from a 2DA-file and store it for later use. Think of them as memory-slots which can keep track of a value that can then be inserted into other places, like other 2DA files or GFF files. To use the above as the example...

 

2DAMEMORY1=RowIndex

 

...would look up the row index (ie line number) of your newly added line, and store it in the first memory slot. Aside from RowIndex, you can assign the label of any column in the 2da file to a 2DAMEMORY token, which will then store the value found in that column for the line you are currently adding or modifying.

 

You can then assign this token to any column (in 2da files) or field (in GFF files), which will make the patcher insert the stored value where the token is encountered.

 

If, for example, your new line ended up on line number 282 in Spells.2da, whenever 2DAMEMORY1 is assigned to anything, the patcher would insert the value 282 at that place.

 

This mechanism is used for linking together 2DA files that reference each other, or to insert 2da line references into other files, such as GFF format files.

 

Remember that instructions are processed in the order they are listed, so you must make sure that you have assigned a value to a 2DAMEMORY token before you try to access that value elsewhere.

 

When adding new lines, don't assign a value to a 2DAMEMORY-token at the very top of the modifier list since the line isn't added until you've assigned a value to at least one column. Thus the line does not exist yet at that point, and no value can be retrieved.

 

 

Originally posted by TheOssusKeeper

or how to get the gff files working like they should be or how to get them to reference the proper lines [Row Label] of the spells.2da in the properties subtype correctly of the uti files…

 

You use the 2DAMEMORY tokens for this. The four extra modifier lines I described adding above would store the line number in spells.2da for the napalm grenade in 2DAMEMORY1, the line number for the Flash grenade in 2DAMEMORY2, the Shock grenade in 2DAMEMORY3 and finally the Combo grenade line number in 2DAMEMORY4.

 

Now that you have those values memorized, you need to insert them into your item templates (UTI files) for your grenades.

 

To do this, you'll need to assign the memorized value to the field within the GFF format UTI file that stores which line in spells.2da is used by the grenade explosion.

 

Open your grenade template in a GFF editor to find what field this is. Find the PropertiesList field and expand it. If you haven't done anything odd, it should only contain one struct, labeled 0, in a grenade template. Expand this struct and find the Subtype field within it. This is what contains your 2da reference.

 

To describe how to find this field for the patcher we need to provide the full path in the tree to where it is. This is done by separating the different fields in the hierarchy with a backslash character.

 

So, back in ChangeEdit, select your napalm grenade under the GFF files heading. Fill in the input fields as follows:

GFF Field: PropertiesList\0\Subtype
Value: 2DAMEMORY1

Press the button with the red arrow pointing up to add your change to the list. Then select the Flash grenade and fill in...

GFF Field: PropertiesList\0\Subtype
Value: 2DAMEMORY2

Further, select the shock grenade and fill in...

GFF Field: PropertiesList\0\Subtype
Value: 2DAMEMORY3

And finally select the Combo grenade and fill in...

GFF Field: PropertiesList\0\Subtype
Value: 2DAMEMORY4

 

This will take the stored values and assign them in the GFF file to the field referring to the spells.2da file.

 

 

I'm terrible at explaining things but hopefully this make it at least a little clearer... :)

Link to comment
Share on other sites

Stoffe, thanks, i'll give it a shot and see what happens...

 

also if you or someone else desides to make a guide or something, perhaps a visual guide, you can use my screen shots as part of the guide, for what to and not to do, if you like...

 

thanks again, i'll give it a whirl, :D

Link to comment
Share on other sites

Ok Stoffe, here is a link to the screenshots of the fixed version, minus the install part... :D

 

http://img346.imageshack.us/img346/6108/fixed1thru105bx.jpg

 

So far so good, i tried it using a clean spells.2da file and it seems to be working perfectly, i also tried it with a dirty spells.2da :D and it seems that it updated and or replaced all the necassary files and the ones i already had copies of i.e. .ncs and the .nss files it skipped... but all still seems to be working good...

again if you or someone else plans to make a guide (visual) you can use my screenshots if you like (unresticted)...

 

Once again thanks a million, i wouldn't have gotten this thing to work without your help... :thumbsup: Kudos on the TSLpatcher it is a miracle, hehe

Link to comment
Share on other sites

Originally posted by TheOssusKeeper

it seems that it updated and or replaced all the necassary files and the ones i already had copies of i.e. .ncs and the .nss files it skipped... but all still seems to be working good...

 

Hmm, perhaps I should have mentioned this more specifically since you aren't the only one who has done that mistake, so it isn't obvious how it works... :)

 

Files modified by the patcher are copied to the override folder while they are modified (only if they didn't already exist there in the case of 2da files).

 

Thus, 2da files or GFF files that the patcher has changed something in should not be added to the InstallList of files as well, since they have already been installed when they were modified. If done and you set them to just be copied the most you will get is a warning that the files already exists.

 

However if you set them to replace existing files in the InstallList you will overwrite the GFF files the patcher has just modified with new unmodified copies from the tslpatchdata folder, which you usually don't want. :)

 

 

You should also replace the content of the info.rtf file in the tslpatchdata folder with either the readme or some kind of installation instructions. This is the text that is displayed in the main window when the installer is started.

Link to comment
Share on other sites

Originally posted by stoffe -mkb-

Files modified by the patcher are copied to the override folder while they are modified (only if they didn't already exist there in the case of 2da files).

 

However if you set them to replace existing files in the InstallList you will overwrite the GFF files the patcher has just modified with new unmodified copies from the tslpatchdata folder, which you usually don't want. :)

 

So basically, they (the gamers) needs to have a clean override folder (free from the files in the InstallList), correct?

 

So in order for someone to use this mod (if they already have a previous version) they would need to delete all the old files first, correct?

 

 

See I thought that the patcher copied all files to the override, then modified the necessary files... the copied files would overwrite the current ones and then the patcher would modify them and the ones that didn't get copied, like the 2da file would just simply be modified... :confused: maybe in the next beta release, it could work this way, that way you wouldn't have to worry about what gets overwriten as far as the uti files and the script files go anyway, and then everything gets modified after everything is copied to the override... (don't know if this will work or not, just an idea though :D)

 

ok, but i think i get the read me file thing, though :D

 

PS. if you could download my mod at pcgamemods.com (if you hadn't already) and take a look at it for me? please...

 

Thanks in advance :thumbsup:

Link to comment
Share on other sites

Originally posted by TheOssusKeeper

So basically, they (the gamers) needs to have a clean override folder (free from the files in the InstallList), correct?

 

So in order for someone to use this mod (if they already have a previous version) they would need to delete all the old files first, correct?

 

Files that are just copied over and not modified in any way should preferably not be present in the override folder already. This is just like any other mod, if two mods uses files that are named the same they are incompatible. If the patcher encounters an already existing file it shouldn't modify (ie on the InstallList), it will skip that file and print a warning in the progress log that the file already existed, to alert the user to a possible mod conflict.

 

If, however, you are making an updater for a previous version of your mod and you can be reasonable sure (by unique file naming) that the existing file is in fact from a previous version of your mod, you should set the InstallList to replace rather than copy that file. Then the patcher will copy the file from tslpatchdata and overwrite the file with the same name that already existed in Override. This will allow you to install a new version on top of an old one without the user having to delete anything manually first.

 

Only set the replace flag for files in the InstallList you can be reasonably sure are from your own mod(s), since it might mess up already installed mods otherwise.

 

 

Originally posted by TheOssusKeeper

See I thought that the patcher copied all files to the override, then modified the necessary files... the copied files would overwrite the current ones and then the patcher would modify them and the ones that didn't get copied, like the 2da file would just simply be modified... :confused:

 

Things are done in this order, provided that the instructions are present to do it.

 

1) The contents of append.tlk (if present) is added to the user's dialog.tlk file.

 

2) 2DA files in the 2DAList are updated.

a) If the 2da file does not exist in the user's override folder, the patcher looks in the tslpatchdata folder for it. The file is then copied to the override folder.

b) If the 2da file exists in the override folder, either from a previous mod, or from just having been copied there from the step above, the 2da file (in override) is modified according to instructions.

 

3) GFF format files in the GFFList are modified. If a file with the specified named already exists in override, that GFF file is modified. If the file does not exist, the file is copied from tslpatchdata to Override, and the copy in override is then modified.

 

4) File hacks are performed. This will never modify files that already exist in override. If no file with matching name exists, it is copied from tslpatchdata to override, and the copy is then modified. If the file already existed, the patcher will issue a warning and skip the file, unless you've instructed it to overwrite that file if it existed.

 

5) The installlist is processed. This should only contain files that the patcher hasn't done anything with in any of the above steps (since those steps have already copied the relevant files to override if necessary). The listed files are copied from tslpatchdata into the folders which are specified.

Link to comment
Share on other sites

{snip} - reference to "unecessary comment" in previous post deleted- d333

 

I've tried to explain things as best I can, but I know I'm terrible at explaining things. It's probably better to leave the explaining to someone else who's good at it (and is more proficient with English than I am). I've done the best I can to clarify things, if that's not enough there's nothing more I can do about it I'm afraid. :(

 

The TSLPatcher is a mod installer of a sorts, that is capable of adding information to certain types of files rather than just overwrite them if it already exists. It is by no means the final answer to making mods compatible, and it's only really useful for a limited type of mods. But for that type of mods it's at least better than nothing, IMHO, and can make installation a bit less of a headache for the non-modding end user. :)

 

 

Originally posted by MacLeodCorp

What does it do to the .2da file specifically, and why does it do it? I don't want to hear, it modifies the files so it is compatible.

 

 

That depends on what it has been instructed to do. It is capable of adding new lines to a 2da file (either from scratch or by copying an existing line and modifying its values), modify values on existing lines and add new columns to 2DA files. This is done from a set of instructions created by the maker of the mod that it is supposed to install.

 

I originally made the application in order to make it easier to install and distribute a Force Powers mod I created. Since spells.2da is modified by a lot of other mods, the TSLPatcher was made to add the necessary lines at the end of the existing file in override, saving people the trouble to manually merge the 2da files and link things together. Thus it should be compatible with any other force power mods that people may already have installed.

 

Also, since distributing dialog.tlk in its entirety is a bad idea, I needed some way to include the necessary text without including the full 10 Meg file, and (hopefully) avoid changing the language of the player's game if they have non-english versions.

 

Originally posted by MacLeodCorp

Why would you want to change anything in this file? (dialog.tlk)

 

Personally I needed it for my force powers mod. The force power names and description text needs to be added to dialog.tlk in order for the game to display it. Shipping the whole file with the mod would have made it incompatible with any other mods that modify dialog.tlk, would have added about 2 Meg to the download size, and would have caused trouble for non-english games. So I made the TSLPatcher add the necessary text entries to the already existing dialog.tlk file of the user who installs the mod. The patcher then modifies the spells.2da file to point to the correct StrRefs for these text entries.

Link to comment
Share on other sites

Oky, maybe this could help you!?

 

1. If I remember right, your program has defaults to open. However, those defaults are not the items that I the modder modified. To prevent confussion, I would delete those defaults, and just make a label that says: "Choose your .utis, .2da, etc...". Depening on what you need to alter.

 

2. I would also make it possible to choose, one .2da file with multiple .uti/,utc files. I think that would make some ease.

 

3. Now, I don't need to choose certain items, but your programs asks for them. That creates confusion. I would have the program open only files that need to be opened, and not files that have nothing to do with your edits. Example: dialouge.tlk may need to be open for all edits, but .uti does not need to be open.

 

4. Create a comprehensive readme, which states: If you altered these types of files, then the patcher needs to patch these files, so your mod can work.

 

5. Create a comprehensice readme, which explains how to install the patcher.

 

6. Delete your example files from the data folder, for it creates confussion. Exlpain certina important details in a readme, and use some screens.

 

I know you worked really hard on this program, and I thank you for everything you have done. Please don't take my posts as harshness. I really do enjoy and utilize your programs.

Link to comment
Share on other sites

Originally posted by MacLeodCorp

 

1. If I remember right, your program has defaults to open. However, those defaults are not the items that I the modder modified. To prevent confussion, I would delete those defaults, and just make a label that says: "Choose your .utis, .2da, etc...". Depening on what you need to alter.

 

2. I would also make it possible to choose, one .2da file with multiple .uti/,utc files. I think that would make some ease.

 

3. Now, I don't need to choose certain items, but your programs asks for them. That creates confusion. I would have the program open only files that need to be opened, and not files that have nothing to do with your edits. Example: dialouge.tlk may need to be open for all edits, but .uti does not need to be open.

 

Sorry, I'm not sure I understand what you mean? If you set the TSLPatcher to installer mode, the only thing the user should have to select is the folder where the game is installed, not any individual files. Then it's up to the mod-maker creating the INI file with instructions to determine which files should be modified and link them together as necessary, and put the necessary files the patcher needs in the tslpatchdata folder.

 

Originally posted by MacLeodCorp

4. Create a comprehensive readme, which states: If you altered these types of files, then the patcher needs to patch these files, so your mod can work.

5. Create a comprehensice readme, which explains how to install the patcher.

 

Doubtful this is going to happen. I can think of few more boring things to spend my free time with than sitting for days writing comprehensive documentation for something only a handful of people use anyway. :) Especially with my english skills being what they are, and I doubt instructions written in my native language would be all that helpful to most people. :)

 

I try to answer specific questions to the best of my ability though if people wonder how to do something or if there is something unclear about how a specific feature works.

 

Originally posted by MacLeodCorp

6. Delete your example files from the data folder, for it creates confussion. Exlpain certina important details in a readme, and use some screens.

 

I left a few files in there as an example of how things are laid out. I usually find it easier to learn new things if I have examples to look at. But if it is more confusing than helpful I suppose I could remove all example files from the next version when I upload it.

Link to comment
Share on other sites

i think maybe Chainz knows a little about it, maybe T7 (not sure), i myself have only started using it, but i do know you can use it to edit any existing line in a 2da or add new lines or copy a line from a 2da and replace some if not all of the column values as you see fit... thats why i was saying the other day there shouldn't be any compat issues with your heads.2da and your appearence.2da if you edit them with the tslpatcher in the proper order... And correct me Stoffe if i'm wrong but don't you need to set the values for the head.2da first before the appearence.2da? :)

Link to comment
Share on other sites

this may help some... i hope :)

 

What if you (Mac) or anyone for that matter that had questions about the TSLpatcher set down and posted a list of questions, all questions that you may have and then everyone that has used the patcher or has experience with the patcher set down and answered these questions, wouldn't that be a step in the right direction to making a comprehensive guide, then someone could take all the answers and make an understandable guide from it and even place all of the questions and answers in the guide, kinda' like an appendix, would that help?

 

i'll also post this in the TSLpatcher thread as well...

Link to comment
Share on other sites

I have uploaded version 1.1.4 here, it's a quick bugfix version for a bug that I just ran into.

 

Due to a bug in the code saving GFF files, a few files laid out in a particular way would become corrupted when they were saved (about 2 out of 20 of the files I tested with were affected). This is now fixed in v.1.1.4, and it seems to save all GFF files I've tested with properly.

 

This file contains only the fixed TSLPatcher.exe, since TalkEd.exe or ChangeEdit.exe haven't been modified since v.1.1.2.

 

Sorry about not spotting this error earlier, but since I haven't heard from anyone else about it I guess no one else has run into it yet anyway. :)

 

If you have made an installer with the patcher for a mod, and that mod works fine when installed, your files aren't affected by the bug and there's no need to repackage your mod with this version. But if you make a new mod that uses the patcher I'd suggest using this version instead.

 

* * *

 

As for the next full version with the new features that were requested, I've got a bit more free time to spare now and will get to work on it shortly.

Link to comment
Share on other sites

Great! Glad you are still updating it. I never ran into the problem, but I was bound to eventually had you not. I have found this useful for I think 3 mods already, and plan on using it again in an upcoming mod.

Link to comment
Share on other sites

Originally posted by stoffe -mkb-

I have uploaded version 1.1.4 here, it's a quick bugfix version for a bug that I just ran into.

 

Sorry about not spotting this error earlier, but since I haven't heard from anyone else about it I guess no one else has run into it yet anyway. :)

 

I suppose its better that the programmer finds the bugs rather than the user. ;)

 

Thanks for the update, personally I purpously use 2da's in my mods now :D. This is the kind of tool I have wanted since the beginning.

Link to comment
Share on other sites

Originally posted by T7nowhere

Thanks for the update, personally I purpously use 2da's in my mods now :D. This is the kind of tool I have wanted since the beginning.

You Too!?!? :lol:

 

I thought I was the only one.. hehehe ;)

 

I have several ideas for mods now incorporating baseitems and spells 2da... but was always hesitant cuz' many of my older mods tended to include those quite often (along with hate mail afterwards :p )...

 

Thanks for the update stoffe! :D

Link to comment
Share on other sites

FYI, version 1.1.4 has been added (updated) on the StarWarsKnights.com Tools Section :D

 

as a side note, does the 1.1.4 update contain the command line ability that 1.1.3 had?

If not, let me know and I'll re-add the 1.1.3 version as well, (noted with the command line ability) ;)

 

and as always, if you would prefer the tool (and updates) be removed, just let us know :)

 

Pardon the double-post, but I thought a site update would warrant it rather than an 'overlooked' edit ;).. hehehe

Link to comment
Share on other sites

@TheOssusKeeper

wouldn't that be a step in the right direction to making a comprehensive guide, then someone could take all the answers and make an understandable guide from it and even place all of the questions and answers in the guide, kinda' like an appendix

 

Maybe a wiki would be better suited to this kind of thing than the forums?

 

(Not that I know where that wiki would be hosted or anything...)

Link to comment
Share on other sites

stoffe,

 

Let's say I'd like to change a few existing stringrefs in dialog.tlk (20-50).

Instead of distributing the entire modfied dialog.tlk file, I'd rather just distribute

the changed strrefs and have TSLPatcher patch them up.

 

Is that possible right now?

 

Or is the ''correct'' approach to create an append.tlk file, append it to dialog.tlk

and point the affected game ressources to the new strrefs?

Link to comment
Share on other sites

Originally posted by ermo

stoffe,

 

Let's say I'd like to change a few existing stringrefs in dialog.tlk (20-50).

Instead of distributing the entire modfied dialog.tlk file, I'd rather just distribute

the changed strrefs and have TSLPatcher patch them up.

 

Is that possible right now?

 

Or is the ''correct'' approach to create an append.tlk file, append it to dialog.tlk

and point the affected game ressources to the new strrefs?

 

The TSLPatcher is currently unable to edit existing entries in a dialog.tlk file, since I assumed there was minimal use for such a feature.

 

If it's text for something new it's probably better to add a new entry anway and just point whatever you intend to use it for to that StrRef instead. There are plenty of duplicate strings in dialog.tlk already so this seems to be how Bioware or Obsidian did it as well.

 

If you really need to be able to edit an existing dialog.tlk entry I suppose I could add that feature, but I just don't see what kind of mod that would be useful for. :)

Link to comment
Share on other sites

I've sucessfully made a tslpatch thingy but found something odd...

 

The files are supposed to be replaced, but I got 38 errors saying "file exists, skipping it" :confused:

 

I made a patch thing for a future release, if it ever comes. I have the old files ready and all I would need is update the files and give it a go.

 

The files in the patcher thing are the exact same as the ones it's supposed to replace. Is this why It gives me a skipping error thing? Once the files have been updated, will tsl patcher replace them? :confused:

 

I'd like to thank Chainz.2da for letting me use his tslpatcher thing as a template :)

Link to comment
Share on other sites

Originally posted by mrdefender

I've sucessfully made a tslpatch thingy but found something odd...

 

The files are supposed to be replaced, but I got 38 errors saying "file exists, skipping it" :confused:

 

Hard to say for sure without knowing more about how you've configured the installer. Here are a few things I can think of:

 

Are these unmodified files that are just installed, or are they files that have been modified by the installer?

 

You shouldn't put any files on the Install list that has already been modified by the application. Only unmodified files should be put there.

 

If the files are on the Install list, have you checked the Replace box (if you are using ChangeEdit) or named the key "Replace#" (if you are using a text editor) for the files you wish to overwrite existing copies of? The file installer should only complain about existing files when they aren't set to be replaced.

 

Which version of the TSLPatcher application are you using? The replace feature was added in v1.1.2 if I remember correctly, and will not be recognized if you use an earlier version.

 

If none of these things help, post your changes.ini file and I'll have a look at it and see if I can spot anything.

Link to comment
Share on other sites

I've downloaded 1.1.2 and the 1.1.4 patch thing...

 

Was abit confused with your reply. Not sure if that has anything to do with the fact it's 3am here and I've been up all night testing other stuff lol.

 

here's my changes.ini... I'm guessing your browser will open it as a webpage instead of a download :confused:

 

http://jediarchives.ca/changes.ini

 

 

I like the patcher alot, easy to use too :)

 

*falls asleep on the keyboard*

sleep3.gif

sleep3.gif

Link to comment
Share on other sites

Originally posted by mrdefender

I've downloaded 1.1.2 and the 1.1.4 patch thing...

 

Was abit confused with your reply. Not sure if that has anything to do with the fact it's 3am here and I've been up all night testing other stuff lol.

 

here's my changes.ini... I'm guessing your browser will open it as a webpage instead of a download :confused:

 

http://jediarchives.ca/changes.ini

 

 

I like the patcher alot, easy to use too :)

 

*falls asleep on the keyboard*

sleep3.gif

sleep3.gif

 

 

if the files already exist in your override folder, my guess would be to update the tslpatcher by checking the replace box at the bottom of the install files window, you will have to select each file and check the box for each file, this will replace any existing files in your override folder with the ones in the tslpatchdata folder, if i'm not mistaken, Stoffe correct me if i'm wrong, but i think thats how it works :D

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...