Quick answer: Hammer icon → build. Confirm dotnet on PATH. Script attached to a node. GD.Print, not Console.WriteLine.

You write GD.Print("hi") in _Ready. Run scene. Output panel empty. Build never happened or script not attached.

The Fix

// Player.cs
using Godot;
public partial class Player : Node2D {
    public override void _Ready() {
        GD.Print("Player ready");   // editor Output
    }
}

// Build steps:
// 1. Hammer icon top-right (or Build menu)
// 2. Confirm `dotnet --version` works in shell
// 3. Editor reload (Ctrl+Shift+R) after build
// 4. Script attached to Player node in scene

If the build panel shows errors, fix those first — the assembly didn’t produce, no scripts run.

Verifying

Run scene. Output panel: Player ready. Drop GD.PrintErr for red logs; both routes write to the same panel.

“Build green. Script attached. GD.Print lands.”

Related Issues

For C# Export flags, see flags. For C# signal emit, see signal.

Build first. Print second.