---
title: "Frame Predicate"
---

| Property | Type | Description |
|-|-|-|
| identifier | [ExposureIdentifier](../components/exposure_identifier) | Matches id of the exposure. Basically only useful for predefined exposures (like the ones spawned in loot) |
| type | String ("color" or "black_and_white") | Checks film type |
| photographer | String | Checks name of the frame author |
| shutter_speed | [ShutterSpeedPredicate](shutter_speed_predicate) | Checks shutter speed at the time of creation |
| focal_length | MinMaxBounds.Ints | Checks focal length at the time of creation |
| light_level | MinMaxBounds.Ints | Checks what light level at camera position was at the time of creation |
| day_time | MinMaxBounds.Ints | Checks day time at the time of creation |
| entities_in_frame_count | MinMaxBounds.Ints | Checks count of entities in frame |
| entity_in_frame | List of [EntityInFramePredicate](entity_in_frame_predicate) | Checks if any entity in frame matches this predicate |
| extra_data | [ExtraDataPredicate](extra_data_predicate) | Checks extra data |

<div name='NOTE' style={{ display: 'inline-block', margin: '2px' }}>
    <div style={{ display: 'flex', alignItems: 'top', backgroundColor: '#232425', borderRadius: '6px', padding: '8px 12px' }}>
      <RocketIcon style={{ color: '#F4EFE9', marginRight: '8px' }} width={20} />
      <span style={{ color: '#F4EFE9', fontSize: '15px' }}>All properties are optional</span>
    </div>
</div><br/><br/>

<div name='INFO' style={{ display: 'inline-block', margin: '2px' }}>
    <div style={{ display: 'flex', alignItems: 'top', backgroundColor: '#21252b', borderRadius: '6px', padding: '8px 12px' }}>
      <InfoIcon style={{ color: '#63b3eb', marginRight: '8px' }} width={20} />
      <span style={{ color: '#63b3eb', fontSize: '15px' }}>MinMaxBounds.Ints is the same as in vanilla advancements</span>
    </div>
</div><br/>
<div name='INFO' style={{ display: 'inline-block', margin: '2px' }}>
    <div style={{ display: 'flex', alignItems: 'top', backgroundColor: '#21252b', borderRadius: '6px', padding: '8px 12px' }}>
      <InfoIcon style={{ color: '#63b3eb', marginRight: '8px' }} width={20} />
      <span style={{ color: '#63b3eb', fontSize: '15px' }}>LocationPredicate is the same as in vanilla advancements</span>
    </div>
</div><br/><br/>

<div name='INFO' style={{ display: 'inline-block', margin: '2px' }}>
    <div style={{ display: 'flex', alignItems: 'top', backgroundColor: '#21252b', borderRadius: '6px', padding: '8px 12px' }}>
      <InfoIcon style={{ color: '#63b3eb', marginRight: '8px' }} width={20} />
      <span style={{ color: '#63b3eb', fontSize: '15px' }}>entity_in_frame checks stored entity info in frame. It's not a real entity, just it's info.</span>
    </div>
</div><br/><br/>

<div name='NOTE' style={{ display: 'inline-block', margin: '2px' }}>
    <div style={{ display: 'flex', alignItems: 'top', backgroundColor: '#232425', borderRadius: '6px', padding: '8px 12px' }}>
      <RocketIcon style={{ color: '#F4EFE9', marginRight: '8px' }} width={20} />
      <span style={{ color: '#F4EFE9', fontSize: '15px' }}>This predicate can also be used as ItemSubPredicate</span>
    </div>
</div>