Garry's Mod

Garry's Mod

459 ratings
Guide to Wiremod (Basics)
By Skeleton Man
For the one who hasn't touched wiremod, or isn't farmiliar with how it works. This guide assumes you know how to play Gmod, if you don't know how to build or play Sandbox, you are the cancer that's killing Gmod and should leave immediately.
   
Award
Favorite
Favorited
Unfavorite
Installing Wiremod
There used to be a whole complicated system involving SVN's and zip files, but now you can just download Wiremod from the Workshop.
Here is the link to the Workshop version of Wiremod. Install it and restart your Garry's Mod.

http://steamcommunity.com/sharedfiles/filedetails/?id=160250458&requirelogin=true
The Basics of Wiremod
Wiremod runs on a system of inputs and outputs that essentailly allow you to create a minature computer or machine that can perform a certain task you so design it to do. Wiremod gives you much more control and ability to maniuplate your tools, provided you have the knowledge of how to use it.

The above paragraph probably means Gibberish to you, so ill make it simple to start.

With normal tools, you usually press a key on your keyboard to activate it. You can think of wiremod the same way, but you must place an input. In wiremod, a "1" means on, Active, or True, whereas a "0" means the opposite. Therefore, to get a, for instance, Wire Turret to fire, it has to have an input of 1 on it.
Do note, that in Wiremod's language, any value other than 0 will still activate the input that it is wired to. If your input has a value of 8675309 and is wired to a turret, then activated, the turret will still fire.

Press Q to open your Gmod menu. Navigate to the top right where the tabs are. In addition to the normal "Tools", "Options", and "Utilities", there should be a new tab named "Wire". If this tab is not here, you dun goofed.

There's going to be an assmaster load of tabs. Close all the tool tabs first so we can get an idea of what we'll be working with. For the basics, you're going to be working with "Wire - I/O", "Wire - Physics", and "Wire - Tools".

The first thing you're going to want to do is spawn a Wire Turret from the "Wire - Physics" tab. Adjust the settings however you like and spawn it anywhere you please. Next, from the "Wire - I/O" tab, spawn a wire Button, or a Numpad Input if you want to do it oldschool. Ensure that the On value is at least 1 and the Off value is 0. Don't worry about the "Output Entity" checkbox on the Button, it is for more advanced users and won't effect how the button works directly.

Once you have your desired Turret and form of input placed, we can introduce the tool you will use the most, the Wire Advanced tool, under "Wire - Tools". Select the tool and hover over your turret. A box should appear, with a green highlight to "Fire". Left click to select the input. Then go to your Numpad Input/Button and click on it. Highlight the appropriate output and left click again. Now press your button/Numpad input and the turret should start magically throwing bullets at stuff.

Congradulations, you now know more about wiremod than 80% of Gmod's 11-year-old community.

You may notice when you go to wire something else, it has a bracket after it, such as Text [STRING]. This indicates the datatype you must use to fill the feild. You cannot assign this input with something like a Number, 9. It must be in the format of a string, such as "9". There following are the supported Datatypes of Wire:
  • Number/Normal - A regular number that can contain any number of decimal points and be negative or positive. Not specially notated.

  • Angle - Not much different than a number, but is computed differently when it is input to another wire device, so it has to be diffrentiated from numbers. Not usually specially notated.

  • String - Text. Strings are usually surrounded by quotation marks (" ") to signify that it is a string and not another data type, such as "String Text" or "2934".

  • Vector - A vector is any combination of two to four numbers. Vectors output positions in the world, or on things such as Console Screens. The most common vector you should be using is a 3D vector, which has three points, X, Y and Z. Wire also supports 2D and 4D vectors, but the usefulness of these is limited to how good you are with mathematics. 2D vectors support X and Y while 4D vectors support X, Y, Z and W. Vectors are always surrounded by Parentheses () and the values are seperated by commas, such as Vector = (52,90.4,-4)

  • Entity - Any independent entity, such as a Prop, Player, Thruster, Turret, NPC, ect. Entities cannot often have operations performed on them, usually they are used to get information from. You can however manipulate props remotely using Expression 2. Entities are usually something along the line of [27] "prop_physics". The bracketed number is the Entitiy's ID.

  • Table/Array - Not often used in regular wiremod because they are difficult to maniupulate effectively without the help of Expression 2. These two datatypes hold large amounts of information, and can usually contain any form of data or combination of the forms. Tables can hold other Tables, but not arrays. Arrays can hold neither other tables nor other arrays. Arrays and Tables list their data differently. Arrays have a number index to store their data, and will be displayed such as Array = {1 = 9} {2 = "text"} {3 = 35} {4 = [25] npc_alyx} and so on. Tables however do not numerically index their data and simply store it outright.
