For the longest time, our beloved Pine Script️™ programmers have wanted the ability to display visuals on the main chart from a script occupying a separate pane. We’ve now made this possible with the new force_overlay parameter available in all the following output functions:
- All plot*() functions
- bgcolor()
- Functions that create Pine drawings: line.new(), box.new(), polyline.new(), label.new(), and table.new()
Programmers can call these functions with force_overlay to control whether the visuals from any script type (indicator, strategy, or library) show on the main chart or in the script’s pane.
This simple example uses the parameter in the second plot() call to overlay an EMA on the main chart while simultaneously displaying an RSI in a separate pane:
//@version=5
indicator("RSI in pane and EMA on chart", overlay = false)
plot(ta.rsi(close, 10), "RSI", color = color.purple)
plot(ta.ema(close, 42), "EMA", force_overlay = true)

We’ve also improved our built-in Seasonality indicator using the force_overlay feature. Previously, the indicator was an overlay script that displayed all its visuals, including a large table, directly on the main chart. Our newest version is a non-overlay script that displays the table in a separate pane and uses force_overlay to keep its other visual outputs on the main chart:

To stay up to date on new Pine Script™ features, keep an eye on the User Manual’s Release notes. The PineCoders account also broadcasts updates from its Squawk Box on Telegram, its X (Twitter) account, and from the Pine Script™ Q&A public chat on TradingView.
We hope you find this highly-requested feature as useful as we think it’ll be, and please do keep sending us your feedback and suggestions so we can make the platform the best it can be. We build TradingView for you, and we’re always keen to hear your thoughts.
— Team TradingView