the cutting room mirror

Unused Scripts

This article has a talk page!
view on tcrf.net

This is a sub-page of LEGO Star Wars: The Video Game (PlayStation 2, Xbox, GameCube, Windows).

To do:

  • list unused scripts from specific versions rather than just pc as they do have differences, specially the level scripts

Episode I

gungan_c has a script called battledroids.scp that is technically unused, but is identical to the used script battledroid.scp.

party.scp for retake_f:

//RetakeF
ReferenceScript {
    Script=GenericDefend
    Source=Global
    ReturnState=Base
    Conditions {
    }
}

state Base {
    Conditions {
        if CategoryIs "Jedi" == 1 goto JediUpdate
        if PreviousResult == 0 goto NormalUpdate
    }
    Actions {   
    }
}

state NormalUpdate {
    Conditions {
    }
    Actions {   
        FollowPlayer "1.5"
    }
}

state JediUpdate {
    Conditions {
    }
    Actions {   
        FollowPlayer "0.75"
    }
}

bonusattack.scp is listed in the script file of maul_b, but is commented out:

state InActive {
    Conditions {
        if PlayerInTriggerArea "Bonus_Room" == 1 goto Activate
    }
    Actions {
    }
}

state Activate {
    Conditions {
    }
    Actions {
        Activate
    }
}

state Base {
    Conditions {
    }
    Actions {   
        BreakFormation
        CanOpenDoors TRUE
        GoToLocator
        CanOpenDoors FALSE
        SetState "Chase"
    }
}

state Chase {
    Conditions {
        if GotOpponent == 1 goto Engage
    }
    Actions {   
        FollowPlayer 
    }
}

state Engage {
    Conditions {
        if GotOpponent == 0 goto Chase
    }
    Actions {   
        EngageOpponent "goalrange 1.5" "firerange 3"
    }
}

Episode II

kamino_f has an unused script called level1.scp:

state Base {
    Conditions {
        if EitherPlayerInTriggerArea "MINEAREA1" == 1 goto TurnStuffOff
    }
    Actions {
        ;SetVisibility "name=pad1" "TRUE"
        ActivateGadget "mine01trigger"
    }
}

state TurnStuffOff {
    Conditions {
        if EitherPlayerInTriggerArea "Debbies" == 0 goto Base
    }
    Actions {
        ;SetVisibility "name=pad1" "FALSE"
    }
}

In factory_d, freeplay.scp is unused:

//FactoryD
ReferenceScript {
    Script=FreePlayDefend
    Source=Global
    ReturnState=Base
    Conditions {
    }
}

state Base {
    Conditions {
        if InTriggerArea "InPot" == 1 goto DoNothing
    }
    Actions {   
        FollowPlayer "0.75"
    }
}

state DoNothing {
    Conditions {
        if InTriggerArea "InPot" == 0 goto Base
    }
    Actions {   
        Idle
    }
}

Episode III

In cruiser_b, storm.scp is unused.

PARAM 0 visibility 4
PARAM 1 shootrange 3
PARAM 2 engagedist 1.5

state Base {
    Conditions {
        if GotTriggerArea == 0 goto StartApproach
        if EitherPlayerInTriggerArea == 1.0 goto StartApproach
    }
    Actions {
        KeepWeaponOut
        BreakFormation
        Idle
    }
}

state StartApproach {
    Conditions {
    if GotLocator == 0 goto Approach
;   if GotOpponent == 1 goto Fight
    }
    Actions {
        GoToLocator
        SetState "Aproach"
    }
}

state Approach {
    Conditions {
    if GotOpponent == 1 goto Fight
    }
    Actions {
        FollowPlayer
    }
}

state Fight {
    Conditions {
        if GotOpponent == 0 goto Approach
    }
    Actions {
        EngageOpponent "goalrange engagedist" "firerange shootrange"
    }
}

In cruiser_d, droideka, battledroid, and jedi.scp are commented out of the script file.

state Base {
    Conditions {
        if EitherPlayerInTriggerArea == 1 goto Approach

        if BeenAlerted == 1 goto StartFight
    }
    Actions {   
        DontPush
        GoToLocator
        KeepWeaponOut
        EngageOpponent "static" "firerange 3"
    }
}

state Approach {
    Conditions {
    if GotOpponent == 1 goto Fight
    }
    Actions {
        DontPush "FALSE"
        FollowPlayer
    }
}

