Annoted template: outf (I warned you)

Annotated template:
The oütf resource

The oütf resource stores information for the outfits, which are all kinds of things that the player can own and/or buy on top of his ship, and that can have various purposes. It stores everything about it, price, effect, availablility, etc... except the weapon information for the weapon outfits, which is stored in its own resource, wëap, though there still needs an oütf for each wëap (more on this in the wëap annoted template).

First off, notice the name of the resource itself is being used for the list of default weapons/outfits in the ship info dialog, so you can't use it to your will. You'd better set it to the same as LCName (see below); however, you can leave it blank if you don't intend your outfit to come as default with a ship (such as an outfit the player receives through a mission).

  • The DispWeight field
    This is a number field that holds an arbitrary number, that is used to order the outfits in the outfitting dialog. The outfits will simply be ordered in decreasing DispWeight order: other outfits with an higher DispWeight value will be before, and other outfits with a lower DispWeight value will be after. If two or more outfits have the same value in their Dispweight field, they will be ordered between themselves in increasing ID order. The default scenario uses values between 0 and 100 or so. Choose your value so that your outfit is placed where you want it to be placed in the outfitting (open the other oütf resources in Nova Data 4 to check the values for the other outfits). For instance, if you want your outfit to be an optimised fission reactor, to be displayed after the default one, put 93 in the DispWeight field of your fission reactor. Put 0 if you don't care where your outfit will be in the outfitting (for instance if it's an outfit the player can't buy).

The Mass field
This is a number field that holds the mass, in tons, that the outfit takes up of the free mass of the ship. The player won't be able to buy something he can't hold, obviously. Notice that the effect can be modified with a flag (see a little below). You can use a negative value to tell that the outfit adds free mass to the ship (the mass expansion outfit does so), and you can put 0 if you don't wish your outfit to take a significant mass (like most ammunition in the default Nova scenario).

The TechLevel field
This is a number field that holds the technological level of the outfit, which is being used to tell which planets will offer which outfits. The higher the number, the most technological the outfit is considered in the values up to 10-20 or so, and arbitraryly high values are being given to outfits that are considered outside of the technological scale and given only on some planets, independantly of technology. This will be explained a bit more in the spöb annoted template. In the meantime, try to check the TechLevel of some oufits you know, give to your outfit a TechLevel, and it will appear at the same planets as the other outfits with the same TechLevel. If your outfit is not to be able to be bought, the usual way to do it is to put an absurd TechLevel, such as 999 or 9999 which are not in any planet (notice however, that 32767, that was traditionally used in EVC and EVO, seems buggy with Nova).

The ModType fields
These are 4 number fields that are probably popup menus in your editor. They tell which kind of modification(s) the outfit performs. Usually only the first one is used, but some outfits can have secondary effects or more than one duty. The limitation is that the fact the outfit is a weapon or ammunition must be specified in ModType 1 (and I don't think it's a good idea to give secondary effects to ammunition, as their amount can change in-space). They can only have a limited number of values (thus the reason they are often implemented as popup menus in editors), from 1 to 50 (and some are unused for historical reasons), each one telling which kind of modification the outfit performs. What each does should be obvious from your editor, if it isn't or it's not a popup menu, refer to the Bible that will tell that 2 stands for a cargo space modifier, for instance. Leave the unused ModType field(s) to -1.

The ModVal fields
These are 4 number fields that correspond to each ModType field. Obviously enough, they state the extent of the modification. The thing is, the value to give depend on the ModType: for instance, if ModType is a weapon, it stands for the ID of wëap resource to use, but if ModType is cargo modifier, it stands for the amount of cargo to add (or substract if ModVal is negative). It would be too long for this annoted template to explain ModVal for all the fifty or so ModTypes, so you will have to refer to the Bible for this info. To help you, check a known outfit that makes the same modification (for instance if you wish to make a shield recharger, check the other outfits that speed up shield recharge such as the Organic Shield) to better tune up the value to give to your outfit. Leave ModVals corresponding to unused ModTypes or Modtypes for which ModVal is ignored to 0.

