Yeah, FRED is actually really powerful considering how simple the commands actually are.
If you've read the documentation and have gone through the Full Walkthrough (I really strongly advise doing the walkthrough and not just reading it) then you're ready to try new stuff.
When it comes to landing on a battlestar, you have two choices.
1) Auto-land, as seen on the first tutorial.
2) Combat landing, as seen in pretty much every other mission.
These two work in fundamentally different ways.
Auto-land works by using the player-use-ai SEXP to take control of your players ship. The player's ship then becomes an AI ship. It can then be given orders using the add-goal / ai-dock SEXPs to dock with something. This is important for several reasons.
a) Only AI ships can dock. Player controlled ships can be docked to (support ships in Freespace 2 are an example of this), but they can't manually dock to something else.
b) Setting a player ship to use AI only works in singeplayer. It simply wasn't designed to work in multi.
Combat landing is completely different. It doesn't even use the docking code at all. Combat landing works by using the distance and speed SEXPs to work out if the player is coming in for a landing after he's been told to make a combat landing. It then immobilises the ship and plays the sound of the skids hitting the floor.
So if you're working on multiplayer, you're wasting your time using the docking SEXPs, they simply won't do anything for you. In order to make this work you're going to need to do a combat landing. The best way to learn how to do those is to open someone else's mission in FRED and see how they did it. I'll post the code from Mission 2 though. You just need to recreate that using SEXPs.
$Formula: ( when
( or
( and
( or
( <
( distance-ship-subsystem
"Red 1"
"Theseus"
"fighterbay01a"
)
35
)
( <
( distance-ship-subsystem
"Red 1"
"Theseus"
"fighterbay02a"
)
35
)
)
( not
( skill-level-at-least "Medium" )
)
)
( or
( and
( < ( current-speed "Red 1" ) 5 )
( is-in-box
"Red 1"
120
200
-47
-30
-150
315
"Theseus"
)
)
( and
( < ( current-speed "Red 1" ) 5 )
( is-in-box
"Red 1"
-200
-120
-47
-30
-150
315
"Theseus"
)
)
)
)
( send-message-list
"#Theseus Landing Signal Officer"
"High"
"landed"
0
"#Theseus Landing Signal Officer"
"High"
"landed2"
5000
)
( set-camera-shudder 1000 800 )
( set-immobile "Red 1" "Theseus" )
( play-sound-from-file
"Landing_Mag_Lock.ogg"
)
( ship-guardian "Red 1" )
( clear-goals "Theseus" )
)