If you need dynamic drawings that are created and positioned using specific bar and price coordinates, functions like line.new(), box.new(), and label.new() are more suitable.
For simple signal markers, plotshape() is usually easier.
For fixed horizontal levels, hline() is the appropriate choice.
So in simple terms:
-> line.new() → Dynamic lines and trend lines
-> box.new() → Rectangular zones
-> label.new() → Text and custom markers
-> plotshape() → Signal shapes
-> hline() → Fixed horizontal levels
These functions allow you to turn a basic Pine Script indicator into a much more visual and informative chart.