Tools - Wire I/O
In these sections ill overview each tool, how it functions, what it can be used in creating, and any other tidbits of information you might need.

Adv. Input
An Advanced Input. Use the sliders to determine the Maximum/Minimum value the input can reach, the value the input will start at, and how fast the input changes measured in units/second. Useful for making vehicles as you can control the acceleration and top speeds.

Advanced Pod Controller
Another very good tool for making vehicles. Left Mouse places the controller, however the location is independent of its function. Use Right Mouse on the contoller then on a vehicle to link the two together. If it worked, the controller should turn from Red to Green when the seat is occupied.

The Controller will output a 1 if a specific key that it is wired to detect is being pressed by the player in the seat. The Controller supports a very wide number of keys, including Mouse 1/2, WASD, Flashlight, Reload, Space, Shift, and more. You can also inflict damage, eject people, or kill people in the pod that the Controller is linked to by wiring the pod to an input and the proper function.

Button
Most basic form of I/O, if the button is being used or has been toggled, it will output its on value. Else, it will output its off value.

Constant Value
A chip that spawns a set of static data for use in gates or contraptions. It can hold up to 20 of any combination of Angles, Numbers, Vectors, or Strings. Good for making forcers that are always on.

Dual Input
A curious peice of equipment in the fact of why it is here. Essentially, it is a double button. If you press Key 1, it outputs Value 1. If you press Key 2, it outputs Value 2. Else, it outputs the off value. Useful for making thrusters go the opposite direction if you were limiting the number of props you were using on a building.

Dynamic Button
Changes color based on its current state. It's pretty much a polished turd.

Eye Pod
When linked to a vehicle, it outputs the mouse coordinates of the person on the vehicle. Practical contraptions using it are often left to more experienced users.

Graphics Tablet
Much like an Eye Pod, but scratch the vehicle part. It will output the coordinates of the mouse position on the tablet.

Keyboard
Often left to advanced users, think of an Advanced Pod Controller that can track every key at once. Very difficult to use if you don't know what you're doing.

Numpad
As the name implies, this entity contains all the inputs of every key found on a numpad. Pressing a key on your numpad stimulates this entity, so use it if you run out of keys on your advanced pod or something.

Numpad Inputs/Outputs
Stimulates a numpad. With an input, if you press the key you have set on the input, it will output a 1, unless set otherwise. With the outputs, if you give the device a 1, it will stimulate the press of the corresponding key.

Plugs and Sockets
Used when you want to physically wire something together with your Gravity Gun or Use key, for athesteic or practical uses. An example, if you wanted to make a Gas Can plug into a generator, you could spawn several of the gas cans and only need one generator, effectively switiching out the cans. Any inputs wired to the plug are stored on it. Let's say we had A=3 and B=5. If the plug is attached to the socket, the values A and B on the socket now equal the values of A and B on the plug.

Pod Controller
Deprecrated. Use an Advanced Pod Controller, it's much easier.

Radio
Like the Plug/Socket combo, Radios are useful when you have two independent duplications, such as a Missle Launcher duplication and a Missle Duplication. A radio will send the values wired to it's transmit function to any radios on the same channel. Ticking the "secure" box will ensure only your radios can trigger the other radios you own.

Relay
I really have no ♥♥♥♥♥♥♥ clue how this thing works, if anyone wants to give me a suggestion, go for it.

