Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > Hero Lab Discussion
Register FAQ Community Today's Posts Search

Notices

Reply
 
Thread Tools Display Modes
chiefweasel
Senior Member
 
Join Date: Aug 2008
Location: Miamisburg, OH
Posts: 1,322

Old September 20th, 2009, 12:52 PM
Is there any way ro set up a test environment so when we add classes or feats and such, and make mistakes, that they are not applied to the production files? I am trying to resolve an error with a file i received and in the process have cause several more errors to crop up. This is turn has stopped HL from testing anything into production. It loks like the only solution i have now is to re-install HL, which will lose me most of the last years worth of work, or try to mess with the actual code of the software. something i dont relish on doing.

some sort of test area which does not apply changes directly to the production files would make the creation of new files much safer to perform.

Any thoughts? Thanks.
chiefweasel is offline   #1 Reply With Quote
Spence
Senior Member
 
Join Date: Aug 2009
Posts: 119

Old September 20th, 2009, 01:46 PM
chiefweasel

Remove the file in question from the Hero Lab Folder and HL will no longer see it.

My .user files are in: C:\HeroLab\data\mutants

I created a file called "Mecha and Manga v1" to incorporate the new stuff. I tried to change the unique feat names as a test mid stride and the file errored.

I cut M&Mv1 from the HL folder and stuck it in a different folder and shut down HL. When I reloaded HL it was as if I never had added M&Mv1. To get it to recognize the file again I needed to save the file back into the HL location and then reopen the .user file in the editor and re-compile it. (edit: before compiling I retested everything too)

As an added precaution that I don't lose work, I have started to 'save as' a new version each time I start working again.

But if you pull down a file from someone and it messes with your existing stuff, just close HL, remove the file from where your HL data files are and HL won't know they existed the next time you start it.

At least that is how things appear to be working on my machine.

I have discovered that once you select a Unique ID for something you cannot change it in a file that HL is using. In fact all of the problems I have seen so far (but remember I am new here so I have limited experience) have been related to a conflict between multiple unique ID's that are not unique. They have a protocol for naming them in HL as far as types within the program, but we don't have anything (that I know of) to make sure people creating files don't cause each other problems.

I was thinking we could establish a naming convention where everyone uses a naming convention for Unique ID's. For instance if we used initials, then all of my unique ID's would start with ss, for instance a feat would be fssName, f for feat, ss for me and then the unique ID name. If we created a sticky'ed list on this forum, we could post the 'claimed' initials so no one conflicts.

Just a thought. Could on of the LW types perhaps weigh in on this?

Last edited by Spence; September 20th, 2009 at 02:15 PM. Reason: ommision:
Spence is offline   #2 Reply With Quote
rob
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 8,232

Old September 20th, 2009, 04:11 PM
We specifically designed the data file structure so you can readily recover from problems like you describe. All user files are separate from the core files for a game system. When HL compiles your data files, it integrates all the user-created files into the core material, resulting in a single database to run from.

When you create a new data file, HL compiles it in with the other material that's present. This makes it easy to share user-created data files. All someone needs to do is drop the new file(s) into the game system folder and reload.

This mechanism also works in reverse. By simply removing a user-created data file from the game system folder and reloading the game system, all of its contents are stripped out of the database. Since HL only looks for files with a specific set of file extensions, you can simply rename a file to have an extension like ".bug", then reload. The file will be ignored by HL and you will omit it from the database.

So if you have a new data file that gives you problems, all you need to do is rename that file and reload the game system. You'll instantly revert back to where you were before.

Note that all you need to do is *RELOAD* the game system. You don't actually have to exit HL and restart it. So you can use the Quick Reload mechanism (or the <Ctrl-R> keyboard shortcut) to trigger a reload. Alternately, simply go to the File menu, select Switch Game System, and reload the current game system. Both methods will reload the game without having to exit HL.
rob is offline   #3 Reply With Quote
Mathias
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 13,213

Old September 20th, 2009, 04:15 PM
Chiefweasel, HeroLab inherently works the way you want it to - that's why the real files are packaged up - everything a user adds is in user files, which means you can remove them and not affect the original content.

