# Problem code `'frame-needs-compile'`

> Contract 2.0.0 · package sha256 `a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e` · generated from `configurator-runtime.d.ts`, `tables/problems.json` and `services/onsite-scripter/scripts/contract-docs-what-to-do.json` by `services/onsite-scripter/scripts/build-contract-docs.mjs`; edit the source, not this file.

A member of [`ProblemCode`](../api/ProblemCode.md) · stable · since 2.0.0

A [`Frame.material`](../api/Frame.material.md) value needs a new shader; it was skipped. Recorded at most once per hook, material and field per 10 s, with the count in `message`.

## What to do

[`Frame.material`](../api/Frame.material.md) takes only `baseColor`, `emissive`, `emissiveStrength`, `roughness`, `metallic` and `alpha`; set any other field (maps, `alphaMode`, `transmission`) with a rule, [`session.find(q).set({ material })`](../api/PartActions.set.md), or wear a [`session.materials.create(spec)`](../api/Materials.create.md) material, then animate the six in [`onFrame`](../api/Session.onFrame.md).

```ts
session.onFrame((frame) => frame.material(glow, { emissiveStrength: 1 + Math.sin(frame.timeMs / 300) }), { signal });
```

## Where the declaration names it

- [`Frame.material`](../api/Frame.material.md): Others are skipped and record 'frame-needs-compile', at most once per hook, material and field per 10 s, with the count in `message`.

The set is open: handle a code you don't know (`'other'`).