Text Receiver
A curious device, if the text sent to it matches the text that it was built to receive, it will output a 1.

Two-Way Radio
Same as a regular Radio, however after manually pairing two radios using Mouse 2, only those two radios will be able to communicate with each other, however neither has to only send or only recieve data.

Vehicle Controller
No idea what this does, it probably isn't very useful anyways.
Tools - Wire Physics
Cam Controller
A device usually for advanced users, this will take the player's veiw it is connected to and shift it to the Position/Angle/Velocity/Direction that is specified, as long as Active is 1. Useful to place cameras where they can't be welded or placed normally.

Clutch
A device that controlls the rotational friction between two props that you choose. Can be used, for instance, between a wheel and a prop on a car to make a realistic brake.

Detonator
Similar to Dynamyte, it explodes when the input is 1.

Explosive
Spawns a special wire Explosive.
  • The trigger value dictates what number must be input to the explosive to cause it to detontate.
  • On Fire Time is the delay between the input being equal to the trigger value and the explosive detonating.
  • Delay After Explosion is the minimum required time needed before the explosive can be triggered again.
Forcer
One of my personal favorites, when supplied with an input and with the force ramped up, flings things away from it that get caught in the beam. If you set the force to Negative, you can pull stuff to you. Applying reaction force will push the forcer with equal force in the opposite direction if the beam is contacting something.

Grabber
Works much like a forcer with a negative input, however the grabber is much more reliable and steady at grabbing objects and keeping hold of them. You have the option to disable the gravity of the object that is under the influence of the grabber inorder to get a better hold.

Hoverball
Far more difficult to use than the normal hoverballs. It is usually advisable to spawn normal hoverballs and use Numpad Inputs to trigger them with wire. However, a noted advantage is Wire Hoverballs can be toggled on or off, allowing the creation of Air/Land vehicles.

Hoverdrive Controller
Another personal favorite, the Hoverdrive Controller, when supplied with an input of 1 to Jump, and a coordinate position, will teleport it and all props constrained to it to that location.

Hydralic
The most useful for making sliding doors. Left Click point 1, then point 2, then place the controller. Remember, if you wire a button to the Length, you must make the button's on value the exact length you want the hydralic to be. If the button is just 1 and 0, the hydralic will only extend one unit.

Igniter
Same as a Forcer or Grabber, but instead of moving stuff it sets it on fire. Fun fun fun.

Nailer
Not entirely sure what this does. It doesn't appear to be much.

Prop Spawner
The Forcer's best friend. Left click on a prop to change it into a wire prop spawner. Wire the first option on the spawner to an input, and you can spam props with the mashing of a button. Rig props to drop down onto your forcer beam to make an Oven Machinegun.

Thruster
We all know how these work. Just make sure you set the Maximum Thrust to very high, as well as the Minimum Thrust. Also, more effects!

Trail
Works like a normal trail, but instead of being attached directly to the entity, the trail comes off of the entity you spawn. Thus you can weld it to a multiude of things to make some cool ass spinning hubcaps or something. Make sure you set the Red, Green, Blue, Alpha, Length, Start Size, and End Size.

Turret
With the removal of the normal turret Stool, there's many less minges running around using turrets. Thus, you'll be one of the few and the proud who know how to use one. Throw bullets at things.

User
Whatever the beam is hitting, when the User is toggled, it is the equivalent of you pressing E on what has been hit by the beam. Extremely useful for DarkRP to use wiremod to unload guns from crates.

Vector Thruster
Usually left to the pros, this thruster will, instead of thrusting only forwards and backwards, thrust to a specific direction defined by the vector you input into it. Very useful to face objects on ballsockets or make guided weapons.

Weight
Essentially, a prop that you can change the weight of using wire. Sort of like a ballast.

Weld/Constraint Latch
When given an input of 1, it will weld the two props you select together. If the input is 0, it will unweld the props from each other. If you give the Input No Collide 1, it will toggle a Nocollide between the two props. Giving Strength a number will edit the amount of force the weld can take before it breaks. By default, it is 0, so the weld is unbreakable.

