How to make Gui Tool System?

I need a system to where if I click on a tool it will pop up a Gui telling me the name of my tool I equipped.
the tool cant go in my inventory or in my hot bar, it cant go in my hands (holding the tool.)
the tool I have needs to be able to unlock things such as doors.

example, I go up to a key I click on it and it pops up a Gui informing me that I have a key, then I find the door that I need to use my key on, (I click or walk up to the door), and it opens without me taking any tools out in my hand.

I’m asking this because I have a SKINNED MESH character that cant pick up tools (NO skinned mesh character cant do that. Unless scripted). NOTE: I do have a flashlight that IS ATTACHED to the Character and the Tool has a BONE that is inside the hand so I can equip the flashlight. that’s the only way I can equip a tool from my hot bar because I have it attached to me.

again this is a skinned mesh and the Character is ONLY ONE mesh not other meshes attached to it except the tool.

in simple terms, a tool that I find and equip but its not in my inventory and I can’t put it in my hand,(Because theirs no hand other than one mesh) it can only work when I go to an object that can be opened (a door for example).
(so Like an invisible tool that I can’t see or find in my inventory.)

note: I am not a scripter I don’t know how to script, I only scripted stuff from tutorials on the internet.

Please give videos on YT of a tutorial of what I am looking for if you can help.

3 Likes

just remove the tools touch transmitter then check if the tool gets touched or any other way you equip it and make a gui appear asking to confirm it

1 Like

its not that, because its a skinned mesh, and they can’t pickup tools even if its in the starter pack

basically the player is one mesh with no body parts, the only body parts are just the Bones nothing else.

You can check if the tool is in the backpack. That’s where player’s tools go when they’re in the hotbar/inventory.

If your player can’t pick up tools, you can probably weld a hitbox part to the character, connect to the Touched event, and check if the touched part is named “Handle” and is parented to a tool. If it is, add it to the player’s backpack.

Ex:

local hitbox -- set to the hitbox
local player -- set to the player

local backpack = player.Backpack

hitbox.Touched:Connect(function(hit)
    if (hit.Name == "Handle") and hit.Parent:IsA("Tool") then
        local tool = hit.Parent
        tool.Parent = backpack
    end
end)
1 Like

I’ve put together a system for what I think you are looking to do.

Client

I’ve made a model, with the client script to control the Gui. You can download it here.
UI.rbxm (8.2 KB). This goes in StarterGui.


I saw that you said you couldn’t pick up or hold a tool so I made server script to manage what tools a player has. This is probably what you’re going to modify the most. For this you’ll need to put a RemoteEvent inside ReplicatedStorage and name it ToolEquipped. This script itself can go in either workspace or ServerScriptService.
Server

local Remote = game:GetService('ReplicatedStorage'):WaitForChild('ToolEquipped')
local Players = game:GetService('Players')
local Tools = workspace.Tools
local PlayersToolsAquired = {}

Players.PlayerAdded:Connect(function(Player)
	PlayersToolsAquired[Player.UserId] = {}
end)
Players.PlayerRemoving:Connect(function(Player)
	table.remove(PlayersToolsAquired,table.find(PlayersToolsAquired,Player.UserId))
end)

for _,v in pairs(Tools:GetChildren()) do
	local MainPart = v:FindFirstChild('Main')
	if MainPart then
		MainPart:FindFirstChildWhichIsA('ClickDetector').MouseClick:Connect(function(Player)
			if not table.find(PlayersToolsAquired[Player.UserId],v) then
				table.insert(PlayersToolsAquired[Player.UserId],v)
				Remote:FireClient(Player,v)
			end
		end)
	end
end

This is what I had in mind for how the tools were going to be set up/orginized.

image

1 Like

yeah I know but I want the player to pick up a tool but instead of welding something a gui will pop up telling me I picked up a tool

You’d just need to tell when the tool enters the backpack.

You could use:

local player -- Player

local backpack = player.Backpack
backpack.ChildAdded:Connect(function(tool)
    print(player.Name.." got item "..tool.Name)
    --code to enable or create a UI element
end)

