# Client Options, part 2 of 2

Part 2 of 2 of [Client Options](https://bloxd.io/docs/client-options.md). It covers forcedCameraDirection to zoomOutDistance. [llms.txt](https://bloxd.io/docs/llms.txt) lists every part.

## forcedCameraDirection

**Type:** `[number, number, number]`

**Default:** `null`

Force the camera to look in a specific direction [x, y, z]. Set to null to allow free camera movement.

## forcedCameraDirectionTransitionMs

**Type:** `number`

**Default:** `0`

Duration in ms to animate/transition to the forced camera direction (when you change forcedCameraDirection). 0 = instant.

 Useful for smooth camera movements.

## gravityMultiplier

**Type:** `number`

**Default:** `1`

Multiplier applied to gravity during normal movement.

 Set to 1 for default gravity.

## groundArrowPath

**Type:** ` { target: [number, number, number]; colour?: string; } `

**Default:** `null`

Renders a terrain-following strip of animated chevron arrows on the ground from this player to the target position.

 The arrow path is not visible to other players.

 Configure a target position with `target: [x, y, z]` to show, or null to hide.

 Optional `colour` is any CSS colour string (e.g. "red", "#ffaa00", "rgb(255,0,0)"), or null for default white.

## groundFrictionScale

**Type:** `number`

**Default:** `1`

Amount of friction to apply to grounded players.

 Only change if absolutely necessary i.e. Rocket Obby uses 3.

 Players are used to the default bloxd movement behaviour and speed,

 and may be put off from your game if different muscle memory is required.

 We suggest applying speed or slowness effects instead, using api.applyEffect.

## gunshotOrigin

**Type:** `GunshotOrigin`

**Default:** `"default"`

Where gunshots originate from.

 -"default" preserves classic bloxd behavior (casts originate from the camera in third person).

 -"head" always spawns raycasts from the player's head. Useful for certain camera perspectives.

## headerChips

**Type:** `HeaderChip[]`

**Default:** `[]`

A row of compact chips shown in the top-left HUD strip, concatenated immediately after the FPS counter,

 coordinates and room name. Each chip is bare text or a TextWithDisplayOptions wrapper to toggle its

 background panel.

## healthRegenAmount

**Type:** `number`

**Default:** `0.05`

Fraction of max health that regens each regen tick

## healthRegenInterval

**Type:** `number`

**Default:** `4000`

How often health regen is ticked

## healthRegenStartAfter

**Type:** `number`

**Default:** `5000`

How long after a player receives damage to start regen again

## heldLightColourOverride

**Type:** `string`

**Default:** `null`

Held item light colour override - hex colour string e.g. #ffffff. Applied regardless of any held item.

## heldLightConeAngleOverride

**Type:** `number`

**Default:** `null`

Held item light cone angle override. Angle is measured in degrees. Larger number = wider beam.

## heldLightRangeOverride

**Type:** `number`

**Default:** `null`

Held item light range override. Distance is measured in blocks.

## hideCoordinates

**Type:** `boolean`

**Default:** `false`

When true, hides world and chunk coordinates regardless of the player's setting.

## horizontalKnockbackMultiplier

**Type:** `number`

**Default:** `1`

Multiplier for horizontal knockback when dealing damage

## initialHealth

**Type:** `number`

**Default:** `100`

Health upon joining or respawning. Can be null for the player to not have health

## initialShield

**Type:** `number`

**Default:** `0`

Shield upon joining or respawning

## inventoryColourOverride

**Type:** `string`

**Default:** `null`

Background colour of the hotbar, inventory and crafting panels, as a hex string e.g. "#682323".

 Slot colours are derived from it. Chests and crafting stations keep their own colours.

 null uses the default colours.

## inventoryItemsMoveable

**Type:** `boolean`

**Default:** `true`

Whether the player can move items in their inventory, only applicable if useInventory is true

## invincible

**Type:** `boolean`

**Default:** `false`

Whether the player is invincible

## isReceivingDamageCooldownGlobal

**Type:** `boolean`

**Default:** `true`

When the player is attacked, a short cooldown prevents further damage from the same attack type. If true, all attackers share that cooldown. If false, each attacker has their own.

## jumpAmount

**Type:** `number`

**Default:** `8`

Amount of jump power the player has

## killstreakDuration

**Type:** `number`

**Default:** `200000000`

Duration before a killstreak expires. (defaults to never expiring)

## lightingOverride

**Type:** `boolean`

**Default:** `null`

When null, just use the player's graphics setting. When set, forces lighting on (true) or off (false).

## lobbyLeaderboardInfo

**Type:** `LobbyLeaderboardInfo`

**Default:** 
```ts
{
name: {
	displayName: "Name",
	sortPriority: 0,
},
	}
```

Columns of the lobby leaderboard

## maxAuraLevel

**Type:** `number`

**Default:** `0`

The maximum Aura Level attainable - Set to 0 to disable Aura XP

## maxHealth

**Type:** `number`

**Default:** `100`

Maximum health the player can have

## maxPlayerZoom

**Type:** `number`

**Default:** `15`

Maximum camera zoom level for the player

## maxShield

**Type:** `number`

**Default:** `100`

Maximum shield the player can have

## middleTextLower

**Type:** `string | CustomTextStyling | TextWithDisplayOptions`

**Default:** `""`

Small text to display in the middle of the screen

## middleTextTop

**Type:** `string | CustomTextStyling | TextWithDisplayOptions`

**Default:** `""`

Text to display centred at the very top of the screen, in line with the FPS counter, coordinates and room name.

 Drops to immediately below that strip when a centred placement would not fit without overlapping it.

## middleTextUpper

**Type:** `string | CustomTextStyling | TextWithDisplayOptions`

**Default:** `""`

Large text to display in the middle of the screen

## minChunkAddDist

**Type:** `[number, number]`

**Default:** `[2, 2]`

Minimum size of region around player where chunks are loaded.

 Format [horizontalMinChunkRadius, verticalMinChunkRadius].

 Each value should be between 2 and 4.

 

 We recommend leaving this at the default of [2, 2] unless you have a specific reason to change it.

 (e.g. you need players to see the bottom of a dropper)

 This is because higher values can be laggier on low-end devices.

## movementBasedFovScale

**Type:** `number`

**Default:** `1`

Amount that player camera is affected by movement based fov

## music

**Type:** `Song`

**Default:** `null`

The music track to play in the background

## musicVolumeLevel

**Type:** `number`

**Default:** `0.6`

Volume level for the music

## numClosestPlayersVisible

**Type:** `number`

**Default:** `null`

If set, clients will only be able to see the closest x players (good for client perf in games with many players)

## playerZoom

**Type:** `number`

**Default:** `0`

Default camera zoom level for the player

## potionEffectDuration

**Type:** `number`

**Default:** `12000`

Duration of potion effects

## preserveProtectedFluidSources

**Type:** `boolean`

**Default:** `false`

Whether empty buckets can collect protected water/lava without removing the source block.

## proximityFadeDistance

**Type:** `number`

**Default:** `0.625`

Distance in blocks over which we reduce the opacity of entities as they approach the camera.

## proximityFadeMinOpacity

**Type:** `number`

**Default:** `0.5`

Minimum opacity multiplier reachable when fading entities based on camera proximity.

 The player's own model is always able to fade to 0, and entities being ridden stay fully opaque (as if this value was 1).

## receivingDamageMultiplier

**Type:** `number`

**Default:** `1`

Damage multiplier for all types of incoming damage

## respawnButtonText

**Type:** `string`

**Default:** `"general:respawn"`

Text to show on respawn button. (E.g. "Spectate")

## RightInfoText

**Type:** `string | CustomTextStyling | TextWithDisplayOptions`

**Default:** `""`

Text to display in the right info box

## runningSpeed

**Type:** `number`

**Default:** `7`

Running speed for the player.

 STRONGLY recommend using `speedMultiplier` unless you have a specific use case for this, runningSpeed doesn't make UX sense on mobile.

 (Walking speed is ignored for mobile players, mobile player speed is determined by joystick input and the max of runningSpeed & walkingSpeed).

 

 Players are used to the default bloxd movement behaviour and speed,

 and may be put off from your game if different muscle memory is required.

 We suggest applying speed or slowness effects instead, using api.applyEffect.

 

 The only use case for walkingSpeed/runningSpeed over speedMultiplier or speed effects is to disable running or to inverse walking/running (so you run by default and e.g. hold shift to go slower).

## secsToRespawn

**Type:** `number`

**Default:** `5`

After dying the player can respawn after this many seconds

## showBasicMovementControls

**Type:** `boolean`

**Default:** `true`

Whether to show basic movement controls

## showChatBubbles

**Type:** `boolean`

**Default:** `false`

Whether the viewer renders speech bubbles above other players when they send chat messages. Off by default.

## showKillfeed

**Type:** `boolean`

**Default:** `true`

Whether to show the killfeed

## showPlayersInUnloadedChunks

**Type:** `boolean`

**Default:** `false`

Whether to show the player in unloaded chunks

## showProgressBar

**Type:** `boolean`

**Default:** `false`

Whether to show the progress bar

## skyBox

**Type:** `string | EarthSkyBox`

**Default:** `"default"`

Not recommended to use anything other than "default" as client FPS can drop while loading the skybox

## skyLightColourOverride

**Type:** `string`

**Default:** `null`

Sky light colour override - hex string e.g. #ffffff.

## speedMultiplier

**Type:** `number`

**Default:** `1`

Speed multiplier for the player.

 Players are used to the default bloxd movement behaviour and speed,

 and may be put off from your game if different muscle memory is required.

 We suggest applying speed or slowness effects instead, using api.applyEffect.

## splashPotionEffectDuration

**Type:** `number`

**Default:** `8000`

Duration of splash potion effects

## stompDamageMultiplier

**Type:** `number`

**Default:** `0`

Mult for the damage done by "stomping" on a lifeform, i.e.: falling on them wearing Spiked Boots.

## stompDamageRadius

**Type:** `number`

**Default:** `0`

Radius around the player that will be affected by the stomp damage.

## strictFluidBuckets

**Type:** `boolean`

**Default:** `true`

Whether a player can place fluid when canChange is false

## touchscreenActionButton

**Type:** `string | CustomTextStyling`

**Default:** `null`

The contents of the action button. Supports custom text styling. onTouchscreenActionButton will be called when button pressed.

## ttbMultiplier

**Type:** `number`

**Default:** `1`

Multiplier for the time to break any block

## useFullInventory

**Type:** `boolean`

**Default:** `true`

For now just enables the UI of the full inventory

## useInventory

**Type:** `boolean`

**Default:** `true`

Whether to allow the player to use the inventory

 Disabling this will also disable the hotbar

## usePlayAgainButton

**Type:** `boolean`

**Default:** `false`

When player is dead, also show a play again button to matchmake player into a new lobby. Mostly useful for sessionBased games

## useRespawnButton

**Type:** `boolean`

**Default:** `true`

Whether the player can use the respawn button. Otherwise forces either play again or exit

## verticalKnockbackMultiplier

**Type:** `number`

**Default:** `1`

Multiplier for vertical knockback when dealing damage

## visionMinLightColour

**Type:** `string`

**Default:** `null`

The dimmest light the player can see by - hex string e.g. #ffffff. Anywhere darker is lifted

 to it, e.g. caves and night, after the sky/ambient colour overrides. Used by Night Vision.

## walkingSpeed

**Type:** `number`

**Default:** `4`

Walking speed for the player.

 STRONGLY recommend using `speedMultiplier` unless you have a specific use case for this, walkingSpeed doesn't make UX sense on mobile.

 (Walking speed ignored for mobile players, mobile player speed is determined by joystick input and the max of runningSpeed & walkingSpeed).

 

 Players are used to the default bloxd movement behaviour and speed,

 and may be put off from your game if different muscle memory is required.

 We suggest applying speed or slowness effects instead, using api.applyEffect.

 

 The only use case for walkingSpeed/runningSpeed over speedMultiplier or speed effects is to disable running or to inverse walking/running (so you run by default and e.g. hold shift to go slower).

## zoomOutDistance

**Type:** `number`

**Default:** `3`

Distance to zoom the camera out to
