How to make tool in roblox studio
How to make tool in roblox studio
Tutorial:Making a Plugin
In Roblox, Plugins are tools created by developers. However, these tools can only be used in ROBLOX Studio, NOT in game. An example is Load Character, made by AlreadyPro. But, how is a plugin actually made? Tools were created by ROBLOX in order to make these studio-only features. Lets start.
Contents
Required Instances
Scripting
The Plugin object
All Plugins are ran by a Script. All LocalScripts are disabled in plugins. There is a special keyword that can ONLY be used in scripts managing plugins. This keyword is called ‘plugin’, and it returns a
Plugin object.
A Toolbar
The first thing you want to do is make a Toolbar. A Toolbar is an object that
Buttons are stored on. A toolbar can be made using the following code.
The name is displayed as the toolbar’s name. If a toolbar with the given name has already been created by another plugin that the user has installed, this function will return that toolbar instead of creating a new toolbar.
A Button
Now that we got our toolbar, we need a button on it. To create a button, we use the CreateButton() function of the toolbar.
In the code above, text is the text that is displayed if no iconName is given. tooltip is the text that shows when the button is hovered over, and iconName is the Content of the icon. Now we have our button, but we need to make it do something. In this example, we are going to make our button print «I was opened!» when it was opened and «I was closed!» when it was closed. ‘button’ comes with 1 function and 1 event. The function, called «SetActive» is a display function that will make it appear on/off, while the event, «Clicked» is fired when the button is clicked.
The Code
We are going to need a new variable, called «open», since ROBLOX does not record this for us.
Now, we will make our event hook up to our function.
Whenever the button is clicked, it will check to see what the variable «open» is, and it will invert it, and print the proper print statement.
How to make tool in roblox studio
On desktop, pressing a number key (1, 2, 3…) will equip a tool. Equipped tools can be dropped into the Workspace by pressing Backspace. It’s recommended that you turn Tool/CanBeDropped off so it is not possible to drop a tool, die, respawn and drop again to duplicate tools. On gamepads, LB and RB buttons will equip tools. You can disable activation via left click (or right trigger on gamepad) by setting Tool/ManualActivationOnly on. Doing so requires that you call Activate yourself through some sort of other user input.
Properties
CanBeDropped
Controls whether the player can drop the tool
Enabled
Relates to whether or not the tool can be used
Stores the Tool’s Grip properties as one CFrame
GripForward
One of the properties that specifies a Tool’s orientation in a character’s hand. This represents the R02, R12, and R22 values of the Grip CFrame’s rotation matrix
GripPos
The positional offset of a Tool weld matrix
GripRight
One of the properties that specifies a Tool’s orientation in a character’s hand. This represents the R00, R10, and R20 values of the Grip CFrame’s rotation matrix
GripUp
One of the properties that specifies a Tool’s orientation in a character’s hand. This represents the R01, R11, and R21 values of the Grip CFrame’s rotation matrix
ManualActivationOnly
The ManualActivationOnly property controls whether the Tool can be activated without executing Tool/Activate
RequiresHandle
Determines whether a tool functions without a handle
ToolTip
Controls the message displayed when the player’s mouse hovers over the tool in their backpack
Archivable
Determines if an Instance can be cloned using /Instance/Clone or saved to file.
ClassName
A read-only string representing the class this Instance belongs to
DataCost
The cost of saving the instance using data persistence.
A non-unique identifier of the Instance
Parent
Determines the hierarchical parent of the Instance
RobloxLocked
A deprecated property that used to protect CoreGui objects
SourceAssetId
archivable
className
Functions
Activate ( )
Simulates a click on a Tool
Deactivate ( )
Simulates the deactivation of a Tool
ClearAllChildren ( )
This function destroys all of an Instance ’s children.
Clone ( )
Create a copy of an object and all its descendants, ignoring objects that are not Instance/Archivable|Archivable
Destroy ( )
Sets the Instance/Parent property to nil, locks the Instance/Parent property, disconnects all connections, and calls Destroy on all children.
FindFirstAncestor ( string name )
Returns the first ancestor of the Instance whose Instance/Name is equal to the given name.
FindFirstAncestorOfClass ( string className )
Returns the first ancestor of the Instance whose Instance/ClassName is equal to the given className.
FindFirstAncestorWhichIsA ( string className )
Returns the first ancestor of the Instance for whom Instance/IsA returns true for the given className.
Returns the first child of the Instance found with the given name.
FindFirstChildOfClass ( string className )
Returns the first child of the Instance whose Instance/ClassName|ClassName is equal to the given className.
Returns the first child of the Instance for whom Instance/IsA returns true for the given className.
FindFirstDescendant ( string name )
GetActor ( )
Returns the Actor associated with the Instance, usually the first Actor ancestor
GetAttribute ( string attribute )
Returns the attribute which has been assigned to the given name
GetAttributeChangedSignal ( string attribute )
Returns an event that fires when the given attribute changes
GetAttributes ( )
Returns a dictionary of string → variant pairs for each of the Instance|Instance’s attributes
GetChildren ( )
Returns an array containing all of the Instance ’s children.
GetDebugId ( int scopeLength )
Returns a coded string of the Instance s DebugId used internally by Roblox.
GetDescendants ( )
Returns an array containing all of the descendants of the instance
GetFullName ( )
Returns a string describing the Instance ’s ancestry.
GetPropertyChangedSignal ( string property )
Get an event that fires when a given property of an object changes.
IsA ( string className )
Returns true if an Instance ’s class matches or inherits from a given class
IsAncestorOf ( Instance descendant )
Returns true if an Instance is an ancestor of the given descendant.
IsDescendantOf ( Instance ancestor )
Returns true if an Instance is a descendant of the given ancestor.
Remove ( )
Sets the object’s Parent to nil, and does the same for all its descendants.
Sets the attribute with the given name to the given value
Returns the child of the Instance with the given name. If the child does not exist, it will yield the current thread until it does.
Toolbox
The Toolbox contains a selection of models, images, meshes, audio, and videos made by Roblox or Roblox community members. The Toolbox also includes all of the models, images, meshes, audio, videos, and packages you’ve published or those published by articles/Group Games|groups you belong to.
About Roblox Models »
In Roblox development, the term “model” can refer to any game element, not just to parts, groups of parts, or a Model object. Because Roblox does not restrict what game elements can be published and shared, this mechanism is a useful way to create and share scripts, remote events, constraints, and other non-visible game elements.
Toolbox Sections
The Toolbox is organized by sections and categories:
A. Marketplace | |
---|---|
Models | Models published by the community. |
Images | Images published by the community. |
Meshes | articles/Mesh Parts|Meshes published by the community. |
Audio | articles/sounds and music|Audio published by the community. |
Plugins | articles/Intro to Plugins|Plugins published by the community. |
Videos | Curated videos published by the community. |
B. Inventory | |
---|---|
My Models | Models you have published or taken from the website’s library. |
My Images | Images you have published or taken from the website’s library. |
My Meshes | articles/Mesh Parts|Meshes you have published or taken from the website’s library. |
My Audio | articles/sounds and music|Audio you have published or taken from the website’s library. |
My Packages | Articles/roblox packages|Packages you have published. |
My Plugins | articles/Intro to Plugins|Plugins you have published or taken from the website’s library. |
My Videos | Videos you have taken from the website’s library. |
Group Models | Models published by groups you belong to. |
Group Images | Images published by groups you belong to. |
Group Meshes | articles/Mesh Parts|Meshes published by groups you belong to. |
Group Audio | articles/sounds and music|Audio published by groups you belong to. |
Group Plugins | articles/Intro to Plugins|Plugins published by groups you belong to. |
Group Packages | Articles/roblox packages|Packages published by groups you belong to. |
C. Recent | |
---|---|
Recent Models | Models you have used recently. |
Recent Images | Images you have used recently. |
Recent Meshes | articles/Mesh Parts|Meshes you have used recently. |
Recent Audio | articles/sounds and music|Audio you have used recently. |
Recent Videos | Videos you have used recently. |
D. Creations | |
---|---|
Models | Models you have published. |
Images | Images you have published. |
Audio | articles/sounds and music|Audio you have published. |
Meshes | articles/Mesh Parts|Meshes you have published. |
Plugins | articles/Intro to Plugins|Plugins you have published. |
Group Models | Models published by groups you belong to. |
Group Images | Images published by groups you belong to. |
Group Audio | articles/sounds and music|Audio published by groups you belong to. |
Group Meshes | articles/Mesh Parts|Meshes published by groups you belong to. |
Group Plugins | articles/Intro to Plugins|Plugins published by groups you belong to. |
Sorting and Searching
Item Inspection
A model, image, or mesh item can be closely inspected by hovering over its thumbnail and clicking the “magnify” icon.
Preview
The preview frame lets you see the item up close and, for 3D items like models and meshes, move the virtual camera around.
Action | Description |
---|---|
Left Mouse Button | Rotate around the item. |
Right Mouse Button | Pan (slide) left, right, up, or down. |
Mouse Scroll Wheel | Zoom in or out. |
Composition
In the lower-right corner of the preview frame, the composition button reveals the full object hierarchy of the item including meshes, scripts, animations, and more.
Info and Actions
Below the preview frame is additional info and context actions for the item:
Editing Assets
Assets which you created can be directly edited within Studio as follows:
How this site use cookies
This Platform uses cookies to offer you a better experience, to personalize content, to provide social media features and to analyse the traffic on our site. For further information, including information on how to prevent or manage the use of cookies on this Platform, please refer to our Privacy and Cookie Policy.
Introduction to Roblox Studio
Welcome to Roblox Studio! This tutorial explains the basics of Roblox Studio by building, playtesting, and publishing a simple platformer experience. A platformer, or «obby», is a game in which users navigate through a path of platforms while avoiding obstacles and clearing treacherous gaps.
Follow each section and learn how to:
Getting Started
Creating a New Experience
To create a new experience in Studio:
Open Studio. In the left-hand navigation, ensure that New is selected.
Under the All Templates tab, select the Baseplate template.
A new experience opens. In the viewport, a SpawnLocation object displays at the center of your camera view.
Moving the Camera
Now that your experience is open in Studio, click inside the viewport and move the camera around to get a better view. For keyboard and mouse controls, see the following table.
Control | Action |
---|---|
W | Moves the camera forward. |
S | Moves the camera back. |
A | Moves the camera left. |
D | Moves the camera right. |
Q | Moves the camera down. |
E | Moves the camera up. |
F | Focuses the camera on a selected part. |
Shift | In combination with any movement key, changes the camera speed. You can customize the camera speed within File > Studio Settings. |
Hold and drag the Right Mouse Button | Moves the camera view around. |
Mouse Scroll Wheel | Zooms the camera in or out. |
Building Your Experience
Working with Parts
Inserting Parts
There are four different types of parts that you can insert through the Parts section of the Model tab:
To insert a part:
In the menu bar, select the Model tab.
Navigate to the Parts section.
Under the Part icon, click the dropdown arrow. A dropdown menu displays.
From the dropdown menu, select a part. A new part appears in the viewport at the center of your camera view.
Moving Parts
The new part is the first platform that users jump to, so move it a little farther from the spawn location. Parts can move along the X, Y, and Z axes, which are color-coded:
Studs are Studio’s basic measurement unit. By default, parts move incrementally by snapping 1 stud at a time along the grid. Snapping is useful when positioning parts that should be exactly aligned with each other, such as the walls of a building. To move a part:
In the Tools section, select the Move tool, then select the part you want to move in the Workspace.
Click and drag the arrow that is pointing in the direction you want to move the part. The new part is the first platform users jump to, so move the part slightly away from the spawn platform to give users an easy first jump.
If you want to adjust or disable the snapping behavior, edit the Move field in the Snap to Grid section and move the part again.
You now have your first platform. To create an engaging course, consider changing the size and angle for each additional platform you insert.
As you insert and move parts, remember to move the camera to view your obby from multiple angles. Parts might not appear as you expect if you only look from one direction.
Scaling Parts
In the Tools section of the Model tab, select the Scale tool, then select the part you want to scale.
Click and drag a ball to scale the part in that direction.
Rotating Parts
By default, parts rotate by snapping 45В° at a time along the grid. Snapping is useful when you are rotating parts that should have edges that exactly align with each other, such as two halves of a roof on a building. To rotate a part:
In the Tools section of the Model tab, select the Rotate tool, then select the part you want to rotate.
Click and drag a circle to rotate the part in that direction.
If you want to adjust or disable the snapping behavior, edit the Rotate field in the Snap to Grid section and rotate the part again.
Anchoring Parts
Open the Explorer window. The Explorer window lists all objects in your experience. If the Explorer window isn’t visible, select the View tab and click the Explorer button.
In the Explorer window, select the part you want to anchor.
Open the Properties window. The Properties window lets you inspect and change properties for any selected object. If the Properties window isn’t visible, select the View tab and click the Properties button.
In the Properties window, find and toggle the Anchored property.
Customizing Colors and Materials
Customize the appearance of a part by changing its Color and Material properties. The Material of a part changes its physical traits and appearance to reflect real-word objects. For example, parts with Concrete material sink faster in water than parts with Plastic material because real-world concrete is heavier than real-world plastic.
To customize a part’s color and material:
In the Explorer window, select a part.
In the Properties window, click the color box to the left of the Color property. The Colors pop-up window displays.
Select a color, then click the OK button.
In the Material field, click on the existing material. A dropdown arrow displays.
Click the dropdown arrow. The material options display.
Select a material for the part.
Deleting the Baseplate
If a user were to play your experience right now and miss a platform, they would fall and safely land on the baseplate. You may want to provide a consequence when they make a mistake, such as forcing them to restart the obby.
If you delete the baseplate, the user’s character will fall below the Class.Workspace.FallenPartsDestroyHeight|height threshold where it is removed if they miss a jump. This causes the user to respawn at the spawn location. To delete the baseplate:
Inserting Assets
To insert an asset:
Under the Marketplace tab, click on the Search field and type anything you want to find.
Click on an asset. The asset displays within your experience.
Playtesting Your Experience
Playtest your obby to check that everything works and that you can reach the final platform. When you playtest your experience, consider its difficulty. If any jumps are too hard, users may get frustrated, but if every jump is too easy, they may get bored.
To playtest your experience:
Navigate to the menu bar.
Click the Play button.
While playtesting, you can use the same controls as a default Roblox experience:
Control | Action |
---|---|
W | Moves the camera forward. |
S | Moves the camera back. |
A | Moves the camera left. |
D | Moves the camera right. |
Spacebar | Your playable character jumps. |
Hold and drag the Right Mouse Button | Moves the camera view around. |
To stop playtesting:
Navigate to the menu bar.
Click the Stop button.
Publishing Your Experience
Publish your experience to the cloud to allow other users on Roblox to play it. To publish your experience:
Fill in the following fields:
Click the Create button. The Game Settings menu is now available for your experience.
From the Home tab, click the Game Settings button.
In the Permissions tab, choose which users can access the experience:
In the bottom-right corner, click the Save button.
In the upper-right corner of Studio, click the Share button. Various options display for sharing the experience with others.
Try playing your obby with friends and compete to reach the end of the course the fastest.
Congratulations on creating your first Roblox experience! To add more features to your obby and learn more about building immersive experiences on Roblox, check out the building and scripting tutorials.
Intro to Plugins
A plugin is a custom add-on to Studio which introduces new features above and beyond normal Studio functionality. You can either install community-made plugins or create your own.
Finding and Managing Plugins
You can find new plugins in the Toolbox by clicking the Marketplace tab and selecting Plugins from the menu.
Once installed, you can manage/update a plugin through the Manage Plugins button in the Plugins tab.
Creating New Plugins
In addition to using pre-built plugins, you can create your own plugins for a wide range of purposes. In this section, you’ll create a simple plugin that inserts a new script into ServerScriptService without the default “Hello world!” print function.
Saving a Plugin Script
Adding a Toolbar Button
Modifying Plugin Behavior
Supporting Undo/Redo
The exception with plugins is that they do not add new waypoints by default. If a plugin makes a change to a place and the user activates Undo, Studio will undo the last non-plugin action and everything the plugin did.
To make sure Studio can cleanly undo a plugin’s action: