Another Character Generator

By OggDude, in Star Wars: Edge of the Empire RPG

Here's exactly what I just did:

  1. Open GM Tools
  2. Clicked on Groups
  3. Clicked on New. Edit Group dialog appears.
  4. Named my group "My Group"
  5. Clicked on Characters
  6. Added one of the characters to the group (we'll call him Bob).
  7. Clicked on Bases
  8. Clicked on New. Create Base dialog appears.
  9. Called my base "My Base", left everything else default (Business/Entertainment).
  10. Clicked on Add.
  11. Modify base dialog appears with My Base. Keep Charm as Career Skill.
  12. Click Save.
  13. From Group dialog, click Add
  14. "My Group" is now in the group list.
  15. Close GM Tools

Now, let's see what effect it has:

  1. Open Character Generator
  2. Select "Bob" from list (whatever character you used for the group).
  3. Click Select. Wait for Description pane to appear.
  4. Click on Skills.
  5. Look for Charm. Charm should have a green check mark under "Career".

Of course, when you choose a "Bob" for your fake group, make sure he doesn't already have Charm as a career skill. Something like a marauder or a technician should do :)

Awesome! Ok, so that worked.

However at step 9, if I select the Rebel Base/Training Center, then click upgrades, select Training Facility, then back under description select any of the skills; when I reopen the char gen it is not marked as a career skill.

Sorry for this, I do not mean to be a pain.

Also, if you select the rebel base option at step 9, the duty or cost values for said base are not displayed. Not sure I communicated this before.

I did the same thing, but picked Rebel Base/Training Camp, then added a Training Facility upgrade, then selected Warfare as the career skill. Still had "Bob" as a member :) Saved everything, closed GM Tools, and opened Bob up in the generator. Warfare was listed as a career skill, as it should be, and Bob does not normally have Warfare as a career skill.

Are you testing this with the same character? Maybe something weird is going on with the character. Take a look at other characters and see if it works.

Rebel bases don't cost credits or obligation, so there's nothing to display.

Yea I have tried with new characters and old ones.

I have even back up my data folder. Deleted both the app and data folder. Restarted my machine. Download a fresh copy, extracted it, and then ran through the steps above and I still get the same results. Seeing how I am the only one getting this, then it must be user error. Other than sending you video of what I am seeing, I am not sure what else to do. I can work around it. Just really annoying. I like the feature and I just want to get it to work. /sigh

Disregard. Not sure what the hell I did. But it seems to be working now.

Guess the sacrifice of small cute kittens worked.

Edited by Arrakus

I'm encountering a really weird... thing. When adding descriptions in the Data Editor, if I delete the text entry completely, the "Please see page number yada yada" reappears as if I didn't. I have to add text, delete the "Please see page" text, then save the data. It's not debilitating or anything, just unusual.

I'm encountering a really weird... thing. When adding descriptions in the Data Editor, if I delete the text entry completely, the "Please see page number yada yada" reappears as if I didn't. I have to add text, delete the "Please see page" text, then save the data. It's not debilitating or anything, just unusual.

You've actually discovered a new feature! This only happens with DescOnly type items. If you blank out the name or the description, it'll go back to its default value. If you do this to both of them, it's now smart enough to know that it's no longer a DescOnly item and remove the custom tag.

I figured it out!!!

I think.

I had to clear the cache in order to see the changes take place. Not sure why I had to. But that did. After I changed the base skills, the old ones would still show up and not the new ones. But when I cleared the cache, everything show up as it should be.

Again, sorry for all this.

After looking at the code, depending on how a base was retrieved and when it was relinked, there was a possibility that a base might lose it's selected career skill if the choices only came from an upgrade, and not the focus. It was historical; before the Rebel base option became available, only foci had career skills. When upgrades could also have them, I changed the way I did a few things and created a consolidated property that contained available career skills from all sources. During a relink, however, there were places where it still assumed that the focus was the only place career skills existed. I made a few changes and now only validate career skills after upgrades have been added, and using the new consolidated property.

This may have been what was causing your issues, although it still worked fine for me without clearing the cache. Which is good, because I hate clearing my cache :) I have all adversaries and all encounters as part of my system, so thats close to 800 adversaries and almost 250 encounters. First time through after clearing the cache, it takes like 5 minutes to load. When the cache is in place, it's more like 15 seconds.

Okay I have a feature request, or perhaps it's already in, Idk

