Word doc here:
http://fs2source.warpcore.org/readme/FS2OpenSCPReadMe.docThis is a DRAFT, and I am cleaning it up as we go, and it will be on the website.
SCP programmerrs, I am checking this into CVS, please download and modify, turn on track changes in Word, and email me your modifications, I'll update the CVS copy.
FS2 Open SCP ReadMe
If you run into any bugs or problems, post them using Bugzilla. The interface is a bit quirky, but once you've gotten accustomed to it, it's very easy to use. Please note: If you've never used fs2_open before, you'll have to create a new pilot - otherwise you'll get crashes.
You need DirectX8.1 installed.
Test VP of new stuff:
http://fs2source.warpcore.org/mediaVPs/fs2_open35.zipAll the new stuff is optional. All missions that work in the official FS2 should also work in fs2_open.
Summary of additions:
FS2 enhancements:
ammunition-based primaries (special HUD art is available so that the ammo doesn't overflow the left side of the weapon display)
custom texture replacement for ships (useful for nameplates, individual ship art such as kills painted on cockpit, and ship reskins that would otherwise take up an extra table entry)
primitive sensors cause a ship to view every other ship as untargetable - they only show up as a blip on the display and can move out of sensor range
there can now be up to 10 different main halls
Damage decal support added; details below. The code is still being optimized -- if you have more than a few decals in a mission, you might experience some slowdown.
Ballistic primary support added; details below.
AVI playing
Fred:
beam-free-all-by default mission flag
SEXP menu reorganization with subcategories
squad logos can be set for wings, even wings that aren't part of the player's squadron
the "special" sexps grant-medal, grant-promotion, etc. have been enabled on the SEXP menu
Miscellaneous:
transports can now dock with fighters, bombers, and stealth ships
the firing code now supports more than two primaries and more than three secondaries, in case anyone wants to make the required changes elsewhere
some respellings (especially "catagory" corrected )
Corkscrew missiles
Wireframe hud target box - ctrl+alt+q
Fighter flak: add "flak" tag to a primary weapon
dumbfire lead indicator: automatic
no sun glare option (useful for negative suns): add $NoGlare: to the end of a sun entry
OpenGL mode - change the videocard string in the registry to "OpenGL -"
hull repairing support ship: flag in FRED
damaged-escort-priority sexp: in FRED
Loads of new sexps added; details below. If you'd like to request a sexp, post in the sexp thread.
Transports can now dock with fighters, bombers, & stealth ships.
Beam-free-all-by-default mission flag added. When set, this will automatically beam-free-all every ship in the mission - saving you a bunch of sexps.
Old bugs fixed (including the player entry delay bug, the beam bug, and the weapons tech room crash); new bugs added.
Subcategories added to the FRED2 sexp editor, making sexping much faster.
There is now a TBL INFO button present next to initial orders in ship editor. Pressing this will show the table info for the current selected ship type.
Movies
Adding a movie to a mission:
This is pretty easy. Anyone who's used the Campaign Editor will have noticed the field for a "Briefing cutscene". Just enter the filename of the movie, and it should play right before the Command Briefing.
Enabling movie support:
Movie support needs to be enabled with the "-dshowvid" command line option. Otherwise, movies will be skipped when they're set to play.
You'll also probably need DX8 to use the EXE, and the DX8 SDK to compile the movie-specific code (in "movie" and "dx8show")
SEXP
New Sexps (documented in the SEXPs thread):
ai-chase-any-except
change-ai-class, is-ai-class
distance-ship-subsystem
set-scanned, set-unscanned
ship-stealthy, ship-unstealthy, is-ship-stealthy
friendly-stealth-invisible, friendly-stealth-visible, is-friendly-stealth-visible
damaged-escort-priority-all
set-vaporize, set-no-vaporize
dont-collide-invisible, collide-invisible
set-cargo, is-cargo
primaries-depleted, primary-ammo-pct
change-ship-model, change-ship-class
primitive-sensor-distance
Added "no-subspace-drive" flag for ships; in the process of adding set-support-ship SEXP
change-music; it changes the music that plays during a mission
Also, I bumped the amount of soundtracks you can specify in music.tbl from 10 to 25.
change-ai-class changes the AI class of a ship or ship subsystem(s) (i.e., gun turrets) in mid-mission
damage-escort-list sets the most damaged ship in a specified list to the first specified priority and all other ships in the list to the second specified priority
damage-escort-list-all reprioritizes the entire escort ship list according to a specified list of priorities, from most damaged to least damaged
distance-ship-subsystem returns the distance of a certain object (a ship, a wing, or a waypoint) from a ship subsystem. Useful for checking if ships are nearing a fighterbay, if a bomber wing is close enough to attack a subsystem, if the player's fighter is too close to a capital ship's engine (triggering a wingman's "watch out for the engine wash!" message), etc.
end-mission ends a mission immediately, without the warpout sequence
friendly-stealth-visible and friendly-stealth-invisible specify whether a ship will appear on sensors when it has its stealth flag set and a friendly iff
is-ai-class checks to see whether a certain ship or ship subsystem(s) is/are of a certain AI class (works just like is-iff)
is-cargo checks to see whether a certain ship or ship subsystem has the specified cargo
is-friendly-stealth-visible checks to see if a ship will appear on sensors when it has its stealth flag set and a friendly iff
is-ship-stealthy checks to see if a ship's stealth flag is set
primary-ammo-pct is for ballistic primaries what secondary-ammo-pct is for conventional secondaries
primaries-depleted is for ballistic primaries what secondaries-depleted is for conventional secondaries
set-cargo sets a ship's or ship subsystem's cargo without requiring a transfer or swap with some other ship
set-scanned and set-unscanned set a ship or sub subsystem(s) as scanned or unscanned (or cargo known/unknown) without the player actually having to do the scan; set-unscanned is useful to prevent the player from scanning something before he should
ship-stealthy and ship-unstealthy set the stealth flag on ships
Shield on
Shield off
List of sexp fixes:
is-iff, is-tagged now work the way they should
rand will now generate more than one random number per mission
training-msg no longer requires Instructor to be present
Fun uses of sexp combinations:
end-mission, in conjunction with distance-ship-subsystem, allows the player ship to depart into a fighter bay. You may run into problems where the sexp fires before the ship actually enters the bay if you test the distance from the bay itself; in this case, simply triangulate the distance from a couple of other subsystems.
rand, set-cargo, and is-cargo can be used to randomize a cargo inspection mission - so that the player doesn't know beforehand which cargo container needs to be scanned/captured, even if he replays the mission
Corkscrew missiles
properties of corkscrew missiles be defined in tables, before they were hardcoded in the game. The new "$Corkscrew:" flag is optional after any EMP and Leech info that is defined. If "$Corkscrew:" is not defined, it reverts to defaults assigned to the Tornado. It goes as follows. It ignores this if the weapon does not define "corkscrew" in the flags.
code:
$Corkscrew:
+Num Fired: 4 ;; Number fired in single-fire mode
+Radius: 1.25 ;; radius of spiral
+Fire Delay: 30 ;; fire delay in milliseconds between each individual missile
+Counter rotate: YES ;; counter rotate alternate missiles
+Twist: 5 ;; rad/sec the missiles twist
How to enable ballistic primary weapons:
Make the following table changes...
Ships.tbl
--Add "ballistic primaries" to the fighter flags
--Add +Pbank Capacity: ( x, ... ) right after $Default Pbanks (in the same vein as for secondary capacity)
Weapons.tbl
--Add "ballistic" to the weapon flags
--Add $Rearm Rate: x immediately before $Flags (again, just like with secondaries)
Sounds.tbl
--In the Game Sounds section, copy entries 33 and 34 to spaces 165 and 166. These will be the sounds for when the ballistic primaries rearm. You may want to change them, or you may want to leave them the same sounds as for secondaries.
Please note that the ETS slider for weapons does not appear if no weapon uses energy. If two out of three systems (weapons, shields, engines) do not use the ETS gauge, the entire gauge will be gone. This is because when your ship has neither shields nor weapon energy storage, there's no point in modifying engine energy when the other two are not present.
You'll also note that the primary weapon ammunition readouts spill over past the left side of their place in the HUD display. To fix this, download additional HUD graphics from here. These will take the place of the old graphics in missions that make use of ballistic primaries.
How to implement damage decals:
Add this to the bottom of your weapons table entry...
code:
$decal:
+texture: [a texture name]
+backface texture: [another texture name]
+radius: [a float]
The textures should all be in PCX format. Sample screenshot below...
Ship Trails
-Toggleable ship trails
-Option to make it so the support ship repairs hull damage
To enable ship trails in a mission:
1) Open the mission file in a text editor
2) Add 32 to "+Flags:"
To have the support ship repair ships' hull:
1) Open the mission file in a text editor
2) Add 64 to "+Flags:"
Command argument flags
fs2_open -X
where x is
-almission Y ; Auto loads multiplayer mission Y, where Y is the mission file name without the extension
(DTP) ; Mission must exist in mission directory or the game will crash.
;
-GF4FIX ; Enables the Geforce 4 fix for ani files
(Random tiger) ;
;
-ALLSLEV ; Gives access to all singleplayer missions
(Random tiger) ;
;
-phreak ; Gives access to Phreaks targeting-code and options
(Phreak) ;
;
-mod Y ; Switches on the mod system, where Y is a subdirectory found in ../freespace2/
(DTP) ;
; in case Y = mymod, then the game will look in these directories for extra/replacement files
;
; freespace2/mymod/
; freespace2/mymod/data/
; freespace2/mymod/missions/
; freespace2/mymod/tables/
;
; and so on, all valid subdirectories in the mod directory will be read from.
;
; in case of the mod flag, you must manually in some way create the mod directories player
; sub-directories, you must do this before you run the game with the mod flag.
; these are in case Y = mymod
;
; freespace2/mymod/players/
; freespace2/mymod/players/single
; freespace2/mymod/players/multi
; freespace2/mymod/players/squad ;dont know about this one really needs to be created
; ;but be safe and create it anyway
; freespace2/mymod/players/images ;same as above.
;
;
;
;
; so the mod directory if Y=mymod would be freespace2/mymod
; all valid subdirectories like data/missions found in the mod directory will be used
; to be looked for files. if a file is found, and if a matching file exists in the normal
; locations then the file found in the mod directory will be used.
;
; VP files should now be fully supported.
; But if a .VP file is found in the Mod directory then files found in that .VP file will be used
; Instead of the files found in VP files in other locations than the mod directory.
;
; should there be more than 1 .VP file in the mod directory containing matching files, then the file
; found in the VP file that lexicographically comes first be used.
;
; Plain files not packed(in both the mod directroy and the default directories) will be used instead of matching files found in any .Vp file
;
; Player directories in the Mod directory must at the present time, be created, manually
; Those directories must exist or the game cannot write the pilot info when the player is being forced
; To create a new pilot when running the game for the first time.
;
; The game will ask for CD # 2 when you run the game with the mod-flag for a mod
; if there is not any pilot (.plr) files present
;
; Do not use invalid signs such as "#¤%&/()=? `@£$€{[]}~|'*¨^ in your mod directory name
;
; Y must match the directory name to the point. dont worry about directory seperators, the game adds them if needed.
-----end of command line argument enhancements.
Bug fixes:
-Multiplayer success/failure music fixed
-Fixed secondary banks' inheriting of the reload time when a weapon runs out of ammo
-AI code revised for better primary weapon selection
-Subspace Missile code updated to work with Tag C
Sexp fixes:
FRED doesn't complain anymore when you make Alpha 1 the target of certain sexps
rand now generates more than one random number per event
orders does what it's supposed to
training-msg doesn't require Instructor to be present
is-iff now works properly
both change-iff and is-iff support both wings and ships
ai-stay-near-ship and ai-keep-safe-distance enabled for fighters and bombers
Bug fixes for bugs introduced in various SCP builds:
send-message
huge engine glows
no beam whack
beam depletion of shields - completed DTP's fast fix