Skip to content

CSL Development Best Practices

Chris Collins edited this page Mar 1, 2018 · 1 revision
  • Do not create new LegacyCSL models, instead favouring the newer OBJ8 CSL format. Not only is LegacyCSL deprecated, the OBJ8 workflows match normal model development far more, and there's a strong chance that XSB at least will be dropping all LegacyCSL support in the near future (and other clients are advised to follow suit).

  • When creating a CSL, it is critical that the correct ICAO and Airline codes are used in it's specification.

    • Please do not make up ICAO Type Codes. (eg: do not use B74F for the Boeing 747-400F - the correct code is B744). If you have any doubt at all, check the ICAO table.
    • ICAO Type codes are in DOC8643 - please see http://www.icao.int/publications/DOC8643/Pages/default.aspx for access to the table.
    • Airline codes must be an ICAO three letter designator.
    • Livery codes are not strongly defined - check to see if your network has a defined mapping.
  • If you're creating a mixture of synthetic (virtual airlines, etc) and non-synthetic (actual airlines) airline liveries, package the synthetic liveries into a separate package so users can separate them if necessary. If you share assets between the two, use dependencies to make the assets available - that's what the feature is for.

  • Do not configure non-generic liveries to be used for the generic type - this just endlessly confuses users and creates support issues for the clients.

  • Ship compressed dds textures - If you don't, X-Plane will compress the texture on load (if compressed textures are enabled at all) and the the real-time compressor is pretty poor - using a standalone compression tool will produce better results.

    • Make sure that at least a few uncompressed textures remain available so painters can adapt your models if you're happy with that outcome.
  • Do not use the X-Ivap Texture Replacement feature (5 argument OBJ8 command - not documented in our repository as it's not supported in the main libxplanemp). I've written a page on this matter because too many people have merged this "feature" without thinking about it.

Clone this wiki locally