Another Character Generator

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

Oggy, I was trying to add a blaster rifle with a built on Blaster Energy Dampner but I could not find a way to do that.

Could you enlighten me on how I would do that?

Oggy, I was trying to add a blaster rifle with a built on Blaster Energy Dampner but I could not find a way to do that.

Could you enlighten me on how I would do that?

Sure! The BED adds three mods to the blaster:

  • Ad-hoc Mod: "Increases the difficulty of checks made to detect this weapon's fire by one"
  • Standard Mod: Reduce Damage Mod (count: 1)
  • Ad-hoc Mod: "Add 1 setback die to checks made to detect this weapon's fire" (optional)

So, make a copy of a blaster rifle, change the name and key, if desired, and add those three mods to "Base Mods". For the first and third, just type in the description in the ad hoc description text box. For the second one, check the "Other" check box and find "Reduce Damage Mod" in the list. Keep the count at 1 and it'll reduce the weapon's damage by one.

That should be it.

Edit: Just noticed that the third mod is optional, so add it or not depending. Also, you may want to subtract 1 from the available HP for the new rifle to reflect the cost of the "attachment".

Edited by OggDude

Oggy, I was trying to add a blaster rifle with a built on Blaster Energy Dampner but I could not find a way to do that.

Could you enlighten me on how I would do that?

Sure! The BED adds three mods to the blaster:

  • Ad-hoc Mod: "Increases the difficulty of checks made to detect this weapon's fire by one"
  • Standard Mod: Reduce Damage Mod (count: 1)
  • Ad-hoc Mod: "Add 1 setback die to checks made to detect this weapon's fire" (optional)

So, make a copy of a blaster rifle, change the name and key, if desired, and add those three mods to "Base Mods". For the first and third, just type in the description in the ad hoc description text box. For the second one, check the "Other" check box and find "Reduce Damage Mod" in the list. Keep the count at 1 and it'll reduce the weapon's damage by one.

That should be it.

Edit: Just noticed that the third mod is optional, so add it or not depending. Also, you may want to subtract 1 from the available HP for the new rifle to reflect the cost of the "attachment".

Thank you so much, now that I understand that it will make it easier to create more custom weapons.

For your tree conundrum, have you considered laying it on it's side? So that the branches are stacked on top of one another and indentations display level?

That way it's concise for the user to read and yet powerful if they want to incorporate multiple levels and relationships. It has the added benefit of adhering to the vertical scrolling convention rather than a horizontal one...

Try 3 inputs. The first is a list of entities (type-driven dropdown), the second is a comparator (dropdown), the third is raw input.

Adding another level would bring up a fourth column which would describe the relationship between the levels: and, or, not, etc...

You could also add a begin/end parenthesis before and after each level to allow groups of complex parameters to be related.

Just a thought, but I've had success with UIs of this nature in search engines I've written in the past.

I've written UI very similar to the above. The problem we/I ran into was it begins to get kind of hard to follow the logic once you add a few items of criteria. And that's before you start getting into grouping.

The rules are basically expressions, and expressions are in a tree (hence, they're normally referred to as "expression trees"). So... you could have, say, the top being the top-most expression, and then any nested expressions for the left and right operands would be shown below the top one. The only problem with this is that complex expressions could have multiple levels and each level would exponentially grow as a power of 2 (that is, second level would have two expressions, third would have 4, then 8, 16, etc.). So, with a UI like that, there'd be a practical limit before the UI just got way too complicated to keep track of.

Of course, even though the rules (which are, again, expressions) are organized in a tree, it doesn't mean that a tree is necessarily the best way for the end user to visualize them. Also, when creating a report, a user will just want to apply a filter, and doesn't really want to get into the nitty-grity understanding of how rules work. Ultimately, I want the UI to be as simple as possible so non-nerds won't have an issue understanding what's going on. Having a natural language parser would be great, but is a bit outside the scope of project. :)

