Texture alpha is treated as boolean by many scripts, and this worked in lsl:
llSetAlpha(TRUE, ALL_SIDES);
The equivilant does not work in lua:
ll.SetAlpha(true, ALL_SIDES)
In LSL the best way to toggle alpha was:
llSetAlpha(!llGetAlpha(face), face);
In Lua, the equivilant code is quite ugly:
ll.SetAlpha(if ll.GetAlpha(face) ~= 0 then 0 else 1, face)
The following almost works, and is less horrible, but it breaks if alpha gets accidentally set to some value other than 0 or 1:
ll.SetAlpha(1 - ll.GetAlpha(face), face)
If boolean alpha was implemented, it would become the pretty elegant:
ll.SetAlpha(ll.GetAlpha(face) == 0, face)
Inconsistenly, the following does work in Lua:
ll.SetLinkPrimitiveParamsFast(LINK_THIS, {PRIM_COLOR, ALL_SIDES, vector.one, true})
Boolean alpha would require changing the following functions:
  • ll.SetAlpha()
  • ll.SetLinkAlpha()
  • PrimParamsSetter.color()
  • PrimParamsSetter.gltfBaseColor()
Debatably, it would also affect particle and hovertext alpha, but I have no use case for that:
  • ll.SetText()
  • PrimParamsSetter.text()
  • ParticleParams.alpha_begin
  • ParticleParams.alpha_end