The Max field
This number field holds the maximum number of instances of your outfit the player can own. This is independantly of other limitations such as weapons slots or available mass. It's best to always put a significant value here, even if the player won't be able to buy it. This can also be used if you wish, for any reason, that an outfit can be sold but not bought, just put 0 in the Max field (for instance it's some kind of special outfit that only comes as part of some ships and can be unequipped but not reequipped). To tell there is no limit (or at least none dictated here), it's usual practice to put 9999.

The Flags field
Here we have some characteristics of the outfits that when set do:

  • "fixed gun" makes the outfit be considered a gun by the engine: it will as a consequence be counted as a fixed gun for the purpose of limiting the number of guns to the number of gun slots of the ship. It's obviously for use with some weapon outfits with guidance -1, 0, maybe 7.

  • "turret" makes the outfit be considered a turret by the engine: it will as a consequence be counted as a turret for the purpose of limiting the number of turrets to the number of turret slots of the ship. It's obviously for use with some weapon outfits with guidance 3, 4, 9 or 10, maybe 7 or 8.

  • "persistant" makes the outfit stays with the player and go from ship to ship when the player captures or buys new ships. Notice that no amount of persistency can make any outfit remain when your ship is destroyed. See some Vell-Os "abilities" for examples of use of this, or the Drop Bear Repellant.

  • "can't be sold" makes the outfit unsoldable. This is useful for modifications that are considered undoable and definitive, see the cargo/mass retool oütfs. Don't combine with the latter. I beg you.

  • "remove after purchase" makes the outfit be an intangible outfit, that the engine removes as soon as you purchase it; this is intended for such virtual outfits as maps and fake IDs, that have no real existence nor any reason to remain after you leave the outfitter. The engine automatically does it for map outfits, so this is used only by a remove fuel outfit, ID 236 (that's used at times in some places), and the ship upgrade outfits (Chrome Valk and such) in the default Nova scenario.

    • "persistent by Hxxx" makes the outfit be persistent when the ship is changed by a mission operator, it will remain and be transferred to the new ship if it is given to the player with the Hxxx operator, but only in that case, not when the player normally buys or captures a new ship. This is used mostly by the Vell-Os powers such as Flower Of Spring that the player has to keep while his ship is changed automatically.
    • "don't show if Require not met" makes the outfit not shown if the Require bits are not met (see my guide about them); this means that the default behavior is for the outfit to be always shown (but can't be bought if the Require bits are not met, obviously), so if you don't set that flag, think to make clear in the outfit dësc why the player can't buy the outfit as the game will just tell him "can't have any"; notice also that an outfit the player owns will always be shown, even if he can't buy it anymore.
    • "proportional price" makes the actual price of the outfit be proportional to the mass of the ship the player owns; the actual price will be the value in the Cost field times the Mass of the ship, so what you will enter in the Cost field will be the cost for someone flying a one-ton ship. This is useful for such things that are to be applied to the whole surface of the ship such as paint of armor plating (see the Carbon Fiber for an example), but can make sense for other things such as engine upgrades that are likely to require more if the ship is heavier.
    • "proportional mass" makes the actual mass of the outfit be proportional to the mass of the ship the player owns; the actual mass will be the value in the Mass field, times the Mass of the ship, divided by 100, so what you will enter in the Mass field will be the mass for someone flying a 100-ton ship. The uses (and the examples) are almost the same than for the flag above.
    • "sold anywhere" makes the outfit be able to be sold just about anywhere there is an outfitter. This is the case for the illegal outfits and the cheap outfits in the default Nova scenario.
    • "exclusive" makes the outfit prevent other highered-IDed outfits with the same DispWeight from being displayed at the same time when this oufit is available. This can be useful to allow a better (or worse) version of the same outfit to be shown at times, thus preventing the regular version from being shown when the special one is there (or the other way round). This is used in the default scenario to replace the non-firing-while-cloaked Polaris torpedo weapons by the fire-whilst-cloaked versions.
    • "in Honors" makes the outfit be shown in the Honors section of the player info rather than its Extras sections; for instance it can make sense in a TC to have all permits and licenses, even the ones you buy, be in the honors section next to the "actual" honors coming from ränks. Be aware there is no outfit that makes use of this at all in the default Nova scenario.
    • "don't show if Availability false" makes the outfit not shown if the Availability field is not true; this means that the default behavior is for the outfit to be always shown (but can't be bought if the Availability isn't true, obviously), so if you don't set that flag, think to make clear in the outfit dësc why the player can't buy the outfit as the game will just tell him "can't have any"; notice also that an outfit the player owns will always be shown, even if he can't buy it anymore.

If your outfit has an availability that's not blank or requires at least one bit, you should set this last flag and not set the similar one for Require, to be coherent with the default behavior. Indeed, the behavior for most outfits in the game is to show even if the Require bits are not met but not be shown if the Avalability field is not true (i.e. this flag is set but not the other one).

The Cost field
This number field (this one is a signed 32-bit one that can hold values up to 2G or so) simply holds the number of credits to charge the player when he buys the item. Just leave 0 to charge nothing or if it is not to appear in outfitters. Notice the actual money charged can depend on the ship mass if the flag telling so is set.

The Availability field
This is text field (max of 254 chars) that holds a control bit TEST expression (see a guide on the matter). The player will be allowed to buy the item only if this expression evaluates (means: is computed equal to) to true and the other conditions are met. Notice that the fact the outfit will be shown or not when unavailable depends on the last flag I described. If you just wish the outfit to be available after the player has done a certain mission, not before, and always afterwards, just put bxxx in here, bxxx being the bit set on completion of the certain mission. You can see that some outfits have !b424 in here, to prevent the player from buying them if he's enslaved in the Vell-Os storyline. Leave blank if you don't wish the availability of you outfit be affected by ncbs.

  • The OnPurchase field
    This is a text field (max of 254 chars) that holds a control bit SET expression (see a guide on the matter). The expression will be evaluated (here means: the instructions will be executed) whenever the player buys one of the outfit in question. This is very important: even if the player buys 40 of them at once with alt/option, the expression will be evaluated 40 times (for instance if there is a Gxxx in here the outfit xxx will be given 40 times). Plus, it will be evaluated again if the player buys some more, so pay attention to what it does. Leave blank if you don't use.

  • The Contribute field(s)
    These are described as two 32-bit hex fields in the Bible, but your editor probably implements them as 64 checkboxes. For each checkbox you set, the corresponding Contribute/Require bit (see my guide on the matter) will be contributed by the outfit as long as the player has at least one of this outfit in his possession. This is being used especially by the Federation licenses. Leave them all unchecked if you don't wish the outfit to contribute or if you don't understand that yet.

  • The Require field(s)
    These are described as two 32-bit hex fields in the Bible, but your editor probably implements them as 64 checkboxes. For the outfit to be available, the player will need to meet all the Contribute/Require bits that correspond to the checkboxes set. Notice that depending on the relevant flag above, the outfit will be shown or not when unavailable. This is being used, for instance, by stuff that require some Fed license to be bought. If you don't wish any specific Contribute/Require behavior or if you don't understand that yet, you should still check the last one and leave all others blank, so that Vell-Os ships won't be able to buy your outfit, as it would not make sense (unless it does, leave them all blank in that case).

  • The OnSell field
    This is a text field (max of 254 chars) that holds a control bit SET expression (see a guide on the matter). The expression will be evaluated (here means: the instructions will be executed) whenever the player SELLS one of the outfit in question. This means that if the player sells an extraneous one while keeping some, the expression will be evaluated, even if the player still has some of this outfit. Also, even if the player sells 40 of them at once with alt/option, the expression will be evaluated 40 times (for instance if there is a Gxxx in here the outfit xxx will be given 40 times). Plus, it will be evaluated again if the player sells some more, so pay attention to what it does. Leave blank if you don't use.

  • The ItemClass field
    This number field holds the classification of the item, which is in turn used by the përs feature that allows one to grant an outfit to the player (more explanations and example in the përs annoted template). Leave to 0 if you don't wish to use it.

  • The ScanMask field
    This is described as a 16-bit hex field in the Bible, but probably is implemented as as many checkboxes in your editor. If you wish this outfit to be considered illegal by a certain party, you will check at least one of them; for instance, if you wish the outfit to be considered illegal by the Feds, check the first one; by the 'reans, the second one; by the Pols, the third one; check my guide about them for more explanations (and the "- illegal -" outfits for examples). If you consider your outfit has no reason at all to be illegal, leave them all unchecked.

The BuyRandom field
This number field holds how many % (percent) of the time the outfit will appear in outfitters; if you wish your outfit to be available only one time out of two, set to 50. Notice you can very well make your outfit completely unavailable by putting 0 in it. If you wish the outfit to be always available, put 100, or -1, or anything not significant (i.e. <0 or >100).

The ShortName field
This text field (63 chars max) holds the name of the outfit to be displayed in the outfitting below the small outfit icon. Don't forget room there is limited, so keep it short. You can split it into two lines by putting "\n" (without the quotes) where you want the line break to be.

The LCName field
This text field (63 chars max) holds the name of the outfit as it will appear in the list of outfits in the "extras" pane of the player info dialog if there is only one of this outfit, and some other places. If you leave this blank, the outfit will not appear at all there (there won't even be "two some outfits, a , three some other outfit...", just "two some outfits, three some other outfit..."), making it actually invisible and unbeknowst from the player (check the Bureau bomb outfit in Nova Data 4, oütf ID 348...). Notice you should give the same string of text for the resource name, as the latter is being used for the list of default outfits in the ship info dialog.

The LCPlural field
This text field (64 chars max) holds the name of the outfit as it will appear in the list of outfits in the "extras" pane of the player info dialog if there is more than one of this outfit, and some other places. If you leave this blank, the outfit will not appear at all there (there won't even be "two some outfits, four , three some other outfit...", just "two some outfits, three some other outfit..."), making it actually invisible and unbeknowst from the player (check the Bureau bomb outfit in Nova Data 4, oütf ID 348...).

  • The RequireGovt field
    This number field tells which governments will actually enforce the Require bits when buying the outfit in their outfitter. (HTML <ul> list)

    • "all": -1 (or actually anything out of the aforementioned ranges) will make all the outfit shops apply them.

    • "govt": Putting the ID of a gövt (i.e. a value between 128 and 383) will make outfitters in planets belonging to that government enforce the Require bits for this outfit (i.e. they will sell this outfit only if the require bits in the Require fields are met), and make the outfitters in all other planets not make this outfit require any bit.

    • "govt and allies": Putting 1000 + the ID of a gövt (i.e. a value between 1128 and 1383) will make outfitters in independant planets and planets belonging to this government and its allies enforce the Require bits for this outfit, and make the outfitters from all other planets not make this outfit require any bit.

    • "not govt": Putting 2000 + the ID of a gövt (i.e. a value between 2128 and 2383) will make outfitters in planets belonging to this government not make this outfit require any Require bit, and make the outfitters from all other planets enforce the Require bits for this outfit.

    • "not govt nor allies": Putting 3000 + the ID of a gövt (i.e. a value between 3128 and 3383) will make outfitters in independant planets and planets belonging to this government and its allies not make this outfit require any Require bit, and make the outfitters from all other planets enforce the Require bits for this outfit.

This can be implemented in your editor as a popup menu that makes you choose which one of the five behaviors to apply, and a field where you just enter the ID of the gövt, if applicable.
This can be most useful if you're wanting some government require some permit to purchase something while the other doesn't care (guns, anyone?). Notice that the first one won't consider outfits bought in the outfitters of the second one without a permit as illegal, though. That's a reason this feature is being used only for the carbon fiber outfit, that has no license requirement if you buy it in an Aurorean outfitter.

Don't forget the description that's shown next to the outfit icon in the outfitting should be at dësc ID 3000+outfit index; the icon, of size 100×100, should be at PICT ID 6000+outfit idx; the small 32×32 icon that's shown in the outfit list is automatically generated from the latter.

Most obviously, the most valuable thing you can find in the Bible on the matter is the descriptions of the meaning of ModVal for all ModTypes, you should know how to use this info.

As the Bible tells, there can be at most 512 different outfit item types, so you can use oütf IDs from 128 to 639.

Any comment? Read first the desc annoted template for more info.

This post has been edited by Zacha Pedro : 08 September 2004 - 04:19 PM

You know it's spelled "Annotated", right?
"Annoted" means nothing.

-ZP check his trusty Harrap's Shorter English-French French-English dictionnary...-

Meh... You're right (shame). Thanks. I ask no more than having my mistakes pointed out (I mean it folks :))

Zacha Pedro, on Sep 7 2004, 09:08 PM, said:

-ZP check his trusty Harrap's Shorter English-French French-English dictionnary...-

Meh... You're right (shame). Thanks. I ask no more than having my mistakes pointed out (I mean it folks :))
View Post

Heh, no problem 😉 🙂

Zacha Pedro, on Aug 31 2004, 04:28 PM, said:

If your outfit is not to be able to be bought, the usual way to do it is to put an absurd TechLevel, such as 999, 9999, or 32767, which are not in any planet.

If TechLevel is set to 32767, the outfit will disappear from your ship the first time you visit the outfitters after acquiring it. That's why my fix plug for the EVO Nova port changes several outfs from TL 32767 to TL 999. (The problem was first noted by vasi, here.)

Someone has also reported that TL 32767 outfs are associated with "this file appears to refer to resources from a plug in not loaded" error messages, so anyone who wants to try to exploit this bug to create self-destroying outfits should be cautious.

Most definitely interesting... Thanks a bunch. Anyone wishing to use this template must edit 32767 out as I did. Notice it's not possible for me to test everything in the annotated templates I write, I barely check the feature is used or not; however I may do some testing later.

FYI, I'm starting a dude annotated template, that will be followed by a spob then syst one.

I'm going to bump this... I remember you posted a few of these right around the transition period, and I know that I missed them. This is the last one I've found. Again, sorry for the bumps, but I think these need broader exposure, to ensure the information is correct.

~ SP