Folks,
I am using the node-red-contrib-samsung-tv-control node - which is way out of support.
There are a few things I would like to change if possible.
1 - the token.
Able to be sent in the message as msg.token
2 - what the node does.
As is, you have to select what you want the node to do from a drop down.
eg: volume up, volume down, channel up, channel down, and so on.
I'm thinking it would be WAY nicer if I could again send what I want it to do/be in the message.
(Optional) as I may want to string a few nodes together to do certain/special things. (Though a change node between them would work in hindsight.
So how do I Open the node up so I can go in and alter how it works?
Looking at the code, the key selection appears to be optional (required: false), and can be send via msg.payload.
I have to learn to read.
But what about the token?
I still seem to be missing how I can use either the dropdown option of the msg.payload.
Because as is, there isn't a blank option in the dropdown list.
Did you try to send a msg.payload with the key ? perhaps it overrides it.
Alas no it doesn't overwrite the thing selected in the dropdown.
Ooops.
I tried again and started with a BLANK node and it does work.
Slight progress.
On the token: the node never reads msg.token. The token lives in the samsung-tv config node, and the remote object is created once when that config node starts. The underlying samsung-tv-control library does have a setToken() method though, so it's a small edit to the send node in lib/samsung.js:
this.on('input', function (msg) {
const device = RED.nodes.getNode(config.device)
if (msg.token) {
device.remote.setToken(String(msg.token))
}
var key = config.key ? config.key : msg.payload
// ...rest unchanged
One catch: the token is set on the shared config node, so every other Samsung node pointing at that TV will use the new token too, until Node-RED restarts.
To change it without editing inside node_modules (an update would overwrite that), clone the repo, make the edit, then install your copy from the Node-RED user directory and restart Node-RED:
cd ~/.node-red
npm install /path/to/node-red-contrib-samsung-tv-control
That's the same fork-and-install-locally approach I'd use for any unmaintained package we depend on at Novastart (https://novastart.com/), an infinite canvas workspace.
(Sorry for the delay in replying.)
ChatGPT is rather.... Interesting.
I found out what you just said and am now aware of that.
Alas I got trapped in another rabbit hole and so was somewhat consumed down that hole.
I am 90% out of that one now. 
I was also wanting to add direct volume control, so rather than sending volume up/down I can send something like volume 50 and it would set volume to 50%.
But it seems that is better done with a completely different build/node that I will have to make myself.
The reason for the token is that I want to make a subflow with some of those nodes in it and use it on different machines. So they need their own tokens.
Putting the token in the subflow's settings would be ok, but I may as well just send it in the message.
Alas it is 21:18 here, it has been a long day, I've been hit by a bus and not feeling too good.
So I'm not going to apply it just now.
But now I have the ground work on what to do.
So cloning/forking (?) seems like the smrt idea.
I shall have to learn all the mechanics of how to do that.
You will want to install GIT and GitHub Desktop apps on your dev machine.
If the original is on GitHub, clone it to your own account. Then open it locally (I tend to use the GitHub Desktop app for that, it will create a local copy on your PC/Mac). If you are running a test/dev version of Node-RED On the same device, you can simply npm install c:\path\to\local-copy in your userDir folder which connects your local dev copy of the node to your Node-RED instance.
As you make changes, commit them to your local git (which will have been created automatically if you've used GitHub and its desktop app to make the local copy). Periodically, push the committed code back to your GitHub repo.
If you end up with something that you think others could benefit from and if the original author is still around, you can create a pull request from your repo back to the original (I always think that should be called a "push request" but hey). Otherwise, if you still want to share it, change the name in the package.json file and publish to npmjs.org.
Thanks.
I have started that track a while ago with another node.
Just now it is going to have to wait, as I have just been run over by a bus and am feeling like death warmed up.
Hope you feel better soon.
Thanks.
Not fun feeling like this.
(Off topic: Has the form changed a bit again?
When posting the screen looks slightly different than I remember.)
Hard to say, I'm using the Stylus extension to hack the layout anyway. The interface was wasting far too much space on screen, especially earlier in the year when my eyesight meant that I had to dumb down my screen resolutions. Back to a more reasonable eyesight now so screen resolution back to a more reasonable level now.
What I can say is that the icon bar has moved from the top to the bottom of the edit panel.
I haven't done the token bit yet, but the use msg.payload now works.
Kinda painful getting it all working on my local machine as a git and then rolled out to the machines.
But it works!
Which is kinda great to know I can learn things. even from Chat GPT! 
So thanks to all who helped.
When I feel more motivated I'll try the token bit too.