[Utility] GSBEdit: any modder interest? (was: Modding tools)

Great to read that ^^

I’ll surely keep watching this to help in it being a nearly perfect tool for modding gsb. Is something we’ve been needing for long :wink:

Before I head to bed, a screenshot taken in Windows. This should look a bit more natural to some of you.

Ow, very good job so far. Some things i noticed, where u put “unlocked” its, “locked”, it will be a good extra to have information stats of the original race modules while u make a new one, for example, if u are filling the data of the engines, below the field that u are writing u can write something like “EX.: Original Cruiser engine iii thrust: 117 (or watever it is, cant remember)”, so people have a reference to make better balance of the modules in the real time. For me, its the same time making the modules just copying/paste a original module and just modyfing the 5 or 6 values i want in the text editor. Cuz when i make new modules i need a little reference of the original ones, i cant write the values randomly (and i need to make some calculations depending of some weapons, like the radiation damage). And, i know your tool is in a beta state, but i suposse u will include the other important fields ? (like weight, cost, power consumed, turret size, etc…well, all the others that arent in your screencaps).

BTW, thx for the effort, a lot of people will be very pleased -.-

As a suggestion, you could include something similar to “tool tips” for the different variables for the modules

For example if your building a tractor beam and want to know what “beampower” does, you could right click, hover mouse over or something similar and get a discription of what the variable does.

This is my list, the discriptions could be better and i havn’t reviewed it in awhile but it should have 99% of the variables.

