Recent Posts

Pages: 1 [2] 3 4 ... 10
11
Tutorials / Re: Torpedo Modding Guide
« Last post by Mario on January 10, 2026, 09:54:20 AM »
Historically, BCC has been the primary knowledge hub and meeting point for Bridge Commander modding. It is the direct successor to the old BCU, which also hosted tutorials that were later migrated to BCC.

Most original tutorials and technical write-ups originated here or on BCU (with the exception of BCS-TNG back in the day). Other sites mostly reposted or mirrored content from BCC\BCU or BCS.

Search engines still land on these old threads because they’re the original references - but that’s exactly why I want an updated version posted as a new thread. I’ve pinned the new one, and the old thread can remain as an archive/search entry point.

New Tutorial: https://www.bc-central.net/forums/index.php/topic,10968.0.html

Quote
Aside from that, there's so little going on here that every reply to every post is, in some way, necroposting. And I've made it a habit to always append comments to original posts instead of starting new ones, to keep things organized.

Because we're on BCC discord: https://discord.com/invite/AhN8a3KeP9
12
Tutorials / Re: Torpedo Modding Guide
« Last post by Mario on January 10, 2026, 09:54:05 AM »
13
Tutorials / Torpedo Modding Guide
« Last post by Mark McWire on January 10, 2026, 09:32:54 AM »
Code: [Select]
import App # imports API to game engine

# Example entry for weapon launch sound.
# This text should be defined either in StaticDefs.py or in a script file in Custom/Autoload/.
import Foundation # imports Foundation API
Foundation.SoundDef( "sfx/Weapons/ion_cannon.wav", "Ion Cannon", 1.0, { 'modes': [ Foundation.MutatorDef.StockSounds ] } )

def Create(pTorp):
    kCoreColor = App.TGColorA()                                                 # Creating a core color object
    kCoreColor.SetRGBA(240.0 / 255.0, 60.0 / 255.0, 10.0 / 255.0, 1.000000)     # Core color as RGB-Code
    kGlowColor = App.TGColorA()                                                 # Creating a glow color object
    kGlowColor.SetRGBA(180.0 / 255.0, 40.0 / 255.0, 40.0 / 255.0, 1.000000)     # Glow color as RGB-Code
    kFlareColor = App.TGColorA()                                                # Creating a flare color object
    kFlareColor.SetRGBA(80.0 / 255.0, 120.0 / 255.0, 70.0 / 255.0, 1.000000)    # Flare color as RGB-Code

    pTorp.CreateTorpedoModel(                                                   # Creating the torpedo object itself
                    "data/Textures/Tactical/TorpedoCore.tga",                   # Relative path to the texture file
                    kCoreColor,                                                 # Reference to the core color object
                    0.2,                                                        # The scale of the core in relation the the rest of the torpedo.
                    1.0,                                                        # The rate at which the torpedo rotates ingame. This affects flares and how fast the rotate (Larger = Faster)
                    "data/Textures/Tactical/TorpedoGlow.tga",                   # Relative path to the texture file
                    kGlowColor,                                                 # Reference to the glow color object
                    4.0,                                                        # Specifies the rate at which the glow will pulsate. (Larger = Faster Pulse)   
                    0.2,                                                        # The minimum size of the glow.
                    0.7,                                                        # The maximum size of the glow. (Determines how much the glow will increase from the minimum size to the large size)   
                    "data/Textures/Tactical/TorpedoFlares.tga",                 # Relative path to the texture file
                    kFlareColor,                                                # Reference to the core color object
                    6,                                                          # The maximum number of flares that spawn from the core.     
                    0.7,                                                        # The length of the individual flares.   
                    0.4                                                         # The amount of time that the flares will last until they spawn again elsewhere. (Larger = Longer Existence)
                    )

    pTorp.SetDamage( GetDamage() )                                              # Setting the maximum damage the torpedo could do on shields, hull or subsystem
    pTorp.SetDamageRadiusFactor( GetDamageRadius() )                            # Setting the maximum visible radius, the torpedo would damage on impact
    pTorp.SetGuidanceLifetime( GetGuidanceLifetime() )                          # The length of time; the torpedo is actively controlled towars its target
    pTorp.SetMaxAngularAccel( GetMaxAngularAccel() )                            # The maximum angular velocity at which a torpedo is steered towards its target.
    pTorp.SetLifetime( GetLifetime() )                                          # The maximum lifespan of the torpedo before it is deleted by the game engine.

    import Multiplayer.SpeciesToTorp                                            # Multiplayer specific stuff. Please, if you create a new torp type. modify the SpeciesToTorp.py file to add the new type.
    pTorp.SetNetType (Multiplayer.SpeciesToTorp.ANTIMATTERTORP)                 # Each new torpedo requires an entry in this script with a new ID in order to be used in multiplayer.

    return(0)                                                                   # Function returns 0 after creating the torpedo object

def GetName():                                                                  # Name displayed in the torpedo's selection field.
    return("Antiproton")                                                        # Should be a maximum of 16 to 32 characters, depending on the resolution.

def GetDamage():                                                                # Damage is outsourced as a separate function.
    return 1000.0                                                               # Damage in relative game units

def GetDamageRadius():                                                          # The radius of the damage is outsourced as a separate function.
    return 0.1                                                                  # This function is not in the original script. I added it for practical reasons.

def GetLaunchSound():                                                           # The sound a torpedo makes when fired.
    return("Ion Cannon")                                                        # See also Foundation sound example above.

def GetLaunchSpeed():                                                           # Speed ​​in game units per second at which the torpedo is fired.
    return 100.0                                                                # 100 is approximately 70000 km/h in the game.