state Fight {
    Conditions {
        if GotOpponent == 0 goto Approach
        if OpponentRange < 2 and
        if IsOnScreen == 0 goto GetBackOnScreen
    }
    Actions {
        EngageOpponent "goalrange 1.5" "firerange 3"
    }
}

state GetBackOnScreen {
    Conditions {
        if OpponentRange > 2.5 goto Fight
        
        if Timer > 1.5 and
        if IsOnScreen == 1 goto Fight

        if Timer > 1.5 and
        if IsOnScreen == 0 goto GetBackOnScreen
    }
    Actions {
        ResetTimer
        GoToLocator "name" "top"
    }
}
PARAM 0 visibility 4
PARAM 1 shootrange 3
PARAM 2 engagedist 1.5

state Base {
    Conditions {
        if GotTriggerArea == 0 goto Approach
        if EitherPlayerInTriggerArea == 1.0 goto Approach
        
        if BeenAlerted == 1 goto StartFight
    }
    Actions {
        NoLosCheck
        SetViewDistance "50" 
        CanSeeBehind
        KeepWeaponOut
        BreakFormation
        Idle
    }
}

state Approach {
    Conditions {
    if GotOpponent == 1 goto Fight
    }
    Actions {
        FollowPlayer
    }
}

state Fight {
    Conditions {
        if GotOpponent == 0 goto Approach
        if OpponentRange < 2 and
        if IsOnScreen == 0 goto GetBackOnScreen
    }
    Actions {
        EngageOpponent "goalrange engagedist" "firerange shootrange"
    }
}

state GetBackOnScreen {
    Conditions {
        if OpponentRange > 2.5 goto Fight

        if Timer > 1.5 and
        if IsOnScreen == 1 goto Fight

        if Timer > 1.5 and
        if IsOnScreen == 0 goto GetBackOnScreen
    }
    Actions {
        ResetTimer
        GoToLocator "name" "top"
    }
}
ReferenceScript {
    Script=Jedi
    Source=Global
    ReturnState=Base
    Conditions {
        if IsOnScreen == 1
    }
}

state Base {
    Conditions {
        if PlayerRange < 1 and
        if IsOnScreen == 0 goto GetBackOnScreen
    }
    Actions {   
        FollowPlayer "0.75"
    }
}

state GetBackOnScreen {
    Conditions {
        if PlayerRange > 1.5 goto Base

        if Timer > 1.5 and
        if IsOnScreen == 1 goto Base

        if Timer > 1.5 and
        if IsOnScreen == 0 goto GetBackOnScreen
    }
    Actions {
        ResetTimer
        GoToLocator "name" "top"
    }
}

Defense of Kashyyyk#

In kashyyk_b, there are two unused scripts for the beach attacks, beachattack.scp and beachattack2.scp:

ReferenceScript {
    Script=Jedi
    Source=Global
    ReturnState=Base
    Conditions {
        if GotLocator == 0
    }
}
state Base {
    Conditions {
    }
    Actions {
        SetState "Engage"
    }
}

state Approach {
    Conditions {
        if GotOpponent == 1 goto Engage
    }
    Actions {
        FollowPlayer
    }
}

state Engage {
    Conditions {
        if GotOpponent == 0 goto Approach
    }
    Actions {
        EngageOpponent "goalrange 1" "firerange 2"
    }
}
ReferenceScript {
    Script=Jedi
    Source=Global
    ReturnState=Base
    Conditions {
        if GotLocator == 0
    }
}
state Base {
    Conditions {
        if NearestPlayerToLocator < 4 goto GoToLocator
    }
    Actions {
        KeepWeaponOut
        CanDefend
        Respawnable "origin"
    }
}

state GoToLocator {
    Conditions {
    }
    Actions {
        GoToLocator "xz_rangecheck" "0.5"
        SetState "Engage"
    }
}

state Engage {
    Conditions {
    }
    Actions {
        SetMaxMovementRange "Locator" "1.5"
        EngageOpponent "goalrange 1.5" "firerange 3"
    }
}

In kashyyyk_c, the levels script is unused:

