SCP Additions
From FreeSpace Wiki
Contents
Introduction
The main purpose of the Source Code Project is enhancing the game with new features. And this has been done in such successfully way that maybe nobody knows them all. So this success can actually become a major flaw in the project because:
- Coders are sometimes unmotivated because they see that a lot of the effort they spend upgrading the engine is scarcely used.
- Modders could build better campaigns and mods if they knew all the available extra stuff.
This page is intended as an enormous log where coders can make public all their huge and great work:
- Main objective: From now on, (july 2007), coders will have an only place where easily, (more or less), post all their additions sorted by date. In this way, you will be able to check what you've missed in the last two weeks you've been on holidays without needing to dig through all HLP forum threads.
- Secondary objective: With time and effort, we will be able to start compiling here all the outstanding features already present. Although a bit more difficult, digging through this page, (using the search function of your web browser), you can learn a lot of hidden things you didn't know about fs_open.
This list of features is indeed two lists because, more or less since version 3.6.9., the game source code was split in two branches. (Here you've got info about getting the source code in both branches).
- HEAD branch. It contains all unstable or experimental new features. Builds based on this branch should be used only for testing and only by experimented users. They can easily crash, have bugs, corrupt pilot files or have any other undesired effect.
- Stable branch. This branch has more tested features and, although bugs can always appear, they are supposed to be allot more stable than the HEAD branch. This branch of the code is the one used for official releases like 3.6.9. As a general rule, HEAD branch has all the Stable branch features, but Stable branch doesn't have all the HEAD branch capabilities.
Posting Rules
Warning: Please follow these rules.
Even if you don't agree with some of them, follow them. This section can grow huge and it can become a damn hell. So we need one, and only one, set of rules. And we all must follow it.
No discussion here, please. If you want any of them changed, post it to discussion in this HLP forum thread or discuss it.
- 1st Golden Rule: Be Extremely Brief.
- Do not make long explanations within the lists.
- In each entry Description section write a brief explanation.
- If you need to be more descriptive, create a link(s) in the See section. Even create new pages if needed.
- 2nd Golden Rule: Be Extremely Tidy.
- As you can imagine, this Wiki section can become a mess quite easily.
- Always check that all the links work.
- As they should be quite intuitive, please follow any other example you find already posted.
- Be sure you know if the feature must go to HEAD Branch or Stable Branch. And please, if your feature is upgraded from the HEAD to the stable branch, update the lists and dates.
- Be tidy in the place and date you post. The lists, both HEAD and stable, should always be kept sorted in descending order by date(the most recent additions should go in the upper part of each section).
- If the CVS date for your feature doesn't exist, create a new one.
- Always use the ISO-8601 date format. So January 27th in 2007 should be 2007-01-27.
- Each new date should be a list item, ie. start it with *
- Each new feature in a given date should be a sublist item, ie. start it with **
- Each new feature has four sections. These subsections are sub-sublist items, ie. start them with ***:
- Description: A brief description of the feature.
- Category: The game category this feature falls in. It can be useful for people that want to look for just new "Sound" features for example. Please check the spelling and do not invent new categories. If you type "suond" or if we have one thousand different categories, this field is useless.
You can assign several categories if you feel the feature you are posting about can fall in several areas.
The official categories are:- Mission features. All the new stuff you can add to missions through FRED, ie. new sexps, backgrounds, new mission options, ...
- FRED interface. Any other FRED improvements, like Voice Acting Manager, which don't fall in the previous one.
- Graphics. All the extra graphical capabilities added like OGL support, shine, glow, env or normal mapping...
- Sound. Just the same with sound and music (ogg support as example).
- Game interface. All the game enhancements in the game mainhall and screens. Examples: F3 Lab, showing models in loadout screen, showing ship info in hud, extended hud capabilities...
- Models. Everything that has to do with ship models like higher poly limits, glow points...
- Tables and modding. Everything that allows modders to customize FS2 and it is not directly set in FRED as a mission feature. Examples: Data management (-MOD flag), extended texture format support, modular tables, "un-hardcoded" tables like iff_defs, 3D shockwaves, 3D warp effects...
- Scripting. All the scripting enhancements. You can get a lot of info about scripting in Scripting.tbl table help.
- Multiplayer. Enhancements in multi player rather than general single player ones.
- Coding. Technical coder info which maybe is not directly seen in game but needs to be told. Like "I have changed all the arrays with pointers in this subroutine". (Sorry if I'm telling nonsenses but I'm no coder at all, I think you can imagine what I want to say).
- See: Put the links here to related pages with deeper info about that feature. If you want to post a lot of info about your feature, create your own page and put the link here.
- Usage Tips: In the future, creating a tips page somewhere in the Wiki is intended. In this section you could explain useful tricks. Put here the links to the tips this feature is useful for here.
If you feel like it, you can even start that tricks page ;) . Some discussion can be found here.
- Optionally, you can use the next colour code to tell the addition importance:
- Critical update. (This would be an extremely important update over retail behaviour).
- Description: Whatever...
... - Usage Tips:
- Description: Whatever...
- Common update. (Normal updates).
- Description: Whatever...
... - Usage Tips:
- Description: Whatever...
- Just a tweak. (This would be just a tweak over retail Freespace2).
- Description: Whatever...
... - Usage Tips:
- Description: Whatever...
- Critical update. (This would be an extremely important update over retail behaviour).
- When a new official release appears, Stable > CVS subsection name is just changed to the new build denomination and a new Stable > CVS section is created.
Feature list sorted by date
HEAD Branch (CVS) - Experimental features
- 2007-09-27
- Disable Primary Linking
- Description: If a ship with the "no primary linking" flag cycles through primaries, it won't link them. This flag can be set both in ships.tbl for every ship of a class, or on a per-ship basis via SEXPs.
- Category: Mission features.
- See:
- Usage Tips:
- Disable Primary Linking
- 2007-08-01
- GUI Mouse Speed
- Description: Scales the mouse speed on the menu up correctly as the resolution goes up.
- Category: Game Interface.
- See:
- Usage Tips:
- GUI Mouse Speed
- 2007-07-13
- Training Weapons and Simulated Hull
- Description: If a weapon with the "training" flag hits a ship, it doesn't do any real or cosmetic damage, but instead hits an invisible Simulated Hull. FREDers can interact with the Simulated Hull through the same SEXPs as they use with the Hull.
- Category: Mission features.
- See:
- Usage Tips:
- Training Weapons and Simulated Hull
- 2007-07-11
- Ship Templates
- Description: Ship Templates allow a Modder to shorten (sometimes significantly) their ships.tbl by defining templates that hold attributes common to multiple ships.
- Category: Tables and modding.
- See: Ship Templates
- Usage Tips:You can have ship templates use other ship templates, if needed.
- Additive Weapon Velocity
- Description: If set, weapons will inherit their firing ship's velocity. A ship traveling quickly will fire weapons faster than a ship traveling slowly.
- Category: Tables and modding.
- See: ai_profiles.tbl
- Usage Tips:
- Ship Templates
Stable Branch
CVS
- YYYY-MM-DD. Unknown date:
- AutoPilot/Nav Points
- Description: Autopilot and nav points system reminiscent of wing commander. Prior to july 2007 cinematics had to be done with creative sexping, starting mid july 2007 cinematics were hardcoded and enabled via mission flag or sexp (and can be disabled via sexp). System includes ships needing linkup (jul 07+), messages (jul 07+), autopilot is not allowed near hostiles (5k), debris/asteroid fields (1k, jul07+), messages and linkup distance are defined via autopilot.tbl.
- Category: Tables and modding, Mission features.
- See: autopilot.tbl
- Usage Tips: Make sure to set the mission flag to use cinematics
- Voice Acting Manager
- Description: A very handy FRED utility which creates a systematic list of voice file names and links them to all the messages present in a mission (Command Briefing, Briefing, Debriefing and in game Messages). It also allows to create a log which contains all those messages and their assigned audio file names, (it's actually a true actor script ;) ).
- Category: FRED Interface
- See: FS2_Data_Structure#voice tells you where to put each kind of voice file.
- Usage Tips:
- AutoPilot/Nav Points
3.6.9. and former builds
- YYYY-MM-DD. Unknown date:
- OpenGL support
- Description: The game has been ported from original DirectX to OpenGL API. Moreover, DirectX is depreciated and can become unsupported in future versions.
- Category: Graphics.
- See:
- Usage Tips:
- Modular Tables
- Description: *.TBM modular tables allow partial modifications over *.TBL standard tables.
- Category: Tables and modding.
- See: Modular Tables
- Usage Tips:
- New un-hardcoded ai_profiles.tbl table
- Description: This table allows modifying some aspects of the FS2 AI behaviour (ie. how non-player ships behave during the game).
- Category: Tables and modding.
- See: ai_profiles.tbl, Tables#Hardcoded_table_files
- Usage Tips:
- New un-hardcoded iff_defs.tbl table
- Description: This table allows modifying AND/OR adding teams to the default FS2 ones (friendly, hostile, neutral, traitor and unknown).
- Category: Tables and modding.
- See: iff_defs.tbl, Tables#Hardcoded_table_files
- Usage Tips:
- New un-hardcoded species_defs.tbl table
- Description: This table allows modifying AND/OR adding species to the default FS2 ones (Terran, Vasudan and Shivan).
- Category: Tables and modding.
- See: species_defs.tbl, Tables#Hardcoded_table_files
- Usage Tips:
- New un-hardcoded Objecttypes.tbl table
- Description: This table allows modifying AND/OR adding ship classes, (like fighter, capital, bomber, etc.) and their behaviour over default FS2 ones.
- Category: Tables and modding.
- See: Objecttypes.tbl, Tables#Hardcoded_table_files
- Usage Tips:
- Launcher flags
- Description: Some of the new fs2_open and FRED2_open features are switched on through command line parameters. They can also be set through Launcher utility.
- Category: Coding.
- See: Command-Line Reference
- Usage Tips:
- -MOD flag
- Description: It allows the usage of extra game data folders inside FS2 main folder. It is mainly used to avoid undesired mod data cross-effects.
- Category: Tables and modding.
- See: Command-Line Reference#-mod, FS2 Data Structure
- Usage Tips:
- Enhanced texture support
- Specular mapping
- Description: Additional maps used to set the reflectiveness and its colour of real time lighting over the ships (light from suns, explosions, weapons, warps...). It allows a huge improvement in game looking.
- Category: Tables and modding, Graphics.
- See: Texturing, Command-Line Reference#-spec
- Usage Tips:
- Glow mapping
- Description: Additional maps used to set full intensity rendered details over the ship hulls. They are used to simulate lights. It allows a huge improvement in game looking. They support animated textures too.
- Category: Tables and modding, Graphics.
- See: Texturing, Command-Line Reference#-glow
- Usage Tips:
- Environmental mapping
- Description: Ship hulls reflect background bitmaps. Additionally, alpha channel of specular maps can be used to set the reflection intensity.
- Category: Graphics.
- See: Command-Line_Reference#-env, Command-Line_Reference#-alpha_env, Texturing, Command-Line_Reference#-spec
- Usage Tips:
- The Laboratory
- Description: In every place outside a running mission press F3 key to go to The Laboratory. Here you can check details, data and appearance of all the ships and weapons that campaign or mod can use. WARNING: Its usage can be a huge spoiler, so use it at your own criterion.
- Category: Game interface.
- See: The F3 Laboratory
- Usage Tips:
- Background Skybox model
- Description: A 3D model (*.pof) can be used as a background model. I allows adding much more background details or stars to the mission sky. It works in a similar way as retail background models for subspace missions (subspace_small.pof and subspace_big.pof).
- Category: Mission Features, Graphics.
- See: Skybox, FRED Background Editor.
- Usage Tips: You can see their effect comparing retail FS2 campaign background with Mediavps tweaked FS2 campaign.
- Multiple docking points
- Description: Ships are allowed to have several other docked ships. In retail only one docking point per ship could be used at the same time.
- Category: Mission features.
- See: FRED Ship Editor > Initial Status
- Usage Tips:
- Texture Replacement
- Description: Any of the default textures of a model can be replaced by any other.
- Category: Mission features.
- See: Texture_Replacement, FRED Ships Editor
- Usage Tips: Apart from freak artist uses, (ie. an Orion with a Vasudan skin), its main usage is changing the "invisible" ship nameplate by that particular ship nameplate.
- Persistent Variables
- Description: Variables can maintain their values through missions or even campaigns. This allows to pass information from one mission to other (destroyed ships, ship status, etc.)
- Category: Mission features.
- See: Persistent_Variables, FRED Events Editor
- Usage Tips:
- OpenGL support