Page 2 of 3

Re: circuit craigslist: post your cool stuff you made

Posted: Wed Feb 07, 2018 6:55 pm
by Buggy

Bottom post of the previous page:

SpaceInaba wrote:
Buggy wrote:
SpaceInaba wrote:>he doesnt know how to upgrade the lathe and imprinter
lmaoing at your shitty life
>upgrading being literally a entire job
Wew.

Also upgrading some things is bad, so having a entire job dedicated to it wouldn't be a good idea. Case in point, I once upgraded the SM's emitters.

It exploded.
Im never going to respond to any of your posts ever again because you clearly dont understand my wrinklebrain
I'll forever mourn the loss of this enlightening discussion.

Re: circuit craigslist: post your cool stuff you made

Posted: Wed Feb 14, 2018 7:05 am
by PKPenguin321
spoonfed me on how to make my drone move around
i got it to spam ass blast USA already so i've got that part down
Spoiler:
{"assembly":{"type":"type-a electronic drone"},"components":[{"type":"ai vox sound circuit","inputs":[[1,0,"voxtest"],[2,0,100]]},{"type":"fast ticker","inputs":[[1,0,1]]},{"type":"tesla power relay"}],"wires":[[[1,"A",1],[2,"A",1]]]}

Re: circuit craigslist: post your cool stuff you made

Posted: Wed Feb 21, 2018 1:49 pm
by JStheguy
Behold, just when you thourght pseudo-coding couldn't get any more autistic, a goddamn spess domain name server:

Code: Select all

{"assembly":{"type":"type-b electronic machine","name":"NTNet Domain Name Server","opened":1},"components":[{"type":"tesla power relay"},{"type":"text-to-speech circuit","name":"DNS Activity Monitor Announcer","inputs":[[1,0,"Unknown signal recieved. Secondary data either incompatible or using unregistered domain names."]]},{"type":"equal gate","name":"Is Announcer Unmuted","inputs":[[1,0,1],[2,0,1]]},{"type":"number pad","name":"Monitoring System Beeper Volume"},{"type":"toggle button","name":"Monitoring System Announcer Toggle"},{"type":"NTNet networking circuit","inputs":[[1,0,"108"],[2,0,"Hello out there."],[3,0,"Test Device 106"]]},{"type":"string exploder","name":"Secondary Data Parser A","inputs":[[1,0,"EXT108;Test Device 106"],[2,0,";"]]},{"type":"list deconstructor","name":"Secondary Data Parser B","inputs":[[1,0,["EXT108","Test Device 106"]]]},{"type":"large list constructor","name":"Domain Name List Constructor","inputs":[[1,0,"Enter Domain Name"],[2,0,"Enter Domain Name"],[3,0,"Enter Domain Name"],[4,0,"Enter Domain Name"],[5,0,"Enter Domain Name"],[6,0,"Enter Domain Name"],[7,0,"Enter Domain Name"],[8,0,"Enter Domain Name"],[9,0,"Enter Domain Name"],[10,0,"Enter Domain Name"],[11,0,"Enter Domain Name"],[12,0,"Enter Domain Name"],[13,0,"Enter Domain Name"],[14,0,"Enter Domain Name"],[15,0,"Enter Domain Name"],[16,0,"Enter Domain Name"]]},{"type":"search circuit","name":"Find Recipient Address","inputs":[[1,0,["Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name"]],[2,0,"EXT108"]]},{"type":"addition circuit","name":"Recipient Address Compensation","inputs":[[1,0,0],[2,0,100]]},{"type":"number to string","name":"Recipient Address NtS","inputs":[[1,0,106]]},{"type":"search circuit","name":"Find Sender Address","inputs":[[1,0,["Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name"]],[2,0,"Test Device 106"]]},{"type":"addition circuit","name":"Sender Address Compensation","inputs":[[1,0,0],[2,0,100]]},{"type":"number to string","name":"Sender Address NtS","inputs":[[1,0,106]]},{"type":"concatenator","name":"Full Success Message Concatenator","inputs":[[1,0,"Test Device 106"],[2,0," at NTNet address "],[3,0,"106"],[4,0," has sent data to "],[5,0,"EXT108"],[6,0," at NTNet address "],[7,0,"106"],[8,0,"."]]},{"type":"beeper circuit","name":"Full Success Beeper","inputs":[[1,0,"ping"],[2,0,25],[3,0,1]]},{"type":"concatenator","name":"Semi Success Message Concatenator","inputs":[[1,0,"Data sent to "],[2,0,"EXT108"],[3,0," at NTNet address "],[4,0,"106"],[5,0," from an untraceable or nonexistant domain name."]]},{"type":"beeper circuit","name":"Semi Success Beeper","inputs":[[1,0,"beep"],[2,0,25],[3,0,1]]},{"type":"search circuit","name":"Aux Find Sender Address","inputs":[[1,0,["Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name","Enter Domain Name"]],[2,0,"Test Device 106"]]},{"type":"memory chip","name":"Total Failure Memory Chip","inputs":[[1,0,"Unknown signal recieved. Secondary data either incompatible or using unregistered domain names."]]},{"type":"beeper circuit","name":"Total Failure Beeper","inputs":[[1,0,"buzz twice"],[2,0,25],[3,0,1]]},{"type":"addition circuit","name":"Aux Sender Address Compensator","inputs":[[1,0,6],[2,0,100]]},{"type":"number to string","name":"Aux Sender Address NtS","inputs":[[1,0,106]]},{"type":"find text","name":"Find EXT Flag","inputs":[[1,0,"EXT108"],[2,0,"EXT"]]},{"type":"greater_than or equal gate","name":"Did We Find Jack Shit","inputs":[[1,0,1],[2,0,1]]},{"type":"concatenator","name":"User Error Message Concatenator","inputs":[[1,0,"Error Code 3, Domain Name "],[2,0,"EXT108"],[3,0," does not exist. Please check if you have typed the Domain Name correctly. If you are trying to directly access an NTNet hardware address, prefix the address with EXT. I.E. EXT107 to reach NTNet address 107.""]]},{"type":"concatenator","name":"Semi Failure Message Concatenator","inputs":[[1,0,"Test Device 106"],[2,0," at NTNet address "],[3,0,"106"],[4,0," attempted to contact an unknown domain name. Sending an Error Code 3 message in response."]]},{"type":"beeper circuit","name":"Semi Failure Beeper","inputs":[[1,0,"buzz sigh"],[2,0,25],[3,0,1]]},{"type":"separator","name":"EXT Seperator","inputs":[[1,0,"EXT108"],[2,0,3]]},{"type":"concatenator","name":"Direct Connection Message Concatenator","inputs":[[1,0,"Test Device 106"],[2,0," at NTNet address "],[3,0,"106"],[4,0," has sent data to NTNet address "],[5,0,"108"],[6,0," via the Direct Hardware Address Access System."]]}],"wires":[[[2,"I",1],[16,"O",1]],[[2,"I",1],[18,"O",1]],[[2,"I",1],[21,"O",1]],[[2,"I",1],[28,"O",1]],[[2,"I",1],[31,"O",1]],[[2,"A",1],[3,"A",2]],[[3,"I",1],[5,"O",1]],[[3,"A",1],[21,"A",2]],[[3,"A",1],[18,"A",2]],[[3,"A",1],[16,"A",2]],[[3,"A",1],[28,"A",2]],[[3,"A",1],[31,"A",2]],[[4,"O",1],[17,"I",2]],[[4,"O",1],[19,"I",2]],[[4,"O",1],[22,"I",2]],[[4,"O",1],[29,"I",2]],[[4,"A",1],[17,"A",1]],[[6,"I",1],[12,"O",1]],[[6,"I",1],[24,"O",1]],[[6,"I",1],[30,"O",2]],[[6,"I",2],[6,"O",2]],[[6,"I",2],[27,"O",1]],[[6,"I",3],[8,"O",2]],[[6,"O",3],[7,"I",1]],[[6,"A",1],[15,"A",2]],[[6,"A",1],[13,"A",3]],[[6,"A",1],[27,"A",2]],[[6,"A",1],[31,"A",2]],[[6,"A",2],[7,"A",1]],[[7,"O",1],[8,"I",1]],[[7,"A",2],[8,"A",1]],[[8,"O",1],[10,"I",2]],[[8,"O",1],[16,"I",5]],[[8,"O",1],[18,"I",2]],[[8,"O",1],[27,"I",2]],[[8,"O",1],[25,"I",1]],[[8,"O",1],[30,"I",1]],[[8,"O",2],[13,"I",2]],[[8,"O",2],[20,"I",2]],[[8,"O",2],[16,"I",1]],[[8,"O",2],[28,"I",1]],[[8,"O",2],[31,"I",1]],[[8,"A",2],[10,"A",1]],[[9,"O",1],[10,"I",1]],[[9,"O",1],[13,"I",1]],[[9,"O",1],[20,"I",1]],[[10,"O",1],[11,"I",1]],[[10,"A",2],[11,"A",1]],[[10,"A",3],[20,"A",1]],[[11,"O",1],[12,"I",1]],[[11,"A",2],[12,"A",1]],[[12,"O",1],[16,"I",7]],[[12,"O",1],[18,"I",4]],[[12,"A",2],[13,"A",1]],[[13,"O",1],[14,"I",1]],[[13,"A",2],[14,"A",1]],[[13,"A",3],[18,"A",1]],[[14,"O",1],[15,"I",1]],[[14,"A",2],[15,"A",1]],[[15,"O",1],[16,"I",3]],[[15,"A",2],[16,"A",1]],[[16,"A",2],[17,"A",1]],[[17,"A",1],[31,"A",2]],[[18,"A",2],[19,"A",1]],[[20,"O",1],[23,"I",1]],[[20,"A",2],[23,"A",1]],[[20,"A",3],[21,"A",1]],[[21,"A",2],[22,"A",1]],[[23,"O",1],[24,"I",1]],[[23,"A",2],[24,"A",1]],[[24,"O",1],[28,"I",3]],[[24,"O",1],[31,"I",3]],[[24,"A",2],[25,"A",1]],[[25,"O",1],[26,"I",1]],[[25,"A",2],[26,"A",1]],[[26,"A",2],[30,"A",1]],[[26,"A",3],[27,"A",1]],[[26,"A",3],[28,"A",1]],[[28,"A",2],[29,"A",1]],[[30,"O",2],[31,"I",5]],[[30,"A",2],[31,"A",1]]]}
Basically, it lets you use actual names and shit instead of numerical hardware addresses when doing NTNet shit by running it through an intermediary that can translate the human readable names into machine readable hardware addresses. It is also able to use this system to include a return address along with whatever data is sent so that whatever you send data too can send it back via the same intermediary. It even includes tech to constantly monitor what systems are sending data to where, a volume knob and mute button for the monitoring system, and it even sends a message back to the user if they try to contact a non-existant domain, notifying them of their error.
So, now for the fun how-to on how to use this shit yourself. This thing makes use of the Secondary Text pin to handle it's data, we'll call this the packet header, the packet header, to be entirely valid requires two valid domain names, the domain name of the circuit that is going to receive the data, and the domain name of the circuit that is going to send the data, with a semi-colon between them. For example "John Doe;Joe Shmoe" would be the packet header you would use if the network address of your NTNet circuit is registered under the domain name Joe Shmoe on the DNS and your recipient's NTNet address was registered under the domain name John Doe. Of course, you have to actually have the domain names be registered on the system for those addresses, which for this current model is done by manually re-writing one of the 16 input pins in the Domain Name List Constructor with a circuit debugger, each pin corresponds to an address from 101 to 116. You can also still access NTNet hardware addresses directly through this system by having the recipient half of the packet header be the hardware address you want to contact prefixed by EXT, i.e. "EXT105;Joe Shmoe". Additonally, this model at least lets you send data over the DNS to a domain name without a domain name of your own, though it doesn't work when you try to connect to a hardware address from an invalid or non-existant domain name. I would try to pass that off as some sort of intended restriction for guest users but really I just kinda fucked up the coding a bit at the end.

Honestly this is just a prototype, there are quite a few things I want to do before I consider this project complete:
1. An easier method of domain name registration is a must, preferably it'd be a method that could be done remotely, so that end users can easily use the system without requiring an active sysadmin.
2. Speaking of sysadmins, some method to tighten up security wouldn't be remiss, especially if I manage to get remote registration working.
3. Scale up the size of the domain name listing. The proof-of-concept can handle 16 domain names total, but I probably could make it much bigger.
4. Build some other devices that make use of this tech, like maybe a shitty crippled chromebook version of that Handy thing I made a while back and some type of web server design for assistants to set up their own edgy illegal Syndicate fansites on the clown to set up a web-based dial-a-joke honkline.

Also I threw together this quick little NTNet testing device if any of you want to try testing out this shit on your own. The full input goes like this, but you can drop off the passkey or the passkey and secondary data if you feel like it: [NTNet address you want to send data to]:[Data to send]:[Secondary data to send]:[passkey]

Code: Select all

{"assembly":{"type":"type-c electronic assembly","name":"NTNet Testbed","opened":1},"components":[{"type":"screen","inputs":[[1,0,"Error Code 3, Domain Name Sweet Babes does not exist. Please check if you have typed the Domain Name correctly. If you are trying to directly access an NTNet hardware address, prefix the address with EXT. I.E. EXT107 to reach NTNet address 107."]]},{"type":"NTNet networking circuit"},{"type":"text pad"},{"type":"string exploder","inputs":[[1,0,"105:Hello, there!:Test Recipient;Test Sender"],[2,0,":"]]},{"type":"list deconstructor","inputs":[[1,0,["105","Hello, there!","Test Recipient;Test Sender"]]]}],"wires":[[[1,"I",1],[2,"O",2]],[[1,"A",1],[2,"A",2]],[[2,"I",1],[5,"O",1]],[[2,"I",2],[5,"O",2]],[[2,"I",3],[5,"O",3]],[[2,"I",4],[5,"O",4]],[[2,"A",1],[5,"A",2]],[[3,"O",1],[4,"I",1]],[[3,"A",1],[4,"A",1]],[[4,"O",1],[5,"I",1]],[[4,"A",2],[5,"A",1]]]}
Edit: Turns out the DNS save doesn't actually fucking work, noice.

Re: circuit craigslist: post your cool stuff you made

Posted: Wed Feb 21, 2018 4:00 pm
by DemonFiren
How far are we from recreating SS13 in SS13?

Re: circuit craigslist: post your cool stuff you made

Posted: Wed Feb 21, 2018 8:12 pm
by JStheguy

Code: Select all

{"assembly":{"type":"type-c electronic machine","name":"SubNET Hub Server","opened":1},"components":[{"type":"beeper circuit","inputs":[[1,0,"chime"],[2,0,50],[3,0,1]]},{"type":"small screen","name":"Current Address Selected"},{"type":"small screen","name":"New Address Domain Name"},{"type":"large screen","name":"Activity Monitoring Screen"},{"type":"large screen","name":"Messaging Screen"},{"type":"concatenator","name":"Address Modification Concatenator","inputs":[[1,0,"NTNet Address "],[2,0,"103"],[3,0," domain name is now set to "],[4,0,"SubNET Testbed"],[5,0,"!"]]},{"type":"number to string","name":"Modification Address NtS","inputs":[[1,0,103]]},{"type":"memory chip","name":"RAP Set Packet Header","inputs":[[1,0,"SubNET Hub"]]},{"type":"concatenator","name":"Registration Accepted Packet Concatenator","inputs":[[1,0,"Congratulations, your NTNet hardware address, "],[2,0,"103"],[3,0," is now registered under the SubNET domain name "],[4,0,"SubNET Testbed"],[5,0,". Welcome to SubNET!"]]},{"type":"toggle button","name":"Toggle Secure Mode"},{"type":"light-emitting diode","name":"Secure Mode Active","inputs":[[2,0,"#66FF00"]]},{"type":"toggle button","name":"Toggle External Registration"},{"type":"light-emitting diode","name":"External Registration Allowed","inputs":[[2,0,"#FFEA00"]]},{"type":"toggle button","name":"Toggle Public Access To Webpage"},{"type":"light-emitting diode","name":"Webpage Online","inputs":[[2,0,"#FF9900"]]},{"type":"toggle button","name":"Toggle Network Lockdown"},{"type":"light-emitting diode","name":"Network Lockdown In Effect"},{"type":"number pad","name":"Set Address To Modify"},{"type":"subtraction circuit","name":"Address Input Compensator","inputs":[[1,0,103],[2,0,100]]},{"type":"text pad","name":"Set Address Domain Name"},{"type":"button","name":"Confirm Modifications"},{"type":"large tesla power relay"},{"type":"NTNet networking circuit"},{"type":"equal gate","name":"Is Lockdown In Effect","inputs":[[1,0,0],[2,0,0]]},{"type":"button","name":"Reset Domain Name Directory"},{"type":"large list constructor","name":"Domain Name Directory 101-116"},{"type":"large list constructor","name":"Domain Name Directory 117-132"},{"type":"append circuit","name":"DND Append Circuit 101-132","inputs":[[1,0,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]],[2,0,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]]]},{"type":"large list constructor","name":"Domain Name Directory 133-148"},{"type":"large list constructor","name":"Domain Name Directory 149-164"},{"type":"append circuit","name":"DND Append Circuit 133-164","inputs":[[1,0,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]],[2,0,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]]]},{"type":"append circuit","name":"DND Append Circuit 101-164","inputs":[[1,0,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]],[2,0,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]]]},{"type":"memory chip","name":"Domain Name Directory Proper","inputs":[[1,0,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]]]},{"type":"write circuit","name":"DND Modifyer","inputs":[[1,0,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]],[2,0,3],[3,0,"SubNET Testbed"]]},{"type":"string exploder","name":"Header Parser A","inputs":[[1,0,"SubNET Hub"],[2,0,";"]]},{"type":"list deconstructor","name":"Header Parser B","inputs":[[1,0,["SubNET Hub"]]]},{"type":"search circuit","name":"Find Sender Address","inputs":[[1,0,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]]]},{"type":"equal gate","name":"Is Secure Mode In Effect","inputs":[[1,0,0],[2,0,1]]},{"type":"small memory circuit","name":"Terminated Connection Warning Memory","inputs":[[1,0,"ERROR CODE 1: Unregistered or nonexistant sender domain detected in packet header. Connection terminated."],[2,0,"warning buzz"]]},{"type":"memory chip","name":"Set No Sender Flag","inputs":[[1,0,1]]},{"type":"memory chip","name":"Set Sender Flag","inputs":[[1,0,0]]},{"type":"addition circuit","name":"Sender Address Compensator","inputs":[[1,0,4],[2,0,100]]},{"type":"number to string","name":"Sender Address NtS","inputs":[[1,0,104]]},{"type":"search circuit","name":"Find Recipient Address","inputs":[[1,0,[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]],[2,0,"SubNET Hub"]]},{"type":"memory chip","name":"Set No Recipient Flag","inputs":[[1,0,2]]},{"type":"memory chip","name":"Set Recipient Flag","inputs":[[1,0,0]]},{"type":"addition circuit","name":"Recipient Address Compensator","inputs":[[1,0,2],[2,0,100]]},{"type":"number to string","name":"Recipient Address NtS","inputs":[[1,0,102]]},{"type":"equal gate","name":"If SubNET Connection","inputs":[[1,0,"SubNET Hub"],[2,0,"SubNET Hub"]]},{"type":"small memory circuit","name":"Flag Compilation","inputs":[[1,0,0],[2,0,0]]},{"type":"addition circuit","name":"Add Flags","inputs":[[1,0,1],[2,0,2]]},{"type":"greater_than or equal gate","name":"If Flags","inputs":[[1,0,3],[2,0,1]]},{"type":"four pulse demultiplexer","name":"Error Message Demux","inputs":[[1,0,3]]},{"type":"concatenator","name":"Code 1 Error Concatenator","inputs":[[1,0,"ERROR CODE 1: Unregistered or nonexistant sender domain detected in packet header. Forwarding packet to "],[2,0,"SubNET Hub"],[3,0," at NTNet address "],[4,0,"102"],[5,0," regardless."]]},{"type":"small memory circuit","name":"Code 1 Error Memory","inputs":[[1,0,"ERROR CODE 1: Unregistered or nonexistant sender domain detected in packet header. Forwarding packet to Dummy Reciever at NTNet address 101 regardless."],[2,0,"beep"]]},{"type":"concatenator","name":"Code 2 Error Concatenator","inputs":[[1,0,"ERROR CODE 2: Unregistered or nonexistant recipient domain detected in packet header. Sending connection error packet to "],[3,0," at NTNet address "],[4,0,"104"],[5,0,"."]]},{"type":"small memory circuit","name":"Code 2 Error Memory","inputs":[[1,0,"ERROR CODE 2: Unregistered or nonexistant recipient domain detected in packet header. Sending connection error packet to Dummy Sender at NTNet address 103."],[2,0,"buzz sigh"]]},{"type":"text pad","name":"Configure System Domain Name"},{"type":"concatenator","name":"System Domain Name Change Concatenator","inputs":[[1,0,"System Domain Name is now "],[2,0,"SubNET Hub"],[3,0," on outgoing packet headers! Remember to update it's entry in the Domain Name Directory to match."]]},{"type":"medium memory circuit","name":"Connection Error Packet Memory","inputs":[[1,0,"104"],[2,0,"ERROR CODE 2: The domain name you are trying to reach does not exist."],[3,0,"SubNET Hub"]]},{"type":"small memory circuit","name":"Code 3 Memory","inputs":[[1,0,"ERROR CODE 3: Unregistered or nonexistant sender and recipient domains detected in packet header. Packet discarded."],[2,0,"buzz twice"]]},{"type":"concatenator","name":"No Error Concatenator","inputs":[[2,0," at NTNet address "],[3,0,"104"],[4,0," sending packet via SubNET to "],[5,0,"SubNET Hub"],[6,0," at NTNet address "],[7,0,"102"],[8,0,"."]]},{"type":"equal gate","name":"Is Webpage Online","inputs":[[1,0,0],[2,0,1]]},{"type":"string exploder","name":"Webpage Command Parser A","inputs":[[1,0,"Congratulations, your NTNet hardware address, 103 is now registered under the SubNET domain name SubNET Testbed. Welcome to SubNET!"],[2,0,";"]]},{"type":"list deconstructor","name":"Webpage Command Parser B","inputs":[[1,0,["Congratulations, your NTNet hardware address, 103 is now registered under the SubNET domain name SubNET Testbed. Welcome to SubNET!"]]]},{"type":"equal gate","name":"Did He Figure Out How To Bother Us","inputs":[[1,0,"Congratulations, your NTNet hardware address, 103 is now registered under the SubNET domain name SubNET Testbed. Welcome to SubNET!"],[2,0,"Message Admin"]]},{"type":"small memory circuit","name":"Message Screen Modification","inputs":[[2,0,"chime"]]},{"type":"memory chip","name":"Screen Blank Memory"},{"type":"button","name":"Reset Monitors"},{"type":"equal gate","name":"Will He At Least Fuck The Directory","inputs":[[1,0,"Congratulations, your NTNet hardware address, 103 is now registered under the SubNET domain name SubNET Testbed. Welcome to SubNET!"],[2,0,"Register Domain"]]},{"type":"equal gate","name":"Can He Even Do That","inputs":[[1,0,0],[2,0,1]]},{"type":"medium memory circuit","name":"No He Can Not","inputs":[[1,0,"104"],[2,0,"We are sorry, but external registration of domain names has been closed until further notice. Please contact the system administraitor if you want a SubNET domain name of your own."],[3,0,"SubNET Hub"]]},{"type":"small memory circuit","name":"I Guess He Can"},{"type":"string to number","inputs":[[1,0,"103"]]},{"type":"subtraction circuit","name":"YEAH YEAH COMPENSAT FOR THIS SHIT","inputs":[[1,0,103],[2,0,100]]}],"wires":[[[1,"I",1],[39,"O",2]],[[1,"I",1],[55,"O",2]],[[1,"I",1],[57,"O",2]],[[1,"I",1],[61,"O",2]],[[1,"I",1],[67,"O",2]],[[1,"A",1],[39,"A",2]],[[1,"A",1],[55,"A",2]],[[1,"A",1],[57,"A",2]],[[1,"A",1],[61,"A",2]],[[1,"A",1],[67,"A",2]],[[2,"I",1],[18,"O",1]],[[2,"I",1],[68,"O",1]],[[2,"A",1],[19,"A",2]],[[2,"A",1],[68,"A",2]],[[3,"I",1],[20,"O",1]],[[3,"I",1],[68,"O",1]],[[3,"A",1],[20,"A",1]],[[3,"A",1],[68,"A",2]],[[4,"I",1],[6,"O",1]],[[4,"I",1],[39,"O",1]],[[4,"I",1],[55,"O",1]],[[4,"I",1],[57,"O",1]],[[4,"I",1],[59,"O",1]],[[4,"I",1],[61,"O",1]],[[4,"I",1],[62,"O",1]],[[4,"I",1],[68,"O",1]],[[4,"A",1],[6,"A",2]],[[4,"A",1],[39,"A",2]],[[4,"A",1],[55,"A",2]],[[4,"A",1],[57,"A",2]],[[4,"A",1],[59,"A",2]],[[4,"A",1],[61,"A",2]],[[4,"A",1],[62,"A",2]],[[4,"A",1],[68,"A",2]],[[5,"I",1],[67,"O",1]],[[5,"I",1],[68,"O",1]],[[5,"A",1],[67,"A",2]],[[5,"A",1],[68,"A",2]],[[6,"I",2],[7,"O",1]],[[6,"I",2],[73,"O",1]],[[6,"I",4],[20,"O",1]],[[6,"I",4],[73,"O",2]],[[6,"A",1],[34,"A",2]],[[7,"I",1],[18,"O",1]],[[7,"O",1],[9,"I",2]],[[7,"O",1],[23,"I",1]],[[7,"A",1],[18,"A",1]],[[8,"I",1],[58,"O",1]],[[8,"O",1],[23,"I",3]],[[8,"A",1],[9,"A",2]],[[8,"A",2],[23,"A",1]],[[9,"I",2],[73,"O",1]],[[9,"I",4],[20,"O",1]],[[9,"I",4],[73,"O",2]],[[9,"O",1],[23,"I",2]],[[9,"A",1],[34,"A",2]],[[10,"O",1],[11,"I",1]],[[10,"O",1],[38,"I",1]],[[12,"O",1],[13,"I",1]],[[12,"O",1],[71,"I",1]],[[14,"O",1],[15,"I",1]],[[14,"O",1],[63,"I",1]],[[16,"O",1],[17,"I",1]],[[16,"O",1],[24,"I",1]],[[18,"O",1],[19,"I",1]],[[18,"A",1],[19,"A",1]],[[19,"O",1],[34,"I",2]],[[20,"O",1],[34,"I",3]],[[21,"A",1],[34,"A",1]],[[23,"I",1],[60,"O",1]],[[23,"I",1],[48,"O",1]],[[23,"I",1],[72,"O",1]],[[23,"I",2],[60,"O",2]],[[23,"I",2],[23,"O",2]],[[23,"I",2],[72,"O",2]],[[23,"I",3],[60,"O",3]],[[23,"I",3],[23,"O",3]],[[23,"I",3],[72,"O",3]],[[23,"O",2],[64,"I",1]],[[23,"O",3],[35,"I",1]],[[23,"A",1],[60,"A",2]],[[23,"A",1],[62,"A",2]],[[23,"A",1],[72,"A",2]],[[23,"A",2],[24,"A",1]],[[24,"A",2],[35,"A",1]],[[25,"A",1],[26,"A",1]],[[26,"O",1],[28,"I",1]],[[26,"A",2],[27,"A",1]],[[27,"O",1],[28,"I",2]],[[27,"A",2],[28,"A",1]],[[28,"O",1],[32,"I",1]],[[28,"A",2],[29,"A",1]],[[29,"O",1],[31,"I",1]],[[29,"A",2],[30,"A",1]],[[30,"O",1],[31,"I",2]],[[30,"A",2],[31,"A",1]],[[31,"O",1],[32,"I",2]],[[31,"A",2],[32,"A",1]],[[32,"O",1],[33,"I",1]],[[32,"A",2],[33,"A",1]],[[33,"I",1],[34,"O",1]],[[33,"O",1],[34,"I",1]],[[33,"O",1],[37,"I",1]],[[33,"O",1],[44,"I",1]],[[33,"A",1],[34,"A",2]],[[34,"I",2],[75,"O",1]],[[34,"I",3],[73,"O",2]],[[34,"A",1],[75,"A",2]],[[35,"O",1],[36,"I",1]],[[35,"A",2],[36,"A",1]],[[36,"O",1],[44,"I",2]],[[36,"O",1],[54,"I",2]],[[36,"O",1],[62,"I",5]],[[36,"O",1],[49,"I",1]],[[36,"O",2],[37,"I",2]],[[36,"O",2],[56,"I",2]],[[36,"O",2],[62,"I",1]],[[36,"A",2],[37,"A",1]],[[37,"O",1],[42,"I",1]],[[37,"A",2],[41,"A",1]],[[37,"A",3],[38,"A",1]],[[38,"A",2],[39,"A",1]],[[38,"A",3],[40,"A",1]],[[40,"O",1],[50,"I",1]],[[40,"A",2],[44,"A",1]],[[41,"O",1],[50,"I",1]],[[41,"A",2],[42,"A",1]],[[42,"O",1],[43,"I",1]],[[42,"A",2],[43,"A",1]],[[43,"O",1],[56,"I",4]],[[43,"O",1],[60,"I",1]],[[43,"O",1],[62,"I",3]],[[43,"O",1],[72,"I",1]],[[43,"A",2],[44,"A",1]],[[44,"O",1],[47,"I",1]],[[44,"A",2],[46,"A",1]],[[44,"A",3],[45,"A",1]],[[45,"O",1],[50,"I",2]],[[45,"A",2],[50,"A",1]],[[46,"O",1],[50,"I",2]],[[46,"A",2],[47,"A",1]],[[47,"O",1],[48,"I",1]],[[47,"A",2],[48,"A",1]],[[48,"O",1],[54,"I",4]],[[48,"O",1],[62,"I",7]],[[48,"A",2],[49,"A",1]],[[49,"I",2],[58,"O",1]],[[49,"A",2],[63,"A",1]],[[49,"A",3],[50,"A",1]],[[50,"O",1],[51,"I",1]],[[50,"O",2],[51,"I",2]],[[50,"A",2],[51,"A",1]],[[51,"O",1],[52,"I",1]],[[51,"O",1],[53,"I",1]],[[51,"A",2],[52,"A",1]],[[52,"A",2],[53,"A",1]],[[52,"A",3],[62,"A",1]],[[53,"A",2],[54,"A",1]],[[53,"A",3],[56,"A",1]],[[53,"A",4],[61,"A",1]],[[54,"O",1],[55,"I",1]],[[54,"A",2],[55,"A",1]],[[56,"O",1],[57,"I",1]],[[56,"A",2],[57,"A",1]],[[57,"A",2],[60,"A",1]],[[58,"O",1],[60,"I",3]],[[58,"O",1],[59,"I",2]],[[58,"O",1],[72,"I",3]],[[58,"A",1],[59,"A",1]],[[60,"A",1],[63,"A",3]],[[63,"A",2],[64,"A",1]],[[64,"O",1],[65,"I",1]],[[64,"A",2],[65,"A",1]],[[65,"O",1],[66,"I",1]],[[65,"O",1],[70,"I",1]],[[65,"O",2],[67,"I",1]],[[65,"O",2],[73,"I",1]],[[65,"O",3],[73,"I",2]],[[65,"A",2],[66,"A",1]],[[66,"A",2],[67,"A",1]],[[66,"A",3],[70,"A",1]],[[68,"A",1],[69,"A",1]],[[70,"A",2],[71,"A",1]],[[71,"A",2],[73,"A",1]],[[71,"A",3],[72,"A",1]],[[73,"O",1],[74,"I",1]],[[73,"A",2],[74,"A",1]],[[74,"O",1],[75,"I",1]],[[74,"A",2],[75,"A",1]]]}
Well, given the DNS I already put up failed immediately, here's the new and improved version, with some new and improved branding, the SubNET Hub.
It comes with 64 slots to register domain names in, the ability to modify the domain name listing both from the Hub itself and via external devices, multiple questionably useful security features, and an unfinished pseduo-webpage feature that both me and god gave up on.
So, to operate this thing, there are about a dozen different controls, here they are from top to bottom;
The four toggle switches toggle various functions, primarily based around how much you want to lock users out of the system:
-Toggle Secure Mode allows you to turn on "Secure Mode", which automatically shitcans any data transmission with an invalid sender domain, otherwise it will go through as normal.
-Toggle External Registration lets you control if people are able to change the domain name listings from an external device, more on that later.
-Toggle Public Access to the Webpage lets you control whether, when someone tries to connect to the SubNET Hub's domain name, they are able to access the two whole embedded functions in that thing, or if the attempt is treated as if they tried to contact a non-existant domain.
-Toggle Network Lockdown turns off all incoming traffic entirely, no if ands or buts.
You can check the status of these switches by examining the Hub and looking at the labeled LEDs.
The next three controls all have to do with changing domain names via the Hub itself, their names should be self explanitory. Just remember that you have to press "Confirm Modifications" after you've set your changes to make sure they go through.
The rest of these are miscellaneous functions:
-Reset Domain Name Directory wipes the list containing all the domain names clean, in case a clown hacked them with an electronic assembly he cobbled together out of banana peels and audacity so that every single Domain Name is HONK.
-Configure System Domain Name only changes the Domain Name used for when the Hub sends out packets of it's own for error messages and notifying devices that their address is now registered with SubNET. If you change it here you'll still have to modify the actual listing in the directory.
-Reset Monitors just wipes any text on the monitors, more just a convenience for getting rid of old data on days with minimal activity and getting rid of any absurdly long text crawls that might end up on the monitors via shenanigans.

