CS:S - Creating a soccer map

Introduction

If you have never heard of playing soccer in Counter-Strike, then this might really seem weird to you. However, used to be a competitive sport and probably still is. If you do know CS:S soccer, then you might have come across a great map called ka_soccer_2006_v3 or similar copies. The original map was created by LOLOBUBU.

 

This original tutorial was written many years ago while I was still quite young, but if someone needs something, I will happily rework parts of it, like I did with this introduction. If you want to follow this tutorial, you will need basic knowledge of the 'Hammer' mapping tool by Valve.

The pitch

For the pitch we will use a simple brush with the size of 3328x2560 units (according to the original map by LOLOBUBU). This is obviously not the size of a real pitch but it seems to work very nice for competitive 6vs6 matches with two wingers, one midfielder, two defenders and a goal keeper.

 

Everything around the pitch can be used to really show your creativity and build a nice stadium or something completely different.

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

The ball is obviously one of the most important parts in our map; in order to avoid 'bug balls', it is important that we don't copy the ball from some other map, but instead create our own. Create a sphere with 16 faces in a very large scale, e.g. 512x512x512 units and then rescale it to 30x30x30. This step is important as it gives our brush a very clean shape. You can compare your ball to the following brush structure:

Apply a ball texture or a glass texture, select it and go in the texture application mode (Shift+A/the multi coloured cube), select 'Treat as one' and press 'Fit' like so:

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

Final notes

Thank you very much for reading this tutorial, I hope you could follow along. If some matters remain unclear, feel free to contact me and ask your question.

 

With this tutorial I hoped to give more creative people the power to make nicely looking soccer maps or maybe even a completely different sport based on these mechanism.