Run it
Copy the script and paste it into your executor.
G2L = {};
G2L[] = .(, :().LocalPlayer:());
G2L[][] = ;
G2L[][] = ;
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[][] = ;
G2L[][] = ;
G2L[][] = Rect.(, , , );
G2L[][] = .ScaleType.Slice;
G2L[][] = .(, , );
G2L[][] = .(, );
G2L[][] = .(, , , );
G2L[][] = ;
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = ;
G2L[][] = .(, , , -);
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[][] = .ScrollingDirection.Y;
G2L[][] = ;
G2L[][] = .(, , , );
G2L[][] = .ElasticBehavior.Never;
G2L[][] = ;
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = ;
G2L[][] = ;
G2L[][] = .(, );
G2L[][] = .AutomaticSize.Y;
G2L[][] = .(, , , );
G2L[][] = .(, , );
G2L[][] = .(, , , );
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = ;
G2L[] = .(, G2L[]);
G2L[][] = .(, , , );
G2L[][] = ;
G2L[][] = .(, , , );
G2L[] = .(, G2L[]);
G2L[][] = .(, );
G2L[][] = .(, );
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[][] = ;
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = ;
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = .(, , );
G2L[][] = Font.(, .FontWeight.SemiBold, .FontStyle.Normal);
G2L[][] = .(, );
G2L[][] = ;
G2L[][] = .(, , , );
G2L[][] = .(, , , );
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = ;
G2L[] = .(, G2L[]);
G2L[][] = .(, );
G2L[] = .(, G2L[]);
G2L[][] = .(, );
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[][] = ;
G2L[][] = .(, , );
G2L[][] = .(, );
G2L[][] = .(, , , );
G2L[][] = .(, , , -);
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = ;
G2L[] = .(, G2L[]);
G2L[][] = .HorizontalAlignment.Center;
G2L[][] = .(, , , );
G2L[][] = ;
G2L[][] = .(, , , );
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[][] = ;
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = .(, );
G2L[][] = .(, , , );
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = .(, , , -);
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[][] = ;
G2L[][] = ;
G2L[][] = ;
G2L[][] = ;
G2L[][] = .(, , );
G2L[][] = Font.(, .FontWeight.Bold, .FontStyle.Normal);
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = .(, );
G2L[][] = .(, , , );
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = ;
G2L[][] = .(, , , );
G2L[] = .(, G2L[]);
G2L[][] = .LineJoinMode.Miter;
G2L[][] = ;
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[] = .(, G2L[]);
G2L[][] = .SizeConstraint.RelativeYY;
G2L[][] = ;
G2L[][] = Rect.(, , , );
G2L[][] = .ScaleType.Slice;
G2L[][] = ;
G2L[][] = ;
G2L[][] = .(, , );
G2L[][] = .(, , , );
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = .(, , , );
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[][] = ;
G2L[][] = ;
G2L[][] = ;
G2L[][] = ;
G2L[][] = ;
G2L[][] = .(, , );
G2L[][] = Font.(, .FontWeight.SemiBold, .FontStyle.Normal);
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = .(, , , );
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = ;
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[][] = ;
G2L[][] = ;
G2L[][] = ;
G2L[][] = ;
G2L[][] = .(, , );
G2L[][] = Font.(, .FontWeight.Bold, .FontStyle.Normal);
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = .(, );
G2L[][] = .(, , , );
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = ;
G2L[][] = .(, , , );
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[][] = ;
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[][] = ;
G2L[][] = ;
G2L[][] = ;
G2L[][] = .(, , );
G2L[][] = Font.(, .FontWeight.SemiBold, .FontStyle.Normal);
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = .(, , , );
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = ;
G2L[][] = .(-, , , );
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[][] = .(, , );
G2L[][] = .(, );
G2L[][] = ;
G2L[][] = .(, , , );
G2L[][] = ;
G2L[][] = .(, , );
G2L[][] = ;
G2L[][] = ;
G2L[][] = ;
G2L[][] = .(, , , );
G2L[] = .(, G2L[]);
G2L[] = .(, G2L[]);
G2L[][] = ;
G2L[] = .(, G2L[]);
G2L[][] = .(, );
G2L_REQUIRE = ;
G2L_MODULES = {};
(Module:)
ModuleState = G2L_MODULES[Module];
ModuleState
ModuleState.Required
ModuleState.Required = ;
ModuleState.Value = ModuleState.();
ModuleState.Value;
;
(Module);
G2L_MODULES[G2L[]] = {
Closure = ()
= G2L[]; module = {OBJECTS = {}, SETTINGS = {}, slotAmount = }
module.OBJECTS.HotBar = {}
module.OBJECTS.Inventory = {}
SETTINGS = module.SETTINGS
SETTINGS.DEFAULT_COLOR = .(, , )
SETTINGS.EQUIPPED_COLOR = .(, , )
SETTINGS.DISABLED_COLOR = .(, , )
SETTINGS.DEFAULT_IMAGEID =
SETTINGS.EQUIPPED_IMAGEID =
SETTINGS.DISABLED_IMAGEID =
SETTINGS.INVENTORY_KEYBIND = .KeyCode.Backquote
SETTINGS.DRAG_OUTSIDE_TO_DROP =
SETTINGS.SHOW_EMPTY_TOOL_FRAMES_IN_HOTBAR =
SETTINGS.SCROLL_HOTBAR_WITH_WHEEL =
SETTINGS.EQUIP_TOUCH_SENSITIVITY =
SETTINGS.OPEN_BUTTON =
SETTINGS.ALWAYS_SHOW_TOOL_NAME =
ContextActionService = :()
TextService = :()
UserInputService = :()
RunService = :()
player = :().LocalPlayer
playerGui = player:()
mouse = player:()
inventoryGui = .Parent.Parent
hotbar = inventoryGui.hotBar
inventoryFrame = inventoryGui.Inventory
toolButton = .Parent.toolButton
EnumKeys = {
.KeyCode.One,
.KeyCode.Two,
.KeyCode.Three,
.KeyCode.Four,
.KeyCode.Five,
.KeyCode.Six,
.KeyCode.Seven,
.KeyCode.Eight,
.KeyCode.Nine,
}
toolObjectMetatable = {}
toolObjectMetatable.__index = toolObjectMetatable
toolObjectMetatable:()
character = player.Character
character
self.Tool.Parent == player.Character
toolObjectMetatable:()
_, v (self.CONNECTIONS)
v:()
self.didRemoval =
(inventoryFrame.Visible module.SETTINGS.SHOW_EMPTY_TOOL_FRAMES_IN_HOTBAR) self.Frame.Parent ~= inventoryGui self.Frame.Parent ~= inventoryFrame.Frame
toolName = self.Frame:()
toolAmount = self.Frame:()
toolIcon = self.Frame:()
toolName toolAmount toolIcon
toolName.Text =
toolAmount.Text =
toolIcon.Image =
self.Frame.BackgroundColor3 = SETTINGS.DEFAULT_COLOR
self.Frame.Image = SETTINGS.DEFAULT_IMAGEID
self.Frame:()
self.Parent == self.Position
ContextActionService:(self.Position .. )
module.OBJECTS.HotBar[self.Position] =
self.Parent ==
module.OBJECTS.Inventory[self.Tool.Name] =
self =
toolObjectMetatable:()
tool = self.Tool
frame = self.Frame
textureId = tool.TextureId
textureId == textureId ==
frame.toolName.Visible =
frame.toolIcon.Visible =
frame.toolIcon.Image =
frame.toolName.Visible = SETTINGS.ALWAYS_SHOW_TOOL_NAME
frame.toolIcon.Visible =
frame.toolIcon.Image = textureId
toolObjectMetatable:()
self.Parent == inventoryFrame.Frame hotbar
toolObjectMetatable:()
toolDescription = self.Tool.ToolTip
frame = self.Frame
toolDescription ==
descriptionFrame = .()
descriptionFrame.Name =
descriptionFrame.AnchorPoint = .(, )
descriptionFrame.Font = .Font.SourceSansSemibold
descriptionFrame.TextColor = BrickColor.()
descriptionFrame.TextSize =
descriptionFrame.BorderSizePixel =
descriptionFrame.BackgroundColor = BrickColor.()
descriptionFrame.ZIndex =
descriptionFrame.TextWrapped =
descriptionFrame.Parent = inventoryGui
corner = .()
corner.Parent = descriptionFrame
corner.CornerRadius = .(, )
textBounds = TextService:(toolDescription, descriptionFrame.TextSize, descriptionFrame.Font, .(, )) + .(, )
descriptionFrame.Size = .(, textBounds.X, , textBounds.Y)
descriptionFrame.Position = .(, frame.AbsolutePosition.X + (frame.AbsoluteSize.X / ), , frame.AbsolutePosition.Y - textBounds.Y - + )
descriptionFrame.Text = toolDescription
self.DescriptionFrame = descriptionFrame
:():(descriptionFrame, )
toolObjectMetatable:()
self.DescriptionFrame
self.DescriptionFrame:()
module:()
descriptionFrame = inventoryGui:()
descriptionFrame
descriptionFrame:()
module:(tool: Tool)
(toolParent)
_, toolObject (toolParent)
toolObject.Tool == tool
toolObject
(self.OBJECTS.HotBar) (self.OBJECTS.Inventory)
module:(tool: Tool)
toolObject = self:(tool)
toolObject toolObject.Position
module:()
toolName: = inventoryFrame.SearchBox.Text
toolName ==
_, toolObject (self.OBJECTS[])
toolObject.Frame.Visible =
toolName
_, toolObject (self.OBJECTS[])
toolObject.Frame.Visible = .(toolObject.Name:(), toolName:())
module:(unequipCurrentTool: boolean)
self.slotsLocked =
unequipCurrentTool
character = player.Character
humanoid = character character:()
humanoid
humanoid:()
module:()
self.slotsLocked =
module:()
self.slotsPositionLocked =
module:()
self.slotsPositionLocked =
module:(tool: Tool)
tool:() tool:()
length =
_, _ (module.OBJECTS.HotBar)
length +=
module:(tool, length == self.slotAmount , tool:())
module:(tool: Tool, parent: , position: number)
tool:(, )
position == -
parent =
position =
position parent ==
index = , self.slotAmount
self.OBJECTS.HotBar[index] ==
position = index
position hotbar:(position)
hotbar:(position):()
frame = toolButton:()
amount = tool:()
amount >
frame.toolAmount.Text = .. amount
frame.toolName.Text = tool.Name
frame.Parent = parent == inventoryFrame.Frame hotbar
frame.Name = parent == tool.Name position
frame.toolNumber.Text = parent == position
object = {}
(object, toolObjectMetatable)
object.Tool = tool
object.Frame = frame
object.Parent = parent
object.Position = position
object.Name = tool.Name
self.OBJECTS[parent][position == frame.Name position] = object
(_, inputState, inputObject)
inputObject inputObject.UserInputType ~= .UserInputType.Keyboard inputObject.UserInputType ~= .UserInputType.Touch
character = player.Character
humanoid = character character:()
humanoid
humanoid.Health <=
tool.Parent
inputState == .UserInputState.End
self.slotsLocked
object:()
humanoid:()
frame.BackgroundColor3 = SETTINGS.DEFAULT_COLOR
frame.Image = SETTINGS.DEFAULT_IMAGEID
module.currentlyEquipped =
tool.Enabled
humanoid:(tool)
module.currentlyEquipped module.currentlyEquipped.Parent
module.currentlyEquipped.BackgroundColor3 = SETTINGS.DEFAULT_COLOR
module.currentlyEquipped.Image = SETTINGS.DEFAULT_IMAGEID
module.currentlyEquipped = frame
frame.BackgroundColor3 = SETTINGS.EQUIPPED_COLOR
frame.Image = SETTINGS.EQUIPPED_IMAGEID
()
object:() tool.Enabled
module.currentlyEquipped module.currentlyEquipped.Parent
module.currentlyEquipped.BackgroundColor3 = SETTINGS.DEFAULT_COLOR
module.currentlyEquipped.Image = SETTINGS.DEFAULT_IMAGEID
module.currentlyEquipped = frame
frame.BackgroundColor3 = SETTINGS.EQUIPPED_COLOR
frame.Image = SETTINGS.EQUIPPED_IMAGEID
frame.BackgroundColor3 = SETTINGS.DEFAULT_COLOR
frame.Image = SETTINGS.DEFAULT_IMAGEID
module.currentlyEquipped =
()
tool.Enabled
frame.Image = SETTINGS.DEFAULT_IMAGEID
frame.BackgroundColor3 = SETTINGS.DEFAULT_COLOR
frame.ImageTransparency =
frame.toolIcon.ImageTransparency =
frame.toolName.TextTransparency =
frame.toolNumber.TextTransparency =
frame.toolAmount.TextTransparency =
frame.toolAmount.UIStroke.Transparency =
frame.toolName.UIStroke.Transparency =
frame.Image = SETTINGS.DISABLED_IMAGEID
frame.BackgroundColor3 = SETTINGS.DISABLED_COLOR
frame.ImageTransparency =
frame.toolIcon.ImageTransparency =
frame.toolName.TextTransparency =
frame.toolNumber.TextTransparency =
frame.toolAmount.TextTransparency =
frame.toolAmount.UIStroke.Transparency =
frame.toolName.UIStroke.Transparency =
()
()
object:()
object.CONNECTIONS = {}
object.CONNECTIONS.EnabledConn = tool:():(updateEnabled)
object.CONNECTIONS.ToolRemoved = tool.AncestryChanged:((_, newParent)
player (newParent == (newParent ~= player.Backpack newParent ~= player.Character))
object:()
tool:(, )
()
)
object.CONNECTIONS.NameChanged = tool:():(()
frame.toolName.Text = tool.Name
object.Name = tool.Name
)
object.CONNECTIONS.TextureIdChanged = tool:():(()
object:()
)
object.CONNECTIONS.AmountChanged = tool:():(()
amount = tool:()
amount >
frame.toolAmount.Text = .. amount
frame.toolAmount.Text =
)
object.CONNECTIONS.MouseEnter = frame.MouseEnter:(()
object.isGrabbed
object:()
)
object.CONNECTIONS.MouseLeave = frame.MouseLeave:(()
object:()
)
object.CONNECTIONS.GrabConn = frame.MouseButton1Down:(()
self.slotsPositionLocked
mouseEnd
mouseConn
newFrame
CellSize = inventoryFrame.Frame.Grid.CellSize
frameStartPosition = frame.AbsolutePosition
object:()
()
mouseEnd:()
mouseConn:()
object.isGrabbed =
droppedGuis = playerGui:(mouse.X, mouse.Y)
wasSwapped =
dropTool =
_, newSlot (droppedGuis)
newSlot:() (newSlot.Parent == hotbar newSlot.Parent == inventoryFrame.Frame)
newSlotObject = self.OBJECTS[newSlot.Parent == hotbar ][newSlot.Parent == hotbar (newSlot.Name) newSlot.Name]
newSlotObject == object
dropTool =
newFrame
newFrame:()
newSlotObject
wasSwapped =
object:()
newSlotObject:()
self:(newSlotObject.Tool, parent, position)
self:(tool, newSlotObject.Parent, newSlotObject.Position)
newFrame
newFrame:()
newSlot.Parent == hotbar
wasSwapped =
object:()
self:(tool, , (newSlot.Name))
parent == newFrame
newFrame:()
newSlot:()
newSlotObject
newSlotObject:()
object
object:()
newSlot:() newSlot == inventoryFrame wasSwapped parent ==
wasSwapped =
object:()
self:(tool, )
self:()
wasSwapped
newFrame
newFrame:()
frame.Parent = object:()
SETTINGS.DRAG_OUTSIDE_TO_DROP dropTool tool.CanBeDropped
character = player.Character
character
tool.Parent = character
RunService.RenderStepped:()
tool.Parent =
(frameStartPosition - .(mouse.X, mouse.Y)).Magnitude <= SETTINGS.EQUIP_TOUCH_SENSITIVITY
()
mouseEnd = UserInputService.InputEnded:((inputObject)
inputObject.UserInputType == .UserInputType.MouseButton1
inputObject.UserInputType == .UserInputType.Touch
()
)
()
object.isGrabbed
object.isGrabbed =
newFrame = toolButton:()
newFrame.toolName.Text =
newFrame.toolAmount.Text =
newFrame.toolNumber.Text = position
newFrame.Name = frame.Name
newFrame.Size = frame.Size
newFrame.Parent = object:()
frame.Size = CellSize
frame.Parent = inventoryGui
mousePos = .(mouse.X, mouse.Y)
frame.Position = .(, mousePos.X - (CellSize.X.Offset / ), , mousePos.Y - (CellSize.Y.Offset / ) + )
mouseConn = mouse.Move:(updateFramePos)
)
tool:(, )
parent == position
ContextActionService:(position .. , manageTool, , EnumKeys[position])
module
;
};
()
= G2L[];
StarterGui = :()
ContextActionService = :()
UserInputService = :()
player = :().LocalPlayer
backpack = player:()
camera = .CurrentCamera
StarterGui:(.CoreGuiType.Backpack, )
CustomInventoryGUI = .Parent
hotBar = CustomInventoryGUI.hotBar
Inventory = CustomInventoryGUI.Inventory
toolButton = .toolButton
inventoryHandler = (.SETTINGS)
()
index = , inventoryHandler.slotAmount
toolObject = inventoryHandler.OBJECTS.HotBar[index]
toolObject hotBar:(index) index <= inventoryHandler.slotAmount
frame = toolButton:()
frame.toolName.Text =
frame.toolAmount.Text =
frame.toolNumber.Text = index
frame.Name = index
frame.Parent = hotBar
()
index = ,
toolObject = inventoryHandler.OBJECTS.HotBar[index]
toolFrame = hotBar:(index)
toolObject toolFrame
toolFrame:()
hotBar:(index)
()
(_, inputState)
inputState == .UserInputState.Begin
Inventory.Visible = Inventory.Visible
currentState = Inventory.Visible
inventoryHandler:()
currentState
()
CustomInventoryGUI.openButton.Position = .(,)
CustomInventoryGUI.openButton.info.Text =
inventoryHandler.SETTINGS.SHOW_EMPTY_TOOL_FRAMES_IN_HOTBAR
()
CustomInventoryGUI.openButton.Position = .(,)
CustomInventoryGUI.openButton.info.Text =
inputState
index = inventoryHandler.slotAmount + , inventoryHandler.slotAmount
toolObject = inventoryHandler.OBJECTS.HotBar[index]
toolFrame = hotBar:(index)
toolObject
tool = toolObject.Tool
toolObject:()
tool:(, )
inventoryHandler:(tool)
toolFrame
toolFrame:()
()
inventoryHandler:()
(tool)
tool:()
inventoryHandler:(tool)
(character)
inventoryHandler.currentlyEquipped =
backpack = player:()
_, tool (backpack:())
tool:()
(tool)
backpack.ChildAdded:(newTool)
character.ChildAdded:(newTool)
()
viewPortSize = camera.ViewportSize
slotSize = .(hotBar.AbsoluteSize.Y, hotBar.AbsoluteSize.Y)
Inventory.Frame.Grid.CellSize = slotSize
hotBar.Grid.CellSize = slotSize
()
(); ()
(player.Character player.CharacterAdded:())
camera:():(updateHudPosition)
player.CharacterAdded:(reloadInventory)
Inventory.SearchBox:():(searchTool)
inventoryHandler.SETTINGS.SHOW_EMPTY_TOOL_FRAMES_IN_HOTBAR ()
inventoryHandler.SETTINGS.INVENTORY_KEYBIND ContextActionService:(, manageInventory, , inventoryHandler.SETTINGS.INVENTORY_KEYBIND)
inventoryHandler.SETTINGS.OPEN_BUTTON
CustomInventoryGUI.openButton.MouseButton1Down:(()
Inventory.Visible = Inventory.Visible
currentState = Inventory.Visible
inventoryHandler:()
currentState
()
CustomInventoryGUI.openButton.Position = .(,)
CustomInventoryGUI.openButton.info.Text =
inventoryHandler.SETTINGS.SHOW_EMPTY_TOOL_FRAMES_IN_HOTBAR
()
CustomInventoryGUI.openButton.Position = .(,)
CustomInventoryGUI.openButton.info.Text =
)
CustomInventoryGUI.openButton.Visible =
()
character = player.Character
character character:()
UserInputService.InputChanged:((input)
input.UserInputType == .UserInputType.MouseWheel inventoryHandler.SETTINGS.SCROLL_HOTBAR_WITH_WHEEL
direction = input.Position.Z
character = player.Character
humanoid = character character:()
toolEquipped = ()
toolPosition = inventoryHandler:(toolEquipped)
i=toolPosition + direction, direction < inventoryHandler.slotAmount, direction
toolObject = inventoryHandler.OBJECTS.HotBar[i]
toolObject humanoid
humanoid:(toolObject.Tool)
)
;
.(C_e);
G2L[], ;hey guy my script is universal. have fun is really help you on mobile @nahumho and @nahumonh is my account you can add on discord to support me :)

Universal