Packet headers still work mostly as they did before. Recipient Name;Sender Name. The only case where this doesn't happen is packets directly from the SubNET Hub, which simply sets the packet header to whatever the system domain name has been configured to. Also, as I mentioned before, there is a pseudo-webpage thing that kinda fell apart. The idea was that if you contacted the SubNET Hub directly it'd ping back with a packet holding data about the system and what you can do from your external device with the system, which if you set up your device in such a way, could be seen as a sort of homepage or whatever. But I kinda gave up on it because the Hub is really bad at sending it's own packets most of the time--either that or the testbed I posted last time is barely functional--though the actual functions are still there and work.
You can do two whole things through the amazing wonderful half-bakedful SubNET Hub External Access System via command given through the main Data To Send pin:
-Message Admin;[string] lets you send a message to whoever is operating the unit via the built in Message Screen. The admin can't reply back, though.
-Register Domain;[NTNet Address];[string] lets you set a domain name for that given NTNet address if the External Registration is turned on.
Honestly not my proudest work, and also honestly I am just kinda fucking done with tinkering with this particular machine, though if anyone else feels up to doing a better job of it, you can easily rip out the pseduo-webpage I put in by just taking out every circuit below the "Is Webpage Online" circuit and replacing it with your own.

See you next time, when I spiral even further into networking induced insanity via actually making a SubNET compatible spess website and web browsing device and then finally become one with the integrated circuits.

Re: circuit craigslist: post your cool stuff you made

Posted: Wed Feb 21, 2018 9:23 pm
by Selea
Holy cow...Decent work!

Re: circuit craigslist: post your cool stuff you made

Posted: Wed Feb 21, 2018 9:35 pm
by Buggy
I once made a floodlight...

that could change colors.

Re: circuit craigslist: post your cool stuff you made

Posted: Thu Feb 22, 2018 6:09 pm
by JStheguy
Well, I've gone and done it, I've made a spess web browser.
Gentlemen, meet the SubNET Pocket Access Terminal:

Code: Select all

{"assembly":{"type":"type-c electronic assembly","name":"SubNET Pocket Access Terminal","opened":1},"components":[{"type":"screen"},{"type":"light-emitting diode","name":"System Busy"},{"type":"memory chip","name":"Dummy Data Memory","inputs":[[1,0,"Aborting current data rendering process...[br]Abort successful!"]]},{"type":"string exploder","name":"Renderer String Exploder","inputs":[[1,0,"ERROR CODE 2: The domain name you are trying to reach does not exist."],[2,0,"[br]"]]},{"type":"memory chip","name":"Renderer Data Buffer","inputs":[[1,0,[]]]},{"type":"at circuit","name":"Renderer At Circuit","inputs":[[1,0,[]]]},{"type":"one-sec delay circuit","name":"Renderer Screen Refresh Delay"},{"type":"delete circuit","name":"Renderer Delete Circuit","inputs":[[1,0,[]]]},{"type":"memory chip","name":"Set Rendering Flag On","inputs":[[1,0,1]]},{"type":"memory chip","name":"Set Rendering Flag Off","inputs":[[1,0,0]]},{"type":"memory chip","name":"Rendering Flag","inputs":[[1,0,0]]},{"type":"text pad"},{"type":"equal gate","name":"Is HALT Command","inputs":[[1,0,"SUBNET/Hello/Anyone there?"],[2,0,"HALT"]]},{"type":"equal gate","name":"Is System Rendering Data","inputs":[[1,0,0],[2,0,1]]},{"type":"string exploder","name":"Input String Exploder","inputs":[[1,0,"SUBNET/Hello/Anyone there?"],[2,0,"/"]]},{"type":"medium list deconstructor","name":"Input List Decon","inputs":[[1,0,["SUBNET","Hello","Anyone there?"]]]},{"type":"uppercase string converter","name":"Command Case COnverter","inputs":[[1,0,"SUBNET"]]},{"type":"list constructor","name":"Command List Builder","inputs":[[1,0,"SUBNET"],[2,0,"CONFIG DN"],[3,0,"CONFIG SUBNET"]]},{"type":"search circuit","name":"Command Check","inputs":[[1,0,["SUBNET","CONFIG DN","CONFIG SUBNET",null]],[2,0,"SUBNET"]]},{"type":"four pulse demultiplexer","inputs":[[1,0,1]]},{"type":"memory chip","name":"Packet Header Half Memory","inputs":[[1,0,"Hello"]]},{"type":"concatenator","name":"Packet Header Concatenator","inputs":[[1,0,"Hello"],[2,0,";"],[3,0,"PAT"]]},{"type":"memory chip","name":"SubNET Address Memory","inputs":[[1,0,"Hello"]]},{"type":"NTNet networking circuit","inputs":[[1,0,"103"],[2,0,"Anyone there?"],[3,0,"Hello;PAT"]]}],"wires":[[[1,"I",1],[6,"O",1]],[[1,"A",1],[6,"A",2]],[[2,"I",1],[11,"O",1]],[[3,"O",1],[4,"I",1]],[[3,"A",1],[13,"A",2]],[[3,"A",2],[4,"A",1]],[[4,"I",1],[24,"O",2]],[[4,"O",1],[5,"I",1]],[[4,"A",1],[24,"A",2]],[[4,"A",2],[5,"A",1]],[[5,"I",1],[8,"O",1]],[[5,"O",1],[6,"I",1]],[[5,"O",1],[8,"I",1]],[[5,"A",1],[8,"A",2]],[[5,"A",2],[6,"A",1]],[[6,"A",2],[7,"A",1]],[[6,"A",2],[9,"A",1]],[[6,"A",3],[10,"A",1]],[[7,"A",2],[8,"A",1]],[[9,"O",1],[11,"I",1]],[[9,"A",2],[11,"A",1]],[[10,"O",1],[11,"I",1]],[[10,"A",2],[11,"A",1]],[[11,"O",1],[14,"I",1]],[[12,"O",1],[15,"I",1]],[[12,"O",1],[13,"I",1]],[[12,"A",1],[13,"A",1]],[[13,"A",3],[14,"A",1]],[[14,"A",3],[15,"A",1]],[[15,"O",1],[16,"I",1]],[[15,"A",2],[16,"A",1]],[[16,"O",1],[17,"I",1]],[[16,"O",2],[21,"I",1]],[[16,"O",2],[22,"I",1]],[[16,"O",2],[23,"I",1]],[[16,"O",3],[24,"I",2]],[[16,"A",2],[17,"A",1]],[[17,"O",1],[19,"I",2]],[[17,"A",2],[19,"A",1]],[[18,"O",1],[19,"I",1]],[[19,"O",1],[20,"I",1]],[[19,"A",2],[20,"A",1]],[[20,"A",2],[22,"A",1]],[[20,"A",3],[21,"A",1]],[[20,"A",4],[23,"A",1]],[[21,"O",1],[22,"I",3]],[[22,"O",1],[24,"I",3]],[[22,"A",2],[24,"A",1]],[[23,"O",1],[24,"I",1]]]}
This thing is meant to access SubNET-based webservers and pretty much nothing else.
The commands are:
CONFIG DN/[string] - This sets the sender half of the packet headers the PAT sends out to be whatever the string is, remember to have whoever is operating the SubNET hub server update your NTNet address' listing in their directory afterwards.
CONFIG SUBNET/[NTNet address] - This sets what address the PAT will attempt to send SubNET encoded packets to, so make sure it is a hub server, though you could also use this to send data to non SubNET devices.
SUBNET/[target domain name]/[data to send] - Sends data to the target domain
HALT - Forcibly interrupts whatever the system is doing in case the system is tied up.
Of course, how could this mess get tied up so bad it needs an ABORT THIS SHIT button? Why, it has patented JStheguy-brand Multi-Line Rendering technology! This causes it to have line breaks in text by having a [br] to split the lines within the input text string. This is mainly so webservers can have nice looking webpages.

