This tool will read in source files from X3, perform transforms on them, and write the results back out. Transforms will often perform complex or repetitive tasks succinctly, avoiding the need for hand editing of source files. Many transforms will also do analysis of game files, to intelligently select appropriate edits to perform. Source files will generally support any prior modding. Nearly all transforms support input arguments to set parameters and adjust behavior, according to user preferences. Most transforms will work on an existing save.

This tool is written in Python, and tested on version 3.6. To run this script, the user will need to install Python.

Usage:
* "X3_Customizer <user_transform_module.py>"
- Runs the customizer, using the provided control module which will specify the path to the AP directory, the folder containing the source files to be modified, and the transforms to be run. See User_Transforms_Example.py for an example. Defaults to running 'User_Transforms.py' if an argument is not provided.
* "Make_Documentation.py"
- Generates documentation for this project, as markdown supporting files README.md and Documentation.md.

Setup:
* Transforms will operate on source files (eg. tships.txt) which need to be set up prior to running this tool. Source files can be extracted using X3 Editor 2 if needed. Source files may be provided after any other mods have been applied.

* Source files need to be located in a folder underneath the specified AP addon directory, and will have an internal folder structure matching that of the files in the normal addon directory. A special case is made for .obj files in the L folder above the addon directory; these should be placed in source_folder/L.

* The user must write a Python script which will specify paths and control the customizer by calling transforms. This script will be called by the customizer and run once. The quickest way to set this up would be to edit the example file. Included in the repository is User_Transforms_Mine, the author's personal set of transforms, which can be checked for futher examples of how to use most transforms available.

* Output files will be generated in the addon directory matching the folder structure in the source folder. Non-transformed files will generate output files. Files which do not have a name matching the requirement of any transform will be ignored and not copied. In some cases, files may be generated one directory up, in the presumed Terran Conflict folder.

Adjust the gap between the start and end fade distance, changing how quickly objects will fade in. This will never affect fade_start, only fade_end.

* Adjust_Particle_Count

Change the number of particles floating in space around the camera. Default game is 100, mods often set to 0, but can keep some small number for a feeling of speed.

* Remove_Stars_From_Foggy_Sectors

Removes star backgrounds from sectors with significant fog and short fade distance. Fogged sectors sharing a background with an unfogged sector will not be modified, as the background needs to be edited for all sectors which use it. Fade is removed from sectors which will not have their stars removed.

* Set_Minimum_Fade_Distance

Sets a floor to fade distance, so that object do not appear too closely. May be useful in some sectors with really short view distances, though may also want to keep those for variety. Note: max fade distance will be set to minimum fade distance if it would otherwise be lower. Recommend following this with a call to Adjust_Fade_Start_End_Gap.

***

Director Transforms:

* Adjust_Generic_Missions

Adjust the spawn chance of various generic mission types, relative to each other. Note: decreasing chance on unwanted missions seems to work better than increasing chance on wanted missions.

Set the starting plots with overtuned ships to have their tunings standardized instead of being random.

* Standardize_Tunings

Set the number of randomized tuning creates at gamestart to be de-randomized into a standard number of tunings. Note: vanilla has 2-5 average tunings per crate, 8 crates total. Default args here reach this average, biasing toward engine tunings.

***

Factory Transforms:

* Add_More_Factory_Sizes

Adds factories of alternate sizes, from basic to XL. Price and volume of new sizes is based on the scaling common to existing factories. Factories will be added to existing shipyards the first time a game is loaded after running this transform; this may take several seconds to complete, during which time the game will be unresponsive. Warning: it is unsafe to remove factories once they have been added to an existing save.

***

Gate Transforms:

* Adjust_Gate_Rings

Various options to modify gate rings, with the aim of reducing capital ship suicides when colliding with the pylons shortly after the player enters a sector. Includes ring removal, rotation, reversal, and model swaps. Inactive versions of gates will also be updated for consistency. When applied to an existing save, gate changes will appear on a sector change.

***

Global Transforms:

* Adjust_Global

Adjust a global flag by the given multiplier. Generic transform works on any named global field.

* Adjust_Strafe

Strafe adjustment factor. Note: this does not appear to have any effect during brief testing.