So... there will still have to be a concept of a "rule". A rule will work on a particular type of object (ie, Weapon, Armor, Talent, Motivation, etc.). A rule will have a left operand, an operator, and a right operand. An operand could be a scalar property of the object (Type, Damage, Crit, etc), a collection property of an object (Qualities, BaseMods, etc), or a simple arithmetic combination, such as "Qualities.Count+Damage-DamageAdd; all examples based on Weapon). Non-scalar objects can be accessed using a dot-operator, such as "Qualities.Count", in the last example. It can also be another rule, which you can visually as being another expression within parentheses.

Besides equality rules (Equal, LessThan, GreaterThan, etc), there can also be arithmetic rules (MDAS), logical rules (And and Or), and enumeration rules (Exists and Contains). The top-level rule can't be an arithmetic rule, since the outcome of a filter is always true or false (either include the object or not). Other rules can except different things for their operands. For instance, a logical rule requires true/false expressions for each operand, so it wouldn't except an arithmetic rule, etc.

That's the basics of the filter rules. Again, any help with the UI would be great. So far, the ever-expanding tree is the one that makes the most sense to me, but I'm a programmer, not a normal person :) so that may not be what would make sense for others.

I have not flipping clue what you all said.

But it all sounds f'n great!

Cannot wait to see something.

Hey Ogg, is it possible to add in a function to modify adversaries as you add them to an encounter? I have set-up a number of encounters with adversaries pulled from the generator but I wanted to swap out weapons and equipment etc, at the moment to do this I have to copy the adversary to make a unique version, it would be a lot easier if i could do this on the fly.

Maybe give adversaries a default and a custom weapons option?

(Its not a big deal but is a 'nice to have' option).

For your tree conundrum, have you considered laying it on it's side? So that the branches are stacked on top of one another and indentations display level?

That way it's concise for the user to read and yet powerful if they want to incorporate multiple levels and relationships. It has the added benefit of adhering to the vertical scrolling convention rather than a horizontal one...

Actually, I think I have a solution. Instead of all the dynamic rule controls, expanding trees, and all that headache, I just wrote a stack-based expression parser for the rules. So, if you enter something like this:

VehicleWeapons Any (FiringArcs.Starboard Equal True) And (Handling GreaterThan 1)

It'll parse it to this (using .NET expressions):

(Param_0.VehicleWeapons.Any(Param_1 => (Param_1.FiringArcs.Starboard == True)) And (Param_0.Handling > 1))

That's a lot more readable than visual expression trees that would have to be created backward (or at least inside out). What I'll do is have some helper lists with properties and operators you can just double-click to add to your string. Then, of course, you can test it to make sure the grammar is correct. And, of course, I no longer need to serialize the rules, since I can just save the filter string :)

Hey Ogg, is it possible to add in a function to modify adversaries as you add them to an encounter? I have set-up a number of encounters with adversaries pulled from the generator but I wanted to swap out weapons and equipment etc, at the moment to do this I have to copy the adversary to make a unique version, it would be a lot easier if i could do this on the fly.

Maybe give adversaries a default and a custom weapons option?

(Its not a big deal but is a 'nice to have' option).

Encounters don't actually contain adversaries. They contain keys to stored adversaries, which are then loaded when needed. To do this, I'd need to save custom adversaries with the encounter, which isn't how it works.

The program appears to stack damage from claws )on Trandoshans and Cathar) when using a brawling weapon. While the RAW is unclear I'm inclined to believe that claws and vibroknucklers (or whatever) probably don't actually stack.

I have a feature request: Is there any way for the program to show "what's changed" when a new version of a character is imported into the tool? My players update their characters and then send me the exported XML file. I can import the character and it will overwrite the existing version, but there's no easy way to determine what has changed short of printing out the old one and running through the tool to cross-check.

My thinking is that, when importing a new XML file, the program checks against the old file and notes which fields have changed, then either provides a list or marks the field that has changed. It can be top-level, e.g. a skill might be written in red if it has changed from the last version, a newly-selected talent may have a red border instead of grey, a newly purchased Specialization or Force Power might be listed in red in the drop-down on the appropriate page, new (or changed, e.g. modded) weapons, gear and armor might show as red. I don't propose recording the old value and the visibility of the change notification could be selected on/off. Furthermore this would only show up in the tool itself, I'm not suggesting that anything different gets printed to the output character sheets.

