How do I create custom scenery for Microsoft Flight Simulator?
Create custom scenery for Microsoft Flight Simulator with the SDK, from project setup and object placement to package building, testing and fixes.
To create custom scenery for Microsoft Flight Simulator, use the PC SDK: enable Developer Mode, create a scenery project and BGL asset group, place or edit airport and world objects in the Scenery Editor, build the package, then test its compiled output from the Community folder. Back up each working revision.
What do you need to make MSFS scenery?
A Windows PC running Microsoft Flight Simulator and the corresponding SDK is enough for basic airport editing and stock-object placement. Console editions cannot run the scenery development tools or load an ordinary Community-folder package.
Our beginner workflow for installing and opening the MSFS SDK covers Developer Mode, the Project Editor and the first package build. Keep separate development folders for MSFS 2020 and MSFS 2024 rather than mixing their SDK files and compiled output.
- Basic airport or object placement: the SDK and its built-in Scenery Editor are sufficient.
- Custom buildings: use a 3D modelling application that supports the SDK-compatible glTF export workflow.
- Custom textures: use an image editor and follow the SDK's supported material and texture requirements.
- Aerial imagery or terrain data: use properly licensed source imagery and suitable georeferencing tools.
- Version control or backups: strongly recommended, because an accidental save or broad exclusion can undo hours of work.
Before choosing a large project, examine some finished freeware airports and regional scenery packages. A small airfield with stock assets is a far better first project than a city, detailed international airport or extensive orthophoto package.
How do you create a custom scenery package?
- Define a small scope. Record the airport identifier or coordinates and decide what you are replacing: buildings, parking, taxiways, vegetation, terrain or the complete airport. Avoid changing unrelated stock content.
- Prepare a clean test setup. Temporarily remove other scenery for the same location from the Community folder. Competing airport packages can conceal your changes or create duplicate runways and buildings.
- Enable the development tools. Turn on Developer Mode, install the SDK release intended for your simulator and open the Project Editor and Scenery Editor.
- Create the project and package. Give both a short, unique identifier without spaces or unusual punctuation. Add a scenery or BGL asset group and keep its source and output paths inside your project structure.
- Load the editing location. Move the aircraft or developer camera to the site, open the scenery asset group and verify that the editor is writing to the intended scenery source file.
- Place or edit scenery. Add airport elements, aprons, taxiways, parking positions, polygons, vegetation exclusions and library objects as required. When replacing stock airport content, use the Airport object's supported deletion or replacement controls; simply placing new elements over the old ones leaves both versions visible.
- Add bespoke models only where needed. Export custom buildings through the supported glTF workflow, add them through a model-library asset group and place instances in the Scenery Editor. Check scale, pivot position, normals, materials, night lighting, collision behaviour and level-of-detail models.
- Save both layers of work. Save the scenery source from the Scenery Editor and save the overall project. A mistake we see constantly is saving one but not the other, then building an older revision.
- Build the package. Run the Project Editor's package build command and read every warning or error in the developer console. The resulting package root should contain files such as
manifest.jsonandlayout.json, plus the compiled scenery data. Do not distribute the unbuilt source project as if it were an installable add-on. - Test the compiled result. Copy or mount the built package in the Community folder, restart the simulator and inspect it from several distances, altitudes and lighting conditions. For the folder details, see our explanation of the correct MSFS 2024 package and Community-folder structure.
Which scenery method should you choose?
Use the simplest asset type that produces the required result; unnecessary custom models and imagery make packages larger, slower and harder to maintain.
| Goal | Best starting method | Main concern |
|---|---|---|
| Add generic hangars, vehicles or clutter | Place stock library objects | Use stable object references and avoid excessive object counts |
| Correct an existing airport | Edit airport elements and selectively suppress stock features | Do not create overlapping runways, parking or taxiway networks |
| Reproduce a distinctive terminal or landmark | Use a custom glTF model and model library | Provide efficient geometry, textures and levels of detail |
| Change ground materials or vegetation | Use polygons, exclusions and supported terrain tools | Large or conflicting polygons can affect areas beyond the airport |
| Add photographic ground coverage | Use the SDK's imagery packaging workflow | Source licensing, georeferencing, package size and colour matching |
Why does custom scenery not appear or look right?
Most scenery failures come from package structure, stale builds, missing assets or conflicts rather than the placement itself.
- The package is not detected: make sure
manifest.jsonandlayout.jsonare directly inside the package root, not hidden beneath an extra nested folder. - The build succeeds but nothing changes: confirm that you saved the active scenery file, built the correct package and copied the latest output. Remove older copies carrying the same package identity.
- Stock and custom scenery overlap: configure the relevant airport replacement or exclusion controls, then test with every other add-on for that location removed.
- A model is invisible or bright pink: inspect the glTF export, texture paths, filename capitalisation, supported material settings and model-library asset group. Missing textures may compile as warnings rather than stopping the whole build.
- Objects float or sink: check altitude placement and the terrain beneath them. Aggressive terrain modification can fix one viewpoint while creating cliffs or depressions elsewhere.
- Changes will not refresh: delete stale compiled output, rebuild and restart the simulator for a clean test. Developer-mode refreshes are useful during editing but do not replace a cold-load test.
- Frame rate falls near the scenery: reduce high-detail geometry, texture sizes, unique materials, lights and densely placed objects. Add sensible levels of detail to models visible from a distance.
If the package is correctly built but still remains absent, work through our broader scenery package-loading checks.
Can you use online map imagery and real airport data?
You may use material that you created yourself or have permission to redistribute. Being able to view imagery in a browser or inside the simulator does not grant permission to extract it, compile it into a scenery package and publish it.
Apply the same care to photographs, logos, building plans and chart-derived artwork. Stock MSFS library objects should normally be referenced through the SDK rather than copied, while any external object-library dependency must be clearly identified and legally distributable.
Can one scenery package support MSFS 2020 and MSFS 2024?
Many straightforward MSFS 2020 scenery packages can load in MSFS 2024, but compatibility should not be assumed. Terrain behaviour, materials, object availability, airport data and package processing can expose differences even when the scenery initially appears normal.
For a public release, preserve the editable source, open and rebuild it with the appropriate SDK, then test each simulator separately. Declare the versions actually tested rather than labelling an untested package as universally compatible.
Can custom scenery be installed on Xbox or PlayStation?
Ordinary custom scenery can be sideloaded through the Community folder on PC only. Microsoft Flight Simulator on Xbox, and Microsoft Flight Simulator 2024 on PlayStation 5, do not expose a normal Community folder for user-installed packages.
Console distribution requires the official Marketplace submission and approval route, with its own technical, content and packaging requirements. For PC freeware, distribute only the clean built package with installation instructions, required dependencies, simulator compatibility and an appropriate licence.