* Set_Communication_Distance

Set max distance for opening communications with factories and ships.

* Set_Complex_Connection_Distance

Set max range between factories in a complex. With complex cleaner and tubeless complexes, this can practically be anything, particularly useful when connecting up distant asteroids.

Set a global flag to the given value. Generic transform works on any named global field.

***

Job Transforms:

* Add_Job_Ship_Variants

Allows jobs to spawn with a larger selection of variant ships. This does not affect jobs with a preselected ship to spawn, only those with random selection. Variants are added when the basic version of the ship is allowed, to preserve cases where a variant has been preselected.

* Adjust_Job_Count

Adjusts job ship counts using a multiplier. These will always have a minimum of 1. Jobs are matched by name or an attribute flag, eg. 'owner_pirate'. This will also increase the max number of jobs per sector accordingly.

* Adjust_Job_Respawn_Time

Adjusts job respawn times, using an adder and multiplier on the existing respawn time.

* Set_Job_Spawn_Locations

Sets the spawn location of ships created for jobs, eg. at a shipyard, at a gate, docked at a station, etc.

Adds terran missile compatibility to commonwealth ships, and vice versa. Missiles are added based on category matching, eg. a terran ship that can fire light terran missiles will gain light commonwealth missiles. Note that AI ship loadouts may include any missile they can fire.

Adjust the hull value for all missiles by the scaling factor. Does not affect boarding pod hulls.

* Adjust_Missile_Range

Adjust missile range by changing lifetime, by a flat scaler or configured scaling formula. This is particularly effective for the re-lock missiles like flail, to reduce their ability to keep retargetting across a system, instead running out of fuel from the zigzagging.

Makes mosquito missiles more maneuverable, generally by increasing the turn rate or adding blast radius, to make anti-missile abilities more reliable.

* Expand_Bomber_Missiles

Allows bombers and missile frigates to use a wider variety of missiles. Bombers will gain fighter tier missiles, while frigates will gain corvette tier missiles. Terran ships will gain Terran missiles. Note that AI ship loadouts may include any missile they can fire, such that bombers will have fewer heavy missiles and more standard missiles.

* Set_Missile_Swarm_Count

Set the number of submissiles fired by swarm missiles. Submissile damage is adjusted accordingly to maintain overall damage.

***

Obj Transforms:

* Adjust_Max_Seta

Changes the maximum SETA speed multiplier. Higher multipliers than the game default of 10 may cause oddities.

* Adjust_Max_Speedup_Rate

Changes the rate at which SETA turns on. By default, it will accelerate by (selected SETA -1)/10 every 250 milliseconds. This transform will reduce the delay between speedup ticks.

* Disable_Asteroid_Respawn

Stops any newly destroyed asteroids from being set to respawn. This can be set temporarily when wishing to clear out some unwanted asteroids. It is not recommended to leave this transform applied long term.

* Disable_Combat_Music

Turns off combat music, keeping the normal environment musc playing when nearing hostile objects. If applied to a saved game already in combat mode, combat music may continue to play for a moment. The beep on nearing an enemy will still be played.

* Set_Max_Marines

Sets the maximum number of marines that each ship type can carry. These are byte values, signed, so max is 127.

* Stop_Events_From_Disabling_Seta

Stop SETA from being turned off automatically upon certain events, such as missile attacks.

* Stop_GoD_From_Removing_Stations

Stops the GoD engine from removing stations which are nearly full on products or nearly starved of resources for extended periods of time. This will not affect stations already removed or in the process of being removed.

***

Script Transforms:

* Add_CLS_Software_To_More_Docks

Adds Commodity Logistics Software, internal and external, to all equipment docks which stock Trade Command Software Mk2. This is implemented as a setup script which runs on the game loading. Once applied, this transform may be disabled to remove the script run time. This change is not reversable.

* Add_Script

Add a script to the addon/scripts folder. If an existing xml version of the script already exists, it is overwritten. If an existing pck version of the script already exists, it is renamed with suffix '.x3c.bak'. Note: this is only for use with full scripts, not those defined by diffs from existing scripts.