Thoughts?

I have a feature request: Is there any way for the program to show "what's changed" when a new version of a character is imported into the tool? My players update their characters and then send me the exported XML file. I can import the character and it will overwrite the existing version, but there's no easy way to determine what has changed short of printing out the old one and running through the tool to cross-check.

My thinking is that, when importing a new XML file, the program checks against the old file and notes which fields have changed, then either provides a list or marks the field that has changed. It can be top-level, e.g. a skill might be written in red if it has changed from the last version, a newly-selected talent may have a red border instead of grey, a newly purchased Specialization or Force Power might be listed in red in the drop-down on the appropriate page, new (or changed, e.g. modded) weapons, gear and armor might show as red. I don't propose recording the old value and the visibility of the change notification could be selected on/off. Furthermore this would only show up in the tool itself, I'm not suggesting that anything different gets printed to the output character sheets.

Thoughts?

Another way to do this would be a dated change log.

I use xp logs like this in any non level game. an automated one linked to the builder prevents just making it up.

Hey Oggy

I have created an Inquisitor with the Adversary creator. This inquisitor used a custom weapon that uses the lightsaber skill, and the Inquisitor's ability to use an alternative attribute doesn't seem to work on this custom weapon. Are there any solutions to this?

I would also appreciate a change log, would enable me as a GM to keep track of the XP I've given out over the course of an adventure and check for discrepancies.

I currently have the Character Generator Release 1.4.5.3 using the unzip method to install on my laptop. I uploaded most of the source materials from the books that I own. I would like to take that work and transfer it to the character generator I have on my desktop that is web-installed version 1.6.3.0. What is the process to do this? I attempted to export my data and then bring those folders over to the desktop to then import, but I got an error saying that importing this data would delete the motivations data. I am assuming this is because the newer version includes motivations while the older version does not.

Exact message:

The Data Set for "Complete" in this ZIP archive cannot be installed because other data is referencing items that will be removed. The items referenced, and their data sets, are as follows:

-Motivation Drive, Specific Motivation DRIVECOMMAND

Any help with being able to salvage this information would be greatly appreciated. I would rather not re-type in everything.

Edited by Raptor2442

Hey Oggy

I have created an Inquisitor with the Adversary creator. This inquisitor used a custom weapon that uses the lightsaber skill, and the Inquisitor's ability to use an alternative attribute doesn't seem to work on this custom weapon. Are there any solutions to this?

That's a small bug that's been there since FaD came out :) It'll be fixed for the next release.

I currently have the Character Generator Release 1.4.5.3 using the unzip method to install on my laptop. I uploaded most of the source materials from the books that I own. I would like to take that work and transfer it to the character generator I have on my desktop that is web-installed version 1.6.3.0. What is the process to do this? I attempted to export my data and then bring those folders over to the desktop to then import, but I got an error saying that importing this data would delete the motivations data. I am assuming this is because the newer version includes motivations while the older version does not.

Exact message:

The Data Set for "Complete" in this ZIP archive cannot be installed because other data is referencing items that will be removed. The items referenced, and their data sets, are as follows:

-Motivation Drive, Specific Motivation DRIVECOMMAND

Any help with being able to salvage this information would be greatly appreciated. I would rather not re-type in everything.

It basically means that you already have a data set named "Complete", and if you overwrite it with the new one, then it'll remove the specific motivation changes you made on your desktop (the separate specific motivation table was introduced in 1.5, so your laptop still has the old combined table). In other words, it's trying to protect your data. You probably already started updating specific motivations on your desktop inside the "Complete" data set, and since your laptop won't have this data, you'll lose it if you copy the data set over.

What you might want to do is create a new data set on your desktop, then go into move/copy mode and move your specific motivation changes to the new data set. That way, when you import the other data set, specific motivations won't be overwritten and it won't complain.

