Invisible characters in ship names

From FreeSpace Wiki
Jump to: navigation, search

One of the handy features of FS2 is that its internal font does not support a lot of the high-ASCII characters, and just has a blank space instead of the actual symbol. This means that characters like ù, ø, or ¤ will appear as blank spaces inside of FS2 (but not FRED). This fact can be exploited to much benefit.

For example, say I want a ship to jump out and then jump back in later in the mission. Technically this is impossible, since a ship can only be created once in a mission (i.e. once the Aquitaine has been created, if she leaves or is destroyed, she cannot be created again). However, it is possible to have the Aquitaine jump out of the mission, and then later have the Aquitaine¤ jump in. In reality, the names are different, but to the player they will look identical.

Another example is the use of "counter ships". Say I want to give the player a directive to scan 7 of 10 cargo containers. There is no percent-ships-scanned SEXP, so if I simply use the is-cargo-known-delay SEXP, I will need to make a very complicated event covering every possible combination that would give me 70% scanned containers and 30% unscanned. But if I use counter ships, my life becomes much much easier:

First, I place 10 hostile stealth fighters far away from the field of battle, and name them things like ¤, ÿ, þ, ú, ø, and so on. Next, I set the departure cue of each one so that it leaves when one of the cargo containers is scanned (i.e. when Cargo 1 is scanned, ¤ departs, when Cargo 2 is scanned, ÿ departs). Now in the directive I can use the nice and easy percent-ship-departed SEXP with all your counter ships listed underneath it as the condition for the SEXP returning true. Meanwhile, because I used high-ASCII characters for names, the ships won't even appear on the player's ship list when he presses F3—as far as he knows, they don't even exist. Remember to check "No Arrival Music" or you'll have constant battle music playing, even in quiet parts of your mission.

FS2 Open 3.6.10: As of 2008.04.06, you can use the # symbol for this purpose. This has multiple advantages—everything after the # is invisible, so you can use more descriptive names, like #cargo1, #cargo2, #cargo3 etc, or Aquitaine#round2 for example. More importantly, if these high-ASCII characters ARE ever implemented in FS2 (which may happen someday to allow Unicode and better support the international fans), the previous method would become visible, whereas the # can now be considered the "proper" way to do it. After all, ships.tbl and weapons.tbl entries already behave like this.