Apply bug fixes to the Complex Cleaner mod. Designed for version 4.09 of that mod. Includes a fix for mistargetted a wrong hub in systems with multiple hubs, and a fix for some factories getting ignored when crunching. Patches plugin.gz.CmpClean.Main.xml.

* Complex_Cleaner_Use_Small_Cube

Forces the Complex Cleaner to use the smaller cube model always when combining factories. Patches plugin.gz.CmpClean.crunch.xml.

* Convert_Attack_To_Attack_Nearest

Modifies the Attack command when used on an owned asset to instead enact Attack Nearest. In vanilla AP, such attack commands are quietly ignored. Intended for use when commanding groups, where Attack is available but Attack Nearest is not. This replaces '!ship.cmd.attack.std'.

* Disable_OOS_War_Sector_Spawns

Disables spawning of dedicated ships in the AP war sectors which attack player assets when the player is out-of-sector. By default, these ships scale up with player assets, and immediately respawn upon being killed. This patches '!fight.war.protectsector'.

* Fix_OOS_Laser_Missile_Conflict

Allows OOS combat to include both missile and laser fire in the same attack round. In vanilla AP, a ship firing a missile will not fire its lasers for a full round, generally causing a large drop in damage output. With the change, adding missiles to OOS ships will not hurt their performance.

* Fleet_Interceptor_Bug_Fix

Apply bug fixes to the Fleet logic for selecting ships to launch at enemies. A mispelling of 'interecept' causes M6 ships to be launched against enemy M8s instead of interceptors. Patches !lib.fleet.shipsfortarget.xml.

* Increase_Escort_Engagement_Range

Increases the distance at which escort ships will break and attack a target. In vanilla AP an enemy must be within 3km of the escort ship. This transform will give custom values based on the size of the escorted ship, small, medium (m6), or large (m7+).

***

Shield Transforms:

* Adjust_Shield_Regen

Adjust shield regeneration rate by changing efficiency values.

***

Ship Transforms:

* Add_Ship_Combat_Variants

Adds combat variants for combat ships. This is a convenience function which calls Add_Ship_Variants with variants [vanguard, sentinel, raider, hauler], for ship types [M0-M8]. See Add_Ship_Variants documentation for other parameters.

* Add_Ship_Equipment

Adds equipment as built-in wares for select ship classes.

* Add_Ship_Life_Support

Adds life support as a built-in ware for select ship classes. This is a convenience transform which calls Add_Ship_Equipment. Warning: mission director scripts do not seem to have a way to check for built in wares, and typically use a special TP check to get around this. Other ship types with built-in life support will not be able to pick up passengers in some cases.

* Add_Ship_Trade_Variants

Adds trade variants for trade ships. This is a convenience function which calls Add_Ship_Variants with variants [hauler, miner, tanker (xl), super freighter (xl)], for ship types [TS,TP,TM,TL]. See Add_Ship_Variants documentation for other parameters.

* Add_Ship_Variants

Adds variants for various ships. Variant attribute modifiers are based on the average differences between existing variants and their basic ship, where only M3,M4,M5 are analyzed for combat variants, and only TS,TP are analyzed for trade variants, with Hauler being considered both a combat variant. Variants will be added to existing shipyards the first time a game is loaded after running this transform; this may take several seconds to complete, during which time the game will be unresponsive. Warning: it is unsafe to remove variants once they have been added to an existing save.

* Adjust_Ship_Hull

Adjust ship hull values. When applied to a existing save, ship hulls will not be updated automatically if hulls are increased. Run the temp.srm.hull.reload.xml script from the XRM hull packs to refill all ships to 100% hull. Alternatively, ship hulls will be updated as ships die and respawn.

Adjust ship shield regeneration rate, either globally or per ship class. This may have no effect beyond where all ship shields are powered at their individual max rates.

* Adjust_Ship_Shield_Slots

Adjust ship shielding by changing shield slot counts. Shield types will remain unchanged, and at least 1 shield slot will be left in place. When applied to an existing save, ship shields will not be updated automatically, as some ships may continue to have excess shields equipped, or ships may lack enough shield inventory to fill up added slots.

* Adjust_Ship_Speed