Speaking of, I also put together a basic framework for an automated webserver:

Code: Select all

{"assembly":{"type":"type-b electronic machine","name":"SubNET Automated Webserver","opened":1},"components":[{"type":"text pad","name":"Change SubNET Hub Server Address"},{"type":"concatenator","name":"SubNET Hub Changed Concatenator","inputs":[[1,0,"SubNET Hub Server address changed to "],[2,0,"102"],[3,0,"."]]},{"type":"large tesla power relay"},{"type":"integrated clock"},{"type":"concatenator","name":"Activity Monitor Concatenator","inputs":[[1,0,"["],[2,0,"20:05:04"],[3,0,"] "],[4,0,"Domain has accessed the server."]]},{"type":"large screen","name":"Activity Monitor","inputs":[[1,0,"[20:05:04] Domain has accessed the server."]]},{"type":"toggle button","name":"Toggle Network Connection"},{"type":"light-emitting diode","name":"Server Online","inputs":[[1,0,1]]},{"type":"toggle button","name":"Toggle Password Protection"},{"type":"light-emitting diode","name":"Password Protection Active"},{"type":"NTNet networking circuit","inputs":[[1,0,"102"],[2,0,"Welcome to your new SubNET Compliant Automated Webserver![br]Now with Multi-Line Rendering support![br]This is your webserver's homepage, which is what users will see if they do not enter a valid sub-address, we reccomend you should use this to give basic information and a directory of your webserver's sub-addresses.[br]Sub-addresses can be accessed by including the name of the sub-address in the data to send pin of an NTNet networking circuit.[br]If you are using a SubNET Pocket Access Terminal, for instance, you can access a webserver sub-address via the command SUBNET/(webserver domain name)/(sub-address).[br]If password protection is active, you will need to use the command SUBNET/(webserver domain name)/(sub-address);(password).[br]Remember to replace this default text and add sub-address hardware to your system!"],[3,0,"PAT;SubNET Automated Webserver"]]},{"type":"equal gate","name":"Is Network Connection Active","inputs":[[1,0,1],[2,0,1]]},{"type":"find text","name":"Packet Validity Check A","inputs":[[1,0,"SubNET Automated Webserver;PAT"],[2,0,";"]]},{"type":"greater_than or equal gate","name":"Packet Validity Check B","inputs":[[1,0,27],[2,0,1]]},{"type":"concatenator","name":"Packet Validity Failure Concatenator","inputs":[[1,0,"Abnormal SubNET packet recieved. Packet Header: "],[2,0,"SubNET Automated Webserver;PAT"],[3,0," | Packet Payload: "]]},{"type":"string exploder","name":"Packet String Exploder","inputs":[[2,0,";"]]},{"type":"medium list deconstructor","name":"Packet String List Deconstructor","inputs":[[1,0,[]]]},{"type":"string exploder","name":"Packet Inverter A","inputs":[[1,0,"SubNET Automated Webserver;PAT"],[2,0,";"]]},{"type":"list deconstructor","name":"Packet Inverter B","inputs":[[1,0,["SubNET Automated Webserver","PAT"]]]},{"type":"concatenator","name":"Packet Inverter C","inputs":[[1,0,"PAT"],[2,0,";"],[3,0,"SubNET Automated Webserver"]]},{"type":"text pad","name":"Enter Webserver Password"},{"type":"concatenator","name":"Password Change Concatenator","inputs":[[1,0,"System administrator has changed the server password to "],[2,0,"P455W0RD"],[3,0,"."]]},{"type":"equal gate","name":"Is Password Needed","inputs":[[2,0,1]]},{"type":"equal gate","name":"Is Password Correct","inputs":[[1,0,"P455W0RD"]]},{"type":"concatenator","name":"Incorrect Password Concatenator","inputs":[[1,0,"WARNING: User "],[2,0,"PAT"],[3,0," has attempted to access the webserver with an invalid password!"]]},{"type":"large list constructor","name":"Sub-address Directory Constructor","inputs":[[1,0,"About"],[2,0,"Standards"],[3,0,"EMPTY SUBADDRESS"],[4,0,"EMPTY SUBADDRESS"],[5,0,"EMPTY SUBADDRESS"],[6,0,"EMPTY SUBADDRESS"],[7,0,"EMPTY SUBADDRESS"],[8,0,"EMPTY SUBADDRESS"],[9,0,"EMPTY SUBADDRESS"],[10,0,"EMPTY SUBADDRESS"],[11,0,"EMPTY SUBADDRESS"],[12,0,"EMPTY SUBADDRESS"],[13,0,"EMPTY SUBADDRESS"],[14,0,"EMPTY SUBADDRESS"],[15,0,"EMPTY SUBADDRESS"],[16,0,"EMPTY SUBADDRESS"]]},{"type":"search circuit","name":"Find Requested Sub-address","inputs":[[1,0,["EMPTY SUBADDRESS","EMPTY SUBADDRESS","EMPTY SUBADDRESS","EMPTY SUBADDRESS","EMPTY SUBADDRESS","EMPTY SUBADDRESS","EMPTY SUBADDRESS","EMPTY SUBADDRESS","EMPTY SUBADDRESS","EMPTY SUBADDRESS","EMPTY SUBADDRESS","EMPTY SUBADDRESS","EMPTY SUBADDRESS","EMPTY SUBADDRESS","EMPTY SUBADDRESS","EMPTY SUBADDRESS"]]]},{"type":"concatenator","name":"Connection Made Concatenator","inputs":[[1,0,"Domain "],[3,0," has accessed the server."]]},{"type":"memory chip","name":"Homepage Memory","inputs":[[1,0,"Welcome to your new SubNET Compliant Automated Webserver![br]Now with Multi-Line Rendering support![br]This is your webserver's homepage, which is what users will see if they do not enter a valid sub-address, we reccomend you should use this to give basic information and a directory of your webserver's sub-addresses.[br]Sub-addresses can be accessed by including the name of the sub-address in the data to send pin of an NTNet networking circuit.[br]If you are using a SubNET Pocket Access Terminal, for instance, you can access a webserver sub-address via the command SUBNET/(webserver domain name)/(sub-address).[br]If password protection is active, you will need to use the command SUBNET/(webserver domain name)/(sub-address);(password).[br]Remember to replace this default text and add sub-address hardware to your system!"]]},{"type":"sixteen pulse demultiplexer","name":"Sub-address Redirect Demux","inputs":[[1,0,0]]}],"wires":[[[1,"O",1],[11,"I",1]],[[1,"O",1],[2,"I",2]],[[1,"A",1],[2,"A",1]],[[2,"O",1],[5,"I",4]],[[2,"A",2],[4,"A",1]],[[4,"O",1],[5,"I",2]],[[4,"A",1],[15,"A",2]],[[4,"A",1],[22,"A",2]],[[4,"A",1],[25,"A",2]],[[4,"A",1],[28,"A",2]],[[4,"A",2],[5,"A",1]],[[5,"I",4],[15,"O",1]],[[5,"I",4],[22,"O",1]],[[5,"I",4],[25,"O",1]],[[5,"I",4],[28,"O",1]],[[5,"O",1],[6,"I",1]],[[5,"A",2],[6,"A",1]],[[7,"O",1],[12,"I",1]],[[7,"O",1],[8,"I",1]],[[9,"O",1],[10,"I",1]],[[9,"O",1],[23,"I",1]],[[11,"I",2],[29,"O",1]],[[11,"I",3],[20,"O",1]],[[11,"O",2],[16,"I",1]],[[11,"O",2],[15,"I",4]],[[11,"O",3],[13,"I",1]],[[11,"O",3],[15,"I",2]],[[11,"O",3],[18,"I",1]],[[11,"A",1],[29,"A",2]],[[11,"A",2],[12,"A",1]],[[12,"A",2],[13,"A",1]],[[13,"O",1],[14,"I",1]],[[13,"A",2],[14,"A",1]],[[14,"A",2],[16,"A",1]],[[14,"A",3],[15,"A",1]],[[16,"O",1],[17,"I",1]],[[16,"A",2],[17,"A",1]],[[17,"O",1],[27,"I",2]],[[17,"O",2],[24,"I",2]],[[17,"A",2],[18,"A",1]],[[18,"O",1],[19,"I",1]],[[18,"A",2],[19,"A",1]],[[19,"O",1],[20,"I",3]],[[19,"O",2],[20,"I",1]],[[19,"O",2],[25,"I",2]],[[19,"A",2],[20,"A",1]],[[20,"A",2],[23,"A",1]],[[21,"O",1],[24,"I",1]],[[21,"O",1],[22,"I",2]],[[21,"A",1],[22,"A",1]],[[23,"A",2],[24,"A",1]],[[23,"A",3],[27,"A",1]],[[24,"A",2],[27,"A",1]],[[24,"A",3],[25,"A",1]],[[26,"O",1],[27,"I",1]],[[27,"O",1],[30,"I",1]],[[27,"A",2],[30,"A",1]],[[27,"A",2],[28,"A",1]],[[27,"A",3],[29,"A",1]],[[27,"A",3],[28,"A",1]]]}
It features a toggle-able password protection system, an activity log, and, most importantly; a heavily improved version of the half-baked SubNET Hub External Access System.
Now, if you don't send a valid command (or any command) to the server when you connect, which I am now dubbing a "sub-address" because fuck you and fuck me, it will send back a homepage string. Also, sub-addresses are now handled by a proper search circuit/pulse demux based system as opposed to the quick IF gate system of the EAS. Of course, this framework does not have any sub-address hardware actually installed, it's just a base.
If you want to add a sub-address, you just have to do the following.
-Add the circuitry you want to be run by having this sub-address accessed to the server.
-Hook it into an output pin on the Sub-address Redirect Demux.
-Name the input pin of the Sub-address Directory Constructor with the same number of the output pin you connected your hardware to whatever you want the sub-address to be called.
-Pulse the construct pin of the Sub-address Directory Constructor to confirm your change.
-If you need to send a packet back to the device accessing the server, make sure your sub-address hardware is connected to the NTNet Networking circuit and pulses it when it does it's dark magic.

And yes, this stuff actually works:
Image
Image
Image

EDIT: Well, shit, updates have made the DNS nonfunctional and made multi-line rendering an innate function of screens that doesn't take three eons and a dozen circuits to work. Disregard everything I have posted.

Re: circuit craigslist: post your cool stuff you made

Posted: Wed Mar 14, 2018 1:36 am
by tacolizard
really simple gun:

Code: Select all

{"assembly":{"type":"type-e electronic mechanism","name":"Multi-Gun"},"components":[{"type":"thrower","inputs":[[1,0,-7],[2,0,1]]},{"type":"grabber","inputs":[[2,0,1]]},{"type":"sensor"},{"type":"ranged sensor"},{"type":"examiner"},{"type":"tesla power relay"}],"wires":[[[1,"I",1],[5,"O",3]],[[1,"I",2],[5,"O",4]],[[1,"I",3],[2,"O",2]],[[1,"A",1],[5,"A",2]],[[2,"I",1],[3,"O",1]],[[2,"A",1],[3,"A",1]],[[4,"O",1],[5,"I",1]],[[4,"A",1],[5,"A",1]]]}
robot that follows people around doesn't work, will update:

Code: Select all

{"assembly":{"type":"type-c electronic drone","name":"TAGGARTBOT"},"components":[{"type":"basic pathfinder"},{"type":"locomotion circuit","inputs":[[1,0,6]]},{"type":"custom ticker","inputs":[[1,0,1],[2,0,0.2]]},{"type":"advanced locator","inputs":[[2,0,8]]},{"type":"tesla power relay"},{"type":"large tesla power relay"},{"type":"securitron sound circuit","inputs":[[1,0,"secure day"],[2,0,10]]},{"type":"slow ticker","inputs":[[1,0,1]]}],"wires":[[[1,"I",1],[4,"O",1]],[[1,"O",1],[2,"I",1]],[[1,"A",1],[4,"A",2]],[[1,"A",2],[2,"A",1]],[[2,"A",1],[3,"A",1]],[[3,"A",1],[4,"A",1]],[[7,"A",1],[8,"A",1]]]}
simple health monitor that sets off a really loud alarm if your health goes below a certain percentage (default is 35%). Tap yourself to link:

Code: Select all

{"assembly":{"type":"type-f electronic assembly","name":"Health Monitor","opened":1},"components":[{"type":"integrated medical analyser"},{"type":"sensor"},{"type":"text-to-speech circuit","inputs":[[1,0,"Linking to ref..."]]},{"type":"tiny photovoltaic cell"},{"type":"beeper circuit","inputs":[[1,0,"warning buzz"],[2,0,100]]},{"type":"advanced light"},{"type":"slow ticker","inputs":[[1,0,1]]},{"type":"less than or equal gate","inputs":[[1,0,100],[2,0,35]]},{"type":"text-to-speech circuit","inputs":[[1,0,"LOW HEALTH. SEEK MEDICAL ATTENTION!!"]]}],"wires":[[[1,"I",1],[2,"O",1]],[[1,"O",1],[8,"I",1]],[[1,"A",1],[2,"A",1]],[[2,"A",1],[3,"A",1]],[[5,"A",1],[8,"A",2]],[[7,"A",1],[8,"A",1]],[[8,"A",2],[9,"A",1]]]}

Re: circuit craigslist: post your cool stuff you made

Posted: Thu Mar 22, 2018 2:08 am
by PKPenguin321
A couple of the more functional and unique things I've made

Medical Wall Scanner
Push the button to have your health status displayed.
Will list the data like this:

Code: Select all

Total health: 50%
Brute damage: 20
Burn Damage: 5
Toxin Damage: 15
Oxygen Damage: 10
Only bug is that it displays "0" for some reason on push, but it will still display all data normally after that. Put some on the walls in the public hallways so people can check their health on the fly.

Code: Select all

{"assembly":{"type":"light wall-mounted electronic assembly","name":"Health Scanner"},"components":[{"type":"button"},{"type":"large screen","inputs":[[1,0,"Oxygen damage: 0"]]},{"type":"integrated adv. medical analyser"},{"type":"adjacent locator"},{"type":"constant chip","inputs":[[1,0,1]]},{"type":"eight multiplexer","name":"Verbage Mux","inputs":[[1,0,6],[2,0,"Total health percentage: "],[3,0,"Brute damage: "],[4,0,"Burn damage: "],[5,0,"Toxin damage: "],[6,0,"Oxygen damage: "]]},{"type":"eight multiplexer","name":"Numbers Mux","inputs":[[1,0,6],[2,0,91],[3,0,0],[4,0,0],[5,0,9],[6,0,0]]},{"type":"number to string","inputs":[[1,0,0]]},{"type":"concatenator","inputs":[[1,0,"Oxygen damage: "],[2,0,"0"]]},{"type":"addition circuit","inputs":[[2,0,1]]},{"type":"memory chip"},{"type":"equal gate","inputs":[[1,0,6],[2,0,6]]},{"type":"tesla power relay"},{"type":"custom delay circuit","inputs":[[1,0,8]]},{"type":"tenth-sec delay circuit"}],"wires":[[[1,"A",1],[4,"A",1]],[[1,"A",1],[5,"A",1]],[[2,"I",1],[9,"O",1]],[[2,"A",1],[9,"A",2]],[[3,"I",1],[4,"O",1]],[[3,"O",1],[7,"I",2]],[[3,"O",3],[7,"I",3]],[[3,"O",4],[7,"I",4]],[[3,"O",5],[7,"I",5]],[[3,"O",6],[7,"I",6]],[[3,"A",1],[4,"A",2]],[[3,"A",2],[7,"A",1]],[[3,"A",2],[6,"A",1]],[[5,"O",1],[10,"I",1]],[[5,"A",1],[12,"A",2]],[[6,"I",1],[10,"O",1]],[[6,"O",1],[9,"I",1]],[[6,"A",1],[12,"A",3]],[[7,"I",1],[10,"O",1]],[[7,"O",1],[8,"I",1]],[[7,"A",1],[12,"A",3]],[[7,"A",2],[8,"A",1]],[[8,"O",1],[9,"I",2]],[[8,"A",2],[15,"A",1]],[[9,"A",1],[15,"A",2]],[[9,"A",2],[14,"A",1]],[[10,"I",1],[10,"O",1]],[[10,"O",1],[12,"I",1]],[[10,"A",1],[14,"A",2]],[[10,"A",2],[12,"A",1]]]}
Harmyeller
Keep it in your bag and it will scream for help and alert people that you are in crit and in need of aid when you are in crit (even comes with a sound effect saying "help"). Also says your health percentage.

Code: Select all

{"assembly":{"type":"type-b electronic assembly","name":"Harmyeller"},"components":[{"type":"fast ticker","inputs":[[1,0,1]]},{"type":"local locator"},{"type":"integrated medical analyser"},{"type":"subtraction circuit"},{"type":"greater than gate","inputs":[[1,0,21],[2,0,99]]},{"type":"reference to string"},{"type":"concatenator","inputs":[[2,0," IS IN CRIT WITH %"],[3,0,"79"],[4,0," HEALTH. PLEASE HELP THEM!"]]},{"type":"text-to-speech circuit","inputs":[[1,0," IS IN CRIT WITH %79 HEALTH. PLEASE HELP THEM!"]]},{"type":"ai vox sound circuit","inputs":[[1,0,"help"],[2,0,100]]},{"type":"number to string","inputs":[[1,0,79]]},{"type":"tesla power relay"},{"type":"tesla power relay"}],"wires":[[[1,"A",1],[2,"A",1]],[[1,"A",1],[3,"A",1]],[[2,"O",1],[3,"I",1]],[[2,"O",1],[6,"I",1]],[[3,"O",1],[10,"I",1]],[[3,"O",2],[5,"I",1]],[[3,"A",2],[5,"A",1]],[[3,"A",2],[10,"A",1]],[[5,"A",2],[6,"A",1]],[[6,"O",1],[7,"I",1]],[[6,"A",2],[7,"A",1]],[[7,"I",3],[10,"O",1]],[[7,"O",1],[8,"I",1]],[[7,"A",2],[9,"A",1]],[[7,"A",2],[8,"A",1]]]}

Re: circuit craigslist: post your cool stuff you made

Posted: Thu Mar 22, 2018 3:37 am
by PKPenguin321
I just finished this one and I gotta say it's really fuckin neat

A remote controlled drone that you direct with a "wand." You simply click on something with the wand, and provided that it is within vision range of the drone, the drone will move to it. The wand can also be used in hand to toggle it on or off.

