Tools space a special instance used to implement weapons, wands, and other interaction tools. In this tutorial, you will do it learn exactly how to develop tools, whereby to put them in the video game hierarchy, and also how to create a simple tool script.

You are watching: How to make a gun on roblox

Creating a Tool

All tools begin as an empty container which holds every one of the instances that make up the tool, including parts, sound effects, and also the scripts which administer functionality.

Creating the device Container

To develop a brand-new tool container:

In the explorer window, hover over Workspace and also click the button.

Under the interaction section, pick Tool.


Inserting components or Meshes

Any parts or meshes included to the tool will be the version that football player see. Friend can develop swords, rocket launchers, magic wands, or practically any device you’d like!

Just like other models, tools can be made out of multiple parts. Because players will carry tools approximately (or swing lock wildly prefer a sword!), the tool’s parts need to be welded together using Weld constraints.

Confirm All components Are Non-AnchoredWhen constructing tools, make sure tool parts are no anchored. If any component of the device is anchored, football player will gain stuck in ar when equipping it.
Tools there is no PartsIt"s feasible to do a device without components or meshes! In this case, the tool simply becomes an list item that waits because that player input, like a magic spell that have the right to be cast by clicking another character or emotional the screen.

To make a tool that does not use a mesh or parts, look in the tool properties and un-check RequiresHandle.

Setting the device Handle

Tools the players lug must save a single component named Handle. The take care of is whereby the device will connect to the player’s hand.

For example the magic wand listed below is actually separation into three parts: the glow tip, the key body, and also the red handle. When a player equips the wand, they’ll host it in ~ whichever component is called Handle.


Troubleshooting HandlesOnly one part should be called Handle. If you have multiple parts referred to as Handle, the device will randomly pick one of them as the hand attachment point.The Handle component must it is in a direct child of the device container— it cannot be nested within a version or folder within the container.

Changing the tool Grip

If your tool is dragging ~ above the floor or dealing with backwards, you deserve to fix that by changing the tool’s grip properties.


Every device is different, so you’ll must experiment with an altering the values next to the GripForward, GripRight, and also GripUp properties till the tool looks correct.

Tool dragging ~ above ground
Tool facing backwards
Tool oriented correctly

Tools can likewise be balance out from the character’s hand v the GripPos property. This deserve to be useful when do a device that should appear to remainder on the player’s shoulder.

Default counter (0,0,0)
Tool balance out to shoulder

Customizing the device Icon

Tools the a player owns are stored in their Backpack. Top top screen, this is represented by one action bar which mirrors each device in the backpack.


Use the complying with properties to customize the tool’s appearance in the activity bar:

TextureID — The tool icon. Collection the picture ID for this residential property the same way as decals, image buttons, etc.ToolTip — The on-hover tooltip name.

Can/Can’t be Dropped

By default, a player can drop a device by pushing the Backspace key (delete on macOS). You can disable this alternative by setting the CanBeDropped residential property of the device to false. If CanBeDropped is false, pressing Backspace or delete will certainly return the device to the player’s backpack.

Adding tools to a Game

Once your device is set up, it have to be put in the appropriate area of her game’s object hierarchy.

Default starting Tool

If you want all players to begin out with a tool in your inventory, put it inside the StarterPack folder. When any type of player spawns, the tool will get replicated to their backpack.


Collectible Tool

A tool can be placed in the workspace if football player will be able to collect it together they explore. For example, you can place a super rocket launcher in a hard-to-reach area that your game world.


Earned/Purchased Tool

Some tools should be awarded when a player go something special, or offered for revenue in an in-game store. These should be placed inside ServerStorage and then cloned to the player’s backpack at the ideal time.


Bringing tools to Life

To make devices do amazing things in the game world, you’ll need to include scripts.

Tool-Specific Events

There are 4 tool-specific problems you can work v in a device scrip. These indicate the state that the tool and also the player’s input through it.

Tool/Equipped|Equipped Occurs once the player selects the tool from their backpack.
Tool/Unequipped|Unequipped Occurs as soon as the player autumn the device or switches tools.
Tool/Activated|Activated Occurs when the player start activating the device (clicks, taps, or presses A top top a gamepad).
Tool/Deactivated|Deactivated Occurs when the player stops the activation intake (releases the button or touch).

Although you can not need all four conditions when developing a tool, this code deserve to be offered as a an easy tool manuscript template:

Adding a basic Script

Here’s just how to add a straightforward server script (Script) to a tool. When equipped, the player will have the ability to click the screen to adjust night to day and vice-versa.

In the traveler window, hover over the tool container, click the and insert a Script.
Copy the following code and paste it right into your script.

local device = script.Parentlocal function onActivate()if game.Lighting.ClockTime >= 8 and game.Lighting.ClockTime Playtest your game, choose up the tool, and also then click almost everywhere in the game world. The moment of job should change from night to day and also vice-versa v each click!



Script vs. LocalScript

The above example uses simply a server script (Script), but most devices will require both a server script and a regional script (LocalScript) wherein each takes treatment of particular aspects of the tool’s behavior.

Remember these main point differences in between each manuscript type:

Script — Manages changes within the as whole game world, visible to all players, prefer unlocking a door, shoot an arrow, etc.LocalScript — Manages points that take place only top top the player’s computer/device, favor detecting precisely where the display is touched or clicked.

Here space some instance tools and the facets which would certainly be managed by one of two people a local script or a server script:

Tool neighborhood Script Server manuscript
Creator"s Wand Detects whereby the player touch or clicks on the screen. Creates a brand-new part at the place within the game world where the player touched or clicked.
Invisibility Cloak Temporarily renders the player invisible come all other players, while the coat is equipped.
Mega-Bow Detects exactly how long the player activates the tool (time between activation and also deactivation). Shoots a magical arrowhead with better or lesser power, depending upon the recognize activation time.

See more: Peyton Manning Wife: Who Is Peyton Manning Married To N Manning

Troubleshooting a ToolA tool can work perfectly in Studio, but not in a live game. If this occurs, remember these tips:Local scripts and also server scripts are separated by a “wall” so they can"t directly listen to each other. Because of this, you"ll should send a RemoteEvent end the wall surface to send messages between the two scripts.Make certain that each manuscript (Script or LocalScript) is taking care of exactly what it"s supposed to! evaluation the notes and examples above for clarification.For help on this topic, please view Remote Functions and also Events.

You need to now be familiar with designing tools, adding them to your game, and also writing scripts to offer them awesome powers!