Adjust ship speed and acceleration, globally or per ship class.

* Boost_Truelight_Seeker_Shield_Reactor

Enhances the Truelight Seeker's shield reactor. In AP the TLS has a shield reactor only around 1/10 what is normal for similar ships; this applies a 10x increase. If the TLS is already at least 1/5 of Centaur shielding, this transform is not applied.

* Fix_Pericles_Pricing

Applies a bug fix to the enhanced pericles, which has its npc value set to 1/10 of player value, causing it price to be 1/10 what it should be. Does nothing if the existing npc and player prices are matched.

* Patch_Ship_Variant_Inconsistencies

Applies some patches to some select inconsistencies in ship variants. Modified ships include the Baldric Miner and XRM Medusa Vanguard, both manually named instead of using the variant system. This is meant to be run prior to Add_Ship_Variants, to avoid the non-standard ships creating their own sub-variants. There may be side effects if the variant inconsistencies were intentional.

* Remove_Khaak_Corvette_Spin

Remove the spin on the secondary hull of the Khaak corvette. The replacement file used is expected to work for vanilla, xrm, and other mods that don't change the model scene file.

* Remove_Ship_Variants

Removes variants for selected ships. May be used after Add_Ship_Variants has already been applied to an existing save, to safely remove variants while leaving their tships entries intact. In this case, leave the Add_Ship_Variants call as it was previously with undesired variants, and use this tranform to prune the variants. Existing ships will remain in game, categorized as unknown race, though new ships will not spawn automatically. Variants will be removed from existing shipyards the first time a game is loaded after running this transform.

* Simplify_Engine_Trails

Change engine trail particle effects to basic or none. This will switch to effect 1 for medium and light ships and 0 for heavy ships, as in vanilla AP.

* Standardize_Ship_Tunings

Standardize max engine or rudder tuning amounts across all ships. Eg. instead of scouts having 25 and carriers having 5 engine runings, both will have some fixed number. Maximum ship speed and turn rate is kept constant, but minimum will change. If applied to an existing save, existing ships may end up overtuned; this is recommended primarily for new games, pending inclusion of a modification script which can recap ships to max tunings. Ships with 0 tunings will remain unedited.

***

Sound Transforms:

* Remove_Combat_Beep

Removes the beep that plays when entering combat.

* Remove_Sound

Removes a sound by writing an empty file in its place, based on the sound's id. If a non-empty file is already present in the 's' folder, it will be backed up.

***

Universe Transforms:

* Change_Sector_Music

Generic transform to change the music for a given sector. Currently, this only operates as a director script, and does not alter the universe file. To reverse the change, a new call must be made with a new cue name and the prior music_id.

* Color_Sector_Names

Colors sector names in the map based on race owners declared in the x3_universe file. Some sectors may remain uncolored if their name is not set in the standard way through text files. Only works on the English files, L044, for now. Note: searching sectors by typing a name will no longer work except on uncolored sectors, eg. unknown sectors.

* Restore_Aldrin_rock

Restors the big rock in Aldrin for XRM, reverting to the vanilla sector layout. Note: only works on a new game.

* Restore_Hub_Music

If Hub sector (13,8) music should be restored to that in AP. (XRM sets the track to 0.) Applies to new games, and optionally to an existing save.

* Restore_M148_Music

If Argon Sector M148 (14,8) music should be restored to that in AP. (XRM changes this to the argon prime music.) Applies to new games, and optionally to an existing save.

***

Ware Transforms:

* Change_Ware_Size

Change the cargo size of a given ware.

* Restore_Vanilla_Tuning_Pricing

Sets the price for ship tunings (engine, rudder, cargo) to those used in vanilla AP.

* Set_Ware_Pricing

Sets ware pricing for the given ware list. Prices are the basic values in the T file, and have some adjustment before reaching the game pricing. Currently only works on tech wares in TWareT.txt.

***

Weapon Transforms:

* Adjust_Beam_Weapon_Duration

Adjusts the duration of beam weapons. Shot damage will be applied over the duration of the beam, such that shorter beams will apply their damage more quickly. Longer duration beams are weaker against small targets which move out of the beam before its damage is fully applied. Beam range will remain unchanged. Note: this does not affect fire rate, so multiple beams may become active at the same time.