armour_penetration - The amount of armor that the weapon can penetrate (if armor of target is higher, the weapon is not effective)
beam_duration - How long the beam is drawn on the screen (in milli seconds - ie 1000 = 1 second)
beam_texture - the dds file used to draw the beam between the target and the turret
beam_width - how wide the beam is
beampower - the size of the capacitor for the tractor beam
beamweight - the amount of weight applied by the tractor beam
blasttexture - the dds file used to draw the turret muzzle flare
category - what group the module will appear in (Weapons,Defense,Engines,Other)
classname - which type of module you are using and there are many:
- SIM_ArmourModule
- SIM_BeamWeaponModule
- SIM_BulletWeaponModule
- SIM_CamoflageShieldModule
- SIM_CarrierModule
- SIM_ECMBeamModule
- SIM_ECMShieldModule
- SIM_ECMShockModule
- SIM_EngineModule
- SIM_KineticWeapon
- SIM_LightningGunModule
- SIM_LimpetLauncher
- SIM_MissileModule
- SIM_PDScannerModule
- SIM_PlasmaLauncherModule
- SIM_PointDefenseModule
- SIM_PowerModule
- SIM_RepairModule
- SIM_ShieldModule
- SIM_SmartBombModule
- SIM_TargetBoosterModule
- SIM_TargetPainterModule
- SIM_TractorModule
cloak_consumptionrate - How quickly the cloak drains the power
cloak_rechargerate - how quickly the cloak regains power
color - Only used in SIM_BulletWeaponModule and can only have a value of 0 to 8
convergence - Used for when you want your beams to join forces (only works on turrets with multi hard points)
cost - how much money you need to have that weapon on the ship
crew_required - Number of crew needed to operate the module.
damage - How much hurt the module does when it penetrates the shield / armour
damage_duration - used for radiation weapons, how long the target is effected by radiation
description - Used in the ship build screen, its is used to tell the player what the module is and what it does.
drift_decelleration - How quickly a limpet slows down
ecm_strength - How strong the ecm is for beams/missiles - how much the module can withstand for ECM shields.
end_launch_speed - How fast the limpet travels
fire_interval - how often the module fires (in milli seconds - ie 1000 = 1 second)
firedelay - how long it takes for the beams to join and reach its target.
flareuvid - chooses the colour of the glowy blob over the missile value between 0 - 3
fuel - how long the missile / plasma will go for.
grain - the dds file that provides a overlay pattern for the beam
guiname - used in the ship build screen, its the name of the module
has_decoys - does the missile break into separate missiles
has_flare - does the missile have a glowy blow drawn over it
has_grain - Does the beam have a pattern drawn over it
has_splines - does the missile travel along a spline path with a smoke trail
height - used to change how tall the bullet is
hitpoints - how much damage the module can take before destruction
icon - for weapons its "turret" for everything else its the dds file that has a picture of the module. Unless you have a specific icon for your weapon that you want to use :)
launch_duration - How long it takes for the limpet to slow down after launch
limpet_weight - how much weight the limpet adds to the target once attached
limpetsize - how big the limpet is drawn ingame
lockable - can this module be used right away or do you have to earn it
max_cloak_power - maximum power capacity of the cloak
max_range - maximum range that the module is effective
max_seek_speed - the top speed of the limpet when chasing a target
maxdamageabsorbable - how much damage the armour can take
maxrepairsupplies - how much damage the module can repair
min_range - the minimum range that the module is effective
missilelength - how long the missile is
missilewidth - how wide the missile is
name - the Unique name of the module, used by the code, not seen by the player.
optimum_range - the range when the module inflicts the most damage
payload - When your bullet hits the target, what type of damage can it do (at the moment its only RADIATION)
peace_interval - the minimum time for the module not to be under attack to activate.
powerconsumed - how much power the module needs to operate
powerproduced - how much power the module produces
powerrecharge - how quickly the tractor beam capacitor recharges
powerusage - how much power the tractor beam uses from the capacitor per cycle
radiation_damage - the initail amount of damage done by radiation
radiation_decay - how quickly the radiation damage falls off
range - how far the tractor beam can reach
recharge_rate - how quickly the shields can recharge after being damaged
repair_rate - how quickly the module can repair damage per second
repair_type - used if you want a repair module to focus on one aspect (at the moment its only armor)
resistance - how much the shield can reflect or the level of shield penetration required to cause damage
restricted - is this module only for one race
salvo_interval - length of time between volleys
salvo_size - how may shots in a volley
sb_trigger_percentage - the chance that the smart bomb will detonate the missile
scanner_accuracy - how well a module can determine the difference between a decoy and the warhead
seek_acceleration - how fast the limpet accelerates towards a target
seek_range - how far the limpet will look for a target
shield_penetration - The level of shield that the weapon can penetrate (if shield resistance of target is higher, the weapon is not effective)
shieldpoints - the amount of hitpoint the shield has
shock_duration - how long the ECM is in effect on the target ship (in milliseconds 1000 = 1 second)
size - what class of ship is the module fore (Fighter, frigate or cruiser)
slot_type - What type of module is it Standard or Turret
sound - what ogg sound file to play make when it fires.
soundvolume - controls the volume of the sound file
speed  - how fast the projectile moves
spritesize - how big to draw the sprite used for plasma weapons
stack_effectiveness - When you have more than one of the module, the performance will change by x%
start_launch_speed  - how fast the limpet is when launched
style - used in the PlasmaLauncherModule, you can switch between the 2 types FRAGMENTED & STANDARD
submunitionslive - used to make the decoys do damage
targetboost - how much faster to other modules track a target
texture - the dds file used to span between the turret and target
thrust - the amount of force generated by the module to move the ship
total_damage - the total amount of damage done by the radiation
tracking_speed - the turning spead of the module, the faster the module turns the better chance of hitting fast targets
trail_fade_time - time it takes for the missile trail to fade
turn speed - how quickly the missile / limpet can turn.
turret_sprite - a refence used by turret mapping which is found in the race file.  Determins the icon and sprite used in the game
turretsize - size of the turret in the game.
uisortpos - User Interface Sort Position.  Where about on the module list does it appear
unlockcost - how much honour do you need to unlock this module
warhead -  determines what type of damage the missile does (ECMSHOCK, RADIATION, DUMMY, EXPLOSION)
weight - how heavy is the module
width - how wide is the bullet / projectile

I think u forgot in the list the variables “num_submunitions, flare_size and num_decoys”.

Yeah, they are recent editions with one of the patches.
I wrote this guide after the swarm DLC. (i think)

‘num_submunitions’ (limit 6) - The number of warheads that missile will break into at decoy release range
‘flaresize’ (default 16) - the size of flare drawn on the missile

