I made a keybind visualiser similar to Dead Rails. It seems very nice and aesthetic so I decided to create my own. Feel free to use it or tweak it however you like. The button images use Roblox’s ProximityPrompt images.
How to use:
--Require the module inside!
local KeybindVisualiser = player.PlayerGui:WaitForChild("KeybindVisualiser")
local KeybindLink = require(KeybindVisualiser.KeybindLink)
local ButtonQ = KeybindLink.Create("Dash",Enum.KeyCode.Q,Enum.KeyCode.ButtonY)
local ButtonF = KeybindLink.Create("Block",Enum.KeyCode.F,Enum.KeyCode.ButtonB)
UserInputService.InputBegan:Connect(function(input, gp)
if gp then return end
if input.KeyCode == Enum.KeyCode.F then
ButtonF:Down()
elseif input.KeyCode == Enum.KeyCode.Q then
ButtonQ:Down()
end
end)
UserInputService.InputEnded:Connect(function(input, gp)
if gp then return end
if input.KeyCode == Enum.KeyCode.F then
ButtonF:Up()
elseif input.KeyCode == Enum.KeyCode.Q then
ButtonQ:Up()
end
end)
--ButtonQ:Rename("Super Dash") --Renaming Buttons
--ButtonQ:Scale(0.5) --Scaling 0.5 of the button size
Link: https://create.roblox.com/store/asset/75452407873617/KeybindVisualiser
New File 16/08/25 :
KeybindVisualiser.rbxm (13.7 KB)

Note: I am a novice in creating gui, this is scaled to fit with 1920x1080 resolution.
Update 16/08/25 :
Added new button images for Xbox Controller Support (L2,R2,L3,R3,Thumbstick1,Thumbstick2)
Slightly adjust gui positioning and size
Added support for mouse buttons, M1, M2 and M3 (couldn’t find a icon so wrote text for these)
Added Button:Rename(name) and Button:Scale(num)
(This gui is intended for displaying inputs for PC/Console and not for Mobile. It cannot sink inputs if u want to add that you’ll have to implement it yourself)
Old :
KeybindVisualiser.rbxm (13.9 KB)