Here as promised is a command post tutorial. It isn’t perfect but it will give you a working Axis command post to put into your map. To make it an Allied one just change some of the spawn flags and axis to allied. I have taken this from the BSP of fueldump and therefore I don’t know what a couple of the keys are for.
Step 1
Make your closed command post model with the following keys and entities
“_cs” “1” (for shadows)
“_rs” “1” (for shadows)
“scriptname” “axis_radio_closed_model”
“targetname” “axis_radio_closed_model”
“model” “models/mapobjects/radios_sd/compostaxisclosed.md3”
“classname” “misc_gamemodel”
“modelscale” “1.5”
“skin” “models/mapobjects/radios_sd/compostaxisclosed.skin”
Step 2
Make a clip brush around the model and an origin brush. Make these into a script mover but don’t include the model in this. Give it the following keys and entities
“spawnflags” “2” (solid)
“targetname” “axis_radio_closed”
“scriptname” “axis_radio_closed”
“classname” “script_mover”
Step 3
Make your trigger brush and an origin brush around the model (where the engineer can construct it from) and make these into a trigger objective info entity. Give it the following keys and values:
“objflags” “32”
“spawnflags” “65” (64 for a command post and 1 for an allied objective)
“shortname” “Axis Command Post” (command map name)
“targetname” “axishqradio_toi”
“scriptname” “axishqradio_toi”
“infoAllied” “The Axis Command Post is the equivalent of the Allied Command Post.”
“infoAxis” “The Axis Command Post is an important battlefield focal point.”
“classname” “trigger_objective_info”
“track” “the Axis Command Post” (you are near value)
“score” “7”
“target” “axis_radio_built”
Step 4
Create your built model and give it the following keys and entities:
“_rs” “1”
“scriptname” “axis_radio_built_model”
“targetname” “axis_radio_built_model”
“modelscale” “1.5”
“classname” “misc_gamemodel”
“model” “models/mapobjects/radios_sd/compostaxisopened.md3”
“skin” “models/mapobjects/radios_sd/compostaxisopened.skin”
Step 5
Create some clip brushes around it and again make an origin brush. Make these (not including the model) into a func_constructible and use the following keys and values:
“spawnflags” “4” (axis constructible)
“track” “axishqtrack”
“classname” “func_constructible”
“scriptname” “axis_radio_built”
“targetname” “axis_radio_built”
Step 6
Create your destroyed command post model using the following keys/values:
“_rs” “1”
“targetname” “axis_radio_destroyed_model”
“scriptname” “axis_radio_destroyed_model”
“model” “models/mapobjects/radios_sd/compostaxisdamaged.md3”
“classname” “misc_gamemodel”
“modelscale” “1.5”
“skin” “models/mapobjects/radios_sd/compostaxisdamaged.skin”
Step 7
Create some clip brushes around your model and again make an origin brush. Select these (but not your model) and turn them into a scriptmover entity. This should have the following keys and values:
“spawnflags” “2”
“targetname” “axis_radio_destroyed”
“scriptname” “axis_radio_destroyed”
“classname” “script_mover”
Notes:
This is everything you need to do in radiant but I suggest making each stage of the command post (closed, open and damaged) a little apart from the others as otherwise you get in a huge mess. Once you’ve checked it to make sure it works then you can move them all together.
Don’t copy anything I’ve written in brackets 
There are somethings which I don’t understand so maybe someone else can explain those for me
Make sure you unzip your pak0.pk3 file
Scripting
I don’t understand scripting so I did a simple copy and paste job from the fueldump script
axis_radio_destroyed
{
spawn
{
wait 400
setstate axis_radio_destroyed invisible
setstate axis_radio_destroyed_model invisible
}
trigger hide
{
setstate axis_radio_destroyed invisible
setstate axis_radio_destroyed_model invisible
}
trigger show
{
accum 0 abort_if_equal 0
setstate axis_radio_destroyed default
setstate axis_radio_destroyed_model default
}
trigger enable
{
accum 0 set 1
}
}
axis_radio_closed
{
trigger hide
{
setstate axis_radio_closed invisible
setstate axis_radio_closed_model invisible
}
trigger show
{
accum 0 abort_if_equal 1
setstate axis_radio_closed default
setstate axis_radio_closed_model default
}
trigger disable
{
accum 0 set 1
}
}
axis_radio_built
{
spawn
{
wait 400
constructible_class 2
trigger axis_radio_built setup
}
trigger setup
{
setchargetimefactor 0 soldier 1
setchargetimefactor 0 lieutenant 1
setchargetimefactor 0 medic 1
setchargetimefactor 0 engineer 1
setchargetimefactor 0 covertops 1
sethqstatus 0 0
}
buildstart final
{
trigger axis_radio_built_model trans
trigger axis_radio_destroyed hide
trigger axis_radio_closed hide
}
built final
{
trigger axis_radio_built_model show
trigger axis_radio_destroyed enable
trigger axis_radio_closed disable
trigger axis_radio_built_model enable_axis_features
enablespeaker axis_compost_sound
}
decayed final
{
trigger axis_radio_built_model hide
trigger axis_radio_destroyed show
trigger axis_radio_closed show
}
death
{
trigger axis_radio_built_model hide
trigger axis_radio_destroyed show
trigger axis_radio_built_model disable_axis_features
disablespeaker axis_compost_sound
}
}
axis_radio_built_model
{
spawn
{
wait 400
setstate axis_radio_built_model invisible
}
trigger show
{
setstate axis_radio_built_model default
}
trigger hide
{
setstate axis_radio_built_model invisible
}
trigger trans
{
setstate axis_radio_built_model underconstruction
}
trigger enable_axis_features
{
setchargetimefactor 0 soldier 0.75
setchargetimefactor 0 lieutenant 0.75
setchargetimefactor 0 medic 0.75
setchargetimefactor 0 engineer 0.75
setchargetimefactor 0 covertops 0.75
sethqstatus 0 1
wm_announce "Axis Command Post constructed. Charge speed increased!"
// *----------------------------------- vo ------------------------------------------*
wm_teamvoiceannounce 0 "axis_hq_compost_constructed"
wm_teamvoiceannounce 1 "allies_hq_compost_constructed_axis"
wm_removeteamvoiceannounce 0 "axis_hq_compost_construct"
// *----------------------------------- vo ------------------------------------------*
wm_objective_status 8 1 2
wm_objective_status 8 0 1
}
trigger disable_axis_features
{
// Some kind of UI pop-up to alert players
wm_announce "Allied team has destroyed the Axis Command Post!"
// *----------------------------------- vo ------------------------------------------*
wm_addteamvoiceannounce 0 "axis_hq_compost_construct"
wm_teamvoiceannounce 0 "axis_hq_compost_damaged"
// *----------------------------------- vo ------------------------------------------*
setchargetimefactor 0 soldier 1
setchargetimefactor 0 lieutenant 1
setchargetimefactor 0 medic 1
setchargetimefactor 0 engineer 1
setchargetimefactor 0 covertops 1
sethqstatus 0 0
wm_objective_status 8 1 0
wm_objective_status 8 0 0
}
}
If anyone notices anything wrong with my tutorial don’t hesitate to tell me
[EDIT] I added the note to unzip your pak0.pk3 file
[EDIT2] I have edited the script
[EDIT3] I have edited out a mistake and found out what _rs/_cs mean



. BTW this is taken from the BSP for goldrush. Don’t be put of neutral command posts at first they are just as easy/hard as individual ones as they don’t contain a destroyed stage.
I’ll have to look into spawn points more before I can do that :D.