Custom Hero VO not playing.

In this forum you will find and post information regarding the modding of Star Wars Battlefront 2. DO NOT POST MOD IDEAS/REQUESTS.

Moderator: Moderators

Private
User avatar
Posts: 36
Joined: Tue Jan 09, 2018 7:01 pm
Location: Texas
Projects :: Playable Campaign Factions
Games I'm Playing :: Star Wars games
xbox live or psn: PSN: BucMan55

Custom Hero VO not playing.

Postby Bucman55 » Fri Jan 26, 2018 1:47 am

For some reason my custom Hero's VO is not playing.
These should be all of the necessary files:

pcf.req -
Hidden/Spoiler:
Code: Select all
ucft
{
    REQN
    {
        "str"
        "align=2048"
   "pcf_vo_slow"        // Added back as per Marth's post

    }
   REQN
   {
      "lvl"
      "pcfcw"
      "pcfgcw"
   }   
 }


pcfgcw.req -
Hidden/Spoiler:
Code: Select all
ucft
{
    REQN
    {
        "bnk"
        "align=2048"
        "pcf"
        "pcfgcw"
    }

    REQN
    {
        "config"
        "pcfgcw"
        "pcf"     
        "pcf_vo"
        "pcfcw_music_config"
        "pcfcw_music"
        "gar_unit"
    }
 }


pcf_vo.snd -
Hidden/Spoiler:
Code: Select all
//  ----------------------------------------------- Hero Battlechatter VO -----------------------------------------------------

SoundStreamProperties()
{
    Name("hero_rex_spawn");
    Group("hero_vo");
    Inherit("Hero_battle_chatter_template");
    Stream("pcf_vo_slow");
    SegmentList()
    {
        Segment("REXCOM001", 200.0, 10.0, 3.0); //  The name's Rex, but you'll call me Captain or Sir.
        Segment("REXCOM002", 200.0, 10.0, 3.0); //  In my book, experience outranks everything.
    }
}

SoundStreamProperties()
{
    Name("hero_rex_AcquiredTarget");
    Group("hero_vo");
    Inherit("Hero_battle_chatter_template");
    Stream("pcf_vo_slow");
    SegmentList()
    {
        Segment("REXCOM003", 200.0, 10.0, 3.0); //  Go go go!
        Segment("REXCOM004", 200.0, 10.0, 3.0); //  Incoming!
        Segment("REXCOM005", 200.0, 10.0, 3.0); //  This'll be quick.
       
    }
}

SoundStreamProperties()
{
    Name("hero_rex_KillingSpree4");
    Group("hero_vo");
    Inherit("Hero_battle_chatter_template");
    Stream("pcf_vo_slow");
    SegmentList()
    {
       Segment("REXCOM006", 200.0, 10.0, 3.0); //  Nothing deadlier than a Clone behind the trigger.
        Segment("REXCOM007", 200.0, 10.0, 3.0); //  This is what Clones do.
        Segment("REXCOM008", 200.0, 10.0, 3.0); //  Just like in Basic Training.
        Segment("REXCOM009", 200.0, 10.0, 3.0); //  Combat is a Clone's natural element.
    }
}

SoundStreamProperties()
{
    Name("hero_rex_exhausted");
    Group("hero_vo");
    Inherit("Hero_battle_chatter_template");
    Stream("pcf_vo_slow");
    SegmentList()
    {
        Segment("REXCOM010", 200.0, 10.0, 3.0); //  Eh, that's just great.
    }
}


pcf_vo_slow.stm -
Hidden/Spoiler:
Code: Select all
//  ----------------------------------------------- Hero Battlechatter VO -----------------------------------------------------

//    The name's Rex, but you'll call me Captain or Sir.
streams\REXCOM001.wav

//    In my book, experience outranks everything.
streams\REXCOM002.wav

//    Go go go!
streams\REXCOM003.wav

//    Incoming!
streams\REXCOM004.wav

//    This'll be quick.
streams\REXCOM005.wav

//    Nothing deadlier than a Clone behind the trigger.
streams\REXCOM006.wav

//    This is what Clones do.
streams\REXCOM007.wav

//    Just like in Basic Training.
streams\REXCOM008.wav

//    Combat is a Clone's natural element.
streams\REXCOM009.wav

