# AppOptions

Class · category: Framework

Source: https://github.com/playcanvas/engine/blob/970d89f6d3bc6667f4e1f88153abd6e7e82ed52c/src/framework/app-options.js#L23

AppOptions holds configuration settings utilized in the creation of an [AppBase](https://api.playcanvas.com/engine/classes/AppBase.md) instance.
It allows functionality to be included or excluded from the AppBase instance.

## Properties

### assetPrefix

```ts
assetPrefix: string
```

Prefix to apply to asset urls before loading.

### batchManager

```ts
batchManager: typeof BatchManager
```

The BatchManager.

### componentSystems

```ts
componentSystems: typeof ComponentSystem[] = []
```

The component systems the app requires.

### devtools

```ts
devtools: boolean = true
```

Whether the app announces itself to developer tools, such as the PlayCanvas Inspector
browser extension, so they can find and inspect it. Set to false to keep a production build
from announcing itself. This is an opt-out, not a protection: code running on the page can
still reach the app by other means. Defaults to true.

### elementInput

```ts
elementInput: ElementInput
```

Input handler for [ElementComponent](https://api.playcanvas.com/engine/classes/ElementComponent.md)s.

### gamepads

```ts
gamepads: GamePads
```

Gamepad handler for input.

### graphicsDevice

```ts
graphicsDevice: GraphicsDevice
```

The graphics device.

### keyboard

```ts
keyboard: Keyboard
```

Keyboard handler for input.

### lightmapper

```ts
lightmapper: typeof Lightmapper
```

The lightmapper.

### mouse

```ts
mouse: Mouse
```

Mouse handler for input.

### physicsWorld

```ts
physicsWorld: PhysicsWorld
```

The physics backend used to simulate rigid bodies, collisions and joints, such as
[AmmoPhysicsWorld](https://api.playcanvas.com/engine/classes/AmmoPhysicsWorld.md) or [NullPhysicsWorld](https://api.playcanvas.com/engine/classes/NullPhysicsWorld.md). When set, the application installs
it into the [RigidBodyComponentSystem](https://api.playcanvas.com/engine/classes/RigidBodyComponentSystem.md) during [AppBase#init](https://api.playcanvas.com/engine/classes/AppBase.md#init), so
[AppOptions#componentSystems](https://api.playcanvas.com/engine/classes/AppOptions.md#componentsystems) must include [RigidBodyComponentSystem](https://api.playcanvas.com/engine/classes/RigidBodyComponentSystem.md). A
useful simulation also requires [CollisionComponentSystem](https://api.playcanvas.com/engine/classes/CollisionComponentSystem.md) - rigid bodies and
triggers obtain their shapes from collision components - and [JointComponentSystem](https://api.playcanvas.com/engine/classes/JointComponentSystem.md)
if joints are used. The rigid body system registers its contact listener with the
world. When omitted, an [AmmoPhysicsWorld](https://api.playcanvas.com/engine/classes/AmmoPhysicsWorld.md) is created automatically once
application libraries have loaded, if the Ammo.js WasmModule is present. The application
takes ownership of the world and destroys it with the application.

### resourceHandlers

```ts
resourceHandlers: typeof ResourceHandler[] = []
```

The resource handlers the app requires.

### scriptPrefix

```ts
scriptPrefix: string
```

Prefix to apply to script urls before loading.

### scriptsOrder

```ts
scriptsOrder: string[]
```

Scripts in order of loading first.

### soundManager

```ts
soundManager: SoundManager
```

The sound manager

### touch

```ts
touch: TouchDevice
```

TouchDevice handler for input.

### xr

```ts
xr: typeof XrManager
```

The XrManager.