on the client.

1 Like

heres the thing, if the player can click on the tool (select it from hot bar as if they were holding it) then the tool would disappear (ik this bc I have tested tools in the inventory.)

1 Like

here is a video of me testing the system out, ty for making this. (The video has me explain in detail of what I am looking for.)

sorry if I sound aggressive, my mic is close to my mouth.

the video cut out so what I was saying after was that my friend made a system that didnt work out, but I later talk about how I need to have a system to where it can be used on doors and other things that I can have open like a safe that needs a key. Or wooden boars blocked off of a door that I can destroy with a tool.

how would I make a sysem that make it so I click on it and a gui pops up and I click on a door (a specific door not just any door) and it opens saying I used my key?

I’m writing a system for this for fun (you can have a copy if you’d like).


Basically, you need to do three things: First you need to check if the player has an item, then you need to do the interaction (door opening, item disappearing, etc), then you need to remove the item.

To check if the player has an item, you’ll need to store a list of items the player has somewhere. I’m using a folder inside the player. You can also use the backpack to store tools that represent each item.

Then use Folder:FindFirstChild(itemName) to see if the item exists inside the folder. If it does, preform the action and remove the item.

There are a lot of ways to add UI. You can create it on the client or you can add it on the server. Basically, add it to Player.PlayerGui.

1 Like

Okay, I will get right to that, I will be away from PC for today because I am busy. Also, what do you mean if the player has an item because I can’t check that because 1 the flashlight is attached to the character, and the tool’s bone is in the hand?

Also, the system is sort of a GUI tool system with the “equipped” tool that opens something.

But you can’t see it in your Hotbar or inventory.

So if the player already clicked on a key and the UI pops up saying you picked up the tool. then the player needs to just click on the door or thing that opens up and it opens saying the tool was used.

Also the player can have more than one item

1 Like

Items can be in two places: the backpack or the character (I think your flashlight is in the character, where equipped items go). There could be multiple items in the backpack. A problem is that your player can’t equip them or they get deleted. There aren’t really good ways to disable player’s ability to equip items without disabling the hotbar/backpack entirely.

I’m not sure where the system you have stores a list of items.


Edit:

@Officerbruh0987 –

I can’t message you because your messages are set to regular only, but the thing I’m working on is almost done. Currently it works with clickdetectors, parts (touch based), and proximity prompts. I’ll add notifications and more effects (the system is modular, so it’s pretty easy to add stuff. I’ll do doors, appearing things, un-anchoring things, and I already have destroying things).

horror game system
(The images and stuff are all customizable)

2 Likes

Yeah but you don’t need to disable the backpack thing. And yeah the flashlight is in the character bc it’s a tool. But im talking about being able to equip tools only when a tool on the ground is clicked it would pop up a GUI allowing me to open a door or something.

1 Like

I think that there can just be a custom GUI system that interacts with the doors so for example I click on a key and a gut tells me I have a tool, then I go to the specific door I need and I am able to unlock it.

1 Like

Another way is to script the character to be able to pick up things which will be very difficult because of my lack of knowledge about scripting

1 Like

That system can’t work bc the can’t be picked up so what im looking for is just the GUI to pop up and no tool in the inventory and hotbar.

The issue with it is your using a normal player where I am using a skinned mesh so it won’t work sadly.

It’s all GUI based. When the clickdetector/proximityprompt fires, a Configuration is added to a Folder in the player. When a Configuration is added to the Folder the GUI adds an icon for that specific item.

The interactable stuff then checks that folder to see if the player has the required items.

tl;dr;
It doesn’t need a character. I could reset and it would still work. I could also disable spawning and it would still work.

Edit:
The UI is slightly different than the regular UI for the toolbar:

image

Edit:

No need to give me credit.

Yeah

1 Like

Oh okay. Tysm for helping. May I use the system?

If so can you put instructions on how to modify, add an item, Etc.

I will give you full credit for it.