def GetMaxAngularAccel():                                                       # Angular velocity at which the torpedo can maneuver.
    return 10.0                                                                 # 10 means approximately 700 km/h/s in the game.

def GetGuidanceLifetime():                                                      # Time that the torpedo is actively steered.
    return 0.1                                                                  # Time in Seconds

def GetPowerCost():                                                             # This value comes from the original SDK, but is not used by the API. This value affects the AI's torpedo selection in the preprocessor.py located in the AI ​​folder.
    return 10.0                                                                 # It does not affect the spaceship's power management or the energy consumption of the torpedo launchers.

def GetLifetime():                                                              # The lifespan of the torpedo object in the game. After that lifespan, it is deleted by the game engine.
    return 10.0                                                                 # This also allows you to calculate the maximum torpedo range using formnula GetLifetime * GetLaunchSpeed.
14
Tutorials / Re: Torpedo Modding Guide
« Last post by Mark McWire on January 10, 2026, 08:49:55 AM »
No problem. The reason I wrote it here is that Google, DuckDuckGo, and similar search engines find this exact post when searching for the guide. BC-Central is obviously the only active STBC forum that hasn't been closed or archived.

Aside from that, there's so little going on here that every reply to every post is, in some way, necroposting. And I've made it a habit to always append comments to original posts instead of starting new ones, to keep things organized.
15
Tutorials / Re: Torpedo Modding Guide
« Last post by Mario on January 09, 2026, 10:06:47 PM »
That's quite the thread necro.
Could you create an updated post as a new thread? I’ll pin that instead.
16
Tutorials / Re: Torpedo Modding Guide
« Last post by Mark McWire on January 09, 2026, 06:20:06 PM »
Code: [Select]
import App

def Create(pTorp):
kCoreColor = App.TGColorA()
kCoreColor.SetRGBA(104.0 / 255.0, 200.0 / 255.0, 255.0 / 255.0, 1.000000)
kGlowColor = App.TGColorA()
kGlowColor.SetRGBA(255.0 / 255.0, 255.0 / 255.0, 255.0 / 255.0, 1.000000)

pTorp.CreateTorpedoModel(
"data/Textures/Tactical/TorpedoCore.tga",
kCoreColor,
0.3,
1.2,
"data/Textures/Tactical/TorpedoGlow.tga",
kGlowColor,
1.0,
0.4,
0.4,
"data/Textures/Tactical/TorpedoFlares.tga",
kGlowColor,
8,
0.1,
0.1)

pTorp.SetDamage( GetDamage() )
pTorp.SetDamageRadiusFactor( GetDamageRadius() )
pTorp.SetGuidanceLifetime( GetGuidanceLifetime() )
pTorp.SetMaxAngularAccel( GetMaxAngularAccel() )
pTorp.SetLifetime( GetLifetime() )

# Multiplayer specific stuff.  Please, if you create a new torp
# type. modify the SpeciesToTorp.py file to add the new type.
import Multiplayer.SpeciesToTorp
pTorp.SetNetType (Multiplayer.SpeciesToTorp.QUANTUM3)

return(0)

def GetName():
return("Tricobalt")

def GetDamage():
return 7500.0

def GetDamageRadius():
return 0.5

def GetLaunchSound():
return("Quantum Torpedo 3")

def GetLaunchSpeed():
return 100.0

def GetMaxAngularAccel():
return 10.0

def GetGuidanceLifetime():
return 0.6

def GetPowerCost():
return 10.0

def GetLifetime():
return 10.0

Thats a complete torpedo script. The GetPowerCost parameter is only used by the AI ​​to influence torpedo selection. The engine does not pass this value on, nor does it affect the spaceship's weapon power consumption.
17
Tutorials / Re: Torpedo Modding Guide
« Last post by Mark McWire on January 09, 2026, 06:16:19 PM »
There's a major flaw in the explanation. "GetGuidanceLifetime" determines how long the torpedo remains actively guided after launch. Once it misses its target or is no longer guided, "GetLifetime" decides how long the torpedo exists before being deleted by the engine.

BTW: This should also be changed in the text help file in Bridge Commander Remastered, located in the "Tactical/Projectiles" folder.
18
BC Modding / Re: Increase maximum attack range
« Last post by Redtestboy on January 08, 2026, 02:00:56 AM »
Hey Mario.

Thank you very much for your response and your explanation. It's unfortunate, would have provided a very interesting new combat experience. But I guess I will have to think of a way around that limitation. At least I can enjoy how funny it is to fight at 0.25c and have only one shot get fired before the enemy disappears in the distrance again  :funny

19
BC Modding / Re: Increase maximum attack range
« Last post by Mario on January 07, 2026, 07:33:59 PM »
Bridge Commander unfortunately isn't designed around realistic spaceflight or combat physics, even if you crank up speeds and acceleration values.

There's no real physics simulation under the hood - everything (movement, weapons, targeting) is heavily abstracted and tuned for gameplay at relatively short ranges.

Weapon ranges in particular are hard-limited. Phaser range is effectively capped (around the ~100–120 km mark you're seeing), and that limit isn't exposed to scripting. As far as we know, increasing it would require engine-level modification (hex/memory patching), not something you can adjust via standard modding tools.
20
BC Modding / Increase maximum attack range
« Last post by Redtestboy on January 07, 2026, 07:25:45 PM »
Hey guys.

I'm currently working on a "mod" for BC where I want to put emphasis on "realism" in starship combat. Including a lot higher speed and acceleration values taken from the TNG Technical Manual. That part works perfectly. My problem now is that ships can't fire their weapons beyond a certain distance (e.g. Phasers seem to be capped at 120km). Is it possible to increase this somehow?

Thank you guys!
Pages: 1 [2] 3 4 ... 10