Hypothetically it should work without needing to modify any parts manually. Just place the drone on the floor, stand adjacent to it, and push the "Calibrate" button on the wand.

Code: Select all

Wand:
{"assembly":{"type":"type-b electronic assembly","name":"RC Reference Wand"},"components":[{"type":"ranged sensor"},{"type":"reference encoder"},{"type":"NTNet networking circuit","inputs":[[1,0,"1097"],[2,0,"3a42015f495f4445090f36"]]},{"type":"reference to string"},{"type":"concatenator","inputs":[[1,0,"Scanned and transmitted reference "],[2,0,"wooden plank"]]},{"type":"screen","inputs":[[1,0,"Scanned and transmitted reference wooden plank"]]},{"type":"tiny photovoltaic cell"},{"type":"integrated signaler","name":"Toggle Signal","inputs":[[1,0,9955],[2,0,5]]},{"type":"button","name":"Toggle On Or Off"},{"type":"NTNet scanner"},{"type":"adjacent locator"},{"type":"button","name":"Calibrate - Make Sure Bot Is Next To You"}],"wires":[[[1,"O",1],[2,"I",1]],[[1,"O",1],[4,"I",1]],[[1,"A",1],[2,"A",1]],[[1,"A",1],[4,"A",1]],[[2,"O",1],[3,"I",2]],[[2,"A",2],[3,"A",1]],[[3,"I",1],[10,"O",1]],[[4,"O",1],[5,"I",2]],[[4,"A",2],[5,"A",1]],[[5,"O",1],[6,"I",1]],[[5,"A",2],[6,"A",1]],[[8,"A",1],[9,"A",1]],[[10,"I",1],[11,"O",1]],[[10,"A",1],[11,"A",2]],[[11,"A",1],[12,"A",1]]]}

Code: Select all

Drone:
{"assembly":{"type":"type-a electronic drone","name":"RC Wand Drone"},"components":[{"type":"large tesla power relay"},{"type":"locomotion circuit"},{"type":"custom ticker","inputs":[[2,0,0.1]]},{"type":"integrated signaler","name":"Toggle Signal","inputs":[[1,0,9955],[2,0,5]]},{"type":"multiplication circuit","inputs":[[1,0,-1],[2,0,-1]]},{"type":"equal gate","inputs":[[1,0,-1],[2,0,1]]},{"type":"NTNet networking circuit"},{"type":"basic pathfinder"},{"type":"reference decoder","inputs":[[1,0,"3a42015c495e4e42580836"]]}],"wires":[[[2,"I",1],[8,"O",1]],[[2,"A",1],[8,"A",2]],[[3,"I",1],[6,"O",1]],[[3,"A",1],[8,"A",1]],[[4,"A",3],[5,"A",1]],[[5,"I",1],[5,"O",1]],[[5,"O",1],[6,"I",1]],[[5,"A",2],[6,"A",1]],[[7,"O",2],[9,"I",1]],[[7,"A",2],[9,"A",1]],[[8,"I",1],[9,"O",1]]]}
I also made a very rudimentary signal based RC car, but it's kind of lame (and VERY hacky) in comparison.

Code: Select all

Drone:
{"assembly":{"type":"type-a electronic drone","name":"RC Drone"},"components":[{"type":"large tesla power relay"},{"type":"locomotion circuit","inputs":[[1,0,8]]},{"type":"custom ticker","inputs":[[2,0,0.1]]},{"type":"integrated signaler","name":"Toggle Signal","inputs":[[1,0,9955],[2,0,5]]},{"type":"multiplication circuit","inputs":[[1,0,-1],[2,0,-1]]},{"type":"equal gate","inputs":[[1,0,-1],[2,0,1]]},{"type":"integrated signaler","name":"North Signal","inputs":[[1,0,9955],[2,0,6]]},{"type":"integrated signaler","name":"South Signal","inputs":[[1,0,9955],[2,0,7]]},{"type":"integrated signaler","name":"East Signal","inputs":[[1,0,9955],[2,0,8]]},{"type":"integrated signaler","name":"West Signal","inputs":[[1,0,9955],[2,0,9]]},{"type":"multiplication circuit","name":"CHIP North","inputs":[[1,0,1],[2,0,1]]},{"type":"multiplication circuit","name":"CHIP South","inputs":[[1,0,2],[2,0,1]]},{"type":"multiplication circuit","name":"CHIP East","inputs":[[1,0,4],[2,0,1]]},{"type":"multiplication circuit","name":"CHIP West","inputs":[[1,0,8],[2,0,1]]}],"wires":[[[2,"I",1],[11,"O",1]],[[2,"I",1],[14,"O",1]],[[2,"I",1],[12,"O",1]],[[2,"I",1],[13,"O",1]],[[2,"A",1],[3,"A",1]],[[3,"I",1],[6,"O",1]],[[4,"A",3],[5,"A",1]],[[5,"I",1],[5,"O",1]],[[5,"O",1],[6,"I",1]],[[5,"A",2],[6,"A",1]],[[7,"A",3],[11,"A",1]],[[8,"A",3],[12,"A",1]],[[9,"A",3],[13,"A",1]],[[10,"A",3],[14,"A",1]]]}
Remote:
{"assembly":{"type":"type-b electronic assembly","name":"RC Remote"},"components":[{"type":"button","name":"North"},{"type":"button","name":"South"},{"type":"button","name":"East"},{"type":"button","name":"West"},{"type":"integrated signaler","name":"Toggle Signal","inputs":[[1,0,9955],[2,0,5]]},{"type":"button","name":"Toggle On Or Off"},{"type":"tiny photovoltaic cell"},{"type":"tiny photovoltaic cell"},{"type":"tiny photovoltaic cell"},{"type":"integrated signaler","name":"North Signal","inputs":[[1,0,9955],[2,0,6]]},{"type":"integrated signaler","name":"South Signal","inputs":[[1,0,9955],[2,0,7]]},{"type":"integrated signaler","name":"East Signal","inputs":[[1,0,9955],[2,0,8]]},{"type":"integrated signaler","name":"West Signal","inputs":[[1,0,9955],[2,0,9]]}],"wires":[[[1,"A",1],[10,"A",1]],[[2,"A",1],[11,"A",1]],[[3,"A",1],[12,"A",1]],[[4,"A",1],[13,"A",1]],[[5,"A",1],[6,"A",1]]]}

Re: circuit craigslist: post your cool stuff you made

Posted: Fri Mar 23, 2018 3:36 am
by PKPenguin321
Harmyeller 2.0
Similar to the Harmyeller, but broadcasts over the radio and also lists GPS coordinates.
Has two parts, the Harmyeller and the Receiver. Use the Receiver on the Harmyeller to link them, then leave the receiver by an open microphone. Then just keep the Harmyeller on your person somewhere.
Harmyeller:

Code: Select all

{"assembly":{"type":"type-b electronic assembly","name":"Harmyeller 2.0"},"components":[{"type":"fast ticker","inputs":[[1,0,1]]},{"type":"local locator"},{"type":"integrated medical analyser"},{"type":"subtraction circuit"},{"type":"greater than gate","inputs":[[1,0,0],[2,0,99]]},{"type":"reference to string"},{"type":"concatenator","name":"HELP Message","inputs":[[1,0,"Vivian Winton"],[2,0," IS IN CRIT WITH "],[3,0,"100"],[4,0,"% HEALTH. PLEASE HELP THEM!"],[5,0," THEY ARE AT COORDINATES: "],[6,0,"181, 98, 2"]]},{"type":"number to string","inputs":[[1,0,100]]},{"type":"tesla power relay"},{"type":"tesla power relay"},{"type":"sensor"},{"type":"NTNet networking circuit","inputs":[[1,0,"952"],[2,0,"Vivian Winton IS IN CRIT WITH -106% HEALTH. PLEASE HELP THEM! THEY ARE AT COORDINATES: 181, 98, 2"]]},{"type":"global positioning system"},{"type":"ai vox sound circuit","inputs":[[1,0,"help"],[2,0,100]]},{"type":"number to string","inputs":[[1,0,181]]},{"type":"number to string","inputs":[[1,0,98]]},{"type":"number to string","inputs":[[1,0,2]]},{"type":"concatenator","inputs":[[1,0,"181"],[2,0,", "],[3,0,"98"],[4,0,", "],[5,0,"2"]]}],"wires":[[[1,"A",1],[2,"A",1]],[[1,"A",1],[3,"A",1]],[[2,"O",1],[3,"I",1]],[[2,"O",1],[6,"I",1]],[[3,"O",1],[8,"I",1]],[[3,"O",2],[5,"I",1]],[[3,"A",2],[5,"A",1]],[[3,"A",2],[8,"A",1]],[[5,"A",2],[6,"A",1]],[[5,"A",2],[13,"A",1]],[[6,"O",1],[7,"I",1]],[[6,"A",2],[18,"A",1]],[[7,"I",3],[8,"O",1]],[[7,"I",6],[18,"O",1]],[[7,"O",1],[12,"I",2]],[[7,"A",1],[18,"A",2]],[[7,"A",2],[12,"A",1]],[[7,"A",2],[14,"A",1]],[[12,"I",1],[12,"O",1]],[[13,"O",1],[15,"I",1]],[[13,"O",2],[16,"I",1]],[[13,"O",3],[17,"I",1]],[[13,"A",2],[15,"A",1]],[[13,"A",2],[16,"A",1]],[[13,"A",2],[17,"A",1]],[[15,"O",1],[18,"I",1]],[[16,"O",1],[18,"I",3]],[[17,"O",1],[18,"I",5]]]}
Reciever:

Code: Select all

{"assembly":{"type":"type-a electronic assembly","name":"Harmyeller 2.0 Reciever"},"components":[{"type":"NTNet networking circuit","inputs":[[1,0,"953"]]},{"type":"NTNet scanner"},{"type":"sensor"},{"type":"reference to string"},{"type":"concatenator","inputs":[[1,0,"Now linked to "],[2,0,"Harmyeller 2.0"],[3,0,", which has a NTNet address of "],[4,0,"953"]]},{"type":"tenth-sec delay circuit"},{"type":"text-to-speech circuit","inputs":[[1,0,"Vivian Winton IS IN CRIT WITH -106% HEALTH. PLEASE HELP THEM! THEY ARE AT COORDINATES: 181, 98, 2"]]},{"type":"tesla power relay"}],"wires":[[[1,"I",1],[2,"O",1]],[[1,"O",2],[7,"I",1]],[[1,"A",1],[5,"A",2]],[[1,"A",2],[7,"A",1]],[[2,"I",1],[3,"O",1]],[[2,"O",1],[5,"I",4]],[[2,"A",1],[3,"A",1]],[[2,"A",2],[6,"A",1]],[[3,"O",1],[4,"I",1]],[[3,"A",1],[4,"A",1]],[[4,"O",1],[5,"I",2]],[[5,"O",1],[7,"I",1]],[[5,"A",1],[6,"A",2]],[[5,"A",2],[7,"A",1]]]}
Pretty spammy compared to the 1.0 version due to the radio usage. Don't be shocked if you're killed even more once you're found.

Re: circuit craigslist: post your cool stuff you made

Posted: Fri Mar 23, 2018 4:46 am
by PKPenguin321
Coordinate Hunter Drone
I build this because I noticed that pathfinders only take refs, not coordinates, when abstract coordinates could be more useful.
More of a proof of concept. Moves to abstract coordinates by throwing a "ball" towards them, moving to the ball, throwing it, moving to it, etc.
Slap it with something to have it recognize that something as the "ball." Use it in hand to input coordinates or toggle it on/off.
Best object I found to use with it is a corn cob, as it has 7 throw range (so it wont throw the ball out of its own sight range) and 0 throwforce (no accidents).
The ideal "ball" would pass through any obstacle, as currently this drone will get caught on obstructions very easily.
Potential applications could be a drone that hunts down injured folks and drags them to the medbay.
I didn't really check for any better methods for inputting coordinates to a pathfinder before attempting this so if one exists and this is just stupid then *shrug

Code: Select all

{"assembly":{"type":"type-b electronic drone","name":"Coordinate Hunter Drone"},"components":[{"type":"thrower","inputs":[[1,0,0],[2,0,6]]},{"type":"locomotion circuit","inputs":[[1,0,1]]},{"type":"basic pathfinder"},{"type":"custom ticker","inputs":[[2,0,0.1]]},{"type":"abs to rel coordinate converter","inputs":[[1,0,180],[2,0,130],[3,0,180],[4,0,124]]},{"type":"button","name":"Toggle"},{"type":"number pad","name":"X Coord"},{"type":"number pad","name":"Y Coord"},{"type":"multiplication circuit","inputs":[[1,0,-1],[2,0,1]]},{"type":"equal gate","inputs":[[1,0,1],[2,0,-1]]},{"type":"global positioning system"},{"type":"advanced locator","inputs":[[2,0,16]]},{"type":"tesla power relay"},{"type":"scanner"}],"wires":[[[1,"I",1],[5,"O",1]],[[1,"I",2],[5,"O",2]],[[1,"I",3],[12,"O",1]],[[1,"A",1],[5,"A",2]],[[2,"I",1],[3,"O",1]],[[2,"A",1],[3,"A",2]],[[3,"I",1],[12,"O",1]],[[3,"A",1],[12,"A",2]],[[4,"I",1],[10,"O",1]],[[4,"A",1],[11,"A",1]],[[4,"A",1],[12,"A",1]],[[5,"I",1],[7,"O",1]],[[5,"I",2],[8,"O",1]],[[5,"I",3],[11,"O",1]],[[5,"I",4],[11,"O",2]],[[5,"A",1],[11,"A",2]],[[6,"A",1],[9,"A",1]],[[9,"I",2],[9,"O",1]],[[9,"O",1],[10,"I",1]],[[9,"A",2],[10,"A",1]],[[12,"I",1],[14,"O",1]]]}

Re: circuit craigslist: post your cool stuff you made

Posted: Fri Mar 23, 2018 9:11 am
by Eskjjlj
The only way I found to control RC bots remotely while watching the video feed was to make a separate assembly that listens to your voice and sends commands to your bot via ntnet.
The problem with other methods is that opening a window (the signaller UI for example) brings you back to your character and it's a huge pain.

Re: circuit craigslist: post your cool stuff you made

Posted: Fri Mar 23, 2018 9:25 am
by PKPenguin321
Eskjjlj wrote:The only way I found to control RC bots remotely while watching the video feed was to make a separate assembly that listens to your voice and sends commands to your bot via ntnet.
The problem with other methods is that opening a window (the signaller UI for example) brings you back to your character and it's a huge pain.
Remote control while viewing through a video feed works flawlessly with the RC Wand Drone I posted above. Coordinates are cool because they allow automation rather than manual remote piloting

Re: circuit craigslist: post your cool stuff you made

Posted: Fri Mar 23, 2018 10:00 am
by DemonFiren
I don't know jack about IC and my only experience so far was a lot of annoying shit spamming the radio and being impossible to find (and its creator being impossible to ID if he was smart), so how about loading up these drones with nasty explody shit?

Re: circuit craigslist: post your cool stuff you made

Posted: Fri Mar 23, 2018 4:15 pm
by tacolizard
PKPenguin321 wrote:PLEASE HELP THEM!"],[5,0," THEY ARE AT COORDINATES:
lol

Re: circuit craigslist: post your cool stuff you made

Posted: Fri Mar 23, 2018 4:17 pm
by tacolizard
DemonFiren wrote:I don't know jack about IC and my only experience so far was a lot of annoying shit spamming the radio and being impossible to find (and its creator being impossible to ID if he was smart), so how about loading up these drones with nasty explody shit?
I think you can do that? Pretty sure there's reagent container components but I haven't used them so I don't know if you can mix reagents

Re: circuit craigslist: post your cool stuff you made

Posted: Fri Mar 23, 2018 8:07 pm
by PKPenguin321
tacolizard wrote:
PKPenguin321 wrote:PLEASE HELP THEM!"],[5,0," THEY ARE AT COORDINATES:
lol
i noticed that but was too lazy to fix it since i would have to rewire the coordinates pin one up and it works fine anyways, haha

Re: circuit craigslist: post your cool stuff you made

Posted: Fri Mar 23, 2018 8:16 pm
by PKPenguin321
DemonFiren wrote:I don't know jack about IC and my only experience so far was a lot of annoying shit spamming the radio and being impossible to find (and its creator being impossible to ID if he was smart), so how about loading up these drones with nasty explody shit?
i've got a couple ideas for malicious drones (beyond "throw glass shards at target until it dies"):
- the grenade handling circuit can be used for all kinds of shenanigans. suicide bomb drones very doable
- ticker + local locator + hypo injector loaded with whatever you want. if they decide to pick up your circuit and put it in their bag or whatever they get injected with nasty shit. combine with any chem that stuns for basically guaranteed death
- TTVs can be activated with a signaler circuit and moved either with the pulling claw or a grabber (not sure if grabbers will work since the TTV size change)
- puller claw that grabs people and runs into chasms/lava (requires chasm/lava and for them to not move out of the pull, so probably wouldnt work but it would be pretty funny)
- gun firing circuit combined with a power transmission relay and a taser/disabler to stun somebody practically indefinitely. can probably be combined with many of these other ideas
- drone that can open/close doors via NTNet, and has a puller claw. moves humans under the airlock as it repeatedly opens and shuts it. may require you to manually hack the airlock safeties off. this might actually catch random passerby if they go through the airlock and would work even without the puller claw
- similar to the above but only open/shuts the door if it sees a human on the same tile as it. used more as a trap than as something that actively seeks out humans to kill

Re: circuit craigslist: post your cool stuff you made

Posted: Fri Mar 23, 2018 9:38 pm
by PKPenguin321
Made a more manual version of the airlock spammer idea I mentioned. It works REALLY well. I didn't even know airlocks could be opened and shut that quickly.

Door Spammer
Opens and shuts an airlock VERY rapidly. Can be very deadly if the airlock safeties are off (30 damage per 2 seconds, permastun).
One flaw is that it is too complex to fit any decent power generator. Will require outside cell charging.
Swipe an ID to allow it to access doors assigned to that ID (science ID will give sci access, captain ID will give all access, etc. Airlocks that have no access requirements will work with or without any ID). Click on an airlock to target it. Use in hand to toggle it.

Code: Select all

{"assembly":{"type":"type-c electronic assembly","name":"Door Spammer"},"components":[{"type":"ranged sensor"},{"type":"NTNet scanner"},{"type":"NTNet networking circuit","inputs":[[1,0,"644"],[2,0,"open"],[4,0,"215e5846405a415d45495b435f5e5e54564c4d4e4e525c5e455a4b5f464b5d52404243435d414b5f5950435051555a515b4442595b4b4e5052564249445147484455485c594f59445e595a5f445b5f54474a5e4743405148405d5643555f59455d585b5a415b4d44404e5b464e454740565e45554047574f4a404b5e444144435748525542524e5852505d4d5f45574e4d5c4d595b58454c5d5c4745494f5f565545585b47594c5f58405640455a44455e4a5342594841595d49554a41595b465d434e5e5f5b4e425c4a505f50425258434d463e"]]},{"type":"card reader"},{"type":"screen","inputs":[[1,0,"Device is now off"]]},{"type":"memory chip","inputs":[[1,0,"Card scanned and set"]]},{"type":"custom ticker","inputs":[[2,0,0.1]]},{"type":"button","name":"Toggle"},{"type":"reference to string"},{"type":"concatenator","inputs":[[1,0,"Scanned and aiming at "],[2,0,"Circuitry Lab"]]},{"type":"multiplication circuit","inputs":[[1,0,-1],[2,0,1]]},{"type":"equal gate","inputs":[[1,0,1],[2,0,-1]]},{"type":"concatenator","inputs":[[1,0,"Device is now active and pinging "],[2,0,"Circuitry Lab"]]},{"type":"memory chip","inputs":[[1,0,"Device is now off"]]},{"type":"memory chip","name":"Address Buffer"},{"type":"memory chip","name":"Reference String Buffer","inputs":[[1,0,"floor"]]}],"wires":[[[1,"O",1],[2,"I",1]],[[1,"O",1],[9,"I",1]],[[1,"A",1],[9,"A",1]],[[1,"A",1],[2,"A",1]],[[2,"O",1],[15,"I",1]],[[2,"A",2],[10,"A",1]],[[2,"A",2],[15,"A",1]],[[2,"A",2],[16,"A",1]],[[3,"I",1],[15,"O",1]],[[3,"I",4],[4,"O",3]],[[3,"A",1],[7,"A",1]],[[4,"A",1],[6,"A",1]],[[5,"I",1],[6,"O",1]],[[5,"I",1],[10,"O",1]],[[5,"I",1],[13,"O",1]],[[5,"I",1],[14,"O",1]],[[5,"A",1],[6,"A",2]],[[5,"A",1],[10,"A",2]],[[5,"A",1],[13,"A",2]],[[5,"A",1],[14,"A",2]],[[7,"I",1],[12,"O",1]],[[8,"A",1],[11,"A",1]],[[9,"O",1],[16,"I",1]],[[10,"I",2],[16,"O",1]],[[11,"I",2],[11,"O",1]],[[11,"O",1],[12,"I",1]],[[11,"A",2],[12,"A",1]],[[12,"A",2],[13,"A",1]],[[12,"A",3],[14,"A",1]],[[13,"I",2],[16,"O",1]]]}