Although i have not seen the variable “num_decoys” - so i do not know what it does :S

Thanks for all the comments guys. I’ll try to handle them all in order.

Not quite. I used “unlockable” instead of “lockable”. To me, the word makes more sense, as the thing the user does is unlock the item. The game will have it locked by default, so there is no locking to be done. In this case, the meaning of true and false for the two words are the same, but I can change the word to match the name of the option in the file if people want that.

I was considering giving the user the option of cloning the values from another module when he creates a new one. This way you can start with the values for whichever other module you want (rather than whichever one I pick, which is likely to be irrelevant 99% of the time).

Yep, everything will be accessible.

That will definitely be in there. I remember back in my C&C TS days using SunEdit (am I remembering the name right?), the tooltips for some of the more obscure unit options were a lifesaver.

Thanks, I grabbed the list out of the modding guide thread, but it looks like I have a couple to add now.

Module editor preview:

This window appears when you double-click on a module from the tree view in the main window. The blank area between the module name and the attribute tabs will have buttons for deleting, moving/copying to another mod, and so on.

Woden501: I hope you don’t mind your Tau’ri mod appearing in my shots occasionally?

I don’t mind at all. I just wish I could see the picture :(. I’m not sure if its my internet connection or the picture itself, but it doesn’t appear to be loading.

Image should be ok, I can see it in the post and I’ve double-checked that hotlink protection is turned off for that image. Is anyone else having issues?

It’s working fine now. Must have just been my internet connection at the time.

can be added a weapon modding tool? i mean this…
…Added to that program
Then u chose the sprites and the program assembles the .txts .dds etc

and is far from complete?

Creation and editing of the turret module is almost available already. I was going to take votes on what I should tackle after modules, shall I count a vote from you for linking up the turret sprites?

Oh yes, this is far from complete. My list of intended features is rather on the huge side.

ok, u got my vote

As I don’t have any new screenshots to show off right now, and to avoid anyone thinking the project has died so early in its life, today I have a behind-the-scenes update.

The module creation wizard and the module editor both need some additional information so they can do their job in a useful way. For instance, they need to know what the required fields are for different types of module, and it’d be nice if they could implement some default values. As GSB itself is so moddable, I decided to follow the same philosophy with my tool. In this regard, it has a configuration file which defines a lot of useful information about modules (each definition here is called a template). For example, a very incomplete version of the file could look like:

I’m sure you can see the relationship between different entries. This all means that 1) the wizard can fill in the default values for you based on the module type you select, and 2) the editor can highlight required fields and moan at you if you miss them out.

Now, the configuration file will only include module types existing in the base game (and possibly some popular ones from the community). However, if you drop one of these files into your mod directory, the tool will pick it up and add them to the list. In this way, you can create templates for different types of module that you work with specifically in your mod.

As always, comments, feedback, complaints, and suggestions are welcome.

In progress module configuration file is at http://files.iualdii.net/GSB/modules.cfg

New screen with the different module related parts coming together. If you see one of the old screens here then it’s probably because I’ve been moving files around, you may need to hit refresh in your browser.

Really nice!

As you’re using Python and Linux to make this application, do you have intention to make the application cross-platform?

looking good

By its nature, Python is cross-platform. I’ve done most of the development for this app under Windows actually, I just happened to be doing some other things in Linux when I posted those previous screenshots. The most recent shot was under Windows, and I can confirm that the app works under both OSs quite nicely.

As far as distribution goes, there will be several options. Windows users can either have the Python code to execute as you would any normal Python app. It has been my experience that Windows users don’t like this option though :wink: The alternative is for me to run py2exe over the code and create an .exe to distribute. This is easier for the end user, but wastes disk space if you already have a Python install, as all the required libraries are built into the executable rather than using the ones present on your system. On the other hand, you avoid problems with having incompatible versions of Python or the libraries.

For Linux users it would be a choice between having the source or asking me very nicely to package up a .deb file for automated installation (that’s the only one I can build and test easily, I would be open to others repackaging for other package managers). If there is sufficient interest I could set up a repository so that updates get pushed out to you automatically via your system’s update manager.