//    Eh, that's just great.
streams\REXCOM010.wav


Hero ODF -
Hidden/Spoiler:
Code: Select all
[GameObjectClass]
ClassParent     = "com_hero_default"
GeometryName    = "rep_inf_REX_Clone_Trooper.msh"

[Properties]
FoleyFXClass               = "rep_inf_trooper"
UnitType        = "Trooper"

GeometryName    = "rep_inf_REX_Clone_Trooper"
GeometryLowRes  = "rep_inf_arctrooper_low1"
SkeletonName    = "jango"
FirstPerson     = "rep\reparc;rep_1st_arctrooper"
ClothODF        = "rep_inf_REX_Clone_Trooper_cape"

AnimationName      = "jango"

AnimatedAddon         = "left_gun"
GeometryAddon         = "weap_inf_dc17pistol" // the pistols meshname
AddonAttachJoint      = "hp_weapons_1"

WEAPONSECTION = 1
WeaponName1         = "ant_weap_hero_rex_pistol"
WeaponAmmo1         = 0

WEAPONSECTION = 2
WeaponName2         = "rep_weap_inf_thermaldetonator"
WeaponAmmo2         = 3
WeaponChannel2      = 1

WEAPONSECTION = 3
WeaponName3         = "ant_weap_inf_timebomb"
WeaponAmmo3         = 2
WeaponChannel3      = 1

//SOUND
HurtSound               = "rep_inf_com_chatter_wound"
DeathSound              = "rep_inf_com_chatter_death"
AcquiredTargetSound     = ""
HidingSound             = ""
ApproachingTargetSound  = ""
FleeSound               = ""
PreparingForDamageSound = ""
HeardEnemySound         = ""

SCFieldMoveOutSound     = ""
SCFieldHoldSound        = ""
SCFieldFollowSound      = ""
SCDriverGetInSound      = ""
SCDriverGetOutSound     = ""
SCPassengerMoveOutSound = ""
SCPassengerStopSound    = ""
SCPassengerGetInSound   = ""
SCPassengerGetOutSound  = ""
SCGunnerAllClearSound   = ""
SCGunnerSteadySound     = ""
SCGunnerGetInSound      = ""
SCGunnerGetOutSound     = ""
SCResponseYessirSound   = ""
SCResponseNosirSound    = ""

AISCFieldMoveOutSound       = ""
AISCFieldHoldSound          = ""
AISCFieldFollowSound        = ""
AISCDriverGetInSound        = ""
AISCDriverGetOutSound       = ""
AISCPassengerMoveOutSound   = ""
AISCPassengerStopSound      = ""
AISCPassengerGetInSound     = ""
AISCPassengerGetOutSound    = ""
AISCGunnerAllClearSound     = ""
AISCGunnerSteadySound       = ""
AISCGunnerGetInSound        = ""
AISCGunnerGetOutSound       = ""
AISCResponseYessirSound     = ""
AISCResponseNosirSound      = ""

SndHeroSelectable           = ""
SndHeroSpawned              = "hero_rex_spawn"
SndHeroDefeated             = "hero_rex_exhausted"
SndHeroKiller               = "hero_rex_exhausted"

VOSound = "rep_off_response_hero_command      SC_Follow"
VOSound = "rep_off_response_hero_command      SC_StopFollow"
VOSound = "rep_off_response_hero_command     SC_VehicleWaitUp"
VOSound = "rep_off_response_hero_command     SC_GetIn"
VOSound = "rep_off_response_hero_command      SC_GetOut"

//VOSound = "rex_hero_pc_com_hostile         SpottedVO"
//VOSound = "rex_hero_pc_com_mechanic        NeedRepairVO"
//VOSound = "rex_hero_pc_com_transport       NeedPickupVO"
//VOSound = "rex_hero_pc_com_backup          NeedBackupVO"
//VOSound = "rex_hero_pc_com_clear_area      AttackPositionVO"
//VOSound = "rex_hero_pc_com_defend          DefendPositionVO"
           