state Base {
    Conditions {
    }
    Actions {   
        CnxController "from=centre_to_pad1" "to=pad1_to_centre" "off_flag=BLOCK" "obj=button_plat_2" "checkvisible" "on_frames=1to1"
        CnxController "from=centre_to_pad2" "to=pad2_to_centre" "off_flag=BLOCK" "obj=button_plat_2" "checkvisible" "on_frames=1to1"

        CnxController "from=pad1_to_path" "to=path_to_pad1" "off_flag=BLOCK" "obj=path_1b" "checkvisible" "on_frames=128to128"
        CnxController "from=pad2_to_path" "to=path_to_pad2" "off_flag=BLOCK" "obj=path_1b" "checkvisible" "on_frames=128to128"

        SetVisibility "name=pad_gate1" "FALSE"
        SetVisibility "name=pad_gate_1b" "FALSE"
        SetVisibility "name=pad_gate2" "FALSE"
        SetVisibility "name=pad_gate_2b" "FALSE"
        SetVisibility "name=button_plat_1" "FALSE"
        SetState "Update"
    }
}

state Update {
    Conditions {
//      if Message "Ambush" == 1 and
//      if GoodyInTriggerArea "Start" == 0 goto StartAmbush
        if Message "Ambush" == 1 goto StartAmbush

        if Message "Ambush" == 2 and
        if NumBaddies == 1 goto StartDroidekas //The one baddy is Darth Maul
    }
    Actions {   
    }
}

state ShoutCommander {
    Conditions {
    }
    Actions {   
        
    }
}

state StartAmbush {
    Conditions {
        if Message "CommanderInCharge" == 1 goto DropStartPlatforms
    }
    Actions {
        SetVisibility "name=button_plat_1" "TRUE"
        SetMessage "name=Ambush" "value=2"
        CreateCreatures "locator=COMMANDER_LEFT" "type=battledroid_commander" "script=commander_left"
        Idle
    }
}

state DropStartPlatforms {
    Conditions {
    }
    Actions {
        SnapToLocator "character=Player0" "name=Player_0"
        SnapToLocator "character=Player1" "name=Player_1"
        CameraCut "Reset"
        Idle "0.5"
        UnlockDoor "path_enter"
        OpenDoor "path_enter" "stayopen"
        SetState "Update"
    }
}

state StartDroidekas {
    Conditions {
    }
    Actions {
        SetMessage "name=Ambush" "value=3"
        Idle "2"
        CameraCut "tgt_locator=Droideka_Cam" "range=2.5" "roty=0" "rotx=15" "end_time=5" "blend_out_time=0.5"
        CreateCreatures "locator=DROIDEKA_LEFT" "type=destroyer" "script=droideka"
        CreateCreatures "locator=DROIDEKA_RIGHT" "type=destroyer" "script=droideka"
        UnLockDoor "pad1"
        OpenDoor "pad1" "stayopen"
        UnLockDoor "pad2"
        OpenDoor "pad2" "stayopen"
        SetState "Update"   
    }
}

Luminara#

AI scripts for the Defense of Kashyyyk indicate that Luminara was originally planned to be on Kashyyyk with Yoda and the wookies.

The following is the luminara.scp script in the AI directories for kashyyyk_a, kashyyyk_b, and kashyyyk_c:

ReferenceScript {
    Script=GenericDefend
    Source=Global
    ReturnState=Base
    Conditions {
    }
}

state InActive {
    Conditions {
    if Message "MetLuminara" != 0 goto Activate
    }
    Actions {
    }
}

state Activate {
    Conditions {
    }
    Actions {
        Activate
    }
}

state Base {
    Conditions {
    }
    Actions {   
        FollowPlayer "0.75"
    }
}

The only section of the level with a different script is kashyyk_d:

state Base {
    Conditions {
        if Message "MetLuminara" == 0 goto WaitToBeMet
        if PreviousResult == 1 goto Update
    }
    Actions {   
    }
}

state WaitToBeMet {
    Conditions {
        if DoorOpened "pad_gate" == 1 goto BeenMet
    }
    Actions {
        SnapToLocator "name=Luminara"   
    }
}

state BeenMet {
    Conditions {
    }
    Actions {   
        SetMessage "name=MetLuminara" "value=1"
        SetState "Update"
    }
}

state Update {
    ReferenceScript {
        Script=GenericDefend
        Source=Global
        ReturnState=Update
        Conditions {
        }
    }
    Conditions {
    }
    Actions {   
        FollowPlayer "0.75"
    }
}