Wheel
Same as a regular wheel, but wire. I much prefer to use thrusters.

Winch
Much like a Hydralic, however instead of directly setting the legnth, you instead use inputs to allow it to extend and contract. Useful for drawbridges or doors.
Tools - Wire Tools
Debugger
A godsend for those making Expression 2, or otherwise troubleshooting your contraptions. Left clicking on any wire entity will add a debugging screen to your hud. It will show you the status of all inputs and outputs on that entity. Right clicking removes the entity, and reloading will clear all entities from your HUD.

Namer
Decent for organization in large wire contraptions, or for naming your buttons. When used on a wire entity, instead of saying the default name, I.E "Wire Button", it will be replaced by the text you choose. Therefore, you can name your gates and buttons to keep track of what controls what.

Wire (Legacy)
The old wiring tool. Is much less preferable to the Wire Advanced Tool because it doesn't show all inputs or outputs when you go to wire something, it only shows the one you have selected.

Wire Advanced
The bread and butter of wiremod, no matter what you do, you will always be using this tool. Is used to tell wire entities what inputs or outputs they are controlling.

Wirelink (Depecrated)
Useless tool, mainly used for Expression 2. The function of it is supported by the Wire Advanced tool, so ignore it.
Tools - Wire Detection
These gates often, instead of manipulating the enviorment around them, give your wire entities information about it.

Adv. Entity Marker
Usually left for the more experienced users, this tool can mark and store multiple entities to it for recalling later.

Damage Detector
Just what it says on the tin. The Damage Detector will report wether or not a prop has received any form of damage, and if so it outputs a 1. In addition, it can also detect the type of damage as well, so you can differentiate between player-made bullet damage or damage that might be caused by your props colliding. The Detector will still work even if the props are incapable of being destroyed.

Entity Marker
Same as the Advanced Entity Marker, but it only keeps track of one entity that you link with Mouse 2. You can unlink the entity using Reload.

GPS
Incredibly useful tool, it outputs the coordinate position it is at. Useful for making Teleporters with the Hoverdrive controller or getting the distance from you to another prop.

Gyroscope
Another useful tool, outputs the current rotation the entitiy is at. Very useful for Aircraft to get pitch and roll indicatiors.

Laser Pointer Receiver
To be used in conjunction with the Laser Pointer SWEP from the Weapons menu. It will output the position that the laser is hitting whenever you activate it in your hand.

Ranger
Essentially, a tool that shoots a beam and gets information about what it hits, Including Distance, Velocity, Angles, Position, Color, Steam ID's, and Entity ID's. However most of those functions are for advanced wiring contraptions.

Speedometer
This tool will output the velocity of itself. Good for speed displays on vehicles. Splitting the outputs to X, Y, Z, is good for getting speed in only one direction. For example, if you used the Z speed, the speedometer would only register the velocity of it moving up and down.
Adding Angular Velocity outputs will also add the speed that the entity is rotating at to the total speed.

Water Sensor
Outputs a 1 if it is submerged in water, 0 otherwise. Pretty useless because most maps don't sport a lot of water.
Tools - Wire Beacon
Tools to be used for finding entities.

Beacon Sensor
Almost always used in conjunction with a Target Finder, the beacon sensor will output information of whatever entity is linked to it, much like a Ranger but it doesn't have to be hitting the entity.

Locator
Used in conjunction with a Target Finder. It acts like an entity, so you can always find it if you set target finders to find only