//VOSound = "rex_hero_pc_com_hostile_inVehicle         SpottedVO +InVehicle"
//VOSound = "rex_hero_pc_com_mechanic_inVehicle        NeedRepairVO +InVehicle"
//VOSound = "rex_hero_pc_com_transport_inVehicle       NeedPickupVO +InVehicle"
//VOSound = "rex_hero_pc_com_backup_inVehicle          NeedBackupVO +InVehicle"
//VOSound = "rex_hero_pc_com_clear_area_inVehicle      AttackPositionVO +InVehicle"
//VOSound = "rex_hero_pc_com_defend_inVehicle          DefendPositionVO +InVehicle"

VOSound = "hero_rex_AcquiredTarget      AcquiredTarget"
VOSound = "hero_rex_KillingSpree4      KillingSpree4"

VOUnitType              = 121
SoldierMusic            = "rep_hero_Rex_lp"


Mission LUA -
Hidden/Spoiler:
Code: Select all
    --
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--
   
ScriptCB_DoFile("setup_teams")
ScriptCB_DoFile("ObjectiveConquest")

  --  Empire Attacking (attacker is always #1)
REP = 2;
IMP = 1;
     --  These variables do not change
ATT = 1;
DEF = 2;

 ---------------------------------------------------------------------------
 -- FUNCTION:    ScriptInit
 -- PURPOSE:     This function is only run once
 -- INPUT:
 -- OUTPUT:
 -- NOTES:       The name, 'ScriptInit' is a chosen convention, and each
 --              mission script must contain a version of this function, as
 --              it is called from C to start the mission.
 ---------------------------------------------------------------------------
 function ScriptPostLoad()
    SetProperty("cp1", "Team", "1")
    SetProperty("cp2", "Team", "2")
    SetProperty("cp3", "Team", "2")
    SetProperty("cp4", "Team", "2")
    SetProperty("cp5", "Team", "1")
    SetProperty("cp6", "Team", "1")
    DisableBarriers("camp")
    SetAIDamageThreshold("Comp1", 0 )
    SetAIDamageThreshold("Comp2", 0 )
    SetAIDamageThreshold("Comp3", 0 )
    SetAIDamageThreshold("Comp4", 0 )
    SetAIDamageThreshold("Comp5", 0 )
    SetAIDamageThreshold("Comp6", 0 )
    SetAIDamageThreshold("Comp7", 0 )
    SetAIDamageThreshold("Comp8", 0 )
    SetAIDamageThreshold("Comp9", 0 )
    SetAIDamageThreshold("Comp10", 0 )

        SetProperty("Kam_Bldg_Podroom_Door32", "Islocked", 1)

    SetProperty("Kam_Bldg_Podroom_Door33", "Islocked", 1)
        SetProperty("Kam_Bldg_Podroom_Door32", "Islocked", 1)
                SetProperty("Kam_Bldg_Podroom_Door34", "Islocked", 1)
    SetProperty("Kam_Bldg_Podroom_Door35", "Islocked", 1)
        SetProperty("Kam_Bldg_Podroom_Door27", "Islocked", 0)       
            SetProperty("Kam_Bldg_Podroom_Door28", "Islocked", 1)       
    SetProperty("Kam_Bldg_Podroom_Door36", "Islocked", 1)
        SetProperty("Kam_Bldg_Podroom_Door20", "Islocked", 0)
    UnblockPlanningGraphArcs("connection71")
     
    --Objective1
    UnblockPlanningGraphArcs("connection85")
    UnblockPlanningGraphArcs("connection48")
    UnblockPlanningGraphArcs("connection63")
    UnblockPlanningGraphArcs("connection59")
    UnblockPlanningGraphArcs("close")
    UnblockPlanningGraphArcs("open")
    DisableBarriers("frog")
    DisableBarriers("close")
    DisableBarriers("open")
   
    --blocking Locked Doors
    UnblockPlanningGraphArcs("connection194");
    UnblockPlanningGraphArcs("connection200");
    UnblockPlanningGraphArcs("connection118");
    DisableBarriers("FRONTDOOR2-3");
    DisableBarriers("FRONTDOOR2-1"); 
    DisableBarriers("FRONTDOOR2-2"); 
   
    --Lower cloning facility
    UnblockPlanningGraphArcs("connection10")
    UnblockPlanningGraphArcs("connection159")
    UnblockPlanningGraphArcs("connection31")
    DisableBarriers("FRONTDOOR1-3")
    DisableBarriers("FRONTDOOR1-1") 
    DisableBarriers("FRONTDOOR1-2")
   
        --This defines the CPs.  These need to happen first
    cp1 = CommandPost:New{name = "cp1"}
    cp2 = CommandPost:New{name = "cp2"}
    cp3 = CommandPost:New{name = "cp3"}
    cp4 = CommandPost:New{name = "cp4"}
    cp5 = CommandPost:New{name = "cp5"}
    cp6 = CommandPost:New{name = "cp6"}
   
    --This sets up the actual objective.  This needs to happen after cp's are defined
    conquest = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF, textATT = "game.modes.con", textDEF = "game.modes.con2", multiplayerRules = true}
   
    --This adds the CPs to the objective.  This needs to happen after the objective is set up
    conquest:AddCommandPost(cp1)
    conquest:AddCommandPost(cp2)
    conquest:AddCommandPost(cp3)
    conquest:AddCommandPost(cp4)
    conquest:AddCommandPost(cp5)
    conquest:AddCommandPost(cp6)
