def METHOD_NAME(recipients, points, parent=False, **kwargs):
    """Create a polygon using :func:`beam`.
    :param RecipientFilter recipients:
        Players that should see the beam.
    :param iterable points:
        An iterable that contains at least 3 :class:`mathlib.Vector` instances.
    :param bool parent:
        If True, the beam will be parented to the given entities.
    :param kwargs:
        Additional attributes that will be send to the effect.
    """
    if len(points) < 3:
        raise ValueError('At least 3 points are required.')
    start = points[0]
    points = dict(enumerate(points))
    entity = TempEntity('BeamEntPoint')
    for attr, value in kwargs.items():
        setattr(entity, attr, value)
    for index, point in points.items():
        beam(
            recipients, point, points.get(index + 1, start), parent,
            _entity=entity, **kwargs)