CS:S Creating a soccer map

Introduction

Maybe you all know soccer maps like ka_soccer_2006_v3 or other ones.
It is a great job by LOLOBUBU, but let's learn how to do such a map.
You need 'Valve Hammer' knowledge to do the map.

Needed programs

  • Source SDK/Valve Hammer

The pitch

Just create a big brush with a nice grass texture, LOLOBUBU used a 3328x2560 units long field to play on (It is not the real life size). Now you can make some nice stadium or other environment around the field.

The pitch lines

Once you have done your pitch, you want to make your big brush make look more like a soccer field. Create out of the brush tools 'arch' and 'block' some nice white lines. LOLOBUBU used the line width 8 and the suggested line texture is 'building_template/building_template007a'. If you would play on the field now, the ball would jump up when hitting a field line: To prevent this mark all lines and tie them to an entity.

Class: func_brush
Solidity: Never Solid
Solid BSP: No

The ball

Create a sphere with 12 faces and 64x64x64 units. It seems really big, so resize it to 30x30x30 units.
Apply a ball texture or a glass texture, select it and go in the texture application mode (Shift+A/The multi colored cube), select 'Treat as one' and click fit. Then tie the ball to an entity:
Class: func_physbox
Name: Ball
Prop Data: Plastic.Small
Material Type: Glass

Flag settings:
Remove all and click 'Start Asleep' and 'Don't take physics damage'.

The settings-entities

First create a 'filter_activator_name' with these settings:

Name: ball_filter
Filter Mode: Allows entities that match criteria
Filter Name: Ball

Then let's create a 'game_player_equip' and check that only 'Give Knife' is set to 'Yes' and the rest of all weapons to 'No'.

How about a 'point_servercommand' now?
Name: Commands

Now let's create 2 'filter_activator_team' entities:
Name: CT_Filter
Filter Mode: Allows entities that match criteria
Filter Team: Counter-Terrorists

Name: T_Filter
Filter Mode: Allows entities that match criteria
Filter Team: Terrorists

And the last one is a 'logic_auto', create it and go to Output settings:
OnMapSpawn - Commands - Command - phys_pushscale 900 - 0.00 - No

The kill triggers

Create 2 big brushes around the whole map and tie each to an entity:
Class: trigger_hurt
Name: CT_Kill
Start Disabled: Yes
Filter Name: CT_Filter
Damage: 500
Damage Cap: 500
Damage Type: Generic
Damage Model: Normal

Flag settings:
All off, only 'Clients' on

Class: trigger_hurt
Name: T_Kill
Start Disabled: Yes
Filter Name: T_Filter
Damage: 500
Damage Cap: 500
Damage Type: Generic
Damage Model: Normal

Flag settings:
All off, only 'Clients' on

The goal

To create a goal first do a post and crossbar construction:
The posts width is 8 units and the height on LOLOBUBU's map is 105 units. The distance from the outer border of the post to the other post on LOLOBUBU's map is 205 units. Then you can do some brushes and nets behind, I think you know how a soccergoal looks like. These dimensions are not the real life ones! Okay, now you did the main goal, but you want the players to die, when a goal is shot, so we have to do a goal trigger, for the CT goal and for the T goal. Create in each goal a brush with the trigger texture. The brush has a width of 10 units and the trigger have to be 9 units lower than the crossbar, 12 units away from the post and 30 units far in the goal counted from the post/crossbar line. That must look like this:



Then tie each brush to an entity:
Class: trigger_multiple
Name: CT_but
Start Disabled: No
Filter Name: ball_filter
Delay Before Reset: -1

Output settings:
OnTrigger - CT_killer - Enable - none - 0.00 - No

Flag settings:
All off, only 'Physic Objects' on

Class: trigger_multiple
Name: T_but
Start Disabled: No
Filter Name: ball_filter
Delay Before Reset: -1

Output settings:
OnTrigger - T_killer - Enable - none - 0.00 - No

Flag settings:
All off, only 'Physic Objects' on

The ball clip

Just create at the end of the field sides a brush wall up to the sky and tie it to entities:

Class: func_clip_vphysics
Filter Name: ball_filter

The corner flags

If you want to do some corner flags please go tie them to an entity:

Class: func_brush
Solidity: Never Solid
Solid BSP: No

VMEX

If you want to look at some maps or copy something, just download the free Java tool VMEX.
VMEX v0.98g
Remember that some maps are decompiling protected, there exists some hacked VMEX which can break this.

Last notes

Thank you very much for reading my tutorial, I did this so people finally know how to do a soccer map and to make the soccer community bigger. With my tutorial you made a simple soccer map, go dream of soccer and think what you want to put around the soccer field ' Maybe a nice stadium, or just nature or maybe space' Feel free!