In my AoR campaign I am offering my players to take an obligation for Extra XP/money OR to lower their Duty score for it. Now I don't have a "base" obligation for them. Some of them just don't have one. So rulewise they take 10 obligation and get either 10 XP or 2500 Cr or a bit of both, but in your generaor I have to always add 5 more to the obligation or they don't get the "prize". Could you add a "0" Starting Obligation number for those of use who want to use Obligation that way? With Duty it isn't needed since it works the other way around, but it would be nice with Obligation.

There's an option called "Ignore starting obligation size limit" that does that. It's not a grant, just an option.

Actually, the regular obligation rule (can't have more than starting size) is there to make it symmetrical with duty, which already has that limitation by its nature. With duty, it's the amount of duty you don't take, which limits itself to 0 duty. With obligation, it's the amount you do take, which, if the rule wasn't there, could be unlimited. That's why, by RAW, you can only benefit from extra obligation up to starting size.

In other words, if starting size is 10, and you get benefits from duty that you don't take, you can only ever benefit from taking no duty at all, which is -10 duty. So, to make obligation work the same way, you're supposed to only be able to take extra obligation up to 10 (or 20 total obligation).

I admit that the RAW is kind of weird and hard to understand, but if you look at it this way, it makes sense why it's there.

Extra big thanks goes out to David Voss who sent in his second donation! Thanks again, Dave, really appreciate it!

After looking at the code, depending on how a base was retrieved and when it was relinked, there was a possibility that a base might lose it's selected career skill if the choices only came from an upgrade, and not the focus. It was historical; before the Rebel base option became available, only foci had career skills. When upgrades could also have them, I changed the way I did a few things and created a consolidated property that contained available career skills from all sources. During a relink, however, there were places where it still assumed that the focus was the only place career skills existed. I made a few changes and now only validate career skills after upgrades have been added, and using the new consolidated property.

This may have been what was causing your issues, although it still worked fine for me without clearing the cache. Which is good, because I hate clearing my cache :) I have all adversaries and all encounters as part of my system, so thats close to 800 adversaries and almost 250 encounters. First time through after clearing the cache, it takes like 5 minutes to load. When the cache is in place, it's more like 15 seconds.

Awesome. Thanks for taking a longer look at this. More for my sanity than anything. At least I know I am not going nuts looking at this thing.

There's an option called "Ignore starting obligation size limit" that does that. It's not a grant, just an option.