You could also move the specific motivations XML file out of the data set folder on your desktop, then do the Import, then move it back to the data set folder. It'll accomplish sort of the same thing by protecting your specific motivation changes.

I would also appreciate a change log, would enable me as a GM to keep track of the XP I've given out over the course of an adventure and check for discrepancies.

Definitely not for the next release, since I have my plate full with reporting. I'll think about it though :)

I'm sure this comes up often but I'm either terrible at searching or it happens so often that I don't see it (lol). Id like to export my file to my desktop as a pdf. Obviously the application cannot do that, at least I havent seen, because I am here typing this. I looked into it, so that I could find an answer already provided but I searched the FAQ and I saw OggDude reply to someone who wanted to print their files. I dont want to print it, I just want a pdf. Ive tried converters and everything and they cannot seem to pick up the file. Ive tried to change the files and everything, and I am not savvy enough to do it. Anyone have a quick fix??

Use CutePDF or one of the other print-to-PDF drivers.

OggDude’s program does not have it’s own method of exporting to PDF.

Use CutePDF or one of the other print-to-PDF drivers.

OggDude’s program does not have it’s own method of exporting to PDF.

The website doPDF which is what I saw Oggdude used requires that I print the file in order to turn it into a PDF, but I'll try this as I just want the PDF. Thank you!!!

Use CutePDF or one of the other print-to-PDF drivers.

OggDude’s program does not have it’s own method of exporting to PDF.

The website doPDF which is what I saw Oggdude used requires that I print the file in order to turn it into a PDF, but I'll try this as I just want the PDF. Thank you!!!

That's how utilities like that work. You "print" to the program (for example, CutePDF), and the output, rather than being a hard copy, is a .pdf file.

Heya, first of all: Really enjoy your tool! I have a few questions, though:

  • When will races, talents etc. from Special Modifications be added approximately?
  • What information did you use for those races not yet found in any of the sourcebooks? E.g. Besalisk and Dug have different statistics in Special Modfications compared to your tool. Did you create these yourself or are these from sources I just don´t own (like AoR or FaD)?
  • Also, when I modify descriptions etc. in your tool, will these be overwritten by your future updates?

Thanks again and keep up the great work :)

PS: I apologize if these questions were answered before. I scanned the last pages, but 300+ pages are a bit much ;)

Edited by Acrydibilis

When you modify descriptions your data should be safe, because your user data is stored in a different place (usually under User - your user name - roaming - swchargen - datacustum).


  • When will races, talents etc. from Special Modifications be added approximately?

Hmm. I thought they were already there?

  • What information did you use for those races not yet found in any of the sourcebooks? E.g. Besalisk and Dug have different statistics in Special Modfications compared top your tool. Did you crate these yourself or are these from sources I just don´t own (like AoR or FaD)?

Those are from the “Unofficial Species Menagerie”.

  • Also, when I modify descriptions etc. in your tool, will these be overwritten by your future updates?

I imagine that they will be moved to another dataset that is specific to the USM, but is not loaded automatically. That way you should be able to choose which version you want.

I had an issue on Sunday, where after my gaming session, I went into the GM tools to award the group their experience that they had earned. when next we went to look at the characters all 6 of the character that were granted experience had their race changed by the program somehow. I suddenly had a party of 5 kushiban, instead of a twi'lek, a verpine, a Corellian human and 3 humans.

Not too hard to fix, just a little mind boggling that it happened.

Any thoughts?

I have once again encountered an issue where the program has changed the race of a character. This time, I noticed before I saved any changes. I opened the race list to switch it back to human and that wasn't an option. What it did was remove all of the races that are provided by the program, leaving only the 2 races that I created in the generator, the Kushiban and the Trianii. Since the program was forced to choose one of those races, I assume it picked the first alphabetically.

So, without saving, I closed out the program and relaunched it. All of the races were present on relaunch.

It had also removed all of the weapons and equipment that the character had, it kept the armor though.

Anybody else having similar issues?

Since then, I have uninstalled the program and reinstalled it. I'll keep you posted in case it happens again.