conquest:Start()
    EnableSPHeroRules()
   
    SetProperty("cp2", "spawnpath", "cp2_spawn")
    SetProperty("cp2", "captureregion", "cp2_capture")
 
  end
 
 --START BRIDGEWORK!

-- OPEN

 function ScriptInit()
     -- Designers, these two lines *MUST* be first!
        SetPS2ModelMemory(3600000)
     ReadDataFile("ingame.lvl")

   
     
   
    ReadDataFile("dc:sound\\pcf.lvl;pcfgcw")
     ReadDataFile("sound\\kam.lvl;kam1cross")


     --SetMaxFlyHeight(43)
     --SetMaxPlayerFlyHeight (43)

    ReadDataFile("SIDE\\rep.lvl",
                    "rep_inf_ep2_rifleman",
                    "rep_inf_ep2_rocketeer",
                    "rep_inf_ep2_sniper",
                    "rep_inf_ep2_engineer",
                    "rep_inf_ep2_jettrooper",
                    "rep_inf_ep3_officer")

    ReadDataFile("dc:SIDE\\ant.lvl",
                    "ant_inf_rifleman",
                    "ant_inf_rocketeer",
                    "ant_inf_sniper",
                    "ant_inf_engineer",
               "ant_inf_jettrooper",
               "ant_inf_officer",
               "rep_hero_rex")
                               
     ReadDataFile("SIDE\\imp.lvl",
                                "imp_inf_rifleman",
                                "imp_inf_rocketeer",
                                "imp_inf_engineer",
                                "imp_inf_sniper",
                                "imp_inf_officer",
                                "imp_inf_dark_trooper",
                                "imp_hero_bobafett")

ReadDataFile("SIDE\\tur.lvl",
                        "tur_bldg_chaingun_roof",
                        "tur_weap_built_gunturret")

     --  Level Stats
     ClearWalkers()
     --    AddWalkerType(0, 0) -- 8 droidekas (special case: 0 leg pairs)
     --    AddWalkerType(1, 3) -- 8 droidekas (special case: 0 leg pairs)
     --    AddWalkerType(2, 0) -- 2 spider walkers with 2 leg pairs each
     --    AddWalkerType(3, 0) -- 2 attes with 3 leg pairs each
     SetMemoryPoolSize ("EntityCloth", 33)
    SetMemoryPoolSize("ClothData",50)
     SetMemoryPoolSize ("EntityLight", 64) 
     SetMemoryPoolSize ("Obstacle", 800)
    SetMemoryPoolSize("EntitySoundStream", 3)
     SetMemoryPoolSize ("SoundSpaceRegion", 36)
    SetMemoryPoolSize("EntitySoundStatic", 85)
     SetMemoryPoolSize ("Weapon", 260)

   SetupTeams{
    rep = {
        team = REP,
        units = 32,
        reinforcements = 150,
        soldier = { "ant_inf_rifleman",9, 25},
        assault = { "ant_inf_rocketeer",1, 4},
        engineer = { "ant_inf_engineer",1, 4},
        sniper  = { "ant_inf_sniper",1, 4},
        officer = { "ant_inf_officer",1, 4},
        special = { "ant_inf_jettrooper",1,4},
    },

}   