* Adjust_Beam_Weapon_Width

Adjusts the width of beam weapons. Narrower beams will have more trouble hitting small targets at a distance. In vanilla AP beam widths are generally set to 1, though in XRM the widths have much wider variety. This can be used to nerf anti-fighter defense of capital ships with beam mounts.

* Adjust_Weapon_DPS

Adjust weapon damage/second by changing bullet damage. If a bullet is used by multiple lasers, the first laser will be used for DPS calculation. Energy efficiency will remain constant, changing energy/second.

* Adjust_Weapon_Energy_Usage

Adjusts weapon energy usage by the given multiplier, globally or for selected bullets.

* Adjust_Weapon_Fire_Rate

Adjust weapon fire rates. DPS and energy efficiency will remain constant. This may be used to reduce fire rates for performance improvements. Secondary weapon effects are not modified. If a bullet is used by multiple lasers, the first laser will be used for fire rate damage and energy adjustment.

* Adjust_Weapon_OOS_Damage

Scale OOS damage. Damage may be scaled down to improve accuracy in combat evaluation, at the potential drawback of stalemates when shield regeneration outperforms damage.

Replaces shot effects to possibly reduce lag. This appears to have little to no benefit in brief testing.

* Set_Weapon_Minimum_Hull_To_Shield_Damage_Ratio

Increases hull damage on weapons to achieve a specified hull:shield damage ratio requirement. Typical weapons are around a 1/6 ratio, though some weapons can be 1/100 or lower, such as ion weaponry. This transform can be used to give such weapons a viable hull damage amount.

***

Example input file, User_Transforms_Example.py:

Code:

'''
Example for using the Customizer, setting a path to
the AP directory and running some simple transforms.
'''

If you prefer, you can also set your own custom hull upscaling. I am using an AP style upscale (2x for fighters up to 10x for capitals) in my XRM game. If applying to an existing save, the XRM hull pack script is still needed to update ships back to 100% (if hulls were increased).

While playing tonight, an Oceanus and an I decided to duke it out with their beam weapons, turning the game into a slideshow. As a result, I have added a performance transform to convert beam weapons to standard bullets, setting bullet speed to that of similar DPS weapons. Github is now updated with version 2.01.

Updated version to 2.02, adding support for adjusting generic mission spawn chances. Adjustments can be applied to individual mission types, or to categories (eg. "Trade"). Descriptions for the vanilla AP mission types are found in the full documentation. Additionally, more options were added for mosquito missile enhancement.

Updated to 2.03. This makes some tweaks to ignore repair lasers in several transforms, adds some options to weapon dps adjustments, and adds some new transforms.

Add_Ship_Life_Support:
For select ship classes (M1,M2,M6,M7,TL,TM by default), adds life support as a built in ware. This is aimed primarily at immersion for ships with decks (indicated by marine boarding).

Set_Weapon_Minimum_Hull_To_Shield_Damage_Ratio:
Brings up weapon hull damage values to some fraction of the corresponding shield damage. This is mainly aimed at giving more bite to ion weapons, particularly in XRM where Boron ships often spawn with a full load of ion weapons and have trouble dealing with hulls.

Standardize_Ship_Tunings:
Sets all ships to have a fixed number of engine or rudder tunings, from scouts to carriers. Eg. if set to 10, then capital ships will have increased variation, scouts reduced variation, over tuning will have a similar affect on all ships, and scouts in XRM will be cheaper to tune (and worth less when captured and sold).

Updated to 2.04. The main focus of this update is autogeneration of variant ships. Boreas Raiders, Hyperion Sentinels, Mammoth Super Freighter XLs, etc. Modifiers for the new variants are determined from analysis of existing variants.

Convenience transforms are available to only add combat variants (raider, sentinel, vanguard, hauler) to combat ships, and only trade variants (hauler, miner, super freighter) to trade ships. For example, these add ~1500 new ship entries to XRM.

Variants are primarily available through direct spawning at the moment, but may be selected by the game for some random spawns.