Re: circuit craigslist: post your cool stuff you made

Posted: Fri Mar 23, 2018 10:34 pm
by PKPenguin321
ticker + local locator + hypo injector loaded with whatever you want. if they decide to pick up your circuit and put it in their bag or whatever they get injected with nasty shit. combine with any chem that stuns for basically guaranteed death
Kind of works. Very evil machine. You must manually load the hypo with chems. I strongly recommend neurotoxin. Chainstuns for a long as fuck time. You could mix it with something lethal too, if you wanted.
Can be defeated by moving before it finishes injecting, but if you hold still too long with it in your bag or pockets or hands or anything, you will be stuck for a long time.

Do Not Pick Me Up
Commands that you do not pick it up, and if you do, will always try to inject you with whatever is in its hypo.

Code: Select all

{"assembly":{"type":"type-e electronic assembly","name":"Do Not Pick Up"},"components":[{"type":"integrated hypo-injector","inputs":[[2,0,1]]},{"type":"local locator"},{"type":"fast ticker","inputs":[[1,0,1]]},{"type":"and gate","inputs":[[2,0,1]]},{"type":"tiny photovoltaic cell"},{"type":"memory chip","name":"Culprit"},{"type":"text-to-speech circuit","inputs":[[1,0,"Do not pick me up."]]},{"type":"memory chip","inputs":[[1,0,"Do not pick me up."]]},{"type":"memory chip","inputs":[[1,0,"I warned you."]]}],"wires":[[[1,"I",1],[6,"O",1]],[[1,"A",1],[4,"A",2]],[[1,"A",1],[3,"A",1]],[[1,"A",2],[9,"A",1]],[[2,"O",1],[4,"I",1]],[[2,"O",1],[6,"I",1]],[[2,"A",1],[3,"A",1]],[[3,"A",1],[4,"A",1]],[[4,"A",2],[6,"A",1]],[[4,"A",2],[8,"A",1]],[[7,"I",1],[8,"O",1]],[[7,"I",1],[9,"O",1]],[[7,"A",1],[8,"A",2]],[[7,"A",1],[9,"A",2]]]}
Spoiler:
Image

Re: circuit craigslist: post your cool stuff you made

Posted: Sun Mar 25, 2018 2:13 am
by PKPenguin321
A sort of V2 of the wand drone. Lets you essentially see and talk through it from any range in addition to piloting it. Can also open doors.

Wand Controlled Android
See through its video feed over the "wand android" feed
Use the wand in-hand to toggle between target and move mode
In target mode, targeting airlocks will automatically open them. Swipe an ID on the wand to grant it the access from that ID
Move mode will send a ref to whatever you're currently targeting (so to move, first target the drone, then switch to move mode and click on something to move to).
Make sure you're holding the remote so it recognizes your voice. The drone will transmit messages spoken only by the holder of the remote.

Android

Code: Select all

{"assembly":{"type":"type-f electronic drone","name":"Wand Controlled Android","detail_color":"#CECA2B"},"components":[{"type":"NTNet networking circuit","inputs":[[1,0,"1215"],[2,0,"Lauser McMauligan says, Test"]]},{"type":"basic pathfinder"},{"type":"locomotion circuit"},{"type":"reference decoder","inputs":[[1,0,"3a41144547534053431335"]]},{"type":"custom ticker","inputs":[[1,0,1],[2,0,1]]},{"type":"large tesla power relay"},{"type":"video camera circuit","inputs":[[1,0,"wand android"],[2,0,1]]},{"type":"microphone"},{"type":"text-to-speech circuit","inputs":[[1,0,"3a41144547534053431335"]]},{"type":"concatenator","inputs":[[1,0,"Wand"],[2,0," says, "],[3,0,"Lauser McMauligan says, Test"]]},{"type":"equal gate","inputs":[[1,0,"move"],[2,0,"speak"]]}],"wires":[[[1,"I",1],[1,"O",1]],[[1,"I",2],[10,"O",1]],[[1,"O",2],[4,"I",1]],[[1,"O",2],[9,"I",1]],[[1,"O",3],[11,"I",1]],[[1,"A",1],[10,"A",2]],[[1,"A",2],[4,"A",1]],[[1,"A",2],[11,"A",1]],[[2,"I",1],[4,"O",1]],[[2,"O",1],[3,"I",1]],[[2,"A",1],[5,"A",1]],[[2,"A",2],[3,"A",1]],[[8,"O",1],[10,"I",1]],[[8,"O",2],[10,"I",3]],[[8,"A",1],[10,"A",1]],[[9,"A",1],[11,"A",2]]]}
Wand

Code: Select all

{"assembly":{"type":"type-e electronic mechanism","name":"Wand","opened":1,"detail_color":"#CECA2B"},"components":[{"type":"ranged sensor"},{"type":"NTNet networking circuit","inputs":[[1,0,"672"],[2,0,"Lauser McMauligan says, Oh"],[3,0,"speak"],[4,0,"3a475858404e4d46454744405d33"]]},{"type":"toggle button","name":"Toggle Mode"},{"type":"equal gate","name":"Check Mode","inputs":[[1,0,1],[2,0,1]]},{"type":"NTNet scanner"},{"type":"small memory circuit","name":"Open Command","inputs":[[1,0,"open"],[2,0,"3a475858404e4d46454744405d33"]]},{"type":"card reader"},{"type":"reference encoder"},{"type":"tesla power relay"},{"type":"concatenator","inputs":[[1,0,"Now targetting "],[2,0,"Circuitry Lab"]]},{"type":"screen","inputs":[[1,0,"Now targetting Circuitry Lab"]]},{"type":"reference to string"},{"type":"microphone"},{"type":"text-to-speech circuit","inputs":[[1,0,"Lauser McMauligan says, Test"]]},{"type":"concatenator","inputs":[[1,0,"Lauser McMauligan"],[2,0," says, "],[3,0,"Test"]]},{"type":"small memory circuit","name":"MEM Speaking","inputs":[[1,0,"Lauser McMauligan says, Oh"],[2,0,"speak"]]},{"type":"memory chip","inputs":[[1,0,"move"]]},{"type":"equal gate","inputs":[[1,0,"Lauser McMauligan"],[2,0,"Lauser McMauligan"]]},{"type":"local locator"},{"type":"reference to string"}],"wires":[[[1,"O",1],[5,"I",1]],[[1,"O",1],[8,"I",1]],[[1,"O",1],[12,"I",1]],[[1,"A",1],[12,"A",1]],[[1,"A",1],[17,"A",1]],[[1,"A",1],[4,"A",1]],[[2,"I",1],[5,"O",1]],[[2,"I",2],[6,"O",1]],[[2,"I",2],[8,"O",1]],[[2,"I",2],[16,"O",1]],[[2,"I",3],[16,"O",2]],[[2,"I",3],[17,"O",1]],[[2,"I",4],[6,"O",2]],[[2,"O",2],[14,"I",1]],[[2,"A",1],[8,"A",2]],[[2,"A",1],[6,"A",2]],[[2,"A",1],[16,"A",2]],[[2,"A",2],[14,"A",1]],[[3,"O",1],[4,"I",1]],[[4,"A",2],[5,"A",1]],[[4,"A",3],[8,"A",1]],[[4,"A",3],[17,"A",1]],[[5,"A",2],[6,"A",1]],[[5,"A",2],[10,"A",1]],[[5,"A",2],[17,"A",1]],[[5,"A",3],[10,"A",1]],[[6,"I",2],[7,"O",3]],[[10,"I",2],[12,"O",1]],[[10,"O",1],[11,"I",1]],[[10,"A",2],[11,"A",1]],[[13,"O",1],[15,"I",1]],[[13,"O",1],[18,"I",1]],[[13,"O",2],[15,"I",3]],[[13,"A",1],[19,"A",1]],[[13,"A",1],[20,"A",1]],[[15,"O",1],[16,"I",1]],[[15,"A",1],[18,"A",2]],[[15,"A",2],[16,"A",1]],[[18,"I",2],[20,"O",1]],[[18,"A",1],[20,"A",2]],[[19,"O",1],[20,"I",1]]]}
I built this entire thing on a live server during a wizard round. I plan to add a third mode that lets the drone pull things.

Re: circuit craigslist: post your cool stuff you made

Posted: Sun Mar 25, 2018 4:19 am
by PKPenguin321
Almost immediately thought of further improvements for the wand drone. Improvements were made not only to user end features but to internal organization and structure.

Wand Drone 3.0