Actually, the regular obligation rule (can't have more than starting size) is there to make it symmetrical with duty, which already has that limitation by its nature. With duty, it's the amount of duty you don't take, which limits itself to 0 duty. With obligation, it's the amount you do take, which, if the rule wasn't there, could be unlimited. That's why, by RAW, you can only benefit from extra obligation up to starting size.

In other words, if starting size is 10, and you get benefits from duty that you don't take, you can only ever benefit from taking no duty at all, which is -10 duty. So, to make obligation work the same way, you're supposed to only be able to take extra obligation up to 10 (or 20 total obligation).

I admit that the RAW is kind of weird and hard to understand, but if you look at it this way, it makes sense why it's there.

It doesn't work exactly as I need to, or maybe I am doing it wrong.

I'll explain by example: We start with 5 Duty, The Char in Question, let's call him R4-ND1 (Randi) has 5 Duty in Support

He want's to keep those, but the player wants to take additional XP so he asks me (the GM) if he can take 10 obligation.

I will allow this, and since I want to keep track of my players using your wonderful tool It would be easies for this to be represented properly. So is there a way?

I would need a Obligation starting size "0". That would be grand!

Edited by MOELANDER

I am seeing attachments for the Verpine Heavy Shatter Rifle (Gunnery that are only available for Ranged Heavy.

Edited by Arrakus

Even though it uses Gunnery, it didn't seem like a Portable Gunnery weapon, but rather a rifle. That's why rifle attachments are shown. That was just my interpretation, though. If you want, you can ask a dev what sorts of attachments work on it.

Unless someone finds a major bug, this will probably be the last bug fix release for 1.6.

Release 1.6.0.3 Bug Fix
  • Clicking "New" on the character pane to create a new character would cause an exception. This has been fixed.
  • Added Suijo Warde's holocron from "Chronicles of the Gatekeeper".
  • Fixed a bug that caused attachments or items with the "add hard point" descriptor to multiply the HPs gained by the number of attachments on the item.
  • When creating a base, none of the buttons did anything. They now work as they should.
  • Removed the custom tag from Warde's Foresight Force power
  • The motivation Cause, specific motivation Freedom was being displayed as Revenge. It now says Freedom.
  • The TIE/BR boarding shuttle had an incorrect source. It is now set to "Age of Rebellion Core Rulebook".
  • Added the Jet Pack vehicle profile from Edge of the Empire CRB.
  • The adversary and vehicle stat blocks for the stat block feature weren't being translated. They are now.
  • Standardized the three GM Grant grids a bit more.
  • There was a possibility that bases might lose their career skill if the only source for career skills was from upgrades. This possibility no longer exists.
  • An updated and more standardized German translation file has been included.

so after a long Time I'm back in teh Forum as my EoTE group has a chance of being reactivated.

just updated my Generator for teh first time in a while and noticed some thiongs:

My Character was tehre in a really old version, with a totally wrong date. Foudn the old XML file in the data folder and could improt it properly, but it was still confusing (dont remember what version I upgraded from)

Also the Programm is now German. While I appreciate the translation work in theory, I prefer english, is there any way to change that, without changing my system settings?

But besides that, keep up the good work dude, as always, and may the force be with you. ;)

Oh: and too all: Have fun in the star wars movie. ^^

Anytime I delete a previously added custom item such as a vehicle or weapon, I get an exception crash, the output code is in the tags below...it's a long one so I gave you what I think you need, if you need more, just say.

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException()
at SWCharGen.DataCollection`1.set_Item(Int32 index, T value)
at SWCharGen.DataCollection`1.Merge(DataCollection`1 customCollection)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at SWCharGen.CharData.MergeOne(IEnumerable`1 custList, Boolean reload)
at SWCharGen.frmSWDataEditMain.btnRemove_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at SWCharGen.ImageButton.OnClick(EventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at SWCharGen.ImageButton.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
SKIPPED
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Edit: Great job on the Jetpack vehicle, I love having access to that...just one teeny tiny problem, its default text:

Please see page 181 of the Age of the Empire Core Rulebook for details.

Know about a new core book that we don't Ogg? :P

Edited by Ebak

To speed up look-ups, I added a dictionary/hash table to the base data collection class. It can occasionally get out of sync, in which case I just re-create it. During a merge, it was assuming that because an item was found in a look-up, that it actually existed in the collection :) Well... not necessarily. Now, if it doesn't exist, it re-creates the look-up table and just adds the item to the collection.

And yes, my brain gets the two CRBs confused on occasion :) Both issues are resolved. I guess I'll have to do another bug-fix release. Sometime tomorrow after I see TFA.

Enjoy the film! And sorry to be reporting so many issues.

Do not forget to update your signature saying what version you are on. Still says 1.6 12/14.

Just D/L the latest version and it won't even load at all. V1.5 worked great and I've tried running all applications as admin with eset turned off and none of them will work. Any idea what might be going on?

**Edit. Couple of hours later and it just works for no reason**

Edited by AlphaDeadOne

Oggy, thanks for the great work! Your program has been a lifesaver for my group.

I haven't found a way to do a mass import/export of adversaries. Am I missing something or could this be added as a future function?

Also, for anyone that is interested, I have had some decent luck running this program on Linux under Wine. The program itself works but under I can't view the descriptions of talents and the character sheets won't print. I have to actually run it under Windows for those two things to work properly. Still, it's something. If any other Wine users have gotten this to work please share your secret.

Just found the Language Button, msut have been blind yestarday :o

When it rains it pours. Keeping the Peace just came out and has a whole bunch of new (AWESOME) stuff in it.

Sorry Oggdude. Let me know if there is anything I can do to help.

Question about custom items for adversaries. Can't put a description in now? Also in 1.5 it would print off special rules that you typed out for them. I would like to avoid putting them in as general items so then I can avoid players who might be updating their character sheets from seeing some of the special gear. Thanks

Do not forget to update your signature saying what version you are on. Still says 1.6 12/14.

I don't bother updating bug fix versions since it's kind of a pain to do. If I do a minor release down the road, I'll update it to 1.6.1.

Oggy, thanks for the great work! Your program has been a lifesaver for my group.

I haven't found a way to do a mass import/export of adversaries. Am I missing something or could this be added as a future function?

Also, for anyone that is interested, I have had some decent luck running this program on Linux under Wine. The program itself works but under I can't view the descriptions of talents and the character sheets won't print. I have to actually run it under Windows for those two things to work properly. Still, it's something. If any other Wine users have gotten this to work please share your secret.

You can do multi-select imports (shift-selecting multiple files, etc.), but you can only export one at a time.