If anyone has any tips on how to easily update shipyards, please let me know. They can be added to x3_universe shipyards easy enough for new games, but I haven't decided how to tackle existing saves.

Updated to 2.05, refining variant ship generation and options. A script is now provided (copied to the /script folder when running the variant generation) which will automatically add the variants to appropriate shipyards. Run it using the in game script editor. Side note: this will blindly add all variants of any base ship to a shipyard that sells that base ship.

The documentation generator has been modified to include more text in the readme file, and to better categorize transforms. This extra text is reflected in the main post. Transform arguments are still in the Documentation.md file.

Note that the new missile compatibilities cause AI ships to spawn with those missiles randomly. In the case of terrans having commonwealth missiles and vice versa, this was not the intended effect, but I don't know if there is any way around it. If anyone knows how to better control the types of missiles ships spawn with outside of changing compatibility settings, please let me know.

Intermediate version 2.07 had a couple more tweaks, adding an option to the variant ship generator to select which existing variant indices will be set to 0 when an existing variant is set as a base ship. Eg. the part that makes a Griffon Sentinel into a basic Griffon from which a Sentinel variant is created. By default, this will only clear variants 16 (Vanguard) and 19 (Hauler).

2.08 focuses on the game bug where, when the player enters a system, capital ships waiting to enter gates will be placed right in front of a gate, where they attempt to turn around and die by colliding with the protruding gate pylons. (When you see a big ship explosion at a distant gate a few seconds after entering a system, this is what is happening.)

The new Adjust_Gate_Rings transform offers several solutions to this problem. It will either rotate gates 45 degrees or 90 degrees to offset the pylons, replace gates with a flipped version of the Hub gate which does not have protruding pylons on one side, replace gates with the Terran gate model, or remove gate rings and leave only a portal. Selection can be made for standard gates and Hub gates separately, and will be applied to inactive versions of those gates for consistency (except in the case of complete ring removal).

I recommend the flipped Hub gate, personally, since it also helps with cases where small ships spawn next to a gate protrusion and bump into it until dead.

The main addition here is Add_Job_Ship_Variants, which will enable spawning of variant ships for various jobs. This does not change those jobs with preselected ships or variants. When used with Add_Ship_Variants, you should see many of the new variants flying around the universe.

The Add_Ship_Variants itself is tweaked in shield error handling. When adjustments are made to a base ship's shield amount, it is difficult to get an exact adjustment due to the way the X3 shield system works (limited to small integers of select shield sizes). The closest shield amount (with no more than 9 shield units) is selected, and the error from the targeted adjustment is recorded. The user can now specify how that error is translated into other ship attributes. Eg. if a ship variant should get +5% shielding, but it has 1x2GJ shielding that doesn't allow this, the +5% can instead be put toward the shield generator or other attributes.

A minor addition is Change_Ware_Size, which will adjust the cargo size of a given ware. I am using this to increase the jumpdrive size in XRM, for instance.

This adds a new option to Adjust_Gate_Rings to use a better, plain ring with no protrusions. I stumbled across it when poking around in the factory models, and like it better than the prior options. By default, the Hub still uses the flipped version of the standard Hub gate, so that the orange coloration is retained.

Also added are a couple minor edits to vanilla scripts. These are just drop-ins to the script folder, with convenience support for enabling/disabling them. Existing .pck scripts are automatically renamed to avoid conflicts (and renamed back when a transform is removed). If you want to grab a script manually without running the whole customizer, feel free to snatch it out of the scripts folder on github.

Disable_OOS_War_Sector_Spawns will tweak an AP script which generates enemy ships to attack player assets in war sectors when the player is not present. In vanilla AP, these spawns scale up with player assets and immediately respawn on being killed. The transform completely disables such spawns. This is done by sticking a continue into the sector check loop (in '!fight.war.protectsector') before it does the spawning; code for handling existing spawns is left in place.

Convert_Attack_To_Attack_Nearest will tweak the basic Attack command (in '!ship.cmd.attack.std') such that, when the player uses it on a player owned ship, the command will be converted to Attack Nearest. In vanilla AP, this case is quietly dropped, so no functionality is expected to be lost as you couldn't attack your own ships anyway. I originally made this change in order to give group Attack Nearest commands to frigate fighter wings.

