# Parameters “Add Feature” and “Replace Feature” don’t seem to work (G4)

**URL:** <https://forum.glyphsapp.com/t/parameters-add-feature-and-replace-feature-don-t-seem-to-work-g4/37357>\
**Category:** Glyphs\
**Tags:** bug\
**Created:** [September 27, 2026, 9:36pm UTC](https://forum.glyphsapp.com/t/parameters-add-feature-and-replace-feature-don-t-seem-to-work-g4/37357 "2026-09-27T21:36:53Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![thundernixon](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/thundernixon/32/1579_2.png) [@thundernixon](https://forum.glyphsapp.com/u/thundernixon)\
**Post date:** [September 27, 2026, 9:36pm UTC](https://forum.glyphsapp.com/t/parameters-add-feature-and-replace-feature-don-t-seem-to-work-g4/37357/1 "2026-09-27T21:36:53Z")

</div>

I’m working on a width+weight family, and want to have multiple areas of variable glyph swaps. I want these to work in variable font exports, and also affect what gets built into static fonts.

As an example, I want the **G** to have a crossbar in narrower widths and lighter weights – basically, I want there to be a crossbar when there is room for it, but not when there’s not (as in wider/bolder areas). So, it’s something like this:

```fea
#ifdef VARIABLE
condition wght < 340;sub G by G.crossbar;
#endif
#ifdef VARIABLE
condition wght < 850, 50 < wdth < 75;
sub G by G.crossbar;
#endif
#ifdef VARIABLE
condition wght < 440, 75 < wdth < 100;
sub G by G.crossbar;
#endif

```

I can now build with `ifdef` feature variation syntax via FontMake, but it only works for variable font builds, and fails for static fonts.

So, one thought is that I could perhaps set up a variable font export, and use the “Add Feature” custom parameter to add the feature variations there.

Unfortunately, I can get these parameters to work at all.

Even if I try to do something simple, like a single substitution:

 ![image](https://forum.glyphsapp.com/uploads/default/original/3X/5/4/54751bb5347ddd01169b90777884f319a69c217f.jpeg)

Once I click “OK” and reopen the parameter, it is blank:

 ![image](https://forum.glyphsapp.com/uploads/default/original/3X/3/5/3524396b96fdf538dc585385e78da4d7b5840bd1.jpeg)

The same thing happens in the more complex case trying to add `rvrn` and then some `ifdef` feature variations code.

Perhaps this could be a UI issue related to my macOS version? I’m currently on macOS Sonoma, 14.8.9 (23J631). (Update: it worked on a newer macOS for the simple case, but failed for the `ifdef` case.)

I’ll try it on an alternate computer with a newer macOS, and see if that changes anything. I can email my source file to Glyphs support, if that would be helpful.

Thanks!

Related:

> [@GlyphsLib/FontMake now support Glyphs feature variations syntax! Is there a way to build to VF \*and\* static fonts?](https://forum.glyphsapp.com/t/glyphslib-fontmake-now-support-glyphs-feature-variations-syntax-is-there-a-way-to-build-to-vf-and-static-fonts/37356/1):
>
> Apologies in advance if this question falls a bit beyond the purview of this glyphs forum. GlyphsLib/FontMake now support Glyphs feature variations syntax! But if I am using “ifdef” feature syntax, is there a way to build to VF and static fonts? I’ve asked this question in the [glyphsLib GitHub repo](https://github.com/googlefonts/glyphsLib/issues/1175), so an answer/discussion there might be ideal. But, I wanted to get a bit of extra visibility on the question, and I know there are a few experts here. slight_smile I assume a couple of Glyphs-cen…

---

<div class="post-metadata">

**Author:** ![GeorgSeifert](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/georgseifert/32/259_2.png) [@GeorgSeifert](https://forum.glyphsapp.com/u/GeorgSeifert)\
**Post date:** [September 28, 2026, 9:12am UTC](https://forum.glyphsapp.com/t/parameters-add-feature-and-replace-feature-don-t-seem-to-work-g4/37357/2 "2026-09-28T09:12:58Z")

</div>

I’ll have a look at the Add Feature dialog.

(You don’t need to repeat the `#ifdef VARIABLE/#endif`. Just wrap it in one block:

```auto
#ifdef VARIABLE
condition wght < 340;sub G by G.crossbar;
condition wght < 850, 50 < wdth < 75;
sub G by G.crossbar;
condition wght < 440, 75 < wdth < 100;
sub G by G.crossbar;
#endif

```

---

<div class="post-metadata">

**Author:** ![GeorgSeifert](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/georgseifert/32/259_2.png) [@GeorgSeifert](https://forum.glyphsapp.com/u/GeorgSeifert)\
**Post date:** [September 28, 2026, 9:47am UTC](https://forum.glyphsapp.com/t/parameters-add-feature-and-replace-feature-don-t-seem-to-work-g4/37357/3 "2026-09-28T09:47:47Z")

</div>

In the file you sent, you mention “rvrn”. NEVER use it. It can be tempting as it is reliably applied. But it will not work with unencoded glyphs. So it can’t handle substitution of e.g. `a.sc`. Use “rlig” or “rclt”.

---

<div class="post-metadata">

**Author:** ![thundernixon](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/thundernixon/32/1579_2.png) [@thundernixon](https://forum.glyphsapp.com/u/thundernixon)\
**Post date:** [September 28, 2026, 12:25pm UTC](https://forum.glyphsapp.com/t/parameters-add-feature-and-replace-feature-don-t-seem-to-work-g4/37357/4 "2026-09-28T12:25:11Z")

</div>

Ah, great advice – thank you, Georg!

I’ll stay tuned on the Add Feature parameter.

---

<div class="post-metadata">

**Author:** ![GeorgSeifert](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/georgseifert/32/259_2.png) [@GeorgSeifert](https://forum.glyphsapp.com/u/GeorgSeifert)\
**Post date:** [September 28, 2026, 1:06pm UTC](https://forum.glyphsapp.com/t/parameters-add-feature-and-replace-feature-don-t-seem-to-work-g4/37357/5 "2026-09-28T13:06:19Z")

</div>

You can “fix” it by clicking in the feature name selector above before hitting OK.

---

<div class="post-metadata">

**Author:** ![thundernixon](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/thundernixon/32/1579_2.png) [@thundernixon](https://forum.glyphsapp.com/u/thundernixon)\
**Post date:** [September 28, 2026, 3:26pm UTC](https://forum.glyphsapp.com/t/parameters-add-feature-and-replace-feature-don-t-seem-to-work-g4/37357/6 "2026-09-28T15:26:23Z")

</div>

Oh nice, yes, that makes it stick!

 ![image](https://forum.glyphsapp.com/uploads/default/original/3X/9/d/9dbe93de74acb183c54f75a7c93bd3465896b794.png)

For now, that’s a very helpful workaround. Thanks!

---

<div class="post-metadata">

**Author:** ![GeorgSeifert](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/georgseifert/32/259_2.png) [@GeorgSeifert](https://forum.glyphsapp.com/u/GeorgSeifert)\
**Post date:** [September 28, 2026, 3:37pm UTC](https://forum.glyphsapp.com/t/parameters-add-feature-and-replace-feature-don-t-seem-to-work-g4/37357/7 "2026-09-28T15:37:51Z")

</div>

You don’t need the “#ifdef” in the parameter. But it will not hurt either.

---

<div class="post-metadata">

**Author:** ![thundernixon](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/thundernixon/32/1579_2.png) [@thundernixon](https://forum.glyphsapp.com/u/thundernixon)\
**Post date:** [September 28, 2026, 3:49pm UTC](https://forum.glyphsapp.com/t/parameters-add-feature-and-replace-feature-don-t-seem-to-work-g4/37357/8 "2026-09-28T15:49:54Z")

</div>

Ohh that makes sense. I suppose the `#ifdef` is literally available in the main features to demarcate a block that will only export to variable fonts… right?

---

<div class="post-metadata">

**Author:** ![GeorgSeifert](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/georgseifert/32/259_2.png) [@GeorgSeifert](https://forum.glyphsapp.com/u/GeorgSeifert)\
**Post date:** [September 28, 2026, 4:17pm UTC](https://forum.glyphsapp.com/t/parameters-add-feature-and-replace-feature-don-t-seem-to-work-g4/37357/9 "2026-09-28T16:17:23Z")

</div>

it would only be needed for fontMake to hide the code from the static instances if the #ifdef is not supported.
