Does anyone have a example of how to use the NetworkPipe_Send:
with a defined data map array ??
I have this code array_var NetworkData ;send data to master server let NetworkData["host"] := "127.0.0.1" let NetworkData["port"] := 1340 let NetworkData["data"] := "test data from client" NetworkPipe_SetData NetworkData NetworkPipe_Send NetworkData MessageBox "Connecting to master server"
It compiles fine and loads fine, And I am hosting UDP server on port 1340 of local host system.
But it never connects or sends the NetworkPipe_Send doesnt seem to work with what I have. The rest of the NP script examples within the plugin seem to work fine, And I am able to open a UDP socket from NetworkPipe_StartService Just cant get the NetworkPipe_Send to work correctly.
My Gosh !! This is a dream come true. I so wanted to find such a mod. I run Oblivion on Linux+Wine and was not happy at the thought of installing Visual Studio on Wine. Now I can concentrate on other steps of my pursuit, like finding a good real-time, non-blocking dialog window and then developing the external engine. You paved the way with the whole proof of concept and I cannot be thankful enough! The Nine bless You!
@syscrusher, Small world. I work with embedded robotics systems.
Right now it is intended to be connected through localhost or protected lan. In order to limit the port to localhost it would be wise to adjust the firewall settings by hand. I originally had it localhost only, but ran into issues on a small lan and figured most people are going to use this behind their router anyway. So, using this plugin at an internet cafe should be done with care (adjust firewall). Make sure you know your firewall settings or can trust the lan you are on. If this becomes an issue I can look at invoking the UDP networking with other options.
@Baconsama, I am glad this plugin makes you happy.
Kudos for developing this. It isn't something I personally need right now, but I'm impressed that you created it, and I look forward to seeing what others will do with this tool.
By the way, as a person who used to do a lot of embedded development (for industrial systems), my first thought about this plugin is that it would be great for a remote debugging console, even on the localhost. For example, have a daemon that receives gameplay traces over a localhost (127.0.0.1) socket and stores them into a log file. If beta testers are running the flow of a quest, this could allow them to send the modder a detailed log of what quest stages were triggered under what conditions, what dialog choices the player made on that run-through, etc.
As long as the connection is made to localhost, and it is a single-user computer (typical for gaming systems), there are no significant security problems.
I'm quite happy with this plugin, I though that people were forgiving oblivion day by day but at least it's not so dramatic,hopefully this will open doors to many open minded modders,though some may use with bad intents I trust your development of this,I'll keep my eyes at this mod.And congratulations Demolishun,it may not appear so but creating a web interacting plugin for such games is a great step.
This plugin would allow mods access to the internet... what about security issues? Are there any measures from preventing mods doing malicious things with the added online capabilities?
This mod adds a UDP port on the machine it is running on. All security issues are up to the application(s) designed to connect to this port and the settings of the operating system itself.
So this mod does not allow access to the internet unless it is programmed to allow access through external apps. For those external apps that access internet resources it is up to the programmer to provide appropriate security.
Of course one could just open up the port for external access outside the machine, allow the port and the machine to be seen through ones router with no regard to security. That would be kind of dumb to do though. It also takes some networking know-how to do something like that. That will not happen by accident.
As for mods doing malicious things...how would you prevent them from doing those now? Someone could create a mod/plugin that says it does one thing, but it actually goes out online and puts viruses on your machine. So even if the plugin does not advertise that it goes online, it could be doing that anyway. So there is no way to stop such a thing to begin with. That is why mods/plugins are rated here on the Nexus. It becomes a matter of trust.
Edit: I do think this is a good question. This mod does add a lot more power to what a modder can do. I think any plugin as it is executable machine code has the potential for nefarious use. I would recommend that any mod that uses this plugin provide source code for the apps that connect to the game. That way people can decide if the app has hidden features. This is one reason I chose Python to do this in the examples. It is easy to provide the source code and app in one file. It also has some of the best internet/networking libraries available: Twisted.
With this installed, if I try to save a script in the latest version of the original Construction Set (not CSE), the Construction Set crashes instantly.
OBSE 21 beta 2 here - I'll try dropping back to 20. For me, it happens with any script at all. It doesn't matter which one. File->Save->Crash. Here's the Event Viewer log:
A lot of other people are having issues with OBSE 0021 beta as well. http://forums.bethsoft.com/topic/1427044-rel-oblivion-script-extender-obse-0021-beta-2/page__st__180
I have not tested with that version at all, so that does not really surprise me after seeing the OBSE 0021 forum.
From what I have read a lot of other plugins are having issues.
27 comments
NetworkPipe_Send:
with a defined data map array ??
I have this code
array_var NetworkData
;send data to master server
let NetworkData["host"] := "127.0.0.1"
let NetworkData["port"] := 1340
let NetworkData["data"] := "test data from client"
NetworkPipe_SetData NetworkData
NetworkPipe_Send NetworkData
MessageBox "Connecting to master server"
It compiles fine and loads fine, And I am hosting UDP server on port 1340 of local host system.
But it never connects or sends the NetworkPipe_Send doesnt seem to work with what I have.
The rest of the NP script examples within the plugin seem to work fine, And I am able to open a UDP socket from NetworkPipe_StartService
Just cant get the NetworkPipe_Send to work correctly.
Small world. I work with embedded robotics systems.
Right now it is intended to be connected through localhost or protected lan. In order to limit the port to localhost it would be wise to adjust the firewall settings by hand. I originally had it localhost only, but ran into issues on a small lan and figured most people are going to use this behind their router anyway. So, using this plugin at an internet cafe should be done with care (adjust firewall). Make sure you know your firewall settings or can trust the lan you are on. If this becomes an issue I can look at invoking the UDP networking with other options.
@Baconsama,
I am glad this plugin makes you happy.
@gruftikus,
Thanks, I appreciate your comments.
By the way, as a person who used to do a lot of embedded development (for industrial systems), my first thought about this plugin is that it would be great for a remote debugging console, even on the localhost. For example, have a daemon that receives gameplay traces over a localhost (127.0.0.1) socket and stores them into a log file. If beta testers are running the flow of a quest, this could allow them to send the modder a detailed log of what quest stages were triggered under what conditions, what dialog choices the player made on that run-through, etc.
As long as the connection is made to localhost, and it is a single-user computer (typical for gaming systems), there are no significant security problems.
So this mod does not allow access to the internet unless it is programmed to allow access through external apps. For those external apps that access internet resources it is up to the programmer to provide appropriate security.
Of course one could just open up the port for external access outside the machine, allow the port and the machine to be seen through ones router with no regard to security. That would be kind of dumb to do though. It also takes some networking know-how to do something like that. That will not happen by accident.
As for mods doing malicious things...how would you prevent them from doing those now? Someone could create a mod/plugin that says it does one thing, but it actually goes out online and puts viruses on your machine. So even if the plugin does not advertise that it goes online, it could be doing that anyway. So there is no way to stop such a thing to begin with. That is why mods/plugins are rated here on the Nexus. It becomes a matter of trust.
Edit:
I do think this is a good question. This mod does add a lot more power to what a modder can do. I think any plugin as it is executable machine code has the potential for nefarious use. I would recommend that any mod that uses this plugin provide source code for the apps that connect to the game. That way people can decide if the app has hidden features. This is one reason I chose Python to do this in the examples. It is easy to provide the source code and app in one file. It also has some of the best internet/networking libraries available: Twisted.
Edit:
I know if you make a mistake is the CS (I don't use CSE) then if you hit the wrong button on the error that pops up it will crash instantly.
Also, this mod is for OBSE 0020 and it not tested with any other version.
Faulting application name: TESConstructionSet.exe, version: 1.2.0.404, time stamp: 0x461430cf
Faulting module name: NetworkPipe.dll, version: 0.0.0.0, time stamp: 0x516c7b6f
Exception code: 0xc0000417
Fault offset: 0x0002927d
Faulting process id: 0x1018
Faulting application start time: 0x01ce3a3416786e9e
Faulting application path: C:\Bethesda Softworks\Oblivion\TESConstructionSet.exe
Faulting module path: C:\Bethesda Softworks\Oblivion\Data\OBSE\Plugins\NetworkPipe.dll
Report Id: 96586f46-a627-11e2-9d7b-88532e0031af
http://forums.bethsoft.com/topic/1427044-rel-oblivion-script-extender-obse-0021-beta-2/page__st__180
I have not tested with that version at all, so that does not really surprise me after seeing the OBSE 0021 forum.
From what I have read a lot of other plugins are having issues.
Edit:
Thank you for testing this, BTW.
Thanks for finding this issue. It is now fixed and a new version of the plugin has been uploaded as 1.0.2.