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


                        Click image for larger version

Name:	mainmenuscreenshot.jpg
Views:	166
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:	119
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


                                Hi guys, I need to make a driveable TRAIN. meaning a locomotive with a few train sections behind it. I need to be able to control it's speed and direction (as in an actual train obviously)

                                Should I go for a scripted variant (some sort of a controllable multikey scritped mover?

                                Or should I go for actual vehicle?

                                I don't need the train to be able to derail.

                                The most simple way I'm thinking is a blocking volume on both sides to form a track, and the vehicle spawned between these blocking volumes, so it will be impossible for it to go off the tracks.

                                PLease give me any ideas/suggestions!

                                Thx in advance!!!

                                Comment

                                Working...
                                X