Announcement

Collapse
No announcement yet.

Looking for a video tutorial on vehicles

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    Yesterday:
    Here is what I want to do, make the main cannon fire regular, but have the machine gun be on the Alt fire.

    Next day: Problem solved
    It is such a good feeling to figure out how to acomplish a goal on your own
    by having just a little bit of an understanding how things are linked when you see other code.

    After looking at the Hammerhead code I figured out how to do it and decided to share my findings.




    Here is the code for H2_Wraith_Chassis.uc
    Code:
    //-----------------------------------------------------------
    //
    //-----------------------------------------------------------
    class H2_Wraith_Chassis extends ONSHoverCraft;
    
    
    
    //// Switch weapons when alt-fire is pressed and display a message.
    function AltFire(optional float F)
    {
        if(IsFiring())
            return;
    
        if(ActiveWeapon == 0)
        {
            if(PlayerController(Controller) != None)
                PlayerController(Controller).ReceiveLocalizedMessage(class'H2_Wraith_Message', 1);
    
            SetActiveWeapon(1);
        }
        else
        {
            if(PlayerController(Controller) != None)
                PlayerController(Controller).ReceiveLocalizedMessage(class'H2_Wraith_Message', 0);
    
            SetActiveWeapon(0);
        }
    }
    //Switch back to main gun when driver leaves.
    function UnPossessed()
    {
        Super.UnPossessed();
    
        SetActiveWeapon(0);
    }
    ////
    
    
    defaultproperties
    {
         ThrusterOffsets(0)=(X=95.000000,Z=10.000000)
         ThrusterOffsets(1)=(X=-10.000000,Y=80.000000,Z=10.000000)
         ThrusterOffsets(2)=(X=-10.000000,Y=-80.000000,Z=10.000000)
         HoverSoftness=0.220000
         HoverPenScale=1.000000
         HoverCheckDist=150.000000
         UprightStiffness=500.000000
         UprightDamping=300.000000
         MaxThrustForce=27.000000
         LongDamping=0.020000
         MaxStrafeForce=15.000000
         LatDamping=0.100000
         TurnTorqueFactor=1000.000000
         TurnTorqueMax=125.000000
         TurnDamping=40.000000
         MaxYawRate=1.500000
         PitchTorqueFactor=200.000000
         PitchTorqueMax=9.000000
         PitchDamping=20.000000
         RollTorqueTurnFactor=450.000000
         RollTorqueStrafeFactor=200.000000
         RollTorqueMax=12.500000
         RollDamping=30.000000
         StopThreshold=50.000000
         DriverWeapons(0)=(WeaponClass=Class'H2_Vehicles.H2_Wraith_Cannon',WeaponBone="Cannon")
         DriverWeapons(1)=(WeaponClass=Class'H2_Vehicles.H2_Wraith_MinigunMaster',WeaponBone="Gun_Fire_R")
         DriverWeapons(2)=(WeaponClass=Class'H2_Vehicles.H2_Wraith_Gun_Fire',WeaponBone="Gun_Fire_L")
         bHasAltFire=False
         IdleSound=Sound'Ghost.Ghost.ghost_hover'
         StartUpSound=Sound'Ghost.Ghost.ghost_in'
         ShutDownSound=Sound'Ghost.Ghost.ghost_out'
         StartUpForce="HoverBikeStartUp"
         ShutDownForce="HoverBikeShutDown"
         DestroyedVehicleMesh=ONSDeadVehicles-SM.HoverBikeDead
         DestructionEffectClass=Onslaught.ONSSmallVehicleExplosionEffect
         DisintegrationEffectClass=Onslaught.ONSVehDeathHoverBike
         DestructionLinearMomentum=(Min=62000.000000,Max=100000.000000)
         DestructionAngularMomentum=(Min=25.000000,Max=75.000000)
         DamagedEffectScale=0.600000
         DamagedEffectOffset=(X=50.000000,Y=-25.000000,Z=10.000000)
         ImpactDamageMult=0.000100
         HeadlightCoronaOffset(0)=(X=73.000000,Y=10.000000,Z=14.000000)
         HeadlightCoronaOffset(1)=(X=73.000000,Y=-10.000000,Z=14.000000)
         HeadlightCoronaMaterial=Texture'EpicParticles.Flares.FlashFlare1'
         HeadlightCoronaMaxSize=60.000000
         bDrawDriverInTP=False
         bTurnInPlace=True
         bShowDamageOverlay=True
         bScriptedRise=True
         bShowChargingBar=True
         bDriverHoldsFlag=False
         bCanCarryFlag=False
         DrivePos=(Z=130.000000)
         ExitPositions(0)=(Y=-200.000000,Z=100.000000)
         ExitPositions(1)=(Y=200.000000,Z=100.000000)
         EntryRadius=375.000000
         FPCamPos=(X=-70.000000,Z=130.000000)
         FPCamViewOffset=(X=90.000000)
         TPCamLookat=(X=-50.000000,Z=0.000000)
         TPCamWorldOffset=(Z=250.000000)
         VehiclePositionString="in a H2 Wraith Tank"
         VehicleNameString="H2 Wraith Tank"
         RanOverDamageType=Onslaught.DamTypeHoverBikeHeadshot
         CrushedDamageType=Onslaught.DamTypeHoverBikePancake
         ObjectiveGetOutDist=750.000000
         FlagBone="HoverCraft"
         FlagOffset=(Z=45.000000)
         FlagRotation=(Yaw=32768)
         HornSounds(0)=ONSVehicleSounds-S.Horns.Horn02
         HornSounds(1)=ONSVehicleSounds-S.Horns.La_Cucharacha_Horn
         bCanStrafe=True
         MeleeRange=-100.000000
         GroundSpeed=520.000000
         HealthMax=900.000000
         Health=900
         Mesh=SkeletalMesh'H2_Vehicles_A.H2_Wraith_Chassis'
         SoundRadius=900.000000
         Begin Object Class=KarmaParamsRBFull Name=KParams0
             KInertiaTensor(0)=1.300000
             KInertiaTensor(3)=4.000000
             KInertiaTensor(5)=4.500000
             KLinearDamping=0.150000
             KAngularDamping=0.000000
             KStartEnabled=True
             bHighDetailOnly=False
             bClientOnly=False
             bKDoubleTickRate=True
             bKStayUpright=True
             bKAllowRotate=True
             bDestroyOnWorldPenetrate=True
             bDoSafetime=True
             KFriction=0.500000
             KImpactThreshold=700.000000
         End Object
         KParams=KarmaParamsRBFull'H2_Vehicles.H2_Wraith_Chassis.KParams0'
    
    }



    Here is the code for H2_Wraith_Cannon.uc
    Code:
    //=============================================================================
    //
    //
    //=============================================================================
    
    class H2_Wraith_Cannon extends ONSHoverTankCannon;
    
    var()    class<FX_Turret_IonCannon_BeamFire> BeamEffectClass;
    var        float    StartHoldTime, MaxHoldTime, ShockMomentum, ShockRadius;
    var        bool    bHoldingFire, bFireMode;
    var        int        BeamCount, OldBeamCount;
    
    var    sound    ChargingSound, ShockSound;
    
    var    FX_IonPlasmaTank_AimLaser    AimLaser;
    
    replication
    {
        reliable if ( bNetDirty && !bNetOwner && Role == ROLE_Authority )
            bFireMode, BeamCount;
    }
    
    simulated function Destroyed()
    {
        KillLaserBeam();
    
        super.Destroyed();
    }
    
    function PlayFiring()
    {
        AmbientSound = None;
        PlaySound(sound'WeaponSounds.BExplosion5', SLOT_None, FireSoundVolume/255.0,,,, False);
    }
    
    function PlayChargeUp()
    {
        AmbientSound = ChargingSound;
    }
    
    function PlayRelease()
    {
        AmbientSound = None;
        PlaySound(sound'WeaponSounds.TranslocatorModuleRegeneration', SLOT_None, FireSoundVolume/255.0,,,, False);
    }
    
    simulated event FlashMuzzleFlash()
    {
        super.FlashMuzzleFlash();
    
        if ( Level.NetMode != NM_DedicatedServer )
        {
            if ( !IsAltFire() && BeamCount != OldBeamCount )
            {
                OldBeamCount = BeamCount;
                PlayAnim('Fire', 0.5, 0);
                super.ShakeView();
            }
        }
    }
    
    simulated function bool IsAltFire()
    {
        if ( Instigator.IsLocallyControlled() )
            return bIsAltFire;
    
        return bFireMode;
    }
    
    simulated function ShakeView()
    {
        if ( IsAltFire() )
            super.ShakeView();
    }
    
    simulated function float ChargeBar()
    {
        if ( bHoldingFire )
            return (FMin(Level.TimeSeconds - StartHoldTime, MaxHoldTime) / MaxHoldTime);
        else
            return 0;
    }
    
    function SpawnBeamEffect(Vector Start, Rotator Dir, Vector HitLocation, Vector HitNormal, int ReflectNum)
    {
        local FX_Turret_IonCannon_BeamFire Beam;
    
        Beam = Spawn(BeamEffectClass,,, Start, Dir);
        if (ReflectNum != 0) Beam.Instigator = None; // prevents client side repositioning of beam start
        Beam.AimAt(HitLocation, HitNormal);
    }
    
    function SpawnLaserBeam()
    {
        CalcWeaponFire();
        AimLaser = Spawn(class'FX_IonPlasmaTank_AimLaser', Self,, WeaponFireLocation, WeaponFireRotation);
    }
    
    function KillLaserBeam()
    {
        if ( AimLaser != None )
        {
            AimLaser.Destroy();
            AimLaser = None;
        }
    }
    
    simulated function UpdateLaserBeamLocation( out vector Start, out vector HitLocation )
    {
        local vector    HitNormal;
        local rotator    Dir;
    
        CalcWeaponFire();
        Start        = WeaponFireLocation;
        Dir            = WeaponFireRotation;
        HitLocation    = vect(0,0,0);
        SimulateTraceFire( Start, Dir, HitLocation, HitNormal );
        //log("UpdateLaserBeamLocation WFL:" @ WeaponFireLocation @ "WFR:" @ WeaponFireRotation
        //    @ "Start:" @ Start @ "HL:" @ HitLocation );
    }
    
    event bool AttemptFire( Controller C, bool bAltFire )
    {
        bFireMode = bAltFire;
        return super.AttemptFire( C, bAltFire );
    }
    
    state ProjectileFireMode
    {
        simulated function ClientStartFire(Controller C, bool bAltFire)
        {
            bFireMode    = bAltFire;
            bIsAltFire    = bAltFire;
            //log("ClientStartFire");
            if ( !bAltFire )
            {
                if ( Role < ROLE_Authority && FireCountdown <= 0 )
                {
                    bHoldingFire    = true;
                    StartHoldTime    = Level.TimeSeconds;
                    SetTimer( MaxHoldTime, false );
                }
                else
                    SetTimer( FireCountDown, false );    // synch to starthold matches server (done in timer)
                //super.ClientStartFire(C, bAltFire);
    
    
            }
            else
            {
                super.ClientStartFire(C, bAltFire);
            }
        }
    
        simulated function Timer()
        {
            if ( !bHoldingFire )
            {
                if ( Role < Role_Authority && !bFireMode )
                {
                    bHoldingFire    = true;
                    StartHoldTime    = Level.TimeSeconds;
                    SetTimer( MaxHoldTime, false );
                }
                return;
            }
    
            bHoldingFire    = false;
            FireCountdown    = FireInterval;
            SetTimer(FireInterval, false);
    
            if ( Role == ROLE_Authority )
            {
                KillLaserBeam();
                CalcWeaponFire();
                FlashCount++;
                PlayFiring();
    
                if ( AmbientEffectEmitter != None )
                    AmbientEffectEmitter.SetEmitterStatus( true );
    
                TraceFire(WeaponFireLocation, WeaponFireRotation);
            }
            BeamCount++;
            FlashMuzzleFlash();
        }
    
        simulated function ClientStopFire(Controller C, bool bWasAltFire)
        {
            //log("ClientStopFire");
            super.ClientStopFire(C, bWasAltFire);
    
            if ( bHoldingFire )
            {
                bHoldingFire    = false;
                FireCountdown    = FireInterval;
                ClientPlayForceFeedback("BioRifleFire");
            }
            SetTimer(0, false);
        }
    
        function Fire(Controller C)
        {
            NetUpdateTime = Level.TimeSeconds - 1;
            bFireMode = false;
            //log("Fire");
            if ( !bHoldingFire )
            {
                PlayChargeUp();
                StartHoldTime    = Level.TimeSeconds;
                bHoldingFire    = true;
                SetTimer( MaxHoldTime, false );
                SpawnLaserBeam();
            }
        }
    
        function AltFire(Controller C)
        {
            local actor        Shock;
            local float        DistScale, dist;
            local vector    dir, StartLocation;
            local Pawn        Victims;
    
            NetUpdateTime = Level.TimeSeconds - 1;
            bFireMode = true;
            //log("AltFire");
            StartLocation = Instigator.Location;
    
            PlaySound(ShockSound, SLOT_None, 128/255.0,,, 2.5, False);
    
            Shock = Spawn(class'FX_IonPlasmaTank_ShockWave', Self,, StartLocation);
            Shock.SetBase( Instigator );
    
            foreach VisibleCollidingActors( class'Pawn', Victims, ShockRadius, StartLocation )
            {
                //log("found:" @ Victims.GetHumanReadableName() );
                // don't let Shock affect fluid - VisibleCollisingActors doesn't really work for them - jag
                if( (Victims != Instigator) && (Victims.Controller != None)
                    && (Victims.Controller.GetTeamNum() != Instigator.GetTeamNum())
                    && (Victims.Role == ROLE_Authority) )
                {
    
                    dir = Victims.Location - StartLocation;
                    dir.Z = 0;
                    dist = FMax(1,VSize(dir));
                    dir = Normal(Dir)*0.5 + vect(0,0,1);
                    DistScale = 1 - FMax(0,(dist - Victims.CollisionRadius)/ShockRadius);
                    Victims.AddVelocity( DistScale * ShockMomentum * dir );
                    //Victims.Velocity = (DistScale * ShockMomentum * dir);
                    //Victims.TakeDamage(0, Instigator, Victims.Location - 0.5 * (Victims.CollisionHeight +
    
    Victims.CollisionRadius) * dir,
                    //(DistScale * ShockMomentum * dir), None    );
                    //log("Victims:" @ Victims.GetHumanReadableName() @ "DistScale:" @ DistScale );
                }
            }
        }
    
        function CeaseFire(Controller C)
        {
            //log("CeaseFire");
    
            KillLaserBeam();
    
            if ( bHoldingFire )
            {
                if ( Role == Role_Authority )
                    PlayRelease();
    
                SetTimer(0, false);
                bHoldingFire    = false;
                FireCountdown    = FireInterval;
            }
        }
    }
    
    defaultproperties
    {
         BeamEffectClass=Class'H2_Vehicles.H2_Wraith_BeamFire',WeaponBone="TankTurret")
         MaxHoldTime=2.000000
         ShockMomentum=750.000000
         ShockRadius=1792.000000
         ChargingSound=AssaultSounds.AssaultRifle.IonPowerUp
         ShockSound=ONSVehicleSounds-S.AVRiL.AvrilFire01
         RedSkin=None
         BlueSkin=None
         FireInterval=1.500000
         AltFireInterval=1.500000
         EffectEmitterClass=None
         FireSoundClass=WeaponSounds.BaseImpactAndExplosions.BExplosion5
         DamageMin=0
         DamageMax=0
         TraceRange=20000.000000
         ProjectileClass=None
         AIInfo(0)=(WarnTargetPct=0.990000,RefireRate=0.990000)
         Mesh=SkeletalMesh'H2_Vehicles_A.H2_Wraith_Cannon'
         SoundPitch=112
         SoundRadius=512.000000
    }



    Here is the code for H2_Wraith_BeamFire.uc
    Code:
    //=============================================================================
    //
    //
    //=============================================================================
    
    class H2_Wraith_BeamFire extends FX_Turret_IonCannon_BeamFire;
    
    defaultproperties
    {
         DamageType=OnslaughtFull.DamTypeIonTankBlast
    }



    Here is the code for H2_Wraith_MinigunMaster.uc for duo fire
    Code:
    //=============================================================================
    // H2_Wraith_MinigunMaster - Makes the Wraith Minigun mirror its actions.
    //=============================================================================
    class H2_Wraith_MinigunMaster extends H2_Wraith_Gun_Fire;
    
    var bool bOwnerSound;
    
    //Makes sure the second minigun is active at the same time as this one, and is aiming at the same point.
    function Tick(float Delta)
    {
        Super.Tick(Delta);
    
        if(Owner == None)
            return;
    
        ONSVehicle(Owner).Weapons[2].bActive = bActive;
        ONSVehicle(Owner).Weapons[2].CurrentHitLocation = CurrentHitLocation;
    }
    
    //Fire the second minigun at the same time as this one.
    function bool AttemptFire(Controller C, bool bAltFire)
    {
        ONSVehicle(Owner).Weapons[2].AttemptFire(C, bAltFire);
    
        return Super.AttemptFire(C, bAltFire);
    }
    
    //Makes sure effects are stopped for the second minigun.
    function CeaseFire(Controller C)
    {
        Super.CeaseFire(C);
    
        ONSVehicle(Owner).Weapons[2].CeaseFire(C);
    }
    
    simulated function ClientStopFire(Controller C, bool bWasAltFire)
    {
        Super.ClientStopFire(C, bWasAltFire);
    
        ONSVehicle(Owner).Weapons[2].ClientStopFire(C, bWasAltFire);
    }
    
    //The code down there delays the firing sound for this weapon by half the FireInterval so it plays alternately with the other slave
    
    weapon (makes it sound faster and gives a better stereo effect).
    state InstantFireMode
    {
        function Fire(Controller C)
        {
            FlashMuzzleFlash();
    
            if (AmbientEffectEmitter != None)
            {
                AmbientEffectEmitter.SetEmitterStatus(true);
            }
    
            // Play firing noise
            if (bAmbientFireSound)
                AmbientSound = FireSoundClass;
            else
            SetTimer(FireInterval * 0.5, false);
    
            TraceFire(WeaponFireLocation, WeaponFireRotation);
        }
    }
    
    simulated event OwnerEffects()
    {
        if (!bIsRepeatingFF)
        {
            if (bIsAltFire)
                ClientPlayForceFeedback( AltFireForce );
            else
                ClientPlayForceFeedback( FireForce );
        }
        ShakeView();
    
        if (Role < ROLE_Authority)
        {
            if (bIsAltFire)
                FireCountdown = AltFireInterval;
            else
                FireCountdown = FireInterval;
    
            AimLockReleaseTime = Level.TimeSeconds + FireCountdown * FireIntervalAimLock;
    
            FlashMuzzleFlash();
    
            if (AmbientEffectEmitter != None)
                AmbientEffectEmitter.SetEmitterStatus(true);
    
            // Play firing noise
            if (!bAmbientFireSound)
            {
            bOwnerSound = true;
            SetTimer(FireInterval * 0.5, false);
            }
        }
    }
    
    simulated function Timer()
    {
        if(bOwnerSound)
        {
            PlaySound(FireSoundClass, SLOT_None, FireSoundVolume/255.0,, FireSoundRadius, FireSoundPitch, False);
            bOwnerSound = false;
        }
        else
            PlayOwnedSound(FireSoundClass, SLOT_None, FireSoundVolume/255.0,, FireSoundRadius, FireSoundPitch, False);
    }
    
    defaultproperties
    {
         FireSoundPitch=1.500000
    }




    Here is the code for H2_Wraith_Gun_Fire.uc
    Code:
    //=============================================================================
    // H2_Wraith_Gun_Fire - This weapon is passive; It obeys the MinigunMaster!
    //=============================================================================
    class H2_Wraith_Gun_Fire extends ONSWeapon;
    
    function byte BestMode()
    {
        return 0;
    }
    
    defaultproperties
    {
         YawBone="Dummy_Fire"
         PitchBone="Dummy_Fire"
         PitchUpLimit=12500
         PitchDownLimit=59500
         WeaponFireAttachmentBone="Dummy_Fire"
         RotationsPerSecond=2.000000
         bInstantFire=True
         bIsRepeatingFF=True
         Spread=0.010000
         RedSkin=Texture'H2_VehiclesTX.Wraith'
         BlueSkin=Texture'H2_VehiclesTX.Wraith'
         FireInterval=0.100000
         AmbientEffectEmitterClass=Class'Onslaught.ONSRVChainGunFireEffect'
         FireSoundClass=Sound'ONSVehicleSounds-S.Tank.TankMachineGun01'
         FireSoundVolume=150.000000
         AmbientSoundScaling=0.500000
         FireForce="minifireb"
         DamageType=Class'Onslaught.DamTypeONSChainGun'
         DamageMin=9
         DamageMax=9
         TraceRange=15000.000000
         ShakeRotMag=(X=50.000000,Y=50.000000,Z=50.000000)
         ShakeRotRate=(X=10000.000000,Y=10000.000000,Z=10000.000000)
         ShakeRotTime=2.000000
         ShakeOffsetMag=(X=1.000000,Y=1.000000,Z=1.000000)
         ShakeOffsetRate=(X=1000.000000,Y=1000.000000,Z=1000.000000)
         ShakeOffsetTime=2.000000
         AIInfo(0)=(bInstantHit=True,aimerror=750.000000)
         CullDistance=8000.000000
         Mesh=SkeletalMesh'H2_Vehicles_A.Dummy_Fire'
    }



    Here is the code for H2_Wraith_Message.uc
    Code:
    //-----------------------------------------------------------
    //
    //-----------------------------------------------------------
    class H2_Wraith_Message extends LocalMessage;
    
    static function string GetString(
        optional int Switch,
        optional PlayerReplicationInfo RelatedPRI_1,
        optional PlayerReplicationInfo RelatedPRI_2,
        optional Object OptionalObject
        )
    {
        if(Switch == 0)
            return "Artillery";
        else if(Switch == 1)
            return "Miniguns";
        else
            return "";
    }
    
    defaultproperties
    {
         bIsUnique=True
         bFadeMessage=True
         Lifetime=2
         StackMode=SM_Down
         PosY=0.800000
         FontSize=2
    }



    Here is the code for H2_Wraith_Factory.uc
    Code:
    //-----------------------------------------------------------
    //
    //-----------------------------------------------------------
    class H2_Wraith_Factory extends ONSVehicleFactory;
    
    defaultproperties
    {
         RedBuildEffectClass=Class'Onslaught.ONSRVBuildEffectRed'
         BlueBuildEffectClass=Class'Onslaught.ONSRVBuildEffectBlue'
         VehicleClass=Class'H2_Vehicles.H2_Wraith_Chassis'
         Mesh=SkeletalMesh'H2_Vehicles_A.H2_Wraith_Chassis'
    }

    Comment


      HI guys just a quick question: anyone have an idea where from exactly is the function "ClientSetViewTarget"/"SetViewTarget"/"BecomeViewTarget" called from? Looking for the one responsible for switching the Eye position to another Pawn/Vehicle)
      Is it called from KDriverEntered, or PossessedBy, or from somewhere else, possibly native?
      This is the function that tells the player to switch it's 'camera' to the vehicle itself.
      Thx in advance!

      Comment


        From what it looks like ClientSetViewTarget calls come from other functions in the PlayerController.uc class.

        From what I can tell, the 'KDriverEnter' function in the Vehicle.uc class calls 'C.Possess(self)' on the controller to take charge of the vehicle. Possess (in the PlayerController.uc version) assign the pawn (vehicle in this case) to the controller, then calls the function 'Restart()'. This function then calls 'SetViewTarget()' and also the 'ClientRestart()' function which is replicated down to the Client's version of the controller.

        Comment


          Hey meowcat,

          For the longest time I have wanted to fire a blue plasma arch (if you know what I mean) from my wraith tank.
          Some one told me a long time ago that the HaloUT team made a H1 wraith tank, but I cant find it anywhere.
          I have looked high and low and cant find a mod that does this or something similar.
          The closest thing I found is that standard ut2004 green blob gun. It does fire the blobs in an arch, so I think it is possible.
          I just need to find out how to change its property's (I think) from blob to energy and make it bigger and fire slower.

          So, do you have any ideas how this can be done?

          Comment


            I am having trouble with a custom vehicle of mine, the problem is that when I try to steer, the vehicle just stops dead and even starts moving sideways a bit. I tried increasing the output values for MaxSteerAngleCurve, and also reducing the turn damping but I am still not able to fix it.
            My values are:

            MaxSteerAngleCurve=(Points=((OutVal=1000.000000),(InVal=300.000000,OutVal=850.000000),(InVal=500.000000,OutVal=700.000000),(InVal=600.000000,OutVal=600.000000),(InVal=1000000000.000000,OutVal=500.000000)))


            TorqueCurve=(Points=((OutVal=3/*12.000000*/),(InVal=200.000000,OutVal=6/*3.000000*/),(InVal=1500.000000,OutVal=12/*4.000000*/),(InVal=5000,OutVal=16),(InVal=7000,OutVal=20),(InVal=10000000000.000000,OutVal=0.900000)))

            GearRatios(0)=-0.200000
            GearRatios(1)=0.200000
            TransRatio=0.12//0.3//0.120000
            SteeringScaleFactor=4//0.750000//2//0.750000
            ChangeUpPoint=7000//3000.000000
            ChangeDownPoint=1000.000000

            My vehicle has only ONE forward gear.

            ChassisTorqueScale=0.095
            MinBrakeFriction=4.000000

            SteerSpeed=300 //is is the number of Unreal degrees (65536 = 360) per second that the front tires try to turn at. In almost all cases the tires turn at this rate but really it depends on SteerTorque.
            TurnDamping=25

            LSDFactor=1


            WheelSoftness=0.075
            WheelPenScale=1.5//0.9 //0.03 calculated.//2.000000 //higher =more bounce medium value 1
            WheelPenOffset=0.010000
            WheelRestitution=0.100000
            WheelInertia=0.025//0.100000
            WheelLongFrictionFunc=(Points=(,(InVal=100.000000,OutVal=1.000000),(InVal=200.000000,OutVal=0.900000),(InVal=10000000000.000000,OutVal=0.900000)))
            WheelLongSlip=0.001000
            WheelLatSlipFunc=(Points=(,(InVal=30.000000,OutVal=0.009000),(InVal=10000000000.000000)))
            WheelLongFrictionScale=1.500000
            WheelLatFrictionScale=3.000000
            WheelHandbrakeSlip=0.010000
            WheelHandbrakeFriction=0.100000
            WheelSuspensionTravel=7//10//5//15.000000
            WheelSuspensionMaxRenderTravel=15.000000
            //WheelSuspensionOffset //This is the vertical offset of the suspension. This is the number of unreal units to offset the initial position of the wheels by. Positive number will make the wheels closer to the car (more like a sports car) while negative numbers will make the wheels further below the car (like a monster truck).
            WheelSuspensionOffset=-5

            The left and right (physical) wheels are spaced at around 50-60 UUs from each other.
            Wheel Radius is 15.
            All wheels are powered.

            The vehicle is similar in size with the TC 1200 toilet car.
            Last edited by Deggenyr; 03-05-2018, 11:55 AM.

            Comment


              ut2004isdead/Max: Most of that arc-projectile effect will be in the projectile class and its effect and explosion effect class. I recommend starting with the ONSPlasmaProjectile as a base class, or maybe just subclass it. It already has similar particle effects already. To get the arcing effect, you will then need to change its Physics mode, either in the default properties or via a 'timer' call sometime after it spawns, to PHYS_Falling. You will have to learn about emitters and experiment a bit to get an effect that you like. I usually just copy and paste and Emitter effect that I like from something else into a new class, then edit it as necessary until I get something I like.

              Here is a simple subclass to start from:

              Code:
              class WraithProjectile extends ONSPlasmaProjectile;
              
              defaultproperties
              {
                  ExplosionDecal=class'LinkBoltScorch'
                  HitEffectClass=class'Onslaught.ONSPlasmaHitGreen' // <- maybe make a subclass of this, then scale everything larger
                 PlasmaEffectClass=class'Onslaught.ONSBluePlasmaFireEffect'  
                  Lifespan=5.0 //1.2
                  Speed=7000
                  MaxSpeed=7000
                  AccelerationMagnitude=0.0
                  Damage=95 //70
                  DamageRadius=350 // 240.0
                  MomentumTransfer=4000
                  Physics=PHYS_falling // Physics=PHYS_Projectile // <- changed this to have it drop
                  DrawType=DT_None
                  Style=STY_Additive
                  AmbientGlow=100
              }
              @Deggenyr: I think I've seen that before... but I don't quite remember what setting was causing it. You can use 'code' tags by putting the word 'code' in place of the word brackets like this [brackets] code paste goes here [/brackets], to make your default properties paste show up in the forum as a code block (easier to read).

              I have a small ATV vehicle in my own mod that works fairly well, here are the default properties for comparison. I've noticed that small karma physics vehicle seem to behave "squirrely", I don't know if that is just because the forces then applied to them can so easily perturb them or what, just that they seem to get wonky pretty easily. I bumped up the mass of my ATV (to almost half the HellBender's) in a partially successful effort to have be less "bouncy". The other thing to keep track of is where the Vehicle's center of mass is located (it can be adjusted by the Offset in the KarmaParams properties, or by physically shifting the model's center point), and how its collision boxes and wheel traces are interacting, good debug commands can be found here, and here is the old psyonix svehicle tutorial (highly recommend downloading offline copies of these webpages, and any of these UDN2 ones.... they probably won't be around for much longer considering they are already 14+ years old).
              Code:
              defaultproperties
              {
              ...
              
                  DrawScale=1.0
                  DrawScale3D=(X=1.0,Y=1.0,Z=1.0)
                  CollisionRadius=85.0
                  bDoStuntInfo=true
              
                  AirTurnTorque=35.0
                  AirPitchTorque=55.0
                  AirPitchDamping=35.0
                  AirRollTorque=35.0
                  AirRollDamping=35.0
                  bHasHandbrake=true
              
              ....
              
                  StartUpForce="RVStartUp"
                  ShutDownForce="PRVShutDown"
              
                  SteerBoneName="Steering"
                  SteerBoneAxis=AXIS_Z
                  SteerBoneMaxAngle=-25
              
               ....
              
                  WheelPenScale=1.2
                  WheelPenOffset=0.01
                  WheelSoftness=0.025
                  WheelRestitution=0.1
                  WheelAdhesion=0.0
                  WheelLongFrictionFunc=(Points=((InVal=0,OutVal=0.0),(InVal=100.0,OutVal=1.0),(InVal=200.0,OutVal=0.9),(InVal=10000000000.0,OutVal=0.9)))
                  WheelLongFrictionScale=1.1
                  WheelLatFrictionScale=1.35
                  WheelLongSlip=0.001
                  WheelLatSlipFunc=(Points=((InVal=0.0,OutVal=0.0),(InVal=30.0,OutVal=0.009),(InVal=45.0,OutVal=0.00),(InVal=10000000000.0,OutVal=0.00)))
                  WheelHandbrakeSlip=0.01
                  WheelHandbrakeFriction=0.1
                  WheelSuspensionTravel=5.0
                  WheelSuspensionOffset=-4.0
                  WheelSuspensionMaxRenderTravel=5.0
                  TurnDamping=35
              
                  HandbrakeThresh=200
                  FTScale=0.03
                  ChassisTorqueScale=0.08
              
                  MinBrakeFriction=4.0
                  MaxBrakeTorque=20.0
                  MaxSteerAngleCurve=(Points=((InVal=0,OutVal=45),(InVal=600.0,OutVal=25.0),(InVal=1100.0,OutVal=10.0),(InVal=1300.0,OutVal=6.0),(InVal=1600.0,OutVal=1.0)))
                  SteerSpeed=160
                  StopThreshold=100
                  TorqueCurve=(Points=((InVal=0,OutVal=9.0),(InVal=200,OutVal=10.0),(InVal=1500,OutVal=11.0),(InVal=2800,OutVal=0.0)))
                  EngineBrakeFactor=0.0001
                  EngineBrakeRPMScale=0.1
                  EngineInertia=0.1
                  WheelInertia=0.1
              
                  TransRatio=0.15
                  GearRatios[0]=-0.5
                  GearRatios[1]=0.4
                  GearRatios[2]=0.65
                  GearRatios[3]=0.85
                  GearRatios[4]=1.1
                  ChangeUpPoint=2000
                  ChangeDownPoint=1000
                  LSDFactor=1.0
              
                  VehicleMass=1.9 //was 1.1
              
                  Begin Object Class=KarmaParamsRBFull Name=KParams0
                      KStartEnabled=True
                      KFriction=0.5
                      KLinearDamping=0.05
                      KAngularDamping=0.05
                      KImpactThreshold=700
                      bKNonSphericalInertia=True
                      bHighDetailOnly=False
                      bClientOnly=False
                      bKDoubleTickRate=True
                      KInertiaTensor(0)=1.0
                      KInertiaTensor(1)=0.0
                      KInertiaTensor(2)=0.0
                      KInertiaTensor(3)=3.0
                      KInertiaTensor(4)=0.0
                      KInertiaTensor(5)=3.0
                      KCOMOffset=(X=0.0,Y=0.0,Z=-0.3)
                      bDestroyOnWorldPenetrate=True
                      bDoSafetime=True
                      Name="KParams0"
                  End Object
                  KParams=KarmaParams'KParams0'
              
                  Begin Object Class=SVehicleWheel Name=RRWheel
                      BoneName="RRgtTire"
                      BoneRollAxis=AXIS_Y
                      BoneSteerAxis=AXIS_Z
                      BoneOffset=(X=0.0,Y=0.0,Z=0.0)
                      WheelRadius=16
                      bPoweredWheel=True
                      bHandbrakeWheel=True
                      SteerType=VST_Fixed
                      SupportBoneName=""
                      SupportBoneAxis=AXIS_X
                  End Object
                  Wheels(0)=SVehicleWheel'RRWheel'
              
                  Begin Object Class=SVehicleWheel Name=LRWheel
                      BoneName="RLftTire"
                      BoneRollAxis=AXIS_Y
                      BoneSteerAxis=AXIS_Z
                      BoneOffset=(X=0.0,Y=0.0,Z=0.0)
                      WheelRadius=16
                      bPoweredWheel=True
                      bHandbrakeWheel=True
                      SteerType=VST_Fixed
                      SupportBoneName=""
                      SupportBoneAxis=AXIS_X
                  End Object
                  Wheels(1)=SVehicleWheel'LRWheel'
              
                  Begin Object Class=SVehicleWheel Name=RFWheel
                      BoneName="FRgtTire"
                      BoneRollAxis=AXIS_Y
                      BoneSteerAxis=AXIS_Z
                      BoneOffset=(X=0.0,Y=0.0,Z=0.0)
                      WheelRadius=16
                      bPoweredWheel=True
                      SteerType=VST_Steered
                      SupportBoneName=""
                      SupportBoneAxis=AXIS_X
                  End Object
                  Wheels(2)=SVehicleWheel'RFWheel'
              
                  Begin Object Class=SVehicleWheel Name=LFWheel
                      BoneName="FLftTire"
                      BoneRollAxis=AXIS_Y
                      BoneSteerAxis=AXIS_Z
                      BoneOffset=(X=0.0,Y=0.0,Z=0.0)
                      WheelRadius=16
                      bPoweredWheel=True
                      SteerType=VST_Steered
                      SupportBoneName=""
                      SupportBoneAxis=AXIS_X
                  End Object
                  Wheels(3)=SVehicleWheel'LFWheel'
              
                  GroundSpeed=920
                  bDriverHoldsFlag=false
              }
              Last edited by meowcatbuf; 03-05-2018, 09:47 PM.

              Comment


                I am having a problem getting my vehicles into a total conversion mod.
                The TC mod is in a folder called Halo_1, I was able to run my custom maps from the Halo_1 folder
                but when I try to compile my vehicles in that folder I get this error.

                Code:
                Init: Base directory: C:\UT2004\System\
                
                Heading: ------------------------H1_Vehicles - Release-------------------------
                Warning: Failed to load 'H1_Vehicles.u': Can't find file 'H1_Vehicles.u'
                Warning: Failed loading package: Can't find file 'H1_Vehicles.u'
                Log: Analyzing...
                Critical: Can't find files matching H1_Vehicles\Classes\*.uc
                Exit: Executing UObject::StaticShutdownAfterError
                Critical: UMakeCommandlet::Main
                Exit: Exiting.
                Do I need to put all files in one folder to compile or do something different?

                Comment


                  Hi Maxx, I had my mod running in its own folder using UT2K4's mod system at one time, but I don't know if I ever actually compiled anything in that folder. I think I compiled the .u files normally in the UT200/System directory and then just moved them to the other folder afterwards. I think you can specify extra folder paths in the .ini file so that the compiler can check other folders... but its been over ten years since I tired that.

                  These two old links over at the UDN2 may help
                  PublicModResource
                  Improved Mod Support

                  Comment


                    The link you gave me fixed the problem.
                    Now I have vehicles in my mod.

                    I changed the folder paths on the MyMod.ini inside of the MyMod folder.

                    Paths=../MyMod/Animations/*.ukx
                    Paths=../MyMod/Help/*.ukx
                    Paths=../MyMod/Maps/*.ut2
                    Paths=../MyMod/Music/*.umx
                    Paths=../MyMod/Sounds/*.uax
                    Paths=../MyMod/StaticMeshes/*.uax
                    Paths=../MyMod/System/*.u
                    Paths=../MyMod/Textures/*.utx

                    Then I made a shortcut to UnrealEd and in the properties/target I add this command line
                    C:\UT2004\System\unrealed.exe -mod=MyMod

                    Then I was able to add vehicles to my mod maps.

                    Thanks meowcatbuf

                    ------------------------
                    One other thing:

                    In the "UDN - Two - ImprovedModSupport" link under the script packages section,
                    it mentions the MyModGUI but it does not tell you how you create one.
                    Is there a way to copy the ut2004 menu/gui code and textures so I can create a custom menu/gui in the MyMod folder?

                    Comment


                      Yeah, there was a way to do that (a bunch of the TC mods had their own really slick looking menus), but I don't quite recall how. You usually ended up having to edit all of the little GUI textures yourself (to make them your preferred color as I recall), but the I think it was just a couple of classes.

                      When I'd worked on my own TC mod, I used a simple "base mod" that someone had put together for other to use and build on, I recall it being pretty straight forward to setup. I'll see if I can find the zip file.

                      Comment


                        Originally posted by meowcatbuf
                        a bunch of the TC mods had their own really slick looking menus
                        I know what you mean, a TC mod called "The Soul Keeper" has a 3d animated background. I would love to know how to do that.
                        But for now I would be happy with just a copy of the ut2004 menu running on my mod (with a different background image of course)

                        Comment


                          Click image for larger version

Name:	mainmenuscreenshot.jpg
Views:	1
Size:	169.8 KB
ID:	400846

                          I found a custom menu that makes ut2004 look like ut2003.
                          So I changed its texture files to look like Halo.
                          I put the stuff in the mod folder, changed the ini file.
                          I ran it from the mod folder and the new menu works but now the maps dont show up.
                          I changed pointer and text but it still look the same.

                          Code:
                          [URL]
                          Protocol=ut2004
                          ProtocolDescription=Unreal Protocol
                          Name=Player
                          Map=Index.ut2
                          LocalMap=NoIntro.ut2
                          NetBrowseMap=Entry.ut2
                          Host=
                          Portal=
                          MapExt=ut2
                          EXEName=UT2004.exe
                          SaveExt=usa
                          Port=7777
                          Class=Engine.Pawn
                          Character=Gorge
                          
                          [FirstRun]
                          FirstRun=3369
                          
                          [Engine.Engine]
                          RenderDevice=D3DDrv.D3DRenderDevice
                          ;RenderDevice=D3D9Drv.D3D9RenderDevice
                          ;RenderDevice=Engine.NullRenderDevice
                          ;RenderDevice=OpenGLDrv.OpenGLRenderDevice
                          ;RenderDevice=PixoDrv.PixoRenderDevice
                          AudioDevice=ALAudio.ALAudioSubsystem
                          NetworkDevice=IpDrv.TcpNetDriver
                          DemoRecordingDevice=Engine.DemoRecDriver
                          Console=XInterface.ExtendedConsole
                          GUIController=GUI2K4.UT2K4GUIController
                          StreamPlayer=Engine.StreamInteraction
                          Language=int
                          Product=UT2004
                          GameEngine=Engine.GameEngine
                          EditorEngine=Editor.EditorEngine
                          DefaultGame=XGame.XDeathmatch
                          DefaultServerGame=XGame.XDeathmatch
                          ViewportManager=WinDrv.WindowsClient
                          ;ViewportManager=SDLDrv.SDLClient
                          Render=Render.Render
                          Input=Engine.Input
                          Canvas=Engine.Canvas
                          DetectedVideoMemory=2048
                          ServerReadsStdin=False
                          CdPath=G:\CD1
                          
                          [Core.System]
                          PurgeCacheDays=30
                          SavePath=../Save
                          CachePath=../Cache
                          CacheExt=.uxx
                          SpeechPath=../Speech
                          Paths=../System/*.u
                          Paths=../Maps/*.ut2
                          Paths=../Textures/*.utx
                          Paths=../Sounds/*.uax
                          Paths=../Music/*.umx
                          Paths=../StaticMeshes/*.usx
                          Paths=../Animations/*.ukx
                          Paths=../Saves/*.uvx
                          Suppress=DevLoad
                          Suppress=DevSave
                          Suppress=DevNetTraffic
                          Suppress=DevGarbage
                          Suppress=DevKill
                          Suppress=DevReplace
                          Suppress=DevCompile
                          Suppress=DevBind
                          Suppress=DevBsp
                          Suppress=DevNet
                          Suppress=DevKarma
                          Suppress=RecordCache
                          Suppress=MapVoteDebug
                          Suppress=Init
                          suppress=MapVote
                          Suppress=VoiceChat
                          Suppress=ChatManager
                          Suppress=Timer
                          Suppress=DevLIPSinc
                          CacheRecordPath=../Halo_1/System/*.ucl
                          MusicPath=../Halo_1/Music
                          Paths=../Halo_1/System/*.u
                          Paths=../Halo_1/Maps/*.ut2
                          Paths=../Halo_1/Textures/*.utx
                          Paths=../Halo_1/Sounds/*.uax
                          Paths=../Halo_1/StaticMeshes/*.usx
                          Paths=../Halo_1/Animations/*.ukx
                          
                          [Engine.GameEngine]
                          CacheSizeMegs=32
                          UseSound=True
                          VoIPAllowVAD=False
                          ServerActors=IpDrv.MasterServerUplink
                          ServerActors=UWeb.WebServer
                          ServerPackages=Core
                          ServerPackages=Engine
                          ServerPackages=Fire
                          ServerPackages=Editor
                          ServerPackages=IpDrv
                          ServerPackages=UWeb
                          ServerPackages=GamePlay
                          ServerPackages=UnrealGame
                          ServerPackages=XEffects
                          ServerPackages=XPickups
                          ServerPackages=XGame
                          ServerPackages=XWeapons
                          ServerPackages=XInterface
                          ServerPackages=Vehicles
                          ServerPackages=TeamSymbols_UT2003
                          ServerPackages=TeamSymbols_UT2004
                          ServerPackages=BonusPack
                          ServerPackages=SkaarjPack_rc
                          ServerPackages=SkaarjPack
                          ServerPackages=UTClassic
                          ServerPackages=UT2k4Assault
                          ServerPackages=Onslaught
                          ServerPackages=GUI2K4
                          ServerPackages=UT2k4AssaultFull
                          ServerPackages=OnslaughtFull
                          ServerPackages=xVoting
                          UseStaticMeshBatching=True
                          ColorHighDetailMeshes=False
                          ColorSlowCollisionMeshes=False
                          ColorNoCollisionMeshes=False
                          ColorWorldTextures=False
                          ColorPlayerAndWeaponTextures=False
                          ColorInterfaceTextures=False
                          MainMenuClass=XInterfCat2k4.UT2K4CatMainMenu
                          ;MainMenuClass=GUI2K4.UT2K4MainMenu
                          ConnectingMenuClass=GUI2K4.UT2K4ServerLoading
                          DisconnectMenuClass=GUI2K4.UT2K4DisconnectOptionPage
                          LoadingClass=GUI2K4.UT2K4SP_LadderLoading
                          SinglePlayerMenuClass=GUI2K4.UT2K4SP_Main
                          ServerPackages=OnslaughtBP
                          
                          [WinDrv.WindowsClient]
                          WindowedViewportX=800
                          WindowedViewportY=600
                          FullscreenViewportX=1024
                          FullscreenViewportY=768
                          MenuViewportX=640
                          MenuViewportY=480
                          Brightness=0.800000
                          Contrast=0.700000
                          Gamma=0.800000
                          UseJoystick=True
                          CaptureMouse=True
                          StartupFullscreen=True
                          ScreenFlashes=True
                          NoLighting=False
                          MinDesiredFrameRate=35.000000
                          AnimMeshDynamicLOD=0.000000
                          Decals=True
                          Coronas=True
                          DecoLayers=True
                          Projectors=True
                          NoDynamicLights=False
                          ReportDynamicUploads=False
                          TextureDetailInterface=Higher
                          TextureDetailTerrain=Higher
                          TextureDetailWeaponSkin=Higher
                          TextureDetailPlayerSkin=Higher
                          TextureDetailWorld=Higher
                          TextureDetailRenderMap=Higher
                          TextureDetailLightmap=Higher
                          NoFractalAnim=False
                          ScaleHUDX=0.000000
                          MouseXMultiplier=1.000000
                          MouseYMultiplier=1.000000
                          UseSpeechRecognition=True
                          WeatherEffects=True
                          DrawDistanceLOD=1.000000
                          
                          [SDLDrv.SDLClient]
                          WindowedViewportX=640
                          WindowedViewportY=480
                          FullscreenViewportX=800
                          FullscreenViewportY=600
                          MenuViewportX=640
                          MenuViewportY=480
                          Brightness=0.800000
                          Contrast=0.700000
                          Gamma=0.800000
                          UseJoystick=False
                          JoystickNumber=0
                          IgnoreHat=False
                          JoystickHatNumber=0
                          CaptureMouse=True
                          StartupFullscreen=True
                          ScreenFlashes=True
                          NoLighting=False
                          MinDesiredFrameRate=35.000000
                          AnimMeshDynamicLOD=0.0
                          Decals=True
                          Coronas=True
                          DecoLayers=True
                          Projectors=True
                          NoDynamicLights=False
                          ReportDynamicUploads=False
                          TextureDetailInterface=Normal
                          TextureDetailTerrain=Normal
                          TextureDetailWeaponSkin=Normal
                          TextureDetailPlayerSkin=Normal
                          TextureDetailWorld=Normal
                          TextureDetailRenderMap=Normal
                          TextureDetailLightmap=UltraHigh
                          TextureMaxLOD=0
                          TextureMinLOD=0
                          NoFractalAnim=False
                          WeatherEffects=True
                          DrawDistanceLOD=1.0
                          IgnoreUngrabbedMouse=False
                          AllowUnicodeKeys=False
                          AllowCommandQKeys=True
                          MacFakeMouseButtons=True
                          MacKeepAllScreensOn=False
                          TextToSpeechFile=
                          MacNativeTextToSpeech=True
                          
                          [ALAudio.ALAudioSubsystem]
                          UseEAX=False
                          Use3DSound=False
                          UseDefaultDriver=True
                          CompatibilityMode=False
                          MaxEAXVersion=255
                          UsePrecache=True
                          ReverseStereo=False
                          Channels=32
                          MusicVolume=1.000000
                          AmbientVolume=0.500000
                          SoundVolume=1.000000
                          VoiceVolume=4.000000
                          VolumeScaleRec=0.100000
                          DopplerFactor=1.000000
                          Rolloff=0.500000
                          TimeBetweenHWUpdates=15.000000
                          DisablePitch=False
                          LowQualitySound=False
                          UseVoIP=True
                          UseVAD=False
                          UseSpatializedVoice=False
                          SpatializedVoiceRadius=100000.000000
                          EnhancedDenoiser=False
                          LocalZOffset=0.000000
                          
                          [IpDrv.TcpNetDriver]
                          AllowDownloads=True
                          ConnectionTimeout=20.0
                          InitialConnectTimeout=200.0
                          AckTimeout=1.0
                          KeepAliveTime=0.2
                          MaxClientRate=15000
                          MaxInternetClientRate=10000
                          SimLatency=0
                          RelevantTimeout=5.0
                          SpawnPrioritySeconds=1.0
                          ServerTravelPause=4.0
                          NetServerMaxTickRate=20
                          LanServerMaxTickRate=35
                          DownloadManagers=IpDrv.HTTPDownload
                          DownloadManagers=Engine.ChannelDownload
                          AllowPlayerPortUnreach=False
                          LogPortUnreach=False
                          MaxConnPerIPPerMinute=5
                          LogMaxConnPerIPPerMin=False
                          
                          [IpServer.UdpServerQuery]
                          GameName=ut2
                          
                          [IpDrv.MasterServerUplink]
                          DoUplink=True
                          UplinkToGamespy=True
                          SendStats=True
                          ServerBehindNAT=False
                          DoLANBroadcast=False
                          bIgnoreUTANBans=False
                          
                          [IpDrv.MasterServerLink]
                          LANPort=11777
                          LANServerPort=10777
                          MasterServerList=(Address="ut2004master1.epicgames.com",Port=28902)
                          MasterServerList=(Address="ut2004master2.epicgames.com",Port=28902)
                          
                          [IpDrv.HTTPDownload]
                          RedirectToURL=
                          ProxyServerHost=
                          ProxyServerPort=3128
                          UseCompression=True
                          
                          [Engine.DemoRecDriver]
                          AllowDownloads=True
                          DemoSpectatorClass=UnrealGame.DemoRecSpectator
                          MaxClientRate=25000
                          ConnectionTimeout=15.0
                          InitialConnectTimeout=200.0
                          AckTimeout=1.0
                          KeepAliveTime=1.0
                          SimLatency=0
                          RelevantTimeout=5.0
                          SpawnPrioritySeconds=1.0
                          ServerTravelPause=4.0
                          NetServerMaxTickRate=30
                          LanServerMaxTickRate=30
                          
                          [Engine.GameReplicationInfo]
                          ServerName=UT2004 Server
                          ShortName=UT2 Server
                          ServerRegion=0
                          AdminName=
                          AdminEmail=
                          MessageOfTheDay=
                          
                          [D3DDrv.D3DRenderDevice]
                          DetailTextures=True
                          HighDetailActors=True
                          SuperHighDetailActors=True
                          UsePrecaching=True
                          UseTrilinear=True
                          AdapterNumber=-1
                          ReduceMouseLag=False
                          UseTripleBuffering=False
                          UseHardwareTL=True
                          UseHardwareVS=True
                          UseCubemaps=True
                          DesiredRefreshRate=60
                          UseCompressedLightmaps=True
                          UseStencil=False
                          Use16bit=False
                          Use16bitTextures=False
                          MaxPixelShaderVersion=255
                          UseVSync=False
                          LevelOfAnisotropy=1
                          DetailTexMipBias=0.000000
                          DefaultTexMipBias=-0.500000
                          UseNPatches=False
                          TesselationFactor=1.000000
                          CheckForOverflow=False
                          AvoidHitches=False
                          OverrideDesktopRefreshRate=False
                          ReportUnusedTextures=False
                          DecompressTextures=False
                          TerrainLOD=0
                          SkyboxHack=False
                          LowQualityTerrain=False
                          
                          [D3D9Drv.D3D9RenderDevice]
                          DetailTextures=True
                          HighDetailActors=True
                          SuperHighDetailActors=True
                          UsePrecaching=True
                          UseTrilinear=True
                          AdapterNumber=-1
                          ReduceMouseLag=True
                          UseTripleBuffering=False
                          UseHardwareTL=True
                          UseHardwareVS=True
                          UseCubemaps=True
                          DesiredRefreshRate=60
                          UseCompressedLightmaps=True
                          UseStencil=False
                          Use16bit=False
                          Use16bitTextures=False
                          MaxPixelShaderVersion=255
                          UseVSync=False
                          LevelOfAnisotropy=1
                          DetailTexMipBias=0.0
                          DefaultTexMipBias=-0.5
                          UseNPatches=False
                          TesselationFactor=1.0
                          CheckForOverflow=False
                          OverrideDesktopRefreshRate=False
                          
                          [OpenGLDrv.OpenGLRenderDevice]
                          DetailTextures=True
                          HighDetailActors=True
                          SuperHighDetailActors=True
                          UsePrecaching=True
                          UseCompressedLightmaps=True
                          UseTrilinear=True
                          UseStencil=False
                          MaxTextureUnits=8
                          VARSize=32
                          ReduceMouseLag=True
                          UseVSync=False
                          LevelOfAnisotropy=1.0
                          DetailTexMipBias=0.0
                          DefaultTexMipBias=-0.5
                          UseVBO=False
                          UseVSync=False
                          AppleVA=1
                          MultisampleBuffers=0
                          MultisampleSamples=0
                          MultisampleHint=2
                          
                          [PixoDrv.PixoRenderDevice]
                          FogEnabled=True
                          Zoom2X=True
                          SimpleMaterials=True
                          LimitTextureSize=True
                          LowQualityTerrain=True
                          TerrainLOD=10
                          SkyboxHack=True
                          FilterQuality3D=1
                          FilterQualityHUD=1
                          HighDetailActors=False
                          SuperHighDetailActors=False
                          ReduceMouseLag=False
                          DesiredRefreshRate=0
                          DetailTexMipBias=0.000000
                          Use16bitTextures=False
                          Use16bit=True
                          UseStencil=False
                          UseCompressedLightmaps=False
                          DetailTextures=False
                          UsePrecaching=True
                          
                          [Engine.NullRenderDevice]
                          DetailTextures=True
                          HighDetailActors=True
                          SuperHighDetailActors=True
                          UsePrecaching=True
                          UseCompressedLightmaps=True
                          UseStencil=False
                          
                          [Editor.EditorEngine]
                          UseSound=True
                          CacheSizeMegs=32
                          GridEnabled=True
                          SnapVertices=False
                          SnapDistance=1.000000
                          GridSize=(X=4.000000,Y=4.000000,Z=4.000000)
                          RotGridEnabled=True
                          RotGridSize=(Pitch=1024,Yaw=1024,Roll=1024)
                          GameCommandLine=-log
                          FovAngleDegrees=90.000000
                          GodMode=True
                          AutoSave=True
                          AutoSaveTimeMinutes=5
                          AutoSaveIndex=6
                          UseAxisIndicator=True
                          MatineeCurveDetail=0.1
                          ShowIntWarnings=False
                          UseSizingBox=True
                          RenderDevice=D3DDrv.D3DRenderDevice
                          AudioDevice=ALAudio.ALAudioSubsystem
                          NetworkDevice=IpDrv.TcpNetDriver
                          DemoRecordingDevice=Engine.DemoRecDriver
                          Console=Engine.Console
                          Language=ute
                          AlwaysShowTerrain=False
                          UseActorRotationGizmo=False
                          LoadEntirePackageWhenSaving=0
                          EditPackages=Core
                          EditPackages=Engine
                          EditPackages=Fire
                          EditPackages=Editor
                          EditPackages=UnrealEd
                          EditPackages=IpDrv
                          EditPackages=UWeb
                          EditPackages=GamePlay
                          EditPackages=UnrealGame
                          EditPackages=XGame_rc
                          EditPackages=XEffects
                          EditPackages=XWeapons_rc
                          EditPackages=XPickups_rc
                          EditPackages=XPickups
                          EditPackages=XGame
                          EditPackages=XWeapons
                          EditPackages=XInterface
                          EditPackages=XAdmin
                          EditPackages=XWebAdmin
                          EditPackages=Vehicles
                          EditPackages=BonusPack
                          EditPackages=SkaarjPack_rc
                          EditPackages=SkaarjPack
                          EditPackages=UTClassic
                          EditPackages=UT2k4Assault
                          EditPackages=Onslaught
                          EditPackages=GUI2K4
                          EditPackages=UT2k4AssaultFull
                          EditPackages=OnslaughtFull
                          EditPackages=xVoting
                          EditPackages=StreamlineFX
                          EditPackages=UTV2004c
                          EditPackages=UTV2004s
                          EditPackages=OnslaughtBP
                          EditPackages=H1_Vehicles
                          EditPackages=H1_Weapons
                          CutdownPackages=Core
                          CutdownPackages=Editor
                          CutdownPackages=Engine
                          CutdownPackages=Fire
                          CutdownPackages=GamePlay
                          CutdownPackages=GUI2K4
                          CutdownPackages=IpDrv
                          CutdownPackages=UT2K4Assault
                          CutdownPackages=Onslaught
                          CutdownPackages=UnrealEd
                          CutdownPackages=UnrealGame
                          CutdownPackages=UTClassic
                          CutdownPackages=UWeb
                          CutdownPackages=Vehicles
                          CutdownPackages=XAdmin
                          CutdownPackages=XEffects
                          CutdownPackages=XGame
                          CutdownPackages=XGame_rc
                          CutdownPackages=XInterface
                          CutdownPackages=XPickups
                          CutdownPackages=XPickups_rc
                          CutdownPackages=XWeapons
                          CutdownPackages=XWeapons_rc
                          CutdownPackages=XWebAdmin
                          CutdownPackages=XVoting
                          
                          [UWeb.WebServer]
                          Applications[0]=xWebAdmin.UTServerAdmin
                          ApplicationPaths[0]=/ServerAdmin
                          Applications[1]=xWebAdmin.UTImageServer
                          ApplicationPaths[1]=/images
                          bEnabled=False
                          ListenPort=80
                          
                          [Engine.Console]
                          ConsoleHotKey=9
                          TimePerTitle=30.000000
                          TimePerDemo=60.000000
                          TimePerSoak=3600.000000
                          TimeTooIdle=60.000000
                          DemoLevels[0]=DM-Curse3
                          DemoLevels[1]=DM-Antalus
                          DemoLevels[2]=CTF-Chrome
                          DemoLevels[3]=DOM-SunTemple
                          DemoLevels[4]=BR-Endagra
                          TimeBeforeReboot=5.000000
                          DemoLevels[5]=
                          DemoLevels[6]=
                          DemoLevels[7]=
                          DemoLevels[8]=
                          DemoLevels[9]=
                          DemoLevels[10]=
                          DemoLevels[11]=
                          DemoLevels[12]=
                          DemoLevels[13]=
                          DemoLevels[14]=
                          DemoLevels[15]=
                          DemoLevels[16]=
                          DemoLevels[17]=
                          DemoLevels[18]=
                          DemoLevels[19]=
                          DemoLevels[20]=
                          DemoLevels[21]=
                          DemoLevels[22]=
                          DemoLevels[23]=
                          DemoLevels[24]=
                          DemoLevels[25]=
                          DemoLevels[26]=
                          DemoLevels[27]=
                          DemoLevels[28]=
                          DemoLevels[29]=
                          DemoLevels[30]=
                          DemoLevels[31]=
                          DemoLevels[32]=
                          DemoLevels[33]=
                          DemoLevels[34]=
                          DemoLevels[35]=
                          DemoLevels[36]=
                          DemoLevels[37]=
                          DemoLevels[38]=
                          DemoLevels[39]=
                          DemoLevels[40]=
                          DemoLevels[41]=
                          DemoLevels[42]=
                          DemoLevels[43]=
                          DemoLevels[44]=
                          DemoLevels[45]=
                          DemoLevels[46]=
                          DemoLevels[47]=
                          DemoLevels[48]=
                          DemoLevels[49]=
                          DemoLevels[50]=
                          DemoLevels[51]=
                          DemoLevels[52]=
                          DemoLevels[53]=
                          DemoLevels[54]=
                          DemoLevels[55]=
                          DemoLevels[56]=
                          DemoLevels[57]=
                          DemoLevels[58]=
                          DemoLevels[59]=
                          DemoLevels[60]=
                          DemoLevels[61]=
                          DemoLevels[62]=
                          DemoLevels[63]=
                          
                          [Engine.AccessControl]
                          AdminPassword=
                          GamePassword=
                          bBanByID=True
                          LoginDelaySeconds=0.000000
                          IPPolicies=ACCEPT;*
                          
                          [Engine.GameInfo]
                          GoreLevel=2
                          MaxSpectators=2
                          MaxPlayers=16
                          AutoAim=1.000000
                          GameSpeed=1.000000
                          bChangeLevels=True
                          bStartUpLocked=False
                          bNoBots=False
                          bAttractAlwaysFirstPerson=False
                          NumMusicFiles=13
                          bEnableStatLogging=false
                          HUDType=Engine.Hud
                          MaxLives=0
                          TimeLimit=0
                          GoalScore=0
                          GameStatsClass=IpDrv.MasterServerGameStats
                          SecurityClass=UnrealGame.UnrealSecurity
                          AccessControlClass=Engine.AccessControl
                          VotingHandlerType=xVoting.xVotingHandler
                          MaxIdleTime=0.000000
                          bAllowBehindView=False
                          bAdminCanPause=False
                          bWeaponShouldViewShake=True
                          bLowGore=False
                          bLargeGameVOIP=False
                          GameDifficulty=0.000000
                          MaplistHandlerType=
                          ServerSkillLevel=
                          
                          [Engine.AmbientSound]
                          AmbientVolume=0.25
                          
                          [Engine.LevelInfo]
                          PhysicsDetailLevel=PDL_Medium
                          MeshLODDetailLevel=MDL_Medium
                          bLowSoundDetail=False
                          DecalStayScale=1.0
                          bNeverPrecache=false
                          bShouldPreload=True
                          bDesireSkinPreload=True
                          MaxClientFrameRate=+90.0
                          
                          [XInterface.ExtendedConsole]
                          ConsoleHotKey=192
                          NeedPasswordMenuClass=GUI2K4.UT2K4GetPassword
                          bSpeechMenuUseMouseWheel=True
                          bSpeechMenuUseLetters=False
                          SMOriginX=0.010000
                          SMOriginY=0.300000
                          LetterKeys[0]=IK_Q
                          LetterKeys[1]=IK_W
                          LetterKeys[2]=IK_E
                          LetterKeys[3]=IK_R
                          LetterKeys[4]=IK_A
                          LetterKeys[5]=IK_S
                          LetterKeys[6]=IK_D
                          LetterKeys[7]=IK_F
                          LetterKeys[8]=IK_Z
                          LetterKeys[9]=IK_X
                          MusicManagerClassName=GUI2K4.StreamPlayer
                          MaxScrollbackSize=128
                          PasswordPromptMenu=
                          ChatMenuClass=GUI2K4.UT2K4InGameChat
                          StatsPromptMenuClass=GUI2K4.UT2K4StatsPrompt
                          WaitingGameClassName=
                          ServerInfoMenu=GUI2K4.UT2K4ServerInfo
                          bDemoJogKeys=True
                          
                          [XGame.xDeathMatch]
                          HUDType=XInterface.HudBDeathMatch
                          MaxLives=0
                          TimeLimit=20
                          GoalScore=25
                          bTeamScoreRound=False
                          bPlayersMustBeReady=False
                          bAllowTaunts=True
                          bForceRespawn=False
                          bWeaponStay=true
                          bCustomPreload=False
                          NetWait=5
                          bAdjustSkill=False
                          bAllowTrans=False
                          SpawnProtectionTime=2.000000
                          LateEntryLives=1
                          LoginMenuClass=GUI2K4.UT2K4PlayerLoginMenu
                          bAllowPrivateChat=True
                          bAllowWeaponThrowing=True
                          ResetTimeDelay=0
                          
                          [XGame.xTeamGame]
                          HUDType=XInterface.HudBTeamDeathMatch
                          MaxLives=0
                          TimeLimit=20
                          GoalScore=60
                          bTeamScoreRound=False
                          bPlayersMustBeReady=False
                          bAllowTaunts=True
                          FriendlyFireScale=0.000000
                          MaxTeamSize=16
                          bForceRespawn=False
                          bWeaponStay=true
                          bAllowNonTeamChat=False
                          NetWait=5
                          bAdjustSkill=False
                          bAllowTrans=False
                          SpawnProtectionTime=2.000000
                          LateEntryLives=1
                          LoginMenuClass=GUI2K4.UT2K4PlayerLoginMenu
                          bAllowPrivateChat=True
                          bAllowWeaponThrowing=True
                          ResetTimeDelay=0
                          
                          [XGame.xCTFGame]
                          HUDType=XInterface.HudBCaptureTheFlag
                          MaxLives=0
                          TimeLimit=20
                          GoalScore=3
                          bTeamScoreRound=False
                          bPlayersMustBeReady=False
                          bAllowTaunts=True
                          FriendlyFireScale=0.000000
                          MaxTeamSize=16
                          bForceRespawn=False
                          bWeaponStay=true
                          bAllowNonTeamChat=False
                          NetWait=5
                          bAdjustSkill=False
                          bAllowTrans=True
                          SpawnProtectionTime=2.000000
                          LateEntryLives=1
                          LoginMenuClass=GUI2K4.UT2K4PlayerLoginMenu
                          bAllowPrivateChat=True
                          bAllowWeaponThrowing=True
                          ResetTimeDelay=0
                          
                          [XGame.xDoubleDom]
                          HUDType=XInterface.HudBDoubleDomination
                          MaxLives=0
                          TimeLimit=20
                          GoalScore=3
                          bTeamScoreRound=False
                          bPlayersMustBeReady=False
                          bAllowTaunts=True
                          TimeToScore=10
                          TimeDisabled=10
                          FriendlyFireScale=0
                          MaxTeamSize=16
                          bForceRespawn=False
                          bWeaponStay=true
                          
                          [XGame.xBombingRun]
                          HUDType=XInterface.HudBBombingRun
                          MaxLives=0
                          TimeLimit=20
                          GoalScore=15
                          bTeamScoreRound=False
                          bPlayersMustBeReady=False
                          bAllowTaunts=True
                          FriendlyFireScale=0
                          MaxTeamSize=16
                          bForceRespawn=False
                          bWeaponStay=true
                          
                          [Engine.MaplistManager]
                          Games=(GameType="BonusPack.xLastManStandingGame",ActiveMaplist="Default LMS")
                          Games=(GameType="BonusPack.xMutantGame",ActiveMaplist="Default MUT")
                          Games=(GameType="Onslaught.ONSOnslaughtGame",ActiveMaplist="Default ONS")
                          Games=(GameType="SkaarjPack.Invasion",ActiveMaplist="Default INV")
                          Games=(GameType="UT2k4Assault.ASGameInfo",ActiveMaplist="Default AS")
                          Games=(GameType="XGame.xBombingRun",ActiveMaplist="Default BR")
                          Games=(GameType="XGame.xCTFGame",ActiveMaplist="Default CTF")
                          Games=(GameType="XGame.xDeathMatch",ActiveMaplist="Default DM")
                          Games=(GameType="XGame.xDoubleDom",ActiveMaplist="Default DOM2")
                          Games=(GameType="XGame.xTeamGame",ActiveMaplist="Default TDM")
                          Games=(GameType="XGame.xVehicleCTFGame",ActiveMaplist="Default VCTF")
                          Games=(GameType="XGame.InstagibCTF",ActiveMaplist="Default ICTF")
                          Games=(GameType="HaloGametypes.HaloInvasion",ActiveMaplist="Default INV0")
                          
                          [XInterface.MapListDeathMatch]
                          MapNum=0
                          Maps=DM-RRAJIGAR
                          Maps=DM-RANKIN
                          Maps=DM-CORRUGATION
                          Maps=DM-DE-GRENDELKEEP
                          Maps=DM-DE-IRONIC
                          Maps=DM-DE-OSIRIS2
                          Maps=DM-GESTALT
                          Maps=DM-IRONDEITY
                          Maps=DM-METALLURGY
                          Maps=DM-Deck17
                          Maps=DM-Antalus
                          Maps=DM-Asbestos
                          Maps=DM-Curse4
                          
                          [XInterface.MapListTeamDeathMatch]
                          MapNum=0
                          Maps=DM-RRAJIGAR
                          Maps=DM-RANKIN
                          Maps=DM-CORRUGATION
                          Maps=DM-DE-GRENDELKEEP
                          Maps=DM-DE-IRONIC
                          Maps=DM-DE-OSIRIS2
                          Maps=DM-GESTALT
                          Maps=DM-IRONDEITY
                          Maps=DM-METALLURGY
                          Maps=DM-Deck17
                          Maps=DM-Antalus
                          Maps=DM-Asbestos
                          Maps=DM-Curse4
                          
                          [XInterface.MapListCaptureTheFlag]
                          MapNum=0
                          Maps=CTF-ABSOLUTEZERO
                          Maps=CTF-MOONDRAGON
                          Maps=CTF-GRASSYKNOLL
                          Maps=CTF-COLOSSUS
                          Maps=CTF-SMOTE
                          Maps=CTF-DOUBLEDAMMAGE
                          Maps=CTF-AVARIS
                          Maps=CTF-BRIDGEOFFATE
                          Maps=CTF-FaceClassic
                          Maps=CTF-CHROME
                          Maps=CTF-Citadel
                          Maps=CTF-Orbital2
                          
                          [XInterface.MapListDoubleDomination]
                          MapNum=0
                          Maps=DOM-ATLANTIS
                          Maps=DOM-ACCESS
                          Maps=DOM-ASWAN
                          Maps=DOM-JUNKYARD
                          Maps=DOM-RENASCENT
                          Maps=DOM-SUNTEMPLE
                          Maps=DOM-SCORCHEDEARTH
                          
                          [XInterface.MapListBombingRun]
                          MapNum=0
                          Maps=BR-TWINTOMBS
                          Maps=BR-BRIDGEOFFATE
                          Maps=BR-CANYON
                          Maps=BR-COLOSSUS
                          Maps=BR-SERENITY
                          Maps=BR-SkyLine
                          Maps=BR-Anubis
                          
                          [BonusPack.MapListMutant]
                          Maps=DM-RRAJIGAR
                          Maps=DM-RANKIN
                          Maps=DM-CORRUGATION
                          Maps=DM-DE-GRENDELKEEP
                          Maps=DM-DE-IRONIC
                          Maps=DM-DE-OSIRIS2
                          Maps=DM-GESTALT
                          Maps=DM-IRONDEITY
                          Maps=DM-METALLURGY
                          Maps=DM-Deck17
                          Maps=DM-Antalus
                          Maps=DM-Asbestos
                          Maps=DM-Curse4
                          
                          [BonusPack.MapListLastManStanding]
                          Maps=DM-RRAJIGAR
                          Maps=DM-RANKIN
                          Maps=DM-CORRUGATION
                          Maps=DM-DE-GRENDELKEEP
                          Maps=DM-DE-IRONIC
                          Maps=DM-DE-OSIRIS2
                          Maps=DM-GESTALT
                          Maps=DM-IRONDEITY
                          Maps=DM-METALLURGY
                          Maps=DM-Deck17
                          Maps=DM-Antalus
                          Maps=DM-Asbestos
                          Maps=DM-Curse4
                          
                          [Onslaught.ONSMapListOnslaught]
                          Maps=ONS-TORLAN?LinkSetup=Default
                          Maps=ONS-ARCTICSTRONGHOLD?LinkSetup=Default
                          Maps=ONS-CROSSFIRE?LinkSetup=Default
                          Maps=ONS-DRIA?LinkSetup=Default
                          Maps=ONS-SEVERANCE?LinkSetup=Default
                          
                          [Skaarjpack.MapListSkaarjInvasion]
                          MapNum=0
                          
                          [UT2K4Assault.ASMapList]
                          Maps=AS-CONVOY
                          Maps=AS-FALLENCITY
                          Maps=AS-MOTHERSHIP
                          Maps=AS-GLACIER
                          Maps=AS-ROBOTFACTORY
                          Maps=AS-JUNKYARD
                          
                          [UnrealEd.UnrealEdEngine]
                          AutoSaveIndex=2
                          GridEnabled=True
                          SnapVertices=False
                          SnapDistance=1.000000
                          GridSize=(X=1.000000,Y=1.000000,Z=1.000000)
                          RotGridEnabled=True
                          RotGridSize=(Pitch=1024,Yaw=1024,Roll=1024)
                          UseSizingBox=True
                          UseAxisIndicator=True
                          FovAngleDegrees=90.000000
                          GodMode=True
                          AutoSave=True
                          AutosaveTimeMinutes=5
                          GameCommandLine=-log
                          AlwaysShowTerrain=False
                          UseActorRotationGizmo=False
                          LoadEntirePackageWhenSaving=False
                          ShowIntWarnings=False
                          CacheSizeMegs=32
                          UseSound=True
                          UseStaticMeshBatching=True
                          ServerReadsStdin=False
                          DetectedVideoMemory=2048
                          C_WorldBox=(B=107,G=0,R=0,A=255)
                          C_GroundPlane=(B=63,G=0,R=0,A=255)
                          C_GroundHighlight=(B=127,G=0,R=0,A=255)
                          C_BrushWire=(B=63,G=63,R=255,A=255)
                          C_Pivot=(B=0,G=255,R=0,A=255)
                          C_Select=(B=127,G=0,R=0,A=255)
                          C_Current=(B=0,G=0,R=0,A=255)
                          C_AddWire=(B=255,G=127,R=127,A=255)
                          C_SubtractWire=(B=63,G=192,R=255,A=255)
                          C_GreyWire=(B=163,G=163,R=163,A=255)
                          C_BrushVertex=(B=0,G=0,R=0,A=255)
                          C_BrushSnap=(B=0,G=0,R=0,A=255)
                          C_Invalid=(B=163,G=163,R=163,A=255)
                          C_ActorWire=(B=0,G=63,R=127,A=255)
                          C_ActorHiWire=(B=0,G=127,R=255,A=255)
                          C_Black=(B=0,G=0,R=0,A=255)
                          C_White=(B=255,G=255,R=255,A=255)
                          C_Mask=(B=0,G=0,R=0,A=255)
                          C_SemiSolidWire=(B=0,G=255,R=127,A=255)
                          C_NonSolidWire=(B=32,G=192,R=63,A=255)
                          C_WireBackground=(B=0,G=0,R=0,A=255)
                          C_WireGridAxis=(B=119,G=119,R=119,A=255)
                          C_ActorArrow=(B=0,G=0,R=163,A=255)
                          C_ScaleBox=(B=11,G=67,R=151,A=255)
                          C_ScaleBoxHi=(B=157,G=149,R=223,A=255)
                          C_ZoneWire=(B=0,G=0,R=0,A=255)
                          C_Mover=(B=255,G=0,R=255,A=255)
                          C_OrthoBackground=(B=163,G=163,R=163,A=255)
                          C_StaticMesh=(B=255,G=255,R=0,A=255)
                          C_VolumeBrush=(B=225,G=196,R=255,A=255)
                          C_ConstraintLine=(B=0,G=255,R=0,A=255)
                          C_AnimMesh=(B=28,G=221,R=221,A=255)
                          C_TerrainWire=(B=255,G=255,R=255,A=255)
                          bSlowRefChecking=False
                          
                          [Onslaught.ONSOnslaughtGame]
                          OvertimeCoreDrainPerSec=20
                          bRandSetupAfterReset=False
                          bSwapSidesAfterReset=True
                          bAllowNonTeamChat=False
                          FriendlyFireScale=0.000000
                          NetWait=15
                          bForceRespawn=False
                          bAdjustSkill=False
                          bAllowTaunts=True
                          bAllowTrans=False
                          SpawnProtectionTime=2.000000
                          LateEntryLives=1
                          LoginMenuClass=GUI2K4.UT2K4OnslaughtLoginMenu
                          bAllowPrivateChat=True
                          bWeaponStay=True
                          bAllowWeaponThrowing=True
                          ResetTimeDelay=11
                          GoalScore=3
                          MaxLives=0
                          TimeLimit=20
                          
                          [UnrealGame.TeamGame]
                          bBalanceTeams=True
                          bPlayersBalanceTeams=True
                          
                          [UnrealGame.DeathMatch]
                          MinNetPlayers=1
                          RestartWait=30
                          bTournament=False
                          bAutoNumBots=True
                          bColoredDMSkins=False
                          bPlayersMustBeReady=False
                          bWaitForNetPlayers=True
                          bAllowPlayerLights=False
                          bForceDefaultCharacter=False
                          NamePrefixes[0]=Mr_
                          NamePrefixes[1]=
                          NamePrefixes[2]=The_Real_
                          NamePrefixes[3]=Evil_
                          NamePrefixes[4]=
                          NamePrefixes[5]=Owns_
                          NamePrefixes[6]=
                          NamePrefixes[7]=Evil_
                          NamePrefixes[8]=
                          NamePrefixes[9]=
                          NameSuffixes[0]=
                          NameSuffixes[1]=_is_lame
                          NameSuffixes[2]=
                          NameSuffixes[3]=
                          NameSuffixes[4]=_sucks
                          NameSuffixes[5]=
                          NameSuffixes[6]=_OwnsYou
                          NameSuffixes[7]=
                          NameSuffixes[8]=_jr
                          NameSuffixes[9]='s_clone
                          
                          [UnrealGame.UnrealMPGameInfo]
                          BotMode=5
                          MinPlayers=0
                          EndTimeDelay=4.000000
                          BotRatio=1.000000
                          
                          [xVoting.xVotingHandler]
                          VoteTimeLimit=70
                          ScoreBoardDelay=5
                          bAutoOpen=True
                          MidGameVotePercent=50
                          bScoreMode=False
                          bAccumulationMode=False
                          bEliminationMode=False
                          MinMapCount=2
                          MapVoteHistoryType=xVoting.MapVoteHistory_INI
                          RepeatLimit=4
                          DefaultGameConfig=0
                          bDefaultToCurrentGameType=True
                          bMapVote=False
                          bKickVote=False
                          bMatchSetup=False
                          KickPercent=51
                          bAnonymousKicking=True
                          MapListLoaderType=xVoting.DefaultMapListLoader
                          ServerNumber=1
                          CurrentGameConfig=0
                          
                          [xVoting.DefaultMapListLoader]
                          bUseMapList=False
                          MapNamePrefixes=
                          
                          [Engine.VoiceChatReplicationInfo]
                          bEnableVoiceChat=True
                          bAllowLocalBroadcast=True
                          MaxChatters=0
                          LocalBroadcastRange=1000.000000
                          DefaultBroadcastRadius=20.000000
                          VoIPInternetCodecs=CODEC_48NB
                          VoIPLANCodecs=CODEC_48NB
                          VoIPLANCodecs=CODEC_96WB
                          
                          [Engine.BroadcastHandler]
                          bMuteSpectators=False
                          bPartitionSpectators=False
                          
                          [IpDrv.UdpGamespyQuery]
                          MinNetVer=0
                          OldQueryPortNumber=7787
                          bRestartServerOnPortSwap=True
                          bDebugPortSwaps=True
                          So what am I doing wrong?

                          Comment


                            I've tried looking through the hard drive on my old computer (hadn't turned it on for over 8 months) and was unable to locate the "base TC mod" file I was looking for (I think one of the old BeyondUnreal hosted sites like Chimeric, Fraghouse etc. had a coder who had put together the base mod, maybe it was meltdown?)

                            Anyways, I took a look at the old .ini file for my mod. Does your mod log file list any errors? You made need to setup a default maplist record class in your mod for your gametype, and/or make sure that you mod/system folder also has copies of the .ucl files for the maps you want to try and play on. So for instance, copy the .ucl file from some DM map that is already in your UT2004/System folder and paste it into your UT2004/Halo_l/System folder and see if it shows up in the maplist.

                            [EDIT] It was Parser and his SP Framework file that had the base TC mod code, the forum was here at Fraghouse section of the BU forums.
                            Last edited by meowcatbuf; 06-26-2018, 10:33 PM.

                            Comment


                              I was reading some of the posts in the link you gave me and wow.
                              I didnt know you could make your own single player game/maps in a TC mod.
                              After I get the custom menu/gui mod compleatly working, Im there dude (single player game) thats my next project,

                              But for now:

                              Originally posted by meowcatbuf
                              Does your mod log file list any errors?
                              I think it does but not sure what to make of it. Here is the Halo_1.log

                              Code:
                              Log: Log file open, 06/26/18 05:03:41
                              Init: Name subsystem initialized
                              Init: Detected: Microsoft Windows NT 6.1 (Build: 7601)
                              Init: Version: 3369 (128.29)
                              Init: Compiled: Nov 23 2005 16:23:34
                              Init: Command line: -mod=Halo_1
                              Init: Character set: Unicode
                              Init: Base directory: C:\UT2004\System\
                              Init: Ini:..\Halo_1\System\Halo_1.ini   UserIni:..\Halo_1\System\Halo_1User.ini
                              Init: Build label: UT2004 Build UT2004_Build_[2005-11-23_16.22]
                              Init: Object subsystem initialized
                              Log: Splash screen filename is '..\Help\UT2004Logo.bmp'
                              Log:     igdumdim32.dll/Intel(R) HD Graphics 5500
                              Log: Game class is 'GameInfo'
                              Log: Bringing Level Entry.myLevel up for play (0) appSeconds: 1.500000...
                              ScriptLog: GameInfo::InitGame : bEnableStatLogging False
                              Log: Browse: NoIntro.ut2?Name=Player?Class=Engine.Pawn?Character=Jakob?team=255?Sex=M
                              Log: Collecting garbage
                              Log: Purging garbage
                              Log: Garbage: objects: 27649->27649; refs: 280498
                              Log: Game class is 'CinematicGame'
                              Log: Bringing Level NoIntro.myLevel up for play (0) appSeconds: 2.088000...
                              ScriptLog: GameInfo::InitGame : bEnableStatLogging False
                              Progress: Exporting VCTF-H1-SP_EnergyBridge...
                              Warning: Failed to load 'Halo-EnergyBridge_TX': Can't find file for package 'Halo-EnergyBridge_TX'
                              Warning: Failed to load 'VCTF-H1-SP_EnergyBridge': Can't find file for package 'Halo-EnergyBridge_TX'
                              Warning: Failed to load 'LevelSummary VCTF-H1-SP_EnergyBridge.LevelSummary': Can't find file for package 'Halo-EnergyBridge_TX'
                              Warning: Error loading VCTF-H1-SP_EnergyBridge !
                              Progress: Exporting VCTF-H1-SP_CovStarShip...
                              Warning: Failed to load 'Halo-CovStarShip_TX': Can't find file for package 'Halo-CovStarShip_TX'
                              Warning: Failed to load 'VCTF-H1-SP_CovStarShip': Can't find file for package 'Halo-CovStarShip_TX'
                              Warning: Failed to load 'LevelSummary VCTF-H1-SP_CovStarShip.LevelSummary': Can't find file for package 'Halo-CovStarShip_TX'
                              Warning: Error loading VCTF-H1-SP_CovStarShip !
                              Log: ALAudio: Using DirectSound to record audio.
                              ScriptLog: New Player Player id=41cd2fbd9fa1b4bf93f427521ef36946
                              Log: Opened viewport
                              Log: Enter SetRes: 1024x768 Fullscreen 1
                              Log: Using back-buffer format 22(32-bit)
                              Log: Using depth-buffer format 77(32-bit)
                              Log: Creating device
                              Log: xD3DHelper::Init (QuadEmulation)
                              Log: Startup time: 1.955000 seconds
                              Log: Precaching: NoIntro.LevelInfo0
                              Log: Static mesh batches: 0 vertex bytes, 0 index bytes
                              Log: Allocating 16384 byte dynamic index buffer.
                              Log: Finished precaching geometry in 0.011 seconds
                              Log: Finished precaching textures in 0.001 seconds
                              Warning: Missing Texture Texture Cat2K4Menus.MainMenu.Char01
                              Warning: Missing Texture Texture Cat2K4Menus.MainMenu.char02
                              Warning: Missing Texture Texture Cat2K4Menus.MainMenu.char03
                              Warning: Missing TexPanner TexPanner Cat2K4Menus.MainMenu.PanHuge
                              Warning: Missing TexPanner TexPanner Cat2K4Menus.MainMenu.PanBig
                              Warning: Missing TexPanner TexPanner Cat2K4Menus.MainMenu.PanSmall
                              Warning: Missing Shader Shader Cat2K4Menus.MainMenu.MenuCorner
                              Warning: Missing Texture Texture Cat2K4Menus.MainMenu.null
                              ScriptLog: *** HELLCAT ***
                              Debug: UT2k4CatMainMenu.Opened()   Sender:Package.UT2k4CatMainMenu
                              Log: URL: Adding default option Name=Player
                              Log: URL: Adding default option Class=Engine.Pawn
                              Log: URL: Adding default option Character=Jakob
                              Log: URL: Adding default option team=255
                              Log: Browse: Index.ut2?disconnect?Name=Player?Class=Engine.Pawn?Character=Jakob?team=255
                              Log: Failed; returning to Entry
                              ScriptLog: UT2k4CatMainMenu NotifyLevelChange  PendingConnection:False
                              Log: GP=FALSE
                              Log: Spawning new actor for Viewport WindowsViewport
                              ScriptLog: New Player Player id=2752bf93f1effbd9f441cd2a1b443696
                              Log: Static mesh batches: 0 vertex bytes, 0 index bytes
                              Log: appRequestExit(0)
                              Exit: Preparing to exit.
                              Log: Purging garbage
                              Log: Unbound to Window.dll
                              Log: Unbound to Core.dll
                              Log: Unbound to Engine.dll
                              Exit: Game engine shut down
                              Log: Unbound to WinDrv.dll
                              Exit: Windows client shut down
                              Log: Unbound to D3DDrv.dll
                              Log: Unbound to XGame.dll
                              Log: Unbound to IpDrv.dll
                              Log: Unbound to Editor.dll
                              Log: Unbound to Fire.dll
                              Log: Unbound to XInterface.dll
                              Log: Unbound to UWeb.dll
                              Log: Unbound to Onslaught.dll
                              Log: Unbound to ALAudio.dll
                              Log: Waiting for file streaming thread to finish...
                              Exit: OpenAL Audio subsystem shut down.
                              Log: Garbage: objects: 28872->0; refs: 280498
                              Exit: Object subsystem successfully closed.
                              Exit: Exiting.
                              Log: FileManager: Reading 0 GByte 43 MByte 377 KByte 248 Bytes from HD took 0.211000 seconds (0.148000 reading, 0.063000 seeking).
                              Log: FileManager: 0.109000 seconds spent with misc. duties
                              Uninitialized: Name subsystem shut down
                              Uninitialized: Memory Allocation Status
                              Uninitialized: Curr Memory  0.207M /  3.246M
                              Uninitialized: Peak Memory  55.406M /  57.156M
                              Uninitialized: Allocs         671 Current /  5849082 Total
                              Uninitialized: Log file closed, 06/26/18 05:04:10
                              Originally posted by meowcatbuf
                              copy the .ucl file from some DM map that is already in your UT2004/System folder and paste it into your UT2004/Halo_l/System folder and see if it shows up in the maplist.
                              I did that and still nothing.

                              Click image for larger version

Name:	Gametype.jpg
Views:	1
Size:	110.1 KB
ID:	400866

                              I took a look at another TC mod ini (I am grabbing at straws I know) and copyed its map link sys, but it still dont work.
                              Code:
                              [Engagement]
                              BotMode=0
                              MinPlayers=0
                              weaponDrop=None
                              bAllowNonTeamChat=False
                              FriendlyFireScale=0.000000
                              NetWait=5
                              bForceRespawn=False
                              bAdjustSkill=False
                              bAllowTaunts=False
                              bAllowTrans=False
                              SpawnProtectionTime=2.000000
                              LateEntryLives=1
                              LoginMenuClass=VCTF
                              bAllowPrivateChat=True
                              bWeaponStay=True
                              bAllowWeaponThrowing=False
                              ResetTimeDelay=0
                              GoalScore=120
                              MaxLives=0
                              TimeLimit=120
                              TeamScoreLimit=2
                              ResetCountDown=0
                              RoundTimeLimit=300
                              bSwapTeamSpawns=True
                              
                              [MapListEngagement]
                              MapNum=0
                              
                              [Default MaplistRecord]
                              DefaultTitle=Default VCTF
                              DefaultGameType=Engagement
                              DefaultActive=0
                              In the mean while, I will read up more on the fourm/link you gave me and check all links on that thread.
                              Thanks meowcatbuf for the info/links.

                              Comment


                                How many maps should be visible in your mod, just one or two, or a lot? The reason I ask is that the error message listed 2 VCTF maps that couldn't be loaded because the game could not find the resource file 'Halo-EnergyBridge_TX' and 'Halo-CovStarShip_TX' (which I assume are .utx files); if those were the only two maps you had in the folder that would explain it.

                                The blank gametype screen was a bit odd though. I'm not sure what else to suggest at the moment, gonna have to think about it some more.

                                Comment

                                Working...
                                X