Most fully featured wand drone yet.
To calibrate: Set wand to scan mode and scan the drone twice. Manually enable the video camera circuit in the drone (and maybe set the custom ticker's delay in the drone to 1 in case the ticker bug happens).
Swipe the wand with an ID to grant it remote access to any doors on the ID.
Use the wand in hand to toggle through four modes.
When in scan mode, select an airlock to open/close it. Make sure to re-scan the drone before going back to move mode.
When in move mode (assuming the drone is in the scan buffer), click on anything to have the drone move to it. If it moves out of the drones sight range, it will stop, so be wary of targetting moving objects.
When in pull mode, select an object to pull. The drone will move to that object and begin pulling it. If you click an object that the drone is pulling while in pull mode, you will stop pulling. And yes: You can switch to move mode while pulling something to move it around.
When in light mode, click anywhere to toggle the light on or off.
Use a research camera monitor and monitor "wand drone 3.0" to see through its eyes. (You can control the drone from any range by using this feature.)
Hold the wand and speak to speak through the drone. The wand will also relay any speech the drone hears.

Wand

Code: Select all

{"assembly":{"type":"type-e electronic mechanism","name":"Wand 3.0","detail_color":"#CC4242"},"components":[{"type":"NTNet networking circuit","inputs":[[1,0,"870"],[2,0,"3c561f555f5b5943585f2e"],[3,0,"move"],[4,0,"3c514b5656465e4742515f40514a53414b4a5651533a"]]},{"type":"ranged sensor"},{"type":"reference encoder"},{"type":"button","name":"Change Mode"},{"type":"addition circuit","inputs":[[1,0,1],[2,0,1]]},{"type":"memory chip","name":"MEM One","inputs":[[1,0,1]]},{"type":"equal gate","name":"Mode Overflow Checker","inputs":[[1,0,5],[2,0,5]]},{"type":"four multiplexer","name":"Mode Mux","inputs":[[1,0,1],[2,0,"move"],[3,0,"pull"],[4,0,"scan"],[5,0,"light"]]},{"type":"concatenator","name":"MSG Mode Announcer","inputs":[[1,0,"Now in "],[2,0,"move"],[3,0," mode"]]},{"type":"screen","inputs":[[1,0,"Now in move mode"]]},{"type":"tiny photovoltaic cell"},{"type":"reference to string"},{"type":"equal gate","name":"CM Move","inputs":[[1,0,1],[2,0,1]]},{"type":"equal gate","name":"CM Pull","inputs":[[1,0,1],[2,0,2]]},{"type":"equal gate","name":"CM Scan","inputs":[[1,0,1],[2,0,3]]},{"type":"equal gate","name":"CM Light","inputs":[[1,0,1],[2,0,4]]},{"type":"NTNet scanner"},{"type":"memory chip","name":"MEM Valid Address","inputs":[[1,0,"870"]]},{"type":"concatenator","name":"MSG Now Scanning","inputs":[[1,0,"Found and now scanning valid NTNet object "],[2,0,"floor"]]},{"type":"memory chip","name":"MEM Open","inputs":[[1,0,"open"]]},{"type":"card reader"},{"type":"memory chip","name":"MSG Card Read","inputs":[[1,0,"Card read"]]},{"type":"microphone"},{"type":"local locator"},{"type":"reference to string"},{"type":"equal gate","name":"Check Speaker","inputs":[[1,0,"Wand 3.0"],[2,0,"Lauser McMauligan"]]},{"type":"concatenator","name":"MSG Speech To Send","inputs":[[1,0,"Wand 3.0"],[2,0," says, "],[3,0,"Wand Drone 3.0 says, Lauser McMauligan says, I love memes!"]]},{"type":"small memory circuit","name":"MEM Speak Mode","inputs":[[1,0,"Lauser McMauligan says, I love memes!"],[2,0,"speak"]]},{"type":"text-to-speech circuit","inputs":[[1,0,"Wand Drone 3.0 says, Lauser McMauligan says, I love memes!"]]}],"wires":[[[1,"I",1],[18,"O",1]],[[1,"I",2],[3,"O",1]],[[1,"I",2],[20,"O",1]],[[1,"I",2],[28,"O",1]],[[1,"I",3],[8,"O",1]],[[1,"I",3],[28,"O",2]],[[1,"I",4],[21,"O",3]],[[1,"O",2],[29,"I",1]],[[1,"A",1],[3,"A",2]],[[1,"A",1],[20,"A",2]],[[1,"A",1],[28,"A",2]],[[1,"A",1],[16,"A",2]],[[1,"A",2],[29,"A",1]],[[2,"O",1],[12,"I",1]],[[2,"O",1],[3,"I",1]],[[2,"O",1],[17,"I",1]],[[2,"A",1],[12,"A",1]],[[2,"A",1],[13,"A",1]],[[3,"A",1],[13,"A",2]],[[3,"A",1],[14,"A",2]],[[4,"A",1],[5,"A",1]],[[5,"I",1],[5,"O",1]],[[5,"I",1],[6,"O",1]],[[5,"O",1],[7,"I",1]],[[5,"O",1],[8,"I",1]],[[5,"O",1],[13,"I",1]],[[5,"O",1],[14,"I",1]],[[5,"O",1],[15,"I",1]],[[5,"O",1],[16,"I",1]],[[5,"A",2],[7,"A",1]],[[6,"O",1],[8,"I",1]],[[6,"O",1],[13,"I",1]],[[6,"O",1],[14,"I",1]],[[6,"O",1],[15,"I",1]],[[6,"O",1],[16,"I",1]],[[6,"A",1],[7,"A",2]],[[7,"A",2],[8,"A",1]],[[7,"A",3],[8,"A",1]],[[8,"O",1],[9,"I",2]],[[8,"A",1],[28,"A",2]],[[8,"A",2],[9,"A",1]],[[9,"O",1],[10,"I",1]],[[9,"A",2],[10,"A",1]],[[10,"I",1],[19,"O",1]],[[10,"I",1],[22,"O",1]],[[10,"A",1],[19,"A",2]],[[10,"A",1],[22,"A",2]],[[12,"O",1],[19,"I",2]],[[13,"A",3],[14,"A",1]],[[14,"A",3],[15,"A",1]],[[15,"A",2],[17,"A",1]],[[15,"A",2],[20,"A",1]],[[15,"A",3],[16,"A",1]],[[17,"O",1],[18,"I",1]],[[17,"A",2],[18,"A",1]],[[17,"A",2],[19,"A",1]],[[21,"A",1],[22,"A",1]],[[23,"O",1],[26,"I",1]],[[23,"O",1],[27,"I",1]],[[23,"O",2],[27,"I",3]],[[23,"A",1],[24,"A",1]],[[23,"A",1],[25,"A",1]],[[24,"O",1],[25,"I",1]],[[25,"O",1],[26,"I",2]],[[25,"A",2],[26,"A",1]],[[26,"A",2],[27,"A",1]],[[27,"O",1],[28,"I",1]],[[27,"A",2],[28,"A",1]]]}
Drone

Code: Select all

{"assembly":{"type":"type-f electronic drone","name":"Wand Drone 3.0","detail_color":"#CC4242"},"components":[{"type":"pulling claw","inputs":[[2,0,0]]},{"type":"basic pathfinder"},{"type":"locomotion circuit"},{"type":"large tesla power relay"},{"type":"NTNet networking circuit","inputs":[[1,0,"869"],[2,0,"Wand Drone 3.0 says, Lauser McMauligan says, I love memes!"]]},{"type":"reference decoder","inputs":[[1,0,"3c561f555f5b5943585f2e"]]},{"type":"custom ticker","inputs":[[1,0,1],[2,0,1]]},{"type":"equal gate","name":"CM Move","inputs":[[1,0,"move"],[2,0,"move"]]},{"type":"equal gate","name":"CM Pull","inputs":[[1,0,"move"],[2,0,"pull"]]},{"type":"equal gate","name":"CM Speak","inputs":[[1,0,"move"],[2,0,"speak"]]},{"type":"equal gate","name":"CM Light","inputs":[[1,0,"move"],[2,0,"light"]]},{"type":"microphone"},{"type":"text-to-speech circuit","inputs":[[1,0,"3c561f555f5b5943585f2e"]]},{"type":"concatenator","name":"MSG Heard Speech","inputs":[[1,0,"Wand Drone 3.0"],[2,0," says, "],[3,0,"Lauser McMauligan says, I love memes!"]]},{"type":"memory chip","name":"MEM Null"},{"type":"not gate","name":"NOT Pull Toggler","inputs":[[1,0,0]]},{"type":"light"},{"type":"video camera circuit","inputs":[[1,0,"wand drone 3.0"],[2,0,1]]}],"wires":[[[1,"I",1],[6,"O",1]],[[1,"I",2],[16,"O",1]],[[1,"O",1],[16,"I",1]],[[1,"A",1],[16,"A",2]],[[2,"I",1],[6,"O",1]],[[2,"I",1],[15,"O",1]],[[2,"O",1],[3,"I",1]],[[2,"A",1],[7,"A",1]],[[2,"A",2],[3,"A",1]],[[5,"I",1],[5,"O",1]],[[5,"I",2],[14,"O",1]],[[5,"O",2],[6,"I",1]],[[5,"O",2],[13,"I",1]],[[5,"O",3],[10,"I",1]],[[5,"O",3],[9,"I",1]],[[5,"O",3],[8,"I",1]],[[5,"O",3],[11,"I",1]],[[5,"A",1],[14,"A",2]],[[5,"A",2],[8,"A",1]],[[6,"A",1],[8,"A",2]],[[6,"A",1],[9,"A",2]],[[8,"A",3],[9,"A",1]],[[9,"A",2],[15,"A",1]],[[9,"A",2],[16,"A",1]],[[9,"A",3],[10,"A",1]],[[10,"A",2],[13,"A",1]],[[10,"A",3],[11,"A",1]],[[11,"A",2],[17,"A",1]],[[12,"O",1],[14,"I",1]],[[12,"O",2],[14,"I",3]],[[12,"A",1],[14,"A",1]]]}
A handful of out of game bugs to be wary of:
Spoiler:
- Sometimes the custom ticker in the drone will stop sending pulses for no apparent reason, rendering it unable to move. Get a circuit debugger and set it to `number` and input `1`, then use it on the custom ticker's delay input. This should refresh it and make it work again.

- Reference encryption and decryption will randomly break on some rounds for no apparent reason. A fix is up but not merged yet. If this bug happens the drone simply won't be able to take refs from the wand and will break.

- The light made simple light circuit doesn't like to follow the drone if it moves after turning on the light. Sometimes you can kind of fix it by setting the wand to light mode and toggling the light off and back on, but it's really inconsistent.

Re: circuit craigslist: post your cool stuff you made

Posted: Sun Mar 25, 2018 2:15 pm
by Selea
About scan mode. You can remove scan mode.
Just make separate ntnet circuit, which works when you click on obj with ntnet. It will send "open" packet to this adress. Then make if condition in drone, which makes him to respond back to sender with ping packet. This way, if you click on door, door will be opened.and drone will respond with command to memorize it's adress. This way you can even use multiple drones in RTS like manner.
Also you possibly can remove pull mode. Make drone activate pulling claw only when distance to object lesser than 1.5. Not sure about it. You should try.

Re: circuit craigslist: post your cool stuff you made

Posted: Sat Mar 31, 2018 6:57 pm
by PKPenguin321
A bunch of my recent circuits are kind of too overpowered to share but here's a bit of a failed project

Dumpster Diver Drone
Seeks out delivery chutes to loop itself through disposals. Takes object name inputs from NTNet and tries to locate them to send them back.
Slap the remote with the drone to sync them, then throw the drone into disposals. Must go into the disposal recycler room and open the delivery chute windoor (and maybe deactivate the recycler since one time the drone managed to kill itself).
Designed to fetch refs from almost any range. When the drone finds something that the remote told it to, it will send the ref back to the remote.
Main flaws are that most refs can't really be used at a range since things like examiners have a range of 8 even if you have a ref, and that the locator device seems to have trouble finding things from inside disposal pipes. Still might have some value if you wanna tinker with it and make some kind of derivative.

Drone

Code: Select all

{"assembly":{"type":"type-a electronic drone","name":"Dumpster Diver","detail_color":"#CC4242"},"components":[{"type":"tesla power relay"},{"type":"locomotion circuit","inputs":[[1,0,5]]},{"type":"NTNet networking circuit","inputs":[[2,0,"Testing Lab vent pump #2"]]},{"type":"list advanced locator","name":"Chute Finder","inputs":[[1,0,["delivery chute",null,null,null]],[2,0,8]]},{"type":"list advanced locator","name":"Requested Ref Finder","inputs":[[1,0,["test","test","test"]],[2,0,8]]},{"type":"equal gate","name":"CM Locate","inputs":[[2,0,"locate"]]},{"type":"string exploder","inputs":[[1,0,"test,test,test"],[2,0,","]]},{"type":"custom ticker","name":"Locator Frenzy Ticker","inputs":[[2,0,0.1]]},{"type":"memory chip","name":"Mem 0","inputs":[[1,0,0]]},{"type":"memory chip","name":"Mem 1","inputs":[[1,0,1]]},{"type":"list constructor","name":"Delivery Chute List Maker","inputs":[[1,0,"delivery chute"]]},{"type":"slow ticker","inputs":[[1,0,1]]},{"type":"pick circuit","inputs":[[1,0,[]]]},{"type":"pick circuit","inputs":[[1,0,["/datum/weakref","/datum/weakref","/datum/weakref","/datum/weakref","/datum/weakref","/datum/weakref","/datum/weakref","/datum/weakref","/datum/weakref","/datum/weakref","/datum/weakref","/datum/weakref","/datum/weakref","/datum/weakref","/datum/weakref","/datum/weakref","/datum/weakref","/datum/weakref"]]]},{"type":"coordinte pathfinder","inputs":[[1,0,95],[2,0,127]]},{"type":"examiner"},{"type":"addition circuit","name":"X Rel To Abs","inputs":[[1,0,92],[2,0,2]]},{"type":"addition circuit","name":"Y Rel To Abs","inputs":[[1,0,3],[2,0,124]]},{"type":"global positioning system"},{"type":"addition circuit","name":"X Plus One","inputs":[[1,0,94],[2,0,1]]},{"type":"memory chip","name":"Mem X","inputs":[[1,0,94]]},{"type":"memory chip","name":"Mem X Plus One","inputs":[[1,0,95]]},{"type":"equal gate","inputs":[[1,0,92],[2,0,95]]},{"type":"reference encoder"}],"wires":[[[2,"I",1],[15,"O",1]],[[2,"A",1],[12,"A",1]],[[3,"I",1],[3,"O",1]],[[3,"I",2],[24,"O",1]],[[3,"O",2],[7,"I",1]],[[3,"O",3],[6,"I",1]],[[3,"A",1],[24,"A",2]],[[3,"A",2],[6,"A",1]],[[3,"A",2],[11,"A",1]],[[4,"I",1],[11,"O",1]],[[4,"O",1],[13,"I",1]],[[4,"A",1],[12,"A",1]],[[4,"A",2],[13,"A",1]],[[5,"I",1],[7,"O",1]],[[5,"O",1],[14,"I",1]],[[5,"A",1],[8,"A",1]],[[5,"A",2],[9,"A",1]],[[5,"A",2],[14,"A",1]],[[6,"A",2],[7,"A",1]],[[7,"A",2],[10,"A",1]],[[8,"I",1],[9,"O",1]],[[8,"I",1],[10,"O",1]],[[13,"O",1],[16,"I",1]],[[13,"A",2],[16,"A",1]],[[14,"O",1],[24,"I",1]],[[14,"A",2],[24,"A",1]],[[15,"I",1],[21,"O",1]],[[15,"I",1],[22,"O",1]],[[15,"I",2],[18,"O",1]],[[15,"A",1],[21,"A",2]],[[15,"A",1],[22,"A",2]],[[16,"O",3],[17,"I",2]],[[16,"O",4],[18,"I",1]],[[16,"A",2],[19,"A",1]],[[17,"I",1],[19,"O",1]],[[17,"O",1],[20,"I",1]],[[17,"O",1],[21,"I",1]],[[17,"A",1],[19,"A",2]],[[18,"I",2],[19,"O",2]],[[18,"A",1],[19,"A",2]],[[19,"O",1],[23,"I",1]],[[19,"A",2],[20,"A",1]],[[19,"A",2],[23,"A",1]],[[20,"O",1],[23,"I",2]],[[20,"O",1],[22,"I",1]],[[21,"A",1],[23,"A",2]],[[22,"A",1],[23,"A",3]]]}
Remote

Code: Select all

{"assembly":{"type":"type-b electronic assembly","name":"Dumpster Diver Remote","detail_color":"#CC4242"},"components":[{"type":"scanner"},{"type":"reference to string"},{"type":"tiny photovoltaic cell"},{"type":"NTNet scanner"},{"type":"NTNet networking circuit"},{"type":"memory chip","name":"MEM ID Buffer"},{"type":"text pad","name":"Wanted Ref - Separate With Comma"},{"type":"memory chip","name":"MEM MD Locate","inputs":[[1,0,"locate"]]},{"type":"memory chip","name":"MEM MD Scan","inputs":[[1,0,"scan"]]},{"type":"screen"},{"type":"concatenator","name":"MSG Linked","inputs":[[1,0,"Linked to "],[2,0,"circuit analyzer"]]},{"type":"memory chip","name":"MSG Sent","inputs":[[1,0,"Set a hit out on your entered items. I will ping you if I find anything."]]},{"type":"reference decoder"},{"type":"reference to string"},{"type":"concatenator","name":"MSG Found","inputs":[[1,0,"I found your desired ref. It is named "]]}],"wires":[[[1,"O",1],[4,"I",1]],[[1,"O",1],[2,"I",1]],[[1,"A",1],[2,"A",1]],[[1,"A",1],[4,"A",1]],[[2,"O",1],[11,"I",2]],[[4,"O",1],[6,"I",1]],[[4,"A",2],[6,"A",1]],[[5,"I",1],[6,"O",1]],[[5,"I",2],[7,"O",1]],[[5,"I",3],[9,"O",1]],[[5,"I",3],[8,"O",1]],[[5,"O",2],[13,"I",1]],[[5,"A",1],[9,"A",2]],[[5,"A",1],[8,"A",2]],[[5,"A",2],[13,"A",1]],[[6,"A",2],[9,"A",1]],[[7,"A",1],[8,"A",1]],[[7,"A",1],[12,"A",1]],[[9,"A",2],[11,"A",1]],[[10,"I",1],[11,"O",1]],[[10,"I",1],[12,"O",1]],[[10,"I",1],[15,"O",1]],[[10,"A",1],[11,"A",2]],[[10,"A",1],[12,"A",2]],[[10,"A",1],[15,"A",2]],[[13,"O",1],[14,"I",1]],[[13,"A",2],[14,"A",1]],[[14,"O",1],[15,"I",2]],[[14,"A",2],[15,"A",1]]]}

Re: circuit craigslist: post your cool stuff you made

Posted: Sat Mar 31, 2018 8:20 pm
by JStheguy
Hey guys here I am with another complicated mess with little practical value but some interesting theoretical value.
Basically, I've built a very rough approximation of some kind of modular mainframe computer using NTNet and some smoke and mirrors.
Say hello to the Peripheral Expansion Card Operating System!

Mainframe:

Code: Select all

{"assembly":{"type":"type-e electronic machine","name":"PECOS Mainframe","opened":1,"detail_color":"#E39751"},"components":[{"type":"light-emitting diode","name":"WXB Bay Insert"},{"type":"light-emitting diode","name":"WXB Bay Access"},{"type":"toggle button","name":"Toggle WXB Bay Insert"},{"type":"toggle button","name":"Toggle WXB Bay Access"},{"type":"button","name":"Pulse WXB Bays"},{"type":"scanner","inputs":[[1,0,1]]},{"type":"equal gate","name":"Is External Access Allowed","inputs":[[1,0,0],[2,0,1]]},{"type":"equal gate","name":"Is Bay 1 Full","inputs":[[1,0,0],[2,0,10]]},{"type":"grabber","name":"WXB Bay 1","inputs":[[2,0,0]]},{"type":"equal gate","name":"Is Bay 2 Full","inputs":[[1,0,0],[2,0,6]]},{"type":"grabber","name":"WXB Bay 2","inputs":[[2,0,0]]},{"type":"append circuit","name":"WXB Append Circuit A","inputs":[[1,0,[]],[2,0,[]]]},{"type":"append circuit","name":"WXB Append Circuit B","inputs":[[1,0,[]],[2,0,[]]]},{"type":"large list deconstructor","name":"WXB Large List Deconstructor","inputs":[[1,0,[]]]},{"type":"join text circuit","name":"WXB Join Text Circuit","inputs":[[1,0,[]],[2,0,"/"],[4,0,16]]},{"type":"string exploder","name":"WXB String Exploder","inputs":[[2,0,"/"]]},{"type":"NTNet networking circuit","name":"External NTNet Networking Circuit"},{"type":"equal gate","name":"Mainframe Busy Check","inputs":[[1,0,0],[2,0,1]]},{"type":"memory chip","name":"Set Mainframe Busy","inputs":[[1,0,1]]},{"type":"custom delay circuit","inputs":[[1,0,5]]},{"type":"memory chip","name":"Set Mainframe Not Busy","inputs":[[1,0,0]]},{"type":"memory chip","name":"NTNet Address Setter"},{"type":"string exploder","name":"External String Exploder","inputs":[[2,0,"/"]]},{"type":"list deconstructor","name":"External List Deconstructor","inputs":[[1,0,[]]]},{"type":"search circuit","inputs":[[1,0,[]],[2,0,"MsgBoard"]]},{"type":"sixteen multiplexer","inputs":[[1,0,0]]},{"type":"NTNet scanner"},{"type":"small memory circuit","name":"Intra-NTNet Data Transfer"},{"type":"NTNet networking circuit","name":"Internal NTNet Networking Circuit"},{"type":"concatenator","name":"Error Code 1 Concatenator","inputs":[[1,0,"ERROR CODE 1\n"],[3,0," does not exist."]]},{"type":"concatenator","name":"Error Code 2 Concatenator","inputs":[[1,0,"ERROR CODE 2\n"],[3,0," is not Wireless eXpansion Bus compatiable."]]},{"type":"large tesla power relay"}],"wires":[[[1,"I",1],[3,"O",1]],[[2,"I",1],[4,"O",1]],[[3,"O",1],[9,"I",2]],[[3,"O",1],[11,"I",2]],[[4,"O",1],[7,"I",1]],[[5,"A",1],[8,"A",1]],[[6,"O",1],[9,"I",1]],[[6,"O",1],[11,"I",1]],[[6,"A",1],[7,"A",1]],[[7,"A",2],[8,"A",1]],[[8,"I",1],[9,"O",3]],[[8,"A",2],[10,"A",1]],[[8,"A",3],[9,"A",1]],[[9,"O",4],[12,"I",1]],[[9,"A",2],[12,"A",1]],[[10,"I",1],[11,"O",3]],[[10,"A",3],[11,"A",1]],[[11,"O",4],[12,"I",2]],[[11,"A",2],[12,"A",1]],[[12,"O",1],[13,"I",1]],[[12,"A",2],[13,"A",1]],[[13,"O",1],[15,"I",1]],[[13,"O",1],[14,"I",1]],[[13,"A",2],[15,"A",1]],[[13,"A",2],[14,"A",1]],[[14,"O",1],[26,"I",2]],[[14,"O",2],[26,"I",3]],[[14,"O",3],[26,"I",4]],[[14,"O",4],[26,"I",5]],[[14,"O",5],[26,"I",6]],[[14,"O",6],[26,"I",7]],[[14,"O",7],[26,"I",8]],[[14,"O",8],[26,"I",9]],[[14,"O",9],[26,"I",10]],[[14,"O",10],[26,"I",11]],[[14,"O",11],[26,"I",12]],[[14,"O",12],[26,"I",13]],[[14,"O",13],[26,"I",14]],[[14,"O",14],[26,"I",15]],[[14,"O",15],[26,"I",16]],[[14,"O",16],[26,"I",17]],[[15,"O",1],[16,"I",1]],[[15,"A",2],[16,"A",1]],[[16,"O",1],[25,"I",1]],[[17,"I",1],[22,"O",1]],[[17,"I",2],[29,"O",2]],[[17,"I",2],[31,"O",1]],[[17,"I",2],[30,"O",1]],[[17,"O",1],[22,"I",1]],[[17,"O",2],[23,"I",1]],[[17,"O",3],[28,"I",2]],[[17,"A",1],[29,"A",2]],[[17,"A",1],[31,"A",2]],[[17,"A",1],[30,"A",2]],[[17,"A",2],[18,"A",1]],[[18,"I",1],[21,"O",1]],[[18,"I",1],[19,"O",1]],[[18,"A",3],[19,"A",1]],[[19,"A",2],[22,"A",1]],[[19,"A",2],[20,"A",1]],[[20,"A",2],[21,"A",1]],[[22,"A",2],[23,"A",1]],[[23,"O",1],[24,"I",1]],[[23,"A",2],[24,"A",1]],[[24,"O",1],[25,"I",2]],[[24,"O",1],[31,"I",2]],[[24,"O",1],[30,"I",2]],[[24,"O",2],[28,"I",1]],[[24,"A",2],[25,"A",1]],[[25,"O",1],[26,"I",1]],[[25,"A",2],[26,"A",1]],[[25,"A",3],[30,"A",1]],[[26,"O",1],[27,"I",1]],[[26,"A",2],[27,"A",1]],[[27,"O",1],[29,"I",1]],[[27,"A",2],[28,"A",1]],[[27,"A",3],[31,"A",1]],[[28,"O",1],[29,"I",2]],[[28,"O",2],[29,"I",3]],[[28,"A",2],[29,"A",1]]]}
Basically, all this really is is that Domain Name Server I posted a while back, except instead of redirecting the user to various external servers via a list that has to be manually updated, it instead redirects the user to an NTNet enabled assembly inside the mainframe via a list that is automatically updated based on changes to what is stored.
The three buttons to operate it all are:
"Toggle WXB Bay Insert" - This basically toggles between whether the grabbers that actually hold the "expansions" will grab and store anything that is used on the mainframe, or whether it will eject an item in storage when anything is used on the mainframe.
"Toggle WXB Bay Access" - This toggles whether hitting the mainframe with an item will trigger the grabbers to do what is defined by the above toggle switch.
"Pulse WXB Bays" - This does exactly what you would think it does, it pulses the pulse pins on the grabbers as if you had whacked the mainframe with an item.

Remote Terminal:

Code: Select all

{"assembly":{"type":"type-f electronic assembly","name":"PECOS Remote Terminal","opened":1,"detail_color":"#E39751"},"components":[{"type":"tesla power relay"},{"type":"integrated clock"},{"type":"internal battery monitor"},{"type":"reference to string"},{"type":"number to string"},{"type":"concatenator","name":"Screen Concatenator A","inputs":[[1,0,"<br>| "],[3,0," | "],[5,0," | Battery: "],[7,0,"% | User: "]]},{"type":"concatenator","name":"Screen Concatenator B","inputs":[[2,0," | Mainframe ID: "],[4,0," |<br>>"],[6,0,"<br>"]]},{"type":"screen"},{"type":"sensor"},{"type":"NTNet scanner"},{"type":"reference to string"},{"type":"concatenator","inputs":[[2,0,"'s external network card scanned.\nNTNet address: "]]},{"type":"memory chip"},{"type":"text pad"},{"type":"NTNet networking circuit"},{"type":"local locator"},{"type":"reference to string"}],"wires":[[[2,"O",1],[6,"I",4]],[[2,"A",1],[12,"A",2]],[[2,"A",1],[15,"A",2]],[[2,"A",2],[3,"A",1]],[[3,"O",3],[5,"I",1]],[[3,"O",4],[4,"I",1]],[[3,"A",2],[4,"A",1]],[[4,"O",1],[6,"I",2]],[[4,"A",2],[5,"A",1]],[[5,"O",1],[6,"I",6]],[[5,"A",2],[6,"A",1]],[[6,"I",8],[17,"O",1]],[[6,"O",1],[7,"I",1]],[[6,"A",2],[7,"A",1]],[[7,"I",3],[13,"O",1]],[[7,"I",5],[14,"O",1]],[[7,"I",7],[15,"O",2]],[[7,"I",7],[12,"O",1]],[[7,"O",1],[8,"I",1]],[[7,"A",2],[8,"A",1]],[[9,"O",1],[10,"I",1]],[[9,"O",1],[11,"I",1]],[[9,"A",1],[10,"A",1]],[[10,"O",1],[12,"I",3]],[[10,"O",1],[13,"I",1]],[[10,"A",2],[11,"A",1]],[[10,"A",2],[13,"A",1]],[[11,"O",1],[12,"I",1]],[[11,"A",2],[12,"A",1]],[[13,"O",1],[15,"I",1]],[[14,"O",1],[15,"I",2]],[[14,"A",1],[16,"A",1]],[[14,"A",1],[17,"A",1]],[[15,"I",3],[17,"O",1]],[[15,"A",1],[17,"A",2]],[[16,"O",1],[17,"I",1]]]}
This is simply the end users access to the mainframe, commands are input from here and sent to the linked mainframe, and data received is rendered on screen. Of course, multiple terminals can be linked to a single mainframe. Actually connecting the terminal to the mainframe is done by whacking the terminal on the mainframe.

Besides the above core hardware, there are the expansions that allow the mainframe to do marginally useful work:

MsgBoard:

Code: Select all

{"assembly":{"type":"light wall-mounted electronic assembly","name":"MsgBoard","opened":1,"detail_color":"#789876"},"components":[{"type":"text pad","name":"Set Write Password"},{"type":"text pad","name":"Set Clear Password"},{"type":"tesla power relay"},{"type":"NTNet networking circuit"},{"type":"string exploder","inputs":[[2,0," ~"]]},{"type":"list deconstructor","inputs":[[1,0,[]]]},{"type":"list constructor","inputs":[[1,0,"write"],[2,0,"clear"],[3,0,"DUMMY 1"],[4,0,"DUMMY 2"]]},{"type":"search circuit","inputs":[[1,0,["write","clear","DUMMY 1","DUMMY 2"]],[2,0,"write"]]},{"type":"memory chip","name":"Board Memory Chip","inputs":[[1,0,"<br><br><br><br>


"]]},{"type":"four pulse demultiplexer","inputs":[[1,0,1]]},{"type":"equal gate","name":"Check Write Password","inputs":[[1,0,"password"],[2,0,"password"]]},{"type":"concatenator","inputs":[[1,0,"["],[3,0,"]: "]]},{"type":"append circuit","inputs":[[1,0,[]],[2,0,"[James Harland]: Test Updated Systems"]]},{"type":"len circuit","inputs":[[1,0,["[1186]: PECOS stands for the Peripheral Expansion Card Operating System","[1186]: PECOS is based on several assemblies working in tandem.","[1186]: test","[1186]: message","[1186]: Test Data","[1186]: nerd shit","[1186]: hello world","[James Harland]: Test Updated Systems"]]]},{"type":"greater than gate","inputs":[[1,0,8],[2,0,8]]},{"type":"delete circuit","inputs":[[1,0,["[1186]: PECOS stands for the Peripheral Expansion Card Operating System","[1186]: PECOS is based on several assemblies working in tandem.","[1186]: test","[1186]: message","[1186]: Test Data","[1186]: nerd shit","[1186]: hello world","[James Harland]: Test Updated Systems"]]]},{"type":"memory chip","name":"Board List Memory Chip"},{"type":"medium list deconstructor","inputs":[[1,0,[]]]},{"type":"concatenator","name":"Concatenator A","inputs":[[2,0,"<br>"],[4,0,"<br>"],[6,0,"<br>"],[8,0,"<br>"]]},{"type":"concatenator","name":"Concatenator B","inputs":[[1,0,"<br><br><br><br>"],[3,0,"
"],[5,0,"
"],[7,0,"
"]]},{"type":"equal gate","name":"Check Clear Password","inputs":[[1,0,"password"],[2,0,"password"]]},{"type":"memory chip","name":"Blank Memory Chip"}],"wires":[[[1,"O",1],[11,"I",2]],[[2,"O",1],[21,"I",2]],[[4,"I",1],[4,"O",1]],[[4,"I",2],[9,"O",1]],[[4,"O",2],[5,"I",1]],[[4,"O",3],[12,"I",2]],[[4,"A",1],[9,"A",2]],[[4,"A",2],[5,"A",1]],[[5,"O",1],[6,"I",1]],[[5,"A",2],[6,"A",1]],[[6,"O",1],[8,"I",2]],[[6,"O",2],[12,"I",4]],[[6,"O",3],[11,"I",1]],[[6,"O",3],[21,"I",1]],[[6,"A",2],[8,"A",1]],[[7,"O",1],[8,"I",1]],[[8,"O",1],[10,"I",1]],[[8,"A",2],[10,"A",1]],[[8,"A",3],[9,"A",1]],[[9,"I",1],[20,"O",1]],[[9,"A",1],[20,"A",2]],[[10,"A",2],[11,"A",1]],[[10,"A",3],[21,"A",1]],[[11,"A",2],[12,"A",1]],[[12,"O",1],[13,"I",2]],[[12,"A",2],[13,"A",1]],[[13,"I",1],[17,"O",1]],[[13,"O",1],[14,"I",1]],[[13,"O",1],[16,"I",1]],[[13,"O",1],[17,"I",1]],[[13,"A",2],[14,"A",1]],[[14,"O",1],[15,"I",1]],[[14,"A",2],[15,"A",1]],[[15,"A",2],[16,"A",1]],[[15,"A",3],[17,"A",1]],[[16,"O",1],[17,"I",1]],[[16,"A",2],[17,"A",1]],[[17,"I",1],[22,"O",1]],[[17,"O",1],[18,"I",1]],[[17,"A",1],[22,"A",2]],[[17,"A",2],[18,"A",1]],[[18,"O",1],[19,"I",1]],[[18,"O",2],[19,"I",3]],[[18,"O",3],[19,"I",5]],[[18,"O",4],[19,"I",7]],[[18,"O",5],[20,"I",2]],[[18,"O",6],[20,"I",4]],[[18,"O",7],[20,"I",6]],[[18,"O",8],[20,"I",8]],[[18,"A",2],[19,"A",1]],[[19,"O",1],[20,"I",1]],[[19,"A",2],[20,"A",1]],[[21,"A",2],[22,"A",1]]]}
This is a message board, which is to say it is a simple list of the couple most recent messages written to the board by the users who have the password for the write command. Includes the messages written using the system during it's first and only public test hidden within the memory.
Commands:
MsgBoard //Read what is on the message board.
MsgBoard/write ~message to add ~password //Adds a new message to the message board, if it is already full, the oldest is removed.
MsgBoard/clear ~filler text ~password //Removes everything.

ProCalc:

Code: Select all

{"assembly":{"type":"type-b electronic mechanism","name":"ProCalc","opened":1,"detail_color":"#999875"},"components":[{"type":"starter"},{"type":"tesla power relay"},{"type":"NTNet networking circuit"},{"type":"string exploder","inputs":[[1,0,"add ~1 ~1"],[2,0," ~"]]},{"type":"medium list deconstructor","inputs":[[1,0,["add","1","1"]]]},{"type":"large list constructor","name":"Command List Constructor","inputs":[[1,0,"add"],[2,0,"subtract"],[3,0,"multiply"],[4,0,"divide"],[5,0,"power"],[6,0,"round"],[7,0,"average"],[8,0,"random"],[9,0,"sqroot"],[10,0,"modulo"],[11,0,"sine"],[12,0,"cosine"],[13,0,"tangent"]]},{"type":"search circuit","inputs":[[1,0,["add","subtract","multiply","divide","power","round","average","random","sqroot","modulo","sine","cosine","tangent",null,null,null]],[2,0,"add"]]},{"type":"string to number","name":"String To Number A","inputs":[[1,0,"1"]]},{"type":"string to number","name":"String To Number B","inputs":[[1,0,"1"]]},{"type":"string to number","name":"String To Number C"},{"type":"string to number","name":"String To Number D"},{"type":"string to number","name":"String To Number E"},{"type":"string to number","name":"String To Number F"},{"type":"string to number","name":"String To Number G"},{"type":"sixteen pulse demultiplexer","name":"Command Pulse Demultiplexer","inputs":[[1,0,0]]},{"type":"addition circuit"},{"type":"subtraction circuit"},{"type":"multiplication circuit"},{"type":"division circuit"},{"type":"exponent circuit"},{"type":"round circuit"},{"type":"average circuit"},{"type":"random number generator circuit"},{"type":"square root circuit"},{"type":"modulo circuit"},{"type":"sin circuit"},{"type":"cos circuit"},{"type":"tan circuit"},{"type":"number to string"}],"wires":[[[1,"A",1],[6,"A",1]],[[3,"I",1],[3,"O",1]],[[3,"I",2],[29,"O",1]],[[3,"O",2],[4,"I",1]],[[3,"A",1],[29,"A",2]],[[3,"A",2],[4,"A",1]],[[4,"O",1],[5,"I",1]],[[4,"A",2],[5,"A",1]],[[5,"O",1],[7,"I",2]],[[5,"O",2],[8,"I",1]],[[5,"O",3],[9,"I",1]],[[5,"O",4],[10,"I",1]],[[5,"O",5],[11,"I",1]],[[5,"O",6],[12,"I",1]],[[5,"O",7],[13,"I",1]],[[5,"O",8],[14,"I",1]],[[5,"A",2],[7,"A",1]],[[6,"O",1],[7,"I",1]],[[7,"O",1],[15,"I",1]],[[7,"A",2],[8,"A",1]],[[8,"O",1],[16,"I",1]],[[8,"O",1],[17,"I",1]],[[8,"O",1],[18,"I",1]],[[8,"O",1],[19,"I",1]],[[8,"O",1],[20,"I",1]],[[8,"O",1],[21,"I",1]],[[8,"O",1],[22,"I",1]],[[8,"O",1],[23,"I",1]],[[8,"O",1],[24,"I",1]],[[8,"O",1],[25,"I",1]],[[8,"O",1],[26,"I",1]],[[8,"O",1],[27,"I",1]],[[8,"O",1],[28,"I",1]],[[8,"A",2],[9,"A",1]],[[9,"O",1],[16,"I",2]],[[9,"O",1],[17,"I",2]],[[9,"O",1],[18,"I",2]],[[9,"O",1],[19,"I",2]],[[9,"O",1],[20,"I",2]],[[9,"O",1],[21,"I",2]],[[9,"O",1],[22,"I",2]],[[9,"O",1],[23,"I",2]],[[9,"O",1],[25,"I",2]],[[9,"A",2],[10,"A",1]],[[10,"O",1],[16,"I",3]],[[10,"O",1],[17,"I",3]],[[10,"O",1],[18,"I",3]],[[10,"O",1],[19,"I",3]],[[10,"O",1],[22,"I",3]],[[10,"A",2],[11,"A",1]],[[11,"O",1],[16,"I",4]],[[11,"O",1],[17,"I",4]],[[11,"O",1],[18,"I",4]],[[11,"O",1],[19,"I",4]],[[11,"O",1],[22,"I",4]],[[11,"A",2],[12,"A",1]],[[12,"O",1],[16,"I",5]],[[12,"O",1],[17,"I",5]],[[12,"O",1],[18,"I",5]],[[12,"O",1],[19,"I",5]],[[12,"O",1],[22,"I",5]],[[12,"A",2],[13,"A",1]],[[13,"O",1],[16,"I",6]],[[13,"O",1],[17,"I",6]],[[13,"O",1],[18,"I",6]],[[13,"O",1],[19,"I",6]],[[13,"O",1],[22,"I",6]],[[13,"A",2],[14,"A",1]],[[14,"O",1],[16,"I",7]],[[14,"O",1],[17,"I",7]],[[14,"O",1],[18,"I",7]],[[14,"O",1],[19,"I",7]],[[14,"O",1],[22,"I",7]],[[14,"A",2],[15,"A",1]],[[15,"A",2],[16,"A",1]],[[15,"A",3],[17,"A",1]],[[15,"A",4],[18,"A",1]],[[15,"A",5],[19,"A",1]],[[15,"A",6],[20,"A",1]],[[15,"A",7],[21,"A",1]],[[15,"A",8],[22,"A",1]],[[15,"A",9],[23,"A",1]],[[15,"A",10],[24,"A",1]],[[15,"A",11],[25,"A",1]],[[15,"A",12],[26,"A",1]],[[15,"A",13],[27,"A",1]],[[15,"A",14],[28,"A",1]],[[16,"O",1],[29,"I",1]],[[16,"A",2],[29,"A",1]],[[17,"O",1],[29,"I",1]],[[17,"A",2],[29,"A",1]],[[18,"O",1],[29,"I",1]],[[18,"A",2],[29,"A",1]],[[19,"O",1],[29,"I",1]],[[19,"A",2],[29,"A",1]],[[20,"O",1],[29,"I",1]],[[20,"A",2],[29,"A",1]],[[21,"O",1],[29,"I",1]],[[21,"A",2],[29,"A",1]],[[22,"O",1],[29,"I",1]],[[22,"A",2],[29,"A",1]],[[23,"O",1],[29,"I",1]],[[23,"A",2],[29,"A",1]],[[24,"O",1],[29,"I",1]],[[24,"A",2],[29,"A",1]],[[25,"O",1],[29,"I",1]],[[25,"A",2],[29,"A",1]],[[26,"O",1],[29,"I",1]],[[26,"A",2],[29,"A",1]],[[27,"O",1],[29,"I",1]],[[27,"A",2],[29,"A",1]],[[28,"O",1],[29,"I",1]],[[28,"A",2],[29,"A",1]]]}
It's a fucking calculator, what more do you want?
Commands:
ProCalc/add ~A ~B ~C ~D ~E ~F ~G
ProCalc/subtract ~A ~B ~C ~D ~E ~F ~G
ProCalc/multiply ~A ~B ~C ~D ~E ~F ~G
ProCalc/divide ~A ~B ~C ~D ~E ~F ~G
ProCalc/power ~A ~B
ProCalc/round ~A ~B
ProClac/average ~A ~B ~C ~D ~E ~F ~G
ProCalc/random ~Range minimum ~Range maximum
ProCalc/sqroot ~A
ProCalc/modulo ~A
ProCalc/sine ~A
ProCalc/cosine ~A
ProCalc/tangent ~A

DataRelay:

Code: Select all

{"assembly":{"type":"light wall-mounted electronic assembly","name":"DataRelay","opened":1,"detail_color":"#9497AB"},"components":[{"type":"starter"},{"type":"tesla power relay"},{"type":"NTNet networking circuit"},{"type":"string exploder","inputs":[[2,0," ~"]]},{"type":"list deconstructor","inputs":[[1,0,["ntnet","279","open"]]]},{"type":"list constructor","inputs":[[1,0,"signal"],[2,0,"audio"],[3,0,"ntnet"]]},{"type":"search circuit","inputs":[[1,0,["signal","audio","ntnet",null]]]},{"type":"four pulse demultiplexer","inputs":[[1,0,0]]},{"type":"string to number","name":"Freq String To Number","inputs":[[1,0,"279"]]},{"type":"string to number","name":"Code String To Number","inputs":[[1,0,"open"]]},{"type":"integrated signaler","inputs":[[1,0,1457],[2,0,30]]},{"type":"memory chip","inputs":[[1,0,"Signal sent!"]]},{"type":"text-to-speech circuit","inputs":[[1,0,"279"]]},{"type":"memory chip","inputs":[[1,0,"Data transmitted!"]]},{"type":"small memory circuit"},{"type":"half-sec delay circuit"},{"type":"small memory circuit","inputs":[[2,0,"Data relayed to external network!"]]}],"wires":[[[1,"A",1],[6,"A",1]],[[3,"I",1],[3,"O",1]],[[3,"I",1],[15,"O",1]],[[3,"I",1],[17,"O",1]],[[3,"I",2],[12,"O",1]],[[3,"I",2],[14,"O",1]],[[3,"I",2],[15,"O",2]],[[3,"I",2],[17,"O",2]],[[3,"O",1],[17,"I",1]],[[3,"O",2],[4,"I",1]],[[3,"A",1],[12,"A",2]],[[3,"A",1],[14,"A",2]],[[3,"A",1],[17,"A",2]],[[3,"A",1],[15,"A",2]],[[3,"A",2],[4,"A",1]],[[4,"O",1],[5,"I",1]],[[4,"A",2],[5,"A",1]],[[5,"O",1],[7,"I",2]],[[5,"O",2],[9,"I",1]],[[5,"O",2],[13,"I",1]],[[5,"O",2],[15,"I",1]],[[5,"O",3],[10,"I",1]],[[5,"O",3],[15,"I",2]],[[5,"A",2],[7,"A",1]],[[6,"O",1],[7,"I",1]],[[7,"O",1],[8,"I",1]],[[7,"A",2],[8,"A",1]],[[8,"A",2],[9,"A",1]],[[8,"A",3],[13,"A",1]],[[8,"A",3],[14,"A",1]],[[8,"A",4],[15,"A",1]],[[9,"O",1],[11,"I",1]],[[9,"A",2],[10,"A",1]],[[10,"O",1],[11,"I",2]],[[10,"A",2],[11,"A",1]],[[11,"A",2],[12,"A",1]],[[15,"A",2],[16,"A",1]],[[16,"A",2],[17,"A",1]]]}
Just a simple expansion to allow for the remote terminals to send NTNet packets to hardware outside it's linked mainframe, as well as signaler signals and just straight up audio communications, assuming a radio is turned on and left next to the mainframe.
Commands:
DataRelay/signal ~frequency ~code //Sends a signaler signal.
DataRelay/audio ~text to say //Says some text, be sure to leave an active radio next to the mainfarme.
DataRelay/ntnet ~NTNet Address ~Data to send //Sends an NTNet packet

CompuTrack:

Code: Select all

{"assembly":{"type":"light wall-mounted electronic assembly","name":"CompuTrack","opened":1,"detail_color":"#E2E2E2"},"components":[{"type":"tesla power relay"},{"type":"NTNet networking circuit"},{"type":"global positioning system"},{"type":"number to string","name":"X Number To String"},{"type":"number to string","name":"Y Number To String"},{"type":"number to string","name":"Z Number To String"},{"type":"concatenator","inputs":[[1,0,"X: "],[3,0,"<br>Y: "],[5,0,"<br>Z: "]]}],"wires":[[[2,"I",1],[2,"O",1]],[[2,"I",2],[7,"O",1]],[[2,"A",1],[7,"A",2]],[[2,"A",2],[3,"A",1]],[[3,"O",1],[4,"I",1]],[[3,"O",2],[5,"I",1]],[[3,"O",3],[6,"I",1]],[[3,"A",2],[4,"A",1]],[[4,"O",1],[7,"I",2]],[[4,"A",2],[5,"A",1]],[[5,"O",1],[7,"I",4]],[[5,"A",2],[6,"A",1]],[[6,"O",1],[7,"I",6]],[[6,"A",2],[7,"A",1]]]}
An even simpler expansion, all it does is send it's GPS location when you enter the command "CompuTrack", in case someone tries to steal your crap mainframe under the impression it's a really big crit-cannon or something.

Also, here is some technical information if you feel like building on this shit:
Commands to the mainframe and data to be rendered on the terminal screen are transmitted on the "data to send string", the "secondary text" pin is used to transmit user identification data, in the default terminal's case it transmits the name of the person holding it.
The first part of the command where it goes "[name of the assembly]/" is scrubbed from the command before being passed on to the expansion. The rest of the command after that being delimited with " ~" is not required, but recommended for consistency's sake, unless planning to have multiple layered levels of delimiting, like is already done.

Re: circuit craigslist: post your cool stuff you made

Posted: Sat Mar 31, 2018 9:45 pm
by PKPenguin321
>Commands to the mainframe and data to be rendered on the terminal screen are transmitted on the "data to send string", the "secondary text" pin is used to transmit user identification data, in the default terminal's case it transmits the name of the person holding it.

Curious why you didn't just use the passkey field for user ID? That's kind of what it's for, and freeing up the secondary text pin to take the command while the main text pin takes data to be rendered could be a lot simpler

Re: circuit craigslist: post your cool stuff you made

Posted: Sat Mar 31, 2018 10:32 pm
by JStheguy
Because a passkey isn't remotely a way to identify an individual. It's a basically just the password for certain airlocks, so multiple people can have the same passkey because their IDs have the same access. Of course, their user ID just being their name is dead simple, it is just supposed to be a username, as can be seen in the only expansion that uses it right now. Actual password protection, if it is ever needed, will be handled by the hardware of the expansions that actually need a password protection scheme, like maybe some kinda mailing or document hosting system or something.
Also, having commands on the primary text and data to render on the secondary text would not make anything simpler. Packets being sent between terminals and mainframes are either Terminal>Mainframe, in which it only needs to send the command (as well as user info if need be), or Mainframe>Terminal, in which case it only needs to send text for the terminal to show.

Re: circuit craigslist: post your cool stuff you made

Posted: Tue May 01, 2018 8:38 pm
by PKPenguin321
This one is just too cool to not share.

Pointer Agent ID
Swipe any amount of IDs to add them to the access of the device.
Toggle the device on by pressing the button, then keep it in a bag or pocket.
Point at a door and the device will use all scanned IDs on it, attempting to open it. Literally just point at doors to open them.

Code: Select all

{"assembly":{"type":"type-f electronic assembly","name":"Pointer ID","opened":1,"detail_color":"#CC4242"},"components":[{"type":"card reader"},{"type":"append circuit","inputs":[[1,0,[]]]},{"type":"memory chip","name":"MSG Scanned","inputs":[[1,0,"New ID added."]]},{"type":"screen","inputs":[[1,0,"New ID added."]]},{"type":"advanced locator","inputs":[[1,0,"pointer"],[2,0,8]]},{"type":"toggle button","name":"Toggle Point Detector"},{"type":"custom ticker","inputs":[[1,0,1],[2,0,1.5]]},{"type":"examiner"},{"type":"global positioning system"},{"type":"addition circuit","name":"X Abs Getter","inputs":[[1,0,180],[2,0,0]]},{"type":"addition circuit","name":"Y Abs Getter","inputs":[[1,0,119],[2,0,7]]},{"type":"Tile pointer","inputs":[[1,0,180],[2,0,126]]},{"type":"tile analyzer"},{"type":"at circuit","inputs":[[1,0,["Research Division Access","the proximity checker","the pointer"]]]},{"type":"NTNet scanner"},{"type":"delete circuit","inputs":[[1,0,["/datum/weakref","/datum/weakref","/datum/weakref"]]]},{"type":"tenth-sec delay circuit"},{"type":"NTNet networking circuit","inputs":[[2,0,"open"]]},{"type":"list set circuit","inputs":[[1,0,[]]]},{"type":"at circuit","inputs":[[1,0,[]]]},{"type":"addition circuit","inputs":[[1,0,1],[2,0,1]]},{"type":"memory chip","name":"MEM 1","inputs":[[1,0,1]]},{"type":"tenth-sec delay circuit"},{"type":"tesla power relay"}],"wires":[[[1,"O",3],[2,"I",2]],[[1,"A",1],[2,"A",1]],[[1,"A",1],[3,"A",1]],[[2,"I",1],[19,"O",1]],[[2,"O",1],[19,"I",1]],[[2,"A",2],[19,"A",1]],[[3,"O",1],[4,"I",1]],[[3,"A",2],[4,"A",1]],[[5,"O",1],[8,"I",1]],[[5,"A",1],[7,"A",1]],[[5,"A",2],[8,"A",1]],[[6,"O",1],[7,"I",1]],[[8,"O",3],[10,"I",2]],[[8,"O",4],[11,"I",2]],[[8,"A",2],[9,"A",1]],[[9,"O",1],[10,"I",1]],[[9,"O",2],[11,"I",1]],[[9,"A",2],[11,"A",1]],[[9,"A",2],[10,"A",1]],[[9,"A",2],[12,"A",1]],[[10,"O",1],[12,"I",1]],[[11,"O",1],[12,"I",2]],[[12,"O",1],[13,"I",1]],[[12,"A",2],[13,"A",1]],[[13,"O",1],[14,"I",1]],[[13,"O",1],[16,"I",1]],[[13,"A",2],[14,"A",1]],[[14,"I",1],[16,"O",1]],[[14,"O",1],[15,"I",1]],[[14,"A",1],[17,"A",2]],[[14,"A",2],[15,"A",1]],[[15,"O",1],[18,"I",1]],[[15,"A",2],[20,"A",1]],[[15,"A",3],[16,"A",1]],[[16,"I",1],[16,"O",1]],[[16,"A",2],[17,"A",1]],[[18,"I",4],[20,"O",1]],[[18,"A",1],[20,"A",2]],[[19,"O",1],[20,"I",1]],[[20,"I",2],[22,"O",1]],[[20,"I",2],[21,"O",1]],[[20,"A",1],[23,"A",2]],[[20,"A",2],[21,"A",1]],[[20,"A",3],[22,"A",1]],[[21,"I",1],[22,"O",1]],[[21,"I",1],[21,"O",1]],[[21,"A",2],[23,"A",1]]]}
One thing of note: There were some complications that make this thing broken, but it's easily fixed if you swap the first 1/10th sec delay circuit for a 1 sec delay circuit. It can be really slow at opening doors though

Re: circuit craigslist: post your cool stuff you made

Posted: Wed May 02, 2018 11:32 am
by Not-Dorsidarf
So you’ve basically replicated the secondary function of an agent ID? Nice. Is the scanner ranged? (Ie can you lurk outside the HOPline and farm access as people hand the hop their ids?)

Re: circuit craigslist: post your cool stuff you made

Posted: Wed May 02, 2018 6:31 pm
by PKPenguin321
Not-Dorsidarf wrote:So you’ve basically replicated the secondary function of an agent ID? Nice. Is the scanner ranged? (Ie can you lurk outside the HOPline and farm access as people hand the hop their ids?)
No, sadly. As far as I'm aware, presently the only way to extract a passkey from an ID is with the card scanner, which must have cards manually swiped onto it.

Also the issue with the delay circuit I mentioned actually seriously cripples the device, making it take a really really long time to open some doors. I might take a look at it again later but right now it's sadly not as useful as I had hoped.

Re: circuit craigslist: post your cool stuff you made

Posted: Wed May 02, 2018 7:55 pm
by somerandomguy
I bet the concept could somehow be adapted to (once you input the first part of the key) try to open the same door using *every* access, no ids required (based off of the existing plaintext attack)

Re: circuit craigslist: post your cool stuff you made

Posted: Wed May 02, 2018 9:28 pm
by PKPenguin321
somerandomguy wrote:I bet the concept could somehow be adapted to (once you input the first part of the key) try to open the same door using *every* access, no ids required (based off of the existing plaintext attack)
It would take an incredible amount of time to open even one door, assuming you could even design such an attack in any efficient manner in the first place

Re: circuit craigslist: post your cool stuff you made

Posted: Wed May 02, 2018 9:34 pm
by somerandomguy
PKPenguin321 wrote:
somerandomguy wrote:I bet the concept could somehow be adapted to (once you input the first part of the key) try to open the same door using *every* access, no ids required (based off of the existing plaintext attack)
It would take an incredible amount of time to open even one door, assuming you could even design such an attack in any efficient manner in the first place
1/10 second per code * 150 codes = 15 seconds

Re: circuit craigslist: post your cool stuff you made

Posted: Wed May 02, 2018 9:35 pm
by PKPenguin321
Oh, I thought you meant actually generating the codes at runtime

Re: circuit craigslist: post your cool stuff you made

Posted: Wed May 02, 2018 10:15 pm
by somerandomguy
PKPenguin321 wrote:Oh, I thought you meant actually generating the codes at runtime
use other circuit to plaintext attack and get 1 passkey-length encryption key, put that into the opener circuit

Re: circuit craigslist: post your cool stuff you made

Posted: Wed May 02, 2018 10:52 pm
by DemonFiren
and this is why ics were a mistake

Re: circuit craigslist: post your cool stuff you made

Posted: Wed May 02, 2018 11:33 pm
by oranges
thought of the day

all combat related circuits should have heat generation, the only frame equipped to deal with heat generation should be machine frames.

This means combat circuits can only be static.

So they're still possible but their power is reduced

large circuit frames require anchoring

Re: circuit craigslist: post your cool stuff you made

Posted: Wed May 02, 2018 11:40 pm
by oranges
PK Penguin it woudl be good if you let me know of the overpowered circuits.

we can't balance this stuff unless we know what you're doing with it

Re: circuit craigslist: post your cool stuff you made

Posted: Wed May 02, 2018 11:49 pm
by oranges
I guess what I'm trying to say is there is some bad tasting medicine coming this way real soon

Re: circuit craigslist: post your cool stuff you made

Posted: Thu May 03, 2018 12:25 am
by PKPenguin321
Frankly there really aren't that many at all ever since throwers and weapon firers got nerfed. There's still grenade primers but you don't even need the circuits for that, signallers and grabbers actually work better since you don't have to manually slot the grenade.
The worst of the nerfs literally just happened and the only way to make a real combat drone is to give ot a gun which it can only fire so many times before being completely useless, at which point you're better off just shooting the gun yourself.

Re: circuit craigslist: post your cool stuff you made

Posted: Thu May 03, 2018 12:26 am
by PKPenguin321
So basically you guys already ruined combat drones, all of them are complete shit now. (Not that they were even that good before.)

Re: circuit craigslist: post your cool stuff you made

Posted: Thu May 03, 2018 7:52 am
by PKPenguin321
somerandomguy wrote:I bet the concept could somehow be adapted to (once you input the first part of the key) try to open the same door using *every* access, no ids required (based off of the existing plaintext attack)
Works but won't share it (not like you can use it without knowing and having the means to do the plaintext attack anyways though). Actually parsing all the keys to initialize it takes about a minute, but that only needs to be done once.
Pretty nifty but some doors are somewhat slow to open and any door that requires more than one access level to open won't work with it. (If you're reading this and thinking you'll replicate it, good luck! It's a real tough challenge)
I'm working on making the plaintext attack ingame with circuits for fun. Pretty nifty and I've got it all planned out in my head already. Might share if/when it gets removed (hoping it doesn't though because it's actually super fucking cool, really only barely more useful than just grabbing a toolbelt and hacking the doors open, and requires more knowhow than just manually hacking).

Re: circuit craigslist: post your cool stuff you made

Posted: Thu May 03, 2018 10:53 am
by oranges
also things like this
Image

Don't inspire any good will at all

Re: circuit craigslist: post your cool stuff you made

Posted: Thu May 03, 2018 8:35 pm
by PKPenguin321
oranges wrote:also things like this
[img]snip[/img]
Don't inspire any good will at all
Yeah, that's true. In hindsight I was paranoid, and this screenshot does lack context. Literal minutes after I did all that, selea himself talked to me and convinced me that I was misguided in my paranoia.
Not to mention it didn't matter anyways, because despite this rant:
- Ghost busting got removed (Understandable, was fun while it lasted but cant trust people not to abuse it)
- Self throwing got removed (RIP, you were too funny for this world)
- Weapon charging got removed (gun firers now useless)
- Firing/throwing from anywhere but the floor removed (vast majority of weapon circuits no longer work)
- Throwers are still on board to have damage removed (hasn't actually happened yet but once it does circuits won't really have a reliable method of damaging anymore at all)

Basically the reason I was paranoid is that so much shit got nixed at once and so many circuits that used these things (especially firers and throwers) just outright broke that it shook me. The screenshot above was a kneejerk reaction, and again, I've already since been convinced not to have that mindset.

And to restate, I don't believe there are many especially powerful circuits at the moment after the nerfs listed above. There is understandable paranoia that we're holding back some of the more "incredibly overpowered circuits" in our own interests.

To inspire goodwill, here are some nerfs you could do to break some of the more powerful circuits (I consulted a few of the more knowledgeable circuit people on these so this is the general consensus):
- Smoker circuits should have a delay between their pulse in and them actually creating smoke. Maybe a message along the lines of "smoke starts to billow out of [circuit]..." The reason this is in this list is because presently, smoke on demand is one of the most powerful things circuits offer after all the nerfs.

- Circuits can be implanted through cavity implant surgery. This isn't too strong, but grabbers work from inside of cavity implants, which allows them to be used as an undetectable pseudo-storage method. The recommended fix for this without breaking too many innocent circuits is to check up to 3 layers of contents that the grabber is in, and failing if any of them are a mob. If that's too hacky, it is probably preferable to just blacklist assemblies from being placed in cavity implants.

- Plaintext attacks to gain passkeys are powerful, and an issue for this already exists that makes it public. I personally don't believe this needs patching, as it is not as good as just manually hacking doors with tools, but excluding it from this list would feel dishonest.

- Some people complain that bolting doors/setting them to emergency access is too strong, but this is a point of contention, and fixing it without changing how door remotes work fundamentally seems difficult. I personally consider it fine, especially since you already need to have a means to gain passkeys through some other method to accomplish these.

- Pullers work from your bag and break grabs of aggressors. Kind of useless but unintended nonetheless. Some argue that this should stay just because it's neat. Making pullers not work from inside of containers would fix it.

- Hypo injector circuits can be stacked to an absurd degree and can each draw 30u of blood from a target. This allows them to severely debilitate (but not outright kill) people by sucking all their blood. These are surprisingly difficult to build, especially when the problem of emptying the blood back out comes into play, but their potential is still an issue nonetheless. The easy fix is to increase hypo injector complexity. The easier but less effective fix is to lower the amount they're able to draw to 15. The hardest but probably best solution is making is so that some circuits that stack get increasingly complex the more you stack, and applying this to hypo injectors. There is a lot of contention if this should even be patched because it's so difficult to do for admittedly weak returns.

These are the most powerful/borderline-exploit methods circuits still have after all the nerfs listed. If maintainers would like me to PM them clone-able code to test for themselves, feel free.

Re: circuit craigslist: post your cool stuff you made

Posted: Thu May 03, 2018 9:37 pm
by oranges
Thank you for this post

Just a couple of replies for some stuff while I'm at work

I'm not too worried about the plaintext attacks since currently NTNET only works on doors, but if that gets extended to a bunch of other stuff it could become absurdly broken.

Re: circuit craigslist: post your cool stuff you made

Posted: Fri May 04, 2018 8:28 pm
by Not-Dorsidarf
PKPenguin321 wrote:Frankly there really aren't that many at all ever since throwers and weapon firers got nerfed. There's still grenade primers but you don't even need the circuits for that, signallers and grabbers actually work better since you don't have to manually slot the grenade.
The worst of the nerfs literally just happened and the only way to make a real combat drone is to give ot a gun which it can only fire so many times before being completely useless, at which point you're better off just shooting the gun yourself.

cant you make a bunch of shooting circuits and have them follow you around like a swarm?

Re: circuit craigslist: post your cool stuff you made

Posted: Fri May 04, 2018 8:46 pm
by PKPenguin321
Not-Dorsidarf wrote:
PKPenguin321 wrote:Frankly there really aren't that many at all ever since throwers and weapon firers got nerfed. There's still grenade primers but you don't even need the circuits for that, signallers and grabbers actually work better since you don't have to manually slot the grenade.
The worst of the nerfs literally just happened and the only way to make a real combat drone is to give ot a gun which it can only fire so many times before being completely useless, at which point you're better off just shooting the gun yourself.

cant you make a bunch of shooting circuits and have them follow you around like a swarm?
Good luck getting enough guns to make that work
And even if you do, the more guns you add, the more work it is to unslot them, recharge them in a gun charger, reslot them, rewire them, and recalibrate them between volleys

Re: circuit craigslist: post your cool stuff you made

Posted: Sat May 05, 2018 12:32 am
by Not-Dorsidarf
PKPenguin321 wrote:
Not-Dorsidarf wrote:
PKPenguin321 wrote:Frankly there really aren't that many at all ever since throwers and weapon firers got nerfed. There's still grenade primers but you don't even need the circuits for that, signallers and grabbers actually work better since you don't have to manually slot the grenade.
The worst of the nerfs literally just happened and the only way to make a real combat drone is to give ot a gun which it can only fire so many times before being completely useless, at which point you're better off just shooting the gun yourself.

cant you make a bunch of shooting circuits and have them follow you around like a swarm?
Good luck getting enough guns to make that work
And even if you do, the more guns you add, the more work it is to unslot them, recharge them in a gun charger, reslot them, rewire them, and recalibrate them between volleys
Im picturing it more like an auto-revenge system that tases and insta-kills with a bunch of shotguns the nearest person to you when you die.

If thats possible, any warden worth his salt would let you have some guns in exchange for one

Re: circuit craigslist: post your cool stuff you made

Posted: Sat May 05, 2018 4:27 am
by PKPenguin321
Not-Dorsidarf wrote:
PKPenguin321 wrote:
Not-Dorsidarf wrote:
PKPenguin321 wrote:Frankly there really aren't that many at all ever since throwers and weapon firers got nerfed. There's still grenade primers but you don't even need the circuits for that, signallers and grabbers actually work better since you don't have to manually slot the grenade.
The worst of the nerfs literally just happened and the only way to make a real combat drone is to give ot a gun which it can only fire so many times before being completely useless, at which point you're better off just shooting the gun yourself.

cant you make a bunch of shooting circuits and have them follow you around like a swarm?
Good luck getting enough guns to make that work
And even if you do, the more guns you add, the more work it is to unslot them, recharge them in a gun charger, reslot them, rewire them, and recalibrate them between volleys
Im picturing it more like an auto-revenge system that tases and insta-kills with a bunch of shotguns the nearest person to you when you die.

If thats possible, any warden worth his salt would let you have some guns in exchange for one
oh no yeah you can definitely sorta do something like that, or at least you used to be able to. here's my circuit that got gun firers nerfed, I can share it now since it wont work anymore anyways:
Hands Free Taser V2
Calibration instructions: Open panel. Insert battery. Slap with gun you want to insert. Use in hand and push Sync (DO NOT push this button again later). Remove the weapon firing mechanism circuit and use the gun on it. Reinsert it and wire the examiner X and Y to the firer X and Y, and "On Examined" to the firer's "Fire".
Gun charging should happen automatically when firing. You can force enable it by pressing the gun charging button. Gun charging only occurs for about 10 seconds at a time (but is very fast: 26.8% is charged to a standard cell taser per use).
Say "A" to enable automatic firing, and anything else to disable it.
Automatic firing will automatically take aim at nearby random humans (excluding yourself).
You CAN still use it like a standard gun. Simply point it at something.
Works even if contained in the backpack and if you're stunned.

Code: Select all

{"assembly":{"type":"type-e electronic mechanism","name":"Hands Free Taser V2","detail_color":"#CC4242"},"components":[{"type":"advanced locator","inputs":[[2,0,8]]},{"type":"local locator"},{"type":"button","name":"Enable Gun Charger"},{"type":"button","name":"Sync"},{"type":"screen","inputs":[[1,0,"NOW FIRING"]]},{"type":"memory chip","name":"MSG Now Synced.","inputs":[[1,0,"Synced."]]},{"type":"reference to string"},{"type":"equal gate","name":"IF Refs Are Equal"},{"type":"custom ticker","name":"TICKER Firer","inputs":[[2,0,0.1]]},{"type":"microphone"},{"type":"equal gate","name":"IF Speaker Is Holder","inputs":[[1,0,"Lauser McMauligan"],[2,0,"Lauser McMauligan"]]},{"type":"equal gate","name":"IF Spoken Is Keyword","inputs":[[1,0,"Stop"],[2,0,"A"]]},{"type":"scanner"},{"type":"memory chip","name":"MSG Firing","inputs":[[1,0,"NOW FIRING"]]},{"type":"memory chip","name":"MEM Gun Ref"},{"type":"custom ticker","name":"TICKER Gun Charger","inputs":[[2,0,0.1]]},{"type":"power transmission circuit"},{"type":"tesla power relay"},{"type":"tesla power relay"},{"type":"tesla power relay"},{"type":"memory chip","name":"MEM 1","inputs":[[1,0,1]]},{"type":"ranged sensor"},{"type":"memory chip","name":"MEM 0","inputs":[[1,0,0]]},{"type":"custom delay circuit","inputs":[[1,0,100]]},{"type":"examiner","name":"Examiner - WIRE ME TO THE WEAPON FIRER"},{"type":"weapon firing mechanism","inputs":[[1,0,0],[2,0,-2]]}],"wires":[[[1,"I",1],[2,"O",1]],[[1,"O",1],[8,"I",1]],[[1,"O",1],[25,"I",1]],[[1,"A",1],[9,"A",1]],[[1,"A",2],[8,"A",1]],[[2,"O",1],[7,"I",1]],[[2,"O",1],[8,"I",2]],[[2,"A",1],[4,"A",1]],[[3,"A",1],[21,"A",1]],[[4,"A",1],[6,"A",1]],[[4,"A",1],[7,"A",1]],[[4,"A",1],[15,"A",1]],[[5,"I",1],[6,"O",1]],[[5,"I",1],[14,"O",1]],[[5,"A",1],[6,"A",2]],[[5,"A",1],[14,"A",2]],[[7,"O",1],[11,"I",2]],[[8,"A",3],[25,"A",1]],[[9,"I",1],[12,"O",1]],[[9,"A",1],[17,"A",1]],[[10,"O",1],[11,"I",1]],[[10,"O",2],[12,"I",1]],[[10,"A",1],[11,"A",1]],[[11,"A",2],[12,"A",1]],[[12,"A",2],[14,"A",1]],[[13,"O",1],[15,"I",1]],[[15,"O",1],[17,"I",1]],[[16,"I",1],[21,"O",1]],[[16,"I",1],[23,"O",1]],[[16,"A",1],[17,"A",1]],[[21,"A",1],[25,"A",2]],[[21,"A",2],[24,"A",1]],[[22,"O",1],[25,"I",1]],[[22,"A",1],[25,"A",1]],[[23,"A",1],[24,"A",2]],[[25,"O",3],[26,"I",1]],[[25,"O",4],[26,"I",2]],[[25,"A",2],[26,"A",1]]]}