Spence, we use two letter codes, in caps after the prefix, to distinguish products, rather than users. For example, in d20, everything from the Pathfinder Adventure Paths is "(prefix)PF(name)" - also note that there are a few cases where the prefixes are more than one character.

I have an "obsolete" folder in HeroLab/data/d20 on my system, so that I have a place to put things I'm not using any more. HeroLab won't go searching into subfolders for data files.
Mathias is online now   #4 Reply With Quote
Spence
Senior Member
 
Join Date: Aug 2009
Posts: 119

Old September 20th, 2009, 04:19 PM
Quote:
Originally Posted by Mathias View Post
Spence, we use two letter codes, in caps after the prefix, to distinguish products, rather than users. For example, in d20, everything from the Pathfinder Adventure Paths is "(prefix)PF(name)" - also note that there are a few cases where the prefixes are more than one character.
I've started using the lower case ss in my files, will that conflict with anything you know of?
Spence is offline   #5 Reply With Quote
chiefweasel
Senior Member
 
Join Date: Aug 2008
Location: Miamisburg, OH
Posts: 1,322

Old September 20th, 2009, 04:19 PM
I have tried that but it doesnt work. If i delete a file in the source folder, the next time i load up HL it comes up with a huge amount of errors. This also happens when i change the file names. It appears that the core files are loaded in somehow and when files are removed the pointers get errors because they cant find the files that were deleted.

This also occurs when i try to move files. an example:

i had a prestige class as a aseperate file. i wanted to load it into a different file with several other prestige classes. i deleted the original one and copied the contents of the deleted prestige class into the large file. when i go to test anything the editor stops and gives me errors stating that there are numerous duplicate items.

because of this, it is extremely difficlut to move files or get rid of files unless i delete every item within a file first before i delete the actual file itself.
chiefweasel is offline   #6 Reply With Quote
rob
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 8,232

Old September 20th, 2009, 04:39 PM
You can readily create a separate test environment at any time with HL. If you go to the Tools menu, you will see the option to "Duplicate Game System". This duplicates everything currently in the source game system you select, including all user-created files. You will be prompted to specify both a new folder for the game system (e.g. "d20test") and a new name to display for the game system (e.g. "d20 Test Files").

Once you duplicate a game, you will see a new entry for that game system listed in the Select Game System form. Selecting that game will load the test data files instead of the normal data files. You can create user content in this test game system, then copy the ".user" file into the main game system folder once it's all verified to be working. You can also drop user-created files from others into the test game system folder and verify they "play nice" before moving them into the main folder as "official" content.
rob is offline   #7 Reply With Quote
rob
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 8,232

Old September 20th, 2009, 04:54 PM
Quote:
Originally Posted by chiefweasel View Post
I have tried that but it doesnt work. If i delete a file in the source folder, the next time i load up HL it comes up with a huge amount of errors.
Deleting a file in the "Source" folder will do *NOTHING*. The "Source" folder is for *reference* only. HL does not use anything in the "Source" folder. The only files that HL uses are the files in the main game system folder (e.g. "d20", "pathfinder", etc.).

Quote:
Originally Posted by chiefweasel View Post
This also happens when i change the file names. It appears that the core files are loaded in somehow and when files are removed the pointers get errors because they cant find the files that were deleted.
When you move and rename the files, you must reload the game system. This should trigger a recompile of the data files. If you don't see a message that the files are being recompiled, then you can *force* a recompile to occur. You do this by using the Compile Data Files option under the Develop menu, which can be accessed via the "<Ctrl-C>" keyboard shortcut.

Quote:
Originally Posted by chiefweasel View Post
i had a prestige class as a aseperate file. i wanted to load it into a different file with several other prestige classes. i deleted the original one and copied the contents of the deleted prestige class into the large file. when i go to test anything the editor stops and gives me errors stating that there are numerous duplicate items.
After you copied the file contents, did you trigger a reload of the game system? If not, then HL and the Editor still have all the old material loaded. You made changes outside of HL that it doesn't know anything about. HL only knows about changes you make within the Editor - i.e. that it controls and knows about.

