---
title: Library Sources
tableOfContents:
  minHeadingLevel: 1
  maxHeadingLevel: 2
---

import { FileTree } from "@astrojs/starlight/components";

Drop supports different library structures, but they all are underpinned by the same few concepts. You can add more than one library (called a 'library source') that each use different structures, to combine your multiple game libraries into one.

:::note

A **game** in Drop is associated with all the metadata. You do not need to have a version available to import a game.

A **version** in Drop is associated with the files and content, and needs it to be imported. Versions also include information on how to install and run the game.

:::

# Drop-style

The Drop style library format enables all the Drop features, but isn't compatible with many other applications.

## Structuring your library

Drop uses a very particular structure to organise your games library. Generally, to get started, you need to create two folders for a game:

<FileTree>
- MyGame *game folder, contains versions*
   - version-1 *version folder, contains the content*
      - game.exe
      - ...
   - version-2
      - ...
- MyOtherGame
  - version1.zip *optionally, **instead of the folder**, the version can be a compressed archive*
  - version2/
    - ...

</FileTree>

In the UI, you'll be prompted to "import" each folder separately:

- Importing the **game folder** will link the folder to a game in the metadata database, and pulls the metadata (images, descriptions, that sort of thing) from one of your configured metadata providers. **This only happens once for each game you have.**
- Importing **version** will read the entirety of the game files and generate checksums and metadata that clients need to download the games with. **This happens for each new version you add.**

### Importing more versions

So your game has gotten an update and you've got new files. All you need to do is create a new version folder inside the game folder, and move all the files you have into that folder. Then, import it within the Drop admin UI.

If you have files that you're supposed to **paste over the previous version**, Drop supports that! Read [Update mode](/docs/reference/update-mode/) to find out more.

# Compatibility (flat-style)

This is a more commonly used layout for game libraries, but doesn't support all of Drop's features. It's useful when you want to migrate to Drop from another application or have an existing library. **We recommend [Drop-style](#drop-style) libraries if you're starting from scratch**.

## Structuring your library

In flat-style, the game and version folders/files are combined into one:

<FileTree>
- MyGame *game folder **and** version folder combined*
   - game.exe *game content isn't in a subfolder*
   - ...
- MyOtherGame.zip *same as before, can optionally be an archive**
</FileTree>

In Drop, you will still need to import the game and version separately as described above, but **the version will simply be called 'default'**.

# Archive support
Drop uses [7zip](https://www.7-zip.org/) under the hood to provide archive support, and therefore inherits its impressive list of supported formats.

For quick reference, the supported list of archives is: 7z, XZ, BZIP2, GZIP, TAR, ZIP, WIM, APFS, AR, ARJ, CAB, CHM, CPIO, CramFS, DMG, EXT, FAT, GPT, HFS, IHEX, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, QCOW2, RAR, RPM, SquashFS, UDF, UEFI, VDI, VHD, VHDX, VMDK, XAR and Z.
