(Source code is included in the download) License: Code and Configs are licensed under the GPL v3 license.
Here's a spacedock by @StinkyAce that @Puggonaut has been featuring in his videos: https://spacedock.info/mod/1815/USS Nimitz and Drydock
A scaleFactor of 0.6 makes the best fit for the NX. A compatibility config is included that creates a copy of the drydock and modifies the included resources to include the resources needed by the NX. StinkyAce's mod must be installed for this config to work.
Dependencies: (bundled with the Spacedock download)
Community Resource Pack
Small Trailer for TrekDrive made by Puggonaut
This fantastic video was made by @Puggonaut, and you should definitely give it a watch.
v1.0 - Initial Full Release
* Phoenix Warpship
* Phoenix Warpship launcher
* Enterprise-era Shuttlepod (can be docked in the aft bays of the NX)
* NX-class starship (has two aft shuttle bays for the shuttlepod)
* Added A User's Manual
* Added NX-class Bridge IVA and Props
* Updated warp stars configs so that they are visible in the Bridge IVA
* Updated the plugin to add an ambient rumble sound for the warp core. The sound is customizable by simply editing the CFGs with SW_ModuleWarpCore to give the path to your desired sound.
* Added ENT-era Shuttlepod IVA (Stock and MAS versions)
* Updated Shuttlepod Impulse engines to have a hover altitude of 1000m
* Added ModuleLiftingBody to the Shuttlepod fuselage improving flight characteristics
* Balanced the RCS and COM of the Shuttlepod removing most if not all unwanted movement during docking or other maneuvers.
* Updated SW_ModuleImpulseEngine to apply Takeoff/Landing forces to every part to provide even acceleration to the entire vessel almost entirely removing the need for RCS or SAS to keep the vessel level during takeoff/landing in atmosphere.
Below are the previous WIP Change Logs:
v0.99.1w - Spacedock
* Added a ModuleManager patch for StinkyAce's Spacedock, available at this link: https://spacedock.info/mod/1815/USS Nimitz and Drydock
The patch scales the dock down to 0.6, a near perfect fit for the NX-class, and instead of modifying the drydock that comes with StinkyAce's mod, it creates a new part with the aforementioned scale, an impulse engine (no part, just the module), and produces the resources used by TrekDrive ships. This will be a good refueling station for the NX.
* Updated the plugin
* Fixed an NRE spam in the impulse engine code while in the editor
* Added the ability to select a "forward" or "reverse" mode for the impulse engines. Toggleable in the PAW, and can be set as an action group.
* Cleaned up the Waterfall patch by splitting the warp effects into their own patch.
* Tweaked the texture tiling on the NX warp effects (both the Warp 5 and Warp 7 versions).
v0.99w - NX-class Release
* B9PartSwitch is now a hard dependency. (Included in download)
* Updated the TrekDrive.dll
* Warp speed formula changed to allow faster interstellar travel
* OnLoad function updated to not automatically set the warp drive to "Not Ready"
if it was in a "Ready" state at the last save. This allows the player to
immediately engage the drive after the vessel loads, if the drive is in a Ready
state upon loading.
* Added NX-class Starship Parts
* Bridge module (Crew capacity of 6)
* Saucer section (Crew capacity of 20)
* Engineering section
* Nacelle Pylons (B9PartSwitch variants)
* Upper variant (2 upper pylons)
* Lower variant (2 lower pylons)
* Four variant (2 upper & 2 lower pylons)
* Warp Nacelles (Port & Stbd)
* Main Impulse Engines (Port & Stbd)
* Secondary Impulse Engines (Port & Stbd)
* Navigational Deflector (2 variants) - Serves as a transmitter
* NX-01 Oval "Mark I" Deflector
* NX-02 Rectangular "Mark II" Deflector
* Added NX-class Refit Starship Parts
* Engineering Section Refit (Includes warp 7 warp core and warp drive, Crew capacity of 10)
* Refit Warp Nacelles (Port & Stbd)
* Added Custom Waterfall FX model and texture for streaking stars at warp effect.
* Updated the warp stars effect on the Phoenix
* Added six (6) craft files for the NX-class and NX-class Refit
* NXClass_A: Standard NX-class starship (as seen in Star Trek: Enterprise)
* NXClass_B: NX-class starship with two (2) ventrally (lower) mounted nacelles
* NXClass_C: NX-class with four (4) nacelles
* NXClass_Refit_A: Standard NX-class starship Refit
* NXClass_Refit_B: NX-class Refit with two (2) ventrally (lower) mounted nacelles
* NXClass_Refit_C: NX-class Refit with four (4) nacelles
v0.9w - Shuttlepod & Impulse Engine Release
* Updated the TrekDrive.dll
* All TrekDrive buttons/toggles can now be set as Action Groups
* SW_ModuleImpulseEngine Added - automatic takeoff and landing modes when sub-orbital, it will not automatically land from orbit.
* SW_ModuleBussardCollector Added - When the collector is activated it will collect at a random rate for a random period of time before choosing another random rate and period of time. Collects LqdDeuterium and Antimatter with LqdDeuterium collecting at a higher rate. Collection will only occur at sub-light velocities.
* Updated Waterfall version.
* Updated Waterfall effect on the Phoenix Launcher Main Engine to correct a position issue.
* Added a Waterfall effect to the Phoenix - visible when traveling at warp; the effect is based on the streaking stars warp effect from TNG - VOY and ENT.
* Added Enterprise-era Shuttlepod
* Shuttlepod main body - holds 5 kerbals with airlocks on both sides (No IVA)
* Shuttlepod Impulse Engine
v0.7.5w - OnLoad Hotfix:
* Corrected an issue that prevented engaging the warp drive after switching to another vessel, after reloading the game, or any other loading action. Upon switching back to the warp ship, or loading the save, the warp drive will be automatically disengaged and set to "Not Ready" status. Simply clicking "Check Ready Status" and then engaging the warp drive will get you ready to go. Thanks to @Tanner Rawlings for finding this issue and bringing it to my attention. v0.7w - Phoenix IVA release:
* Added Phoenix IVA (Stock and MOARdV's Avionics System)
* The MAS version replaces some of the central props with MAS props, and replaces the Main Display with a functional MFD
* MAS version of the IVA will only be available with MAS is installed.
v0.6w - Phoenix Initial release:
* Updated Code:
* Added nacelle glow animation capability, giving a visual indicator of coil charge.
* Fixed coil charge logic to allow charging a partially discharged coil
* Fixed a logic issue with the Warp Field Generator code. Now the "not enough charge" warning will only occur if the warp drive is active.
* Moved to LqdDeuterium and Antimatter from Community Resource Pack
* Added Phoenix Parts:
* Phoenix Crew Cabin (no IVA currently, built-in RCS, no effects yet)
* Phoenix SAS (contains Monopropellant and Electric Charge)
* Phoenix Fuselage (contains LqdDeuterium and Antimatter)
* Phoenix Nacelle (deployable warp nacelle)
* Phoenix Warp Core/Warp Field Generator
* Phoenix Main Thruster (matter-antimatter rocket engine)
* Phoenix Vernier Thruster (matter-antimatter rocket engine)
* Phoenix Fairing (to conceal the warp nacelles during launch)
* Phoenix Interstage Decoupler
* Phoenix Launcher First Stage
* Phoenix Launcher Main Engine (Liquid Fuel Oxidizer engine)
* Added Phoenix Warp Ship Test craft.
* Added Community Resource Pack and Waterfall as hard dependencies (bundled)
Inspired by RoverDude's Standalone Alcubierre Warp Drive, this warp drive aspires to operate in a Star Trek-like manner requiring at least two types of parts to operate: warp coils/nacelles and the heart of the drive, the warp core and warp field generator. I have seen in other threads here where people were trying to figure out how to require the use of warp nacelles to get that Star Trek feel to their KSP warp drives, and that's what I set out to do with this, my first plugin mod. Maybe a bit ambitious, but I think it turned out well. Now, on to the details.
Technical Aspects: The plugin includes three Part Modules: SW_ModuleWarpCoil, SW_ModuleWarpCore, and SW_ModuleWarpGenerator.
SW_ModuleWarpCoil: This module would typically be attached to a warp nacelle part, but could be added to any part for a design that perhaps doesn't use a nacelle, or similar structure. Requires: Warp plasma, which is generated by a warp core part using SW_ModuleWarpCore. Restrictions: Cannot be added to the same part as the SW_ModuleWarpGenerator. This is the restriction that requires at least two types of parts.
name = SW_ModuleWarpCoil
warpPlasmaConsumed = 5 // Amount of warp plasma consumed per second during charging and operation
warpPlasmaNeeded = 250 // Amount of warp plasma needed to fully charge the warp coil
cutoffThreshold = 2.000 // When the charge percentage drops below this percentage, the coil and drive cut off (1 - 100)
coilEfficiency = 0.01 // Thermal efficiency of the coil (0 - 1)
maxWarp = 2 // Maximum warp factor this coil can safely achieve
SW_ModuleWarpCore: A simple generator module that takes in deuterium (matter) and anti-deuterium (antimatter) to generate warp plasma and electric charge. (Could be replaced with a stock ModuleGenerator I suppose, but it's included all the same). Requires: Deuterium and Anti-Deuterium. Restrictions: None hardcoded.
name = SW_ModuleWarpCore
minAntimatter = 0.05 // Minimum amount of anti-deuterium required to operate
minMatter = 0.05 // Minimum amount of deuterium required to operate
warpPlasmaProdRate = 10 // Amount of warp plasma generated per second
ecProdRate = 100 // Amount of electric charge generated per second
SW_ModuleWarpGenerator: The heart of the warp drive that actually moves the ship at warp speeds. Just like RoverDude's Standalone Alcubierre Warp Drive, the drive uses translation, not acceleration, to move the ship through space. Also, like RoverDude's drive, I used a slightly modified version of his gravity braking code (RoverDude's source code including the GravityBrakes() function) so that ships will slow down when they near gravitational bodies. Requires: At least one part implementing SW_ModuleWarpCoil that cannot be the same part implementing SW_ModuleWarpGenerator. This is what forces the requirement of multiple parts. Restrictions: All warp coils must be charged before the drive can be activated, and enough electric charge to run the drive is also necessary. If either of these is not true the drive cannot activate, or will automatically disengage.
name = SW_ModuleWarpGenerator
maxWarp = 2 // Maximum warp factor this drive can attain
minNacelles = 2 // Minimum number of nacelles required by the drive to operate (must be at least 1)
electricityReq = 50.000 // Amount of electric charge that is required per second of warp operation
NOTE: Some part on the vessel should have a container for warp plasma. In the included test parts the nacelles have their own warp plasma containers, but it can be on any part of the vessel.
The ship's warp velocity is computed using a simple cubic function, which was used for the original series and in Star Trek: Enterprise. So,
velocity = (warp factor^3) * c
In my initial testing, I find that Warp 2 is a good speed for traveling to the edge of the Kerbol System in a comfortable amount of time. I haven't tested higher warp factors, but will install appropriate mods on my end to further test travel times with increasing warp factors before final release.
How to Use: I have kept the operation of the drive entirely within the Part Action Windows (PAW) of each part. Follow these steps to activate the drive. All of these actions can be set as Action Groups to somewhat simplify the process. Step 1: Activate the Warp Core by clicking the "Warp Core Status" toggle. Step 2: Charge the Warp Coil(s) by clicking "Charge Warp Coils" in the coil PAW Step 3: Once the coils are charged click "Check Ready Status" on the Warp Generator (combined with the Warp Core Test Article here). The drive will not enter the "Ready" status until all the coils are charged, and will not do so if there are any other active Warp Generators. Step 4: Once the "Ready Status" reads "Ready", click "Engage Warp Drive" on the Warp Generator. This will change from "Drive Inactive" to "Drive Engaged"
Once the drive is engaged, any throttle input will move the ship at warp speeds. To return to non-warp operation, simply click the "Engage Warp Drive" toggle in the PAW to disengage the drive, or use an Action Group. Current warp factor is determined as a percentage of the drive's maximum warp rating, based on the amount of throttle: 50% throttle is half of the maximum warp, 100% throttle is maximum warp. E.g. for a drive with a maximum warp of 2, 50% throttle will be Warp 1, and 100% throttle will be Warp 2. The warp factor can also be selected using a slider in the PAW. The slider moves in 0.25 increments from Warp 0.25 to the maximum warp of the drive. The slider defaults to Warp 1. Increasing the slider scales the throttle so that your warp speed does not increase until you manually increase the throttle. The current warp factor is displayed in the Warp Generator's PAW
Step 5: Once you have reached your target destination simply throttle to 0%, or use "x" to cut the throttle. There is an "Orbit Mode" option in the Warp Generator PAW that defaults to "Easy", this places the vessel in as close to a circular orbit as possible when the throttle hits 0 after having been non-zero. That is, it doesn't continually change the orbit while the drive is active, only if it had been moving the ship and then stopped. If the Orbit Mode is toggled to "Realistic", it will simply use the vessel's velocity vector to determine the current orbit, in the same manner as RoverDude's Alcubierre drive.
Limitations: I tried to implement some limitations to make the drive less "cheaty". I took cues from Star Trek, particularly Star Trek: Enterprise, which dealt repeatedly with the limitations of the ship's warp drive. In the show, most problems occurred with the plasma injectors, but I though trying to code some kind of simulation of the injectors would be cumbersome and place unnecessary computational overhead. Other limitations that come to mind are the stability of the warp field, and the warp coil temperature. I opted for warp coil temperature to place a limitation on time at maximum warp.
Warp Coil Temperature: While the drive is active, and moving at warp speeds, to emulate the warp plasma cycling through the coils I have implemented an exponential function that increases the temperature of the warp coil part. The smallest amount of heating occurs at low warp, while the maximum heating occurs at maximum warp. There is a built-in warp coil efficiency that can be used to aid in cooling. The value in the config file is between 0 and 1, and the upper limit is enforced in the code to prevent config editing to make the coils cool themselves at high warp. If a value greater than 1 is used in the config, the plugin randomly chooses an efficiency in the correct range. So, you may get a decently efficient coil, or a really inefficient one. This is also done per coil, so you could have one coil that is really efficient and one that is terrible, which could hamper your warp travel to keep one coil from overheating and exploding (the stock behavior). The maxWarp parameter of the warp coil also plays a role in temperature calculation. A ratio is taken of the active drive's maxWarp to the warp coil's maxWarp to further scale the exponential function. If the warp coil's maxWarp is equal to the drive's, there is not scaling, if it is less, there is more heating, if it is greater it is less. The reasoning is that if you have a warp coil rated for Warp 1, and try to push it to Warp 2, it would burn out much faster, but if it's the other way around, it would be able to handle the temperature better.
Warp Coil Discharged: If the source of warp plasma runs out, or is shut off, the coils may completely discharge, if the user doesn't notice that warp plasma production has stopped. If the coils completely discharge (or their charge goes below the threshold set in their config) the drive will automatically disengage and either be automatically placed in a nearly circular orbit (Easy orbit mode), or be in a realistic orbit based on the vessel velocity vector.
Running out of Electricity: If there is not enough electric charge to run the Warp Field Generator, the drive will automatically disengage and enter an orbit based on the selected orbit mode.
Multiple Warp Generators?: If there are multiple parts on the vessel that implement SW_ModuleWarpGenerator, only one may be active at a time. If you try to activate a second warp generator when one is already active, it will not activate. If you disengage the active drive, you may then activate another.
NX-class Bridge IVA
There are ten (10) different names and registries in two variants each, so 20 textures in all giving you NX-01 through NX-10 and names with and without the "S.S." prefix. The registries are B9PartSwitch selectable on the saucer part and the refit engineering hull part.
I have included instructions on how to make custom names/registries in the config file that sets up the variants under "TrekDrive/Parts/NXClass/Registries/Registries.cfg". The instructions are at the bottom of the file. There are also two (2) template images, one in PNG format and another in PSD. To use the PSD file you will need to have the font "Airborne", or one that looks close enough to it, if you want show-accuracy, or any font of your choosing will work.