They do work the same, but using BasePart
is a better practice and correlates with how Roblox classifies elements, and it is better to make sure it is able to survive though updates (like if roblox makes an element that inherits BasePart
, but doesn’t have Part
in the class name).
Another alternative to Connect
is
while true do
RunService.RenderStepped:Wait()
-- code
end
Should prevent the Output spamming errors in case
Absolutely not! It’s completely useless, there’s no need to do this…
it printed out an error “Render stepped can only be used in local scripts”
You have to use it in a LocalScript.
Try using Stepped
or Heartbeat
But i want to make everyone see it not only the client
You don’t see the point, it only errors once and doesnt spam the output
Is there any other method then running the stepped event since it will run forever?
Is I stated here, you can use break
or continue
to end the loop
This isn’t necessarily true, this method will miss:
- UnionOperation
- Seat
- VehicleSeat
- NegateOperation
- SpawnLocation
Yeah we already got that covered, thanks tho
Altight now it works thanks alot
What do you mean? Which script did you use?
Actually, it’s probably not a great idea to have a constant loop setting the transparency every single physics step. There’s no good way to do it with CharacterAppearanceLoaded
, but it’s probably best to wait a second or two rather than constantly setting properties which were already set in the first place.
(This is pretty major for a simple script like this)
The render stepped thing that you posted just i modified it with the Stepped Event
I’m happy that I helped you! Have a nice day.
Yes, but the performance impact is significant enough that if many players did it at once, it’d probably slow the server down significantly. Maybe instead of constantly setting, you could try setting it once, then checking again in 2 or so seconds:
local Character = script.Parent
for i,v in pairs(Character:GetDescendants()) do
if v:IsA("Decal") or v:IsA("BasePart") then
v.Transparency = 1
end
end
task.delay(2,function()
for i,v in pairs(Character:GetDescendants()) do
if v:IsA("Decal") or v:IsA("BasePart") then
v.Transparency = 1
end
end
end)
During testing, this had the same effect but it reduced it to 0% activity.
Actually, it typically loads at least some of them (at least in studio). Also, I acknowledged the fact that some parts would be still visible, however the performance impact is severe enough that a loop wouldn’t be worth it. If you want, you can use a DescendantAdded event instead:
local Character = script.Parent
for i,v in pairs(Character:GetDescendants()) do
if v:IsA("Decal") or v:IsA("BasePart") then
v.Transparency = 1
end
end
Character.DescendantAdded:Connect(function(obj)
if obj:IsA("BasePart") or obj:IsA("Decal") then
obj.Transparency = 1
end
end)
This actually works and without a loop im going to change the code to this