Updated to 2.11 and 2.12. Version 2.11 was a minor tweak to rename .pck files interfering with modified .xml files. Version 2.12 includes several bug fixes, some tweaks, and two small transforms.

Add_CLS_Software_To_More_Docks will run a script during game loading which adds commodity logistics software to all docks which have trade software mk2. This makes the software more accessible outside of Argon space, particularly when playing hostile to Argon, due to its importance when setting up trade networks.

Remove_Khaak_Corvette_Spin contains an edit to the khaak corvette scene file to stop the spinning animation. This is a matter of taste, but I just don't care for it.

A new option in Adjust_Ship_Laser_Recharge will also adjust ship maximum laser energy (may cause oddities on existing saves).

A safety limit was added for mosquito missile damage to prevent it reaching a scripted threshold (400 damage) which would have allowed usage in OOS (and maybe IS) combat like any other missile, resulting in a ship skipping laser fire for a round to instead shoot a mosquito.

Transforms which adjust laser energy usage have a safety check to ensure a laser can store enough energy to fire at least one bullet, without which a problem came up with mining lasers not being able to fire. There may still be problems with some low-energy ships not being able to fire a mining shot, so mining lasers were added as a by-default ignored laser type to several transforms; this can be overridden by explicitly adjusting the mining laser.

A bugfix is added for missile hull adjustments, after I noticed that the Globals.txt entries are present for XRM but not in vanilla AP. The entries will now be filled in with defaults if not already present, prior to adjustment, using the values from here: https://forum.egosoft.com/viewtopic.php?t=316886&start=68.

An awkward file reading bug was squashed, which showed up after a recent update to my Python development environment. Hopefully no one with a different environment was running into it. I heard no complaints, but maybe that just means no one is using my tool (which is fine; I mainly work on this for myself).

Disable_OOS_War_Sector_Spawns has been switched to using a diff patch, since I didn't like keeping a full copy of the egosoft script around. The diff patch support also lays groundwork for some other possible egosoft script edits in the future. I have some ideas there, but didn't want to wait on them before pushing this update.

Quick update to 2.13, which makes use of script patching to add three new transforms:

Allow_CAG_Apprentices_To_Sell will skip the 2 hour training period on new CAGs before they can sell products. It patches the bonus pack version of the script (plugin.com.agent.main), so the patch may not work if you are using a newer version.

Increase_Escort_Engagement_Range will patch the escort script (!move.follow.template) to deal with the problem of protectors and other types of escorts just flying around slowly while the ship they are escorting is engaging in battle. This applies to 'protect ship', 'attack nearest enemy', and 'attack same target'. The vanilla script will prevent an escort from attacking an enemy more than 3 km away, which doesn't work well for larger ships that can be fighting at 5-6 km+ while their escorts trail 1-2 km away. The patch will adjust the distance check based on the size of the escorted ship, small, medium (m6), or large (m7+). It is parameterized so you can select which distances you prefer, but defaults are 3 km for small, 4 km for medium, 7 km for large.

Fix_OOS_Laser_Missile_Conflict will patch the OOS combat script (!plugin.acp.fight.attack.object) to allow a ship firing a missile to also fire its lasers during a round. In vanilla AP, if a ship fires a missile (however strong or weak), it would be prevented from firing its lasers. With coarse grained OOS rounds representing many seconds of weapons fire, this could cause a ship to lose >99% of its damage for the round. With the patch, ships can safely be equipped with missiles without their OOS performance being impaired.

The options your tool might be super cool, so invested over an hour to download it, download Mod Manager, X3 editor (and then seperately it's runtime files which download link was broken to), download python, just to find out I cant even get the directory to work. I have no coding experience at all and your manual was looking very detailed so I tried. But beeing just a noob "The user must write a Python script which will specify paths and control the customizer by calling transforms." was just too much for me. I found out some of the controls of python but i fear it would take me more hours to get enough into it to actually get the job done. Saying this, I would really appreciate your help to set it up in babysteps as i have put much time into gettin it set up without any impact until now.

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot vote in polls in this forumYou cannot attach files in this forumYou cannot download files in this forum