Target Finder
The bread and butter of Combat systems in wire. Set the minimum and maximum range the finder is allowed to get targets from, as well as the maximum number of targets it can have tagged at once. If you value your own health and your base's health, and also value the target finder not targeting whatever it is attached to, you may want to check the boxes to prevent it from targeting you and any of your props.
The NPC Filter can be filled with the model of any NPC. I.E npc_dog or npc_breen. You can use Asterisks (*This thing above 8) to make a "Wildcard" for your NPC's. Such as npc_zomb*. Doing this means that anything after the asteriks is irrelvant, it only has to match the npc_zomb part. This will pick up all NPC's that have npc_zomb in their names.
You can also choose to target Locators, Thrusters, Hoverballs, Vehicles, RPG's that have been fired, and props. The Prop model filter works much the same way as the NPC model filter. Just make sure you have the right directory to the prop by Right clicking on the prop in the spawn menu and using "Copy to Clipboard".
Painting your target will color it Red by default. You can also be a ♥♥♥♥ and make the target finder target only one person, or a small group of people.
Wire a key to "Next Target" to cycle the target finder to the next target in the list. Previous target does the same thing, in reverse. "Hold Target" will prevent the target finder from changing targets at all, even if the entity it's targeting gets deleted.

Waypoint
Links waypoints together. You can use the output of any one waypoint to return a list of all waypoints connected to that waypoint, including the ones that are connected in a series. If you connected 4 waypoints in a line, and used the first waypoint to return all the points, you would still get all 4 waypoints.
Tools - Wire Display
For your inner geek where you want to display numbers and data all over the place and make things look complicated when you show them to your friends. Cool as ♥♥♥♥.

7 Segment Display
A display much like that of a digital clock. Inputing values to the segments turns them on or off, so you can make numbers using it.

Console Screen
Displays text. Usually only used with E2 because of the additional support it gives.

Control Panel
A neat entity, it is an interactive way to set up to 8 different values. Wire the 8 values to each channel, and the output to your selected input. Use E on the screen to select the values (which are called channels) and then press E on the set button at the bottom to change the value.

Digital Screen
Used usually to draw individual Pixels. An arse to use without functions to draw for you.

EGP v3
Used only in conjunction with E2. Used to make interactive menus, music players, radars, ect.

Fix Render Targets
This tool resets wire screens if they break for some reason. Doesn't actually do anything other than that.

GPULib switcher
Takes any Text Screen, Olliscope, Console Screen, Digital Screen, ect, and changes what it outputs its text on to any prop you can spawn. Useful for making GIANT SIGNS.

Hud Indicator
Displays a multitude of different bars and information directly on your HUD. Can be linked to a vehicle so it only shows up when you get inside it. Also changes color based on its value. Useful for vehicle indicators that don't require the annoying placement of screens.

Indicator
Same as a HUD Indicator, but it doesn't display information directly on your hud, it just changes color based on its input.

Lamp
A Lamp that can be toggled with wire, however you can also control any of the values you would normally set with wire, such as the Feild of Veiw, Color, Texture, and the Brightness.

Light
Exactaly the same as a lamp, minus the FoV.

Oscilloscope
Died somehow, was impossible for me to work it, was told by someone else that the features of it were removed. In any case, it draws a dot where you tell it to, and leaves a trail behind it if the dot moves. Good for radars, ect.

Pixel
Almost exactaly the same as an Indicator, but you can control the color.

Screen
The most used tool for displaying normal numbers. Simple and very useful.

Sound Emitter
Once you find the sound you actually like, you can place one of these and play it to everyone around you. Wiring an input to A will play the sound so as long as A is true. Toggle will switch the sound on, and keep it on until A equals 1 again. The rest of the options are usually left for people who want to make ear rape. Also, the Volume is by default set to max, so don't waste your time trying to make a stupidly out of proportion sound.

Text Screen
Displays text, doesn't require you to use wire to manipulate it by default. Good for labling things.
Lesson 2 - Gates
So by now you know pretty much how everything works, the only question is getting it to work at the right time. This is where Wire Gates come into play. Gates manipulate the data you put into them based on what they're pre-programmed to do. Gates can be found under Wire - Control.

You're mostly going to Ignore: Trig Gates (sines, cosines, tangents, annoying stuff like that), Array Gates (♥♥♥♥ if I know how any of these work, let alone arrays), Bitwise gates (these involve the use of bitflags, which are like compact and efficient lists of Yes/No questions), Ranger Gates (You can easily get this information from the ranger itself), and Memory Gates (these are for super advanced stuff).

