Starting at 2nd level, you can conjure magical strings between you and another being. As an action, choose one creature that you can see within 30ft of you. The creature becomes bound by your strings. An unwilling creature can make a Dexterity saving throw against your spell save DC to avoid becoming bound. This lasts for 1 minute. The binding ends early if you release them (no action required), if you use this feature to bind another creature, you die, you are incapacitated, or you are ever more than 30ft away from the creature.
When you have a creature bound by your strings, you gain the following benefits.
When you hit a bound creature with an attack, you can move them up to 10ft in a direction of your choice. This movement does not trigger opportunity attacks.
When a bound creature makes an attack roll, you can use a reaction to give them advantage or disadvantage on the roll.
Starting at 6th level, you gain the following additional benefits while you have a creature bound by your puppet strings.
As an action, you can force a bound creature to make a weapon attack against a target of your choice. If the bound creature is unwilling, the attack roll has disadvantage.
As a bonus action, you can force a bound creature to move up to 20ft in a direction of your choice. This movement does not trigger opportunity attacks.
When a bound creature makes a Dexterity check or saving throw, you can use a reaction to grant them advantage or disadvantage on the roll.
Starting at 10th Level, you always have the Animate Objects spell prepared, but it does not count against the number of wizard spells you prepare. While concentrating on this spell, if you cast a spell with a range of touch, one of your animated objects can deliver the spell as if it had cast the spell. Your animated object must be within 100 feet of you, and it must use its reaction to deliver the spell when you cast it. If the spell requires an attack roll, you use your attack modifier for the roll.
Starting at 14th level, you can bind two creatures simultaneously with your Puppet Strings feature. If you try to bind a third creature, you must first release one of the currently bound creatures.