Hi, I would like to understand how I can build a battle system based on a pure script without invoking any nodes to visualize anything?

I have a system built that uses nodes and attached scripts to create a round based battle system which works fine. Now, I want to allow to run the same or similar system without nodes while still allowing for turns of player and enemy using signals. Background to this is that I want to build a battle dashboard that shows a battle but does not show any actual figures moving around etc. Is this possible with pure scripts? For example, I need to use different scripts per type of entity as well as invoke signals to ensure that the next turn is assigned to the correct entity. How do I do this?

    Sounds like an interesting game idea! Yeah, this is totally doable. You'd just instantiate all your objects as Node instances and add them to the scene tree. There is no requirement for you to render these objects to the screen. You could even use Node2D or Node3D objects if you needed to simulate movement. Just don't add any sprites or models to the objects so that nothing is rendered.
    https://docs.godotengine.org/en/stable/classes/class_node.html

    Benny
    No boundaries to this besides your own patience honestly. You can make and connect signals 100% through script and place objects too. Animation might be a little weird but it's still doable with some position or sprite noodling. For some small animations, like a rotating background, I don't even bother with extra nodes, just script the movement.

    To be frank, I would just build the loop first, have some text or print() commands let you know how things are working, then do whatever visuals you want after.

    Also, some good reading here. [Even Godot docs say it can be done!] (https://docs.godotengine.org/en/stable/tutorials/best_practices/scenes_versus_scripts.html)
    Though a caveat - the docs warn that using scripts versus the editor for larger "scenes" can lead to slower performance.

    Benny Signals are implemented in Object class. You don't need any nodes to exchange signals between objects.

    Thanks for all your responses! I am currently at doing some implementation here, it is a bit cumbersome but I guess it will work out!