Claude thinks there is less than 5 people in the world interested in FileMaker bitflags so if that's you welcome to the smallest of small clubs otherwise thanks for stopping by there’s some paint over there you may want to watch dry rather than digging through this repo :)
What the <Options> integers in a FileMaker Save as XML export mean.
FileMaker stores many settings as packed decimal numbers. An export gives you
<Options>64440436737</Options> and nothing else. This is the map.
| File | Rows | Covers |
|---|---|---|
data/step-flags.json |
164 | Script step <Options>, 102 step types |
data/layout-flags.json |
27 | A layout's own <Options>, 36 bits wide |
data/layout-object-flags.json |
47 | <LayoutObject>, its six nested integers, and a popover's own attribute |
data/part-flags.json |
4 | The Options attribute on a part's <Definition> |
references/*.md |
The same, as tables | |
SKILL.md |
Rules for decoding correctly |
242 flags in total.
A layout object holds seven packed integers, not one. Its own, plus separate ones inside
Field, Portal, External, SlideControl, TabControl and
ExtendedAttributes/Formatting/Graphic. Reading only the outermost finds 11 of 43 properties.
quickFind is in the one inside Field. A popover panel carries an eighth value as an
Options= attribute on its own tag rather than as an element.
Forty-seven flags are stored inverted. The bit is the negative of the property name.
withDialog is bit 7, which is FileMaker's NoInteract: bit set means the dialog is
suppressed.
A bit means different things on different steps. Bit 9 is forceCommit on Commit
Records/Requests and createFolders on Export Records. Look up by stepID.
A layout's own integer is 36 bits wide, the widest value in the format. 64440436737 is
the value every new layout carries, and all twelve of its set bits are accounted for: the
table view grid, headers, column behaviour and row formatting, plus vertical part labels and
delineate-current-record-only.
So a JavaScript bitwise test cannot read it. &, >> and | coerce to 32 bits, which
silently drops bits 32 to 35 — tableView.systemAppearance, comfortableFormatting,
alternatingRowColors and rowNumbers, four of the twenty-seven. The failure is quiet: the
remaining bits still decode, so the value looks read. Use Math.floor(value / 2 ** bit) % 2,
which is exact to 2^53, or BigInt. Found the hard way while fixing a consumer that reported
every layout's view settings wrong.
805306368 on a layout object is anchors.left plus anchors.top and nothing else. An
object with no anchors carries 0.
Mapped: script step options, a layout's own options, the seven integers and one attribute on a layout object, and the pagination bits on a layout part.
Not in any of these integers: seven booleans on Show Custom Dialog, and a part's
rowState.useAlternate and rowState.useActive. Those are stored elsewhere and are listed
where they belong rather than omitted.
Not mapped: the accounts catalog.
Unexplained: bit 14 on Save Records as PDF, bit 1 on Insert from URL, and bit 0 of a popover panel's Options attribute.
Clipboard XML (<fmxmlsnippet>) has no packed integer. Each flag is a named element whose
state carries the raw bit rather than the meaning, so withDialog on serialises as
<NoInteract state="False"/>. Generating paste XML needs element names, not these bits.
✓ round-trip tested. Every row was produced by setting the property, reading the integer back, and recording which bit moved.
◎ observed in native exports. 124 of the step rows are independently confirmed by
FileMaker's own output. Every export writes <Boolean type="With dialog" id="128"> inside a
step's ParameterValues, where id is the mask and type is FileMaker's wording. Across 171
unrelated exports, every mask stated that way is a single power of two, and all 120 that
overlap the probed rows agree with them.
The bits listed above as unexplained are neither observed nor inferred — they are simply not accounted for, and are listed rather than omitted.
Exports carrying Source="26.0.2".
Reference skills
FileMaker Second Opinion
FileMaker AI Vocabulary
Research / Specialist
FileMaker XML bit-flags (SaXML)
FileMaker AI Grammar
Generation, paste-ready FileMaker XML
Script XML Skill (XMSS, XMSC, XMFN)
Layout XML Skill (XML2)
Field, Table & Value List Definitions (XMFD, XMTB, XMVL)
Analyse a FileMaker solution in your browser
Clockwork Inspector (SaXML)
XML Scrubber (SaXML + others)
CC BY 4.0. Andrew Kear, Clockwork Creative Technology.