When you do something like this, you need to reload the data files. That tells HL you've made external changes and to update itself to incorporate those changes. Once you do the reload, HL will be aware of all your changes and then you can proceed normally.

There is one important additional detail here. If you make changes to a file that is already loaded into the Editor, HL does NOT know about those changes. It's just like any file with any other program, such as a text editor. When you load a file, its contents are cached. If you make changes to that file in another program, the cache still has the previous information. You need to reload the data file into the Editor so that it has the updated information. Otherwise, you will get problems, because the Editor thinks it's working with a different file from the one you modified outside of the Editor.
rob is offline   #8 Reply With Quote
rob
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 8,232

Old September 20th, 2009, 05:04 PM
Quote:
Originally Posted by Spence View Post
I have discovered that once you select a Unique ID for something you cannot change it in a file that HL is using. In fact all of the problems I have seen so far (but remember I am new here so I have limited experience) have been related to a conflict between multiple unique ID's that are not unique. They have a protocol for naming them in HL as far as types within the program, but we don't have anything (that I know of) to make sure people creating files don't cause each other problems.
When you use the "Test Now" button within HL, you are adding that thing to the live database that HL is operating with. If you modify that thing, HL sees you are re-using the same id, so it replaces the existing thing with the new content. However, if you change the unique id to something else, the old thing still exists within HL. If you want to change the unique id of a thing, you simply need to make the change, save the file, and tell HL to reload the game system (as outlined in previous posts). This tells HL to clear its cache and start over. Once the reload completes (a second a two), your old id is wiped and the new id is in use.

Quote:
Originally Posted by Spence View Post
I was thinking we could establish a naming convention where everyone uses a naming convention for Unique ID's. For instance if we used initials, then all of my unique ID's would start with ss, for instance a feat would be fssName, f for feat, ss for me and then the unique ID name. If we created a sticky'ed list on this forum, we could post the 'claimed' initials so no one conflicts.
Having naming conventions like this would greatly simplify integrating everyone's content. Then you won't have to worry about your ids conflicting with someone else's. The only issue that arises is that you then run the risk of two people adding the same content, with different unique ids. For example, two people could add the same feat, one with the id "fssname" and the other with "fxxname". But that's probably much easier to sort out than the naming collisions.
rob is offline   #9 Reply With Quote
chiefweasel
Senior Member
 
Join Date: Aug 2008
Location: Miamisburg, OH
Posts: 1,322

Old September 21st, 2009, 04:49 AM
Hey all. I have tried what all of you have mentioned. I have deleted the user created file in the source directory, then added the information from that file into another file. and reloaded the game system many times. i still get duplicate errors. its like the original information was not removed.

the only way i have been able to get rid of original content was to delete all the information in the file one item at a time through the editor. and recreate it into a new file using different names for each "thing".

i have to reload my game system almost after every test as well because the test doesnt seem to work many of the times.

over the weekend i spent about 10 hours trying to recover from this very problem. i deleted all refernces to my shadowstriker presitige class and copied the information into the Complete Champion Feats files i have. I used a text editor for this transfer. when i tested any of the items in the new combined file i get errors indicating either duplicate entries or items not found. at this point the editor stops and will not compile the Complete Champion feats file on me.

I make back up files of everything i do so i dont have to type in the information again, but all these changes abd problems being made to production my characters for that game system have become affected as well. Feats and gear are no longer available as well as the shdowstriker prestige class is also not available.

i have also run into a big problem with trying to create a new source file. i select the "new source" from the panel but then receive an error that i do not have the license for the source file i have just created. Lawfulg has been trying to help me with this but when he loads the same files on his system, he does not receive the errors i do. This would indicate that there is something different with my configuration, but i havent done anything special or different beyond the basic install.

in the end all i really want to do is change the name of the Complete Champion feats file to Complete Champion Book and assign a new source to it so users can either use the materials or not.
chiefweasel is offline   #10 Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 10:09 AM.


Powered by vBulletin® - Copyright ©2000 - 2024, vBulletin Solutions, Inc.
wolflair.com copyright ©1998-2016 Lone Wolf Development, Inc. View our Privacy Policy here.