user: Explain FModifier(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # FModifier(bpy_struct)

base class — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct")

subclasses —
[`FModifierCycles`](bpy.types.FModifierCycles.html#bpy.types.FModifierCycles "bpy.types.FModifierCycles"), [`FModifierEnvelope`](bpy.types.FModifierEnvelope.html#bpy.types.FModifierEnvelope "bpy.types.FModifierEnvelope"), [`FModifierFunctionGenerator`](bpy.types.FModifierFunctionGenerator.html#bpy.types.FModifierFunctionGenerator "bpy.types.FModifierFunctionGenerator"), [`FModifierGenerator`](bpy.types.FModifierGenerator.html#bpy.types.FModifierGenerator "bpy.types.FModifierGenerator"), [`FModifierLimits`](bpy.types.FModifierLimits.html#bpy.types.FModifierLimits "bpy.types.FModifierLimits"), [`FModifierNoise`](bpy.types.FModifierNoise.html#bpy.types.FModifierNoise "bpy.types.FModifierNoise"), [`FModifierStepped`](bpy.types.FModifierStepped.html#bpy.types.FModifierStepped "bpy.types.FModifierStepped")

*class* bpy.types.FModifier(*bpy_struct*)
:   Modifier for values of F-Curve

    active
    :   F-Curve modifier will show settings in the editor

        Type:
        :   boolean, default False

    blend_in
    :   Number of frames from start frame for influence to take effect

        Type:
        :   float in [-inf, inf], default 0.0

    blend_out
    :   Number of frames from end frame for influence to fade out

        Type:
        :   float in [-inf, inf], default 0.0

    frame_end
    :   Frame that modifier’s influence ends (if Restrict Frame Range is in use)

        Type:
        :   float in [-inf, inf], default 0.0

    frame_start
    :   Frame that modifier’s influence starts (if Restrict Frame Range is in use)

        Type:
        :   float in [-inf, inf], default 0.0

    influence
    :   Amount of influence F-Curve Modifier will have when not fading in/out

        Type:
        :   float in [0, 1], default 1.0

    is_valid
    :   F-Curve Modifier has invalid settings and will not be evaluated

        Type:
        :   boolean, default False, (readonly)

    mute
    :   Enable F-Curve modifier evaluation

        Type:
        :   boolean, default False

    name
    :   F-Curve Modifier name

        Type:
        :   string, default “”, (never None)

    show_expanded
    :   F-Curve Modifier’s panel is expanded in UI

        Type:
        :   boolean, default False

    type
    :   F-Curve Modifier Type

        Type:
        :   enum in [Fmodifier Type Items](bpy_types_enum_items/fmodifier_type_items.html#rna-enum-fmodifier-type-items), default `'NULL'`, (readonly)

    use_influence
    :   F-Curve Modifier’s effects will be tempered by a default factor

        Type:
        :   boolean, default False

    use_restricted_range
    :   F-Curve Modifier is only applied for the specified frame range to help mask off effects in order to chain them

        Type:
        :   boolean, default False

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   [type](#bpy.types.FModifier.type "bpy.types.FModifier.type")