Instead of using tools, I’m welding a model to the hand and parenting it to the character. I have changed the LocalTransparencyModifier for every part in the model, but I am unable to see it once I enter first person. The model only shows once I parent it to the workspace instead of the character.
This video also unintentionally shows another issue I’ve been facing, which is custom proximity prompts sometimes not showing even though they should be.
proximityprompt script:
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGUI = player.PlayerGui
local ObjectInteract = playerGUI:WaitForChild("ObjectInteract")
local ObjectFrame = ObjectInteract:WaitForChild("Frame")
local ActionText = ObjectFrame:WaitForChild("ActionText")
local TextBox = ObjectFrame:WaitForChild("TextBox")
for i, v in pairs(workspace:GetDescendants()) do
if v:IsA("ProximityPrompt") then
if v.Style == Enum.ProximityPromptStyle.Custom then
v.PromptShown:Connect(function()
ObjectInteract.Enabled = true
ObjectInteract.Adornee = v.Parent
ActionText.Text = v.ActionText
TextBox.Text = v.KeyboardKeyCode.Name
end)
v.PromptHidden:Connect(function()
ObjectInteract.Enabled = false
ObjectInteract.Adornee = nil
ActionText.Text = ""
end)
end
end
end
Even if you changed the local transparency there is probably the default roblox script interfering and overwriting the transparency modifier in renderstep perhaps.
I have researched another module Realism, they were able to get around by overloading the function in the module. I suggest you take a look at it.
Put Transparency change into a .RenderStepped connection, don’t forget to :Disconnect() it when the model is getting destroying (example ahead)
local function turnOpaque()
...
end
local con = game["Run Service"].RenderStepped:Connect(turnOpaque)
model.Destroying:Once(function()
con:Disconnect()
con = nil
end)