Hello, AlFlakky,
In case you still need it or somebody else stumbles on this question, it is possible by using a CanvasRenderTarget2D, which is a render target that you can create dynamically inside blueprints. You first create an asset for it (it is a blueprint class). Inside that class, you can add the functionality you want for when it updates.
Then, in another blueprint, you use a create a canvas render target node, selecting the class you created and setting its size, and save a reference for it as a variable. Whenever you want to change the content of it, you call the Update Resource node on the reference you saved. And if you want to pass some variable for it (a float or 2D vector to change the position you are writing to, or even a dynamic material instance) you can cast to your CanvasRenderTarget2D class and set a variable or call an event within it (although the changes you make will only reflect the next time you update the resource).
As for how to use it as a texture inside a material, your canvas reference can plug into the value of a Set Texture Parameter Value node. You create a material with a Param2D node, create a Dynamic Material Instance out of that material, and then set that texture parameter with your canvas. You only need to do this once. It will reflect any changes that happen when you update your resource.
Also, you can do more than just draw primitives. Inside the CanvasRenderTarget2D blueprint you can use the Draw Texture or Draw Material nodes. Those will give you what you want (for example, draw a texture a certain coordinate in your render target, and with a certain size; there are even blend modes).
As for the Draw Material node, I find it more useful than Draw Texture. Its function is not to draw all channels of a material (that wouldn’t make sense because you are in the end just updating a Param2D in your final material, and that is plugged to just one material input). In fact, it only writes out the emissive channel to your texture. But since it can take any material as an input, including dynamic material instances whose properties you can change by casting to your canvas blueprint and changing some variables, then you can make some interesting stuff such as changing the tint of the texture you are drawing. That wouldn’t be possible with the Draw Texture node.
I used this technique to make a paint brush game and it worked very well. I even was able to use a second canvas render target to paint the normals of my final material.
Here is another thread that shows a step by step tutorial. The first step (creating a Render Target asset) is not needed, the rest are correct.
All the best.