What Btools does and why you need them to attach shapes
Btools is a Roblox plugin that lets you move, resize, and parent objects during gameplay without stopping to edit your code. When you want to attach a shape — like a sword, shield, or hat — to a player character, Btools lets you position it exactly where it needs to be, then lock that position into your game.
Without Btools, attaching a shape to a player means writing code to set the shape's parent and position every time the game runs. With Btools, you position the shape once visually, then copy the settings Btools creates. This is faster and more accurate than guessing coordinates.
The core process is: install Btools, use it to move your shape onto the player, set the shape's parent to the player's character, then copy the attachment data into your script so it stays attached when the game restarts.
Key Takeaways
- Btools is a free plugin you install from the Roblox Creator Marketplace that gives you move and resize tools while your game is running.
- You position the shape on the player using Btools' move tool, then change the shape's parent from Workspace to the player's character model so it moves with them.
- After positioning, you read the shape's Position and Rotation properties from the Properties panel and copy those values into a script that recreates the attachment every time the player spawns.
- The shape must be a single part or a model — if it is a model, you parent the whole model to the player, not individual parts.
- Test your attachment in a real game by spawning the player and checking that the shape stays in place and moves with the character.
Installing Btools from the Creator Marketplace
Open Roblox Studio and go to the Home tab. Click Toolbox on the left side. In the search box at the top of the Toolbox panel, type "Btools" and press Enter.
You will see a result called "Btools" with a green icon. Click it once to select it, then click the green Install button. Studio will add Btools to your plugins. You may need to restart Studio for the plugin to appear in your toolbar.
Once installed, you will see a new tab called Plugins at the top of Studio. Click it, and you will see the Btools buttons: Move, Scale, and Rotate. These are the tools you use to position your shape on the player.
Creating and positioning the shape before attaching it
In Studio, create the shape you want to attach. You can use a Part (Insert > Part) or build a model out of multiple parts. For this example, assume you are attaching a simple Part that will be a sword.
Place the shape somewhere in Workspace away from your player spawn point — do not put it inside the player yet. Make sure the shape is not anchored, because you need to be able to move it with Btools. If it is anchored, click it, go to the Properties panel, and uncheck the Anchored property.
Now start your game by clicking the green Play button. Your player will spawn into the game. Do not stop the game — you will position the shape while the game is running.
Using Btools to move the shape onto the player
While your game is running, click the Move button in the Plugins tab. Your cursor will change to a move cursor. Click the shape you created and drag it to the position on the player where you want it to appear — for a sword, this might be the player's right hand or hip.
Position the shape as precisely as you can. You can click and drag multiple times to fine-tune the position. If you need to rotate the shape as well, stop the game, click the shape in Workspace, and use the Rotate tool in the Plugins tab while the game is running again.
Once the shape is positioned exactly where you want it, stop the game by clicking the red Stop button. The shape will return to its original position in Workspace — this is normal. You have not attached it yet; you have only tested where it should go.
Parenting the shape to the player and recording its position
Now you need to tell the shape to follow the player. In the Explorer panel on the left, find your shape in Workspace. Right-click it and select Cut. Then expand your player's character model (usually called "Humanoid" or your player name), and right-click inside it. Select Paste Into.
The shape is now a child of the player's character. When the player moves, the shape will move with them — but it will be at the wrong position because you have not set its offset yet. Start the game again and use Btools to move the shape to the correct position relative to the player's body.
Once it is positioned correctly, stop the game. Click the shape in the Explorer, and look at the Properties panel on the right. Find the Position property (three numbers: X, Y, Z) and the Rotation property (also three numbers). Write these down or take a screenshot — you will need these numbers in your script.
Writing a script to attach the shape every time the player spawns
The shape you positioned will only stay attached if you tell the game to recreate that attachment every time the player respawns. You do this with a script.
In ServerScriptService, create a new Script. Paste this code:
local Players = game:GetService("Players") Players.PlayerAdded:Connect(function(player) player.CharacterAdded:Connect(function(character) local shape = Instance.new("Part") shape.Name = "AttachedShape" shape.Size = Vector3.new(1, 1, 1) -- change to your shape's size shape.Position = character.HumanoidRootPart.Position + Vector3.new(0, 0, 0) -- use your recorded Position shape.Parent = character end) end)
Replace the Position values with the numbers you recorded from the Properties panel. If your shape is a model instead of a single part, clone the model instead of creating a new Part. The key is that the shape's parent must be set to character, not Workspace.
Testing the attachment in your game
Start your game and spawn as the player. The shape should appear attached to your character at the position you set. Walk around and jump — the shape should move with you and stay in the same spot relative to your body.
If the shape is floating in the wrong place, stop the game, adjust the Position values in your script, and test again. If the shape is rotated wrong, add a Rotation property to your script with the values you recorded.
If the shape is not appearing at all, check that the script is in ServerScriptService and that the shape's parent is set to character, not Workspace. Also make sure the shape is not anchored — anchored parts do not move with the player.
Frequently Asked Questions
Can I attach a model with multiple parts instead of a single part?
Yes. Instead of creating a new Part in your script, use game.ServerStorage:FindFirstChild("YourModelName"):Clone() to copy your model and set its parent to the character. Make sure the model is stored in ServerStorage before the game runs.
Why does my shape stay in Workspace instead of moving to the player?
The shape's parent is still Workspace. You need to change its parent to the character model. In the Explorer, drag the shape from Workspace into the character folder, or use a script to set shape.Parent = character.
How do I make the shape rotate with the player's arm or hand?
Instead of parenting the shape to the whole character, parent it to a specific body part like character.RightHand or character.RightUpperArm. The shape will then follow that part's rotation automatically.
What if Btools is not showing up in my Plugins tab?
Restart Roblox Studio completely. If it still does not appear, uninstall it from the Toolbox and reinstall it. Make sure you are logged into your Roblox account in Studio.
Can I attach multiple shapes to the same player?
Yes. Repeat the process for each shape — position it with Btools, record its Position and Rotation, then create a new Instance in your script for each one. Set all of them to parent to the character.