SetupTeams{
    imp = {
        team = IMP,
        units = 32,
        reinforcements = 150,
        soldier = { "imp_inf_rifleman",9, 25},
        assault = { "imp_inf_rocketeer",1, 4},
        engineer = { "imp_inf_engineer", 1, 4},
        sniper  = { "imp_inf_sniper",1, 4},
        officer = { "imp_inf_officer",1, 4},
            special = { "imp_inf_dark_trooper",1, 4},
     
    },

}

    SetHeroClass(REP, "rep_hero_rex")
    SetHeroClass(IMP, "imp_hero_bobafett")
   
     SetSpawnDelay(10.0, 0.25)
     --  AddDeathRegion("deathregion")
     ReadDataFile("KAM\\kam1.lvl", "kamino1_conquest")
         SetMemoryPoolSize("EntityFlyer", 6)
     SetDenseEnvironment("false")
         SetMinFlyHeight(60)
    SetAllowBlindJetJumps(0)
       SetMaxFlyHeight(102)
    SetMaxPlayerFlyHeight(102)
     --SetStayInTurrets(1)


     --  Movies
     --  SetVictoryMovie(ALL, "all_end_victory")
     --  SetDefeatMovie(ALL, "imp_end_victory")
     --  SetVictoryMovie(IMP, "imp_end_victory")
     --  SetDefeatMovie(IMP, "all_end_victory")

     --  Sound
     
    voiceSlow = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_slow")
    AudioStreamAppendSegments("sound\\global.lvl", "imp_unit_vo_slow", voiceSlow)
    AudioStreamAppendSegments("sound\\global.lvl", "global_vo_slow", voiceSlow)
   
    voiceQuick = OpenAudioStream("sound\\global.lvl",  "rep_unit_vo_quick")
    AudioStreamAppendSegments("sound\\global.lvl",  "imp_unit_vo_quick", voiceQuick)   
     
    OpenAudioStream("dc:sound\\pcf.lvl",  "pcf_vo_slow")
    OpenAudioStream("sound\\global.lvl",  "cw_music")
    -- OpenAudioStream("sound\\global.lvl",  "global_vo_quick")
    -- OpenAudioStream("sound\\global.lvl",  "global_vo_slow")
    OpenAudioStream("sound\\kam.lvl",  "kam1")
    OpenAudioStream("sound\\kam.lvl",  "kam1")
    -- OpenAudioStream("sound\\mus.lvl",  "kamino1_emt")

     SetBleedingVoiceOver(REP, REP, "rep_off_com_report_us_overwhelmed", 1)
     SetBleedingVoiceOver(REP, IMP, "rep_off_com_report_enemy_losing",   1)
     SetBleedingVoiceOver(IMP, REP, "imp_off_com_report_enemy_losing",   1)
     SetBleedingVoiceOver(IMP, IMP, "imp_off_com_report_us_overwhelmed", 1)

     SetLowReinforcementsVoiceOver(REP, REP, "rep_off_defeat_im", .1, 1)
     SetLowReinforcementsVoiceOver(REP, IMP, "rep_off_victory_im", .1, 1)
     SetLowReinforcementsVoiceOver(IMP, IMP, "imp_off_defeat_im", .1, 1)
     SetLowReinforcementsVoiceOver(IMP, REP, "imp_off_victory_im", .1, 1)

     SetOutOfBoundsVoiceOver(2, "repleaving")
     SetOutOfBoundsVoiceOver(1, "impleaving")

     SetAmbientMusic(REP, 1.0, "rep_kam_amb_start",  0,1)
     SetAmbientMusic(REP, 0.8, "rep_kam_amb_middle", 1,1)
     SetAmbientMusic(REP, 0.2, "rep_kam_amb_end",    2,1)
     SetAmbientMusic(IMP, 1.0, "cis_kam_amb_start",  0,1)
     SetAmbientMusic(IMP, 0.8, "cis_kam_amb_middle", 1,1)
     SetAmbientMusic(IMP, 0.2, "cis_kam_amb_end",    2,1)

     SetVictoryMusic(REP, "rep_kam_amb_victory")
     SetDefeatMusic (REP, "rep_kam_amb_defeat")
     SetVictoryMusic(IMP, "cis_kam_amb_victory")
     SetDefeatMusic (IMP, "cis_kam_amb_defeat")

     SetSoundEffect("ScopeDisplayZoomIn",  "binocularzoomin")
     SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")
     --  SetSoundEffect("BirdScatter",         "birdsFlySeq1")
     SetSoundEffect("SpawnDisplayUnitChange",       "shell_select_unit")
     SetSoundEffect("SpawnDisplayUnitAccept",       "shell_menu_enter")
     SetSoundEffect("SpawnDisplaySpawnPointChange", "shell_select_change")
     SetSoundEffect("SpawnDisplaySpawnPointAccept", "shell_menu_enter")
     SetSoundEffect("SpawnDisplayBack",             "shell_menu_exit")


     SetAttackingTeam(ATT)
    AddDeathRegion("deathregion")


             AddCameraShot(0.564619, -0.121047, 0.798288, 0.171142, 68.198814, 79.137611, 110.850922);

            AddCameraShot(-0.281100, 0.066889, -0.931340, -0.221616, 10.076019, 82.958336, -26.261774);

            AddCameraShot(0.209553, -0.039036, -0.960495, -0.178923, 92.558563, 58.820618, 130.675919);

            AddCameraShot(0.968794, 0.154227, 0.191627, -0.030506, -173.914413, 69.858940, 52.532421);

            AddCameraShot(0.744389, 0.123539, 0.647364, -0.107437, 97.475639, 53.216236, 76.477089);

            AddCameraShot(-0.344152, 0.086702, -0.906575, -0.228393, 95.062233, 105.285820, -37.661552);
 end


All of my WAV files are 16bit and mono.
Last edited by Bucman55 on Fri Jan 26, 2018 2:44 pm, edited 1 time in total.

Resistance Leader
User avatar
Posts: 5063
Joined: Tue Feb 09, 2010 8:43 pm
Location: Los Angeles, CA
Projects :: EVERYWHERE + Zero Munge + TCW
Games I'm Playing :: BF4 + DEHR
xbox live or psn: Marth8880

Re: Custom Hero VO not playing.

Postby Marth8880 » Fri Jan 26, 2018 2:40 am

Bucman55 wrote:pcf.req -
Code: Select all
ucft
{
    REQN
    {
        "str"
        "align=2048"
                                     // Having pcf_vo_slow here didn't seem to change anything

    }
   REQN
   {
      "lvl"
      "pcfcw"
      "pcfgcw"
   }   
 }

Having it there is an absolutely 10000000000000000000000000000% necessary requirement no matter what.

Your sounds are probably playing but they're probably just really really quiet. Have you amplified them as much as possible in Audacity?

Private
User avatar
Posts: 36
Joined: Tue Jan 09, 2018 7:01 pm
Location: Texas
Projects :: Playable Campaign Factions
Games I'm Playing :: Star Wars games
xbox live or psn: PSN: BucMan55

Re: Custom Hero VO not playing.

Postby Bucman55 » Fri Jan 26, 2018 2:47 pm

Marth8880 wrote:
Bucman55 wrote:pcf.req -
Code: Select all
ucft
{
    REQN
    {
        "str"
        "align=2048"
                                     // Having pcf_vo_slow here didn't seem to change anything

    }
   REQN
   {
      "lvl"
      "pcfcw"
      "pcfgcw"
   }   
 }

Having it there is an absolutely 10000000000000000000000000000% necessary requirement no matter what.

Your sounds are probably playing but they're probably just really really quiet. Have you amplified them as much as possible in Audacity?


On average, this is what my clips look like in Audacity:
Hidden/Spoiler:
Image


I can guarantee they aren't playing in-game.

Resistance Leader
User avatar
Posts: 5063
Joined: Tue Feb 09, 2010 8:43 pm
Location: Los Angeles, CA
Projects :: EVERYWHERE + Zero Munge + TCW
Games I'm Playing :: BF4 + DEHR
xbox live or psn: Marth8880

Re: Custom Hero VO not playing.

Postby Marth8880 » Sat Jan 27, 2018 5:19 pm

- Gain looks fine in Audacity.
- You still need the STM file listed under the "str" section in the REQ file. This is always required for streams, no exceptions.
- Are you getting any munge errors?
- Try commenting out the `OpenAudioStream("sound\\global.lvl", "cw_music")` and `OpenAudioStream("sound\\kam.lvl", "kam1")` lines in your mission script.

Return to SWBF2 Modding

Who is online

Users browsing this forum: No registered users and 1 guest