---
title: "Frame Exposed Trigger"
---

| Property | Type | Description |
|-|-|-|
| player | EntityPredicate | Checks player who owns the camera |
| camera | [CameraPredicate](../predicates/camera_predicate) | Checks camera |
| frame | [FramePredicate](../predicates/frame_predicate) | Checks exposed frame |
| location_in_frame | LocationPredicate | Checks several positions that are visible in the image, can be used to check structures, etc |
| entity_in_frame | List of EntityPredicate | Checks entities in frame. Unlike FramePredicate, the entity is real and exists at the time of a check. |

<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' }}>EntityPredicate 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/>