How to have a 3D anchor point that limits how far you can go?

I created a grapple script where if you press a button the hook launches however I want to know if there is a possible way for that when the hook does attach to an object, it creates an anchor point so that the player cant move a certain distance away from it without it pulling the player back.

    public KeyCode leftHook;
    public KeyCode rightHook;

    public KeyCode leftGas;
    public KeyCode rightGas;

    public GameObject hookLeft;
    public GameObject hookLeftHolder;

    public GameObject hookRight;
    public GameObject hookRightHolder;

    public float hookTravelSpeed;
    public float playerTravelSpeed;

    public float maxDistance;
    private float currentDistance;

    public bool firedLeft;
    public bool hookedLeft;

    public bool firedRight;
    public bool hookedRight;
    // Use this for initialization
    void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
     
            if (Input.GetKeyDown(leftHook) && !firedLeft)
            {
                firedLeft = true;
            }
            if (Input.GetKeyDown(rightHook) && !firedRight)
            {
                firedRight = true;
            }
        

        if (firedLeft)
        {
            hookLeft.transform.Translate(Vector3.forward * Time.deltaTime * hookTravelSpeed);
            currentDistance = Vector3.Distance(transform.position, hookLeft.transform.position);

            if(currentDistance >= maxDistance)
            {
                ReturnHookLeft();
            }
        }
        if (firedRight)
        {
            hookRight.transform.Translate(Vector3.forward * Time.deltaTime * hookTravelSpeed);
            currentDistance = Vector3.Distance(transform.position, hookRight.transform.position);
            if (currentDistance >= maxDistance)
            {
                ReturnHookRight();
            }
        }
        if (hookedLeft)
        {
            // Creates the anchor point
        }
        if (hookedRight)
        {
            // Creates the anchor point
        }


    }
    void ReturnHookLeft()
    {
        hookLeft.transform.position = hookLeftHolder.transform.position;
        firedLeft = false;
        hookedLeft = false;
    }
    void ReturnHookRight()
    {
        hookRight.transform.position = hookRightHolder.transform.position;
        firedRight = false;
        hookedRight = false;
    }

A Configurable Joint sounds like what you’re looking for.