Dont get overwhelmed by the Entity or String gates. Mostly, you're going to want to use Logic Gates and Arithmetic Gates and Comparisan gates. These are the most basic of functions. Arithmetic gates allow you to Add, Multiply, Subtract, Divide, Exponent, Logarithmec, Round, Base, Return the constant Pi, and so on.

Logic Gates
Time for a lesson on logic. We already know that 1 is true and 0 is false. Each of the basic gates interprets these differently.
Not - Not A = 1. The output would be 0. All this does is invert the input. If the input is 0, it outputs 1.
And - If A = 1 and B = 1, then the Output = 1 as well. If you're using more than two values, ALL of the values must = 1 for the output to be 1.
Or - The opposite of the And gate. If A = 1 or B = 1, The output is 1. The only way you can get an output of 0 is if ALL of the inputs equal 0.

Time Gates
Very useful gates, they deal with, obviously, timing things. The two you will probably use the most is the Delay gate and the Smoother gate. For the Delay, Clk will turn it on, Delay is the number, in seconds, that the timer will last, Hold will stop the timer, but not reset it, and reset will comepletely reset the timer. It outputs the Time Elapsed, the Time Remaining, and the Output. The output is equal to one if the delay has sucsessfully elapsed all of its time. It will only change to zero after it resets.
For a Smoother, the input A is the value you want to smooth. The Rate is the number of units/second you want the smoother to add to its output. Wire the output of the smoother to whatever you're trying to smooth, such as a Hydralic.

Comparison Gates
These gates will compare two numbers and output a 1 if the statement is true, 0 if false. Most of these are self explanatory, except for the "Is in Range (Exclusive/Inclusive)". For these gates, If you use an inclusive gate, it will check to see if the number input into it is between A and B. If not, it will output a 0. If you use the Exclusive gate, it will invert the output. That is to say, if the number, C is between A and B, the output is 0.
Advanced Wiring/Expression 2
There's way more things you can do with wire, Especially if you get skilled at coding Expression 2. Expression 2 is essentially creating your own gate to maniupulate any inputs or outputs how you please. There will be a followup guide detailing how to use Expression 2. I've created it's own guide detailing how to work it.
http://steamcommunity.com/sharedfiles/filedetails/?id=164032069


Any Questions, Comments, or Help can be directed to lonesoldier62.
211 Comments
Birbenwagen Aug 14, 2024 @ 4:01pm 
Thanks Skeleton for this information, I will be a newbie wiremod dupe maker, thanks a lot with you handing out knowledge:steamthumbsup:
Skeleton Man  [author] Dec 10, 2023 @ 7:16pm 
Im not sure what your use case would be but if you would probably be doing effectively the same thing with wiremod chips to get entities then if you did it in E2. There's probably wiremod chips that can output a specific entity or group of entities.
Obsidian Plague Dec 10, 2023 @ 8:07am 
Is there a way to just simply store a list of entities without the use of e2?
samiller1401 May 20, 2023 @ 4:53pm 
how do I link two objects?
Yookarniy Babai Nov 18, 2022 @ 10:46am 
what is nailer
SniperGnome Sep 29, 2021 @ 6:42pm 
@RootB In e2 Do owner():keyPressed("Key You Won't to Use Here")

for Numpad keys do pad_1 or pad_enter.
for the delete key use delete
aPichu_ Apr 15, 2021 @ 8:45pm 
Is there a tutorial to make a prop spin around an area in a cycle?
76561198833998673 Mar 30, 2021 @ 2:12pm 
how do i edit an already placed cpu or atleast copy its data
Spongy Sponge Dec 12, 2020 @ 5:36am 
thanks for the guide I managed to build my first gimbal prop launcher :D
Skeleton Man  [author] Feb 16, 2020 @ 12:19am 
Sorry pal I would be just as lost as you. If I recall there was a keyboard controller entity somewhere in the wire items that you could use to map almost any key press by a player when connected but I didn't experiement with it much, and this was also several years ago.