Before starting
Can use ProximityPrompt and busy. Create a new Lesson27 Baseplate.
Roblox Studio · Lesson 27
Combining prompt text, lightweight particles and optional sound effects, the successful collection can be seen and heard, and the screen will not refresh.
Course overview
After the player completes the action, he needs to know whether the game has received it. A fleeting particle, clear text, and optional soft sound effects can make feedback easier to understand.
Feedback should not be louder than gameplay. In this lesson, we only practice sending out 20 particles at a time. We do not allow the particles to erupt indefinitely, nor do we require you to download any unfamiliar audio.
Can use ProximityPrompt and busy. Create a new Lesson27 Baseplate.
After pressing the prompt, the success text is displayed and a small cluster of particles is emitted; the sound effects that have permission to be used are optionally played.
Successive operations do not have a large volume of effects; text and particles remain normal when no audio resources are available.

Learning route
Every time a small step is completed, it is tested. Say what you expect to see first, and then use Play and Output to check it. Don't rush to write all the code at once.
Create FeedbackPad and add Prompt, Attachment, ParticleEmitter, and Sound. Place the ParticleEmitter under Attachment to easily determine the particle emission position.
Use BillboardGui to display status above the site. Text can help players who don’t turn on the sound to confirm the results, instead of using “did you hear it” as the only acceptance?
Enabled=false does not prevent the use of Emit(20) to emit particles once. This way you can accurately control the amount of this effect instead of always turning on the Rate spray.
Lifetime determines how long particles can live, and Speed determines the speed. With a large number and long lifespan, more particles will exist in the picture at the same time, and the equipment will need to handle more things.
Turn off the computer or game volume and try again. The text should still explain what happened. Press the prompts again and again to confirm that multiple rounds of effects will not be superimposed during busy periods.
Step by step
Create FeedbackPad and add Prompt, Attachment, ParticleEmitter, and Sound. Place the ParticleEmitter under Attachment to easily determine the particle emission position.
Audio only uses resources that you have the right to use, and which experience has access rights.

Step by step
Use BillboardGui to display status above the site. Text can help players who don’t turn on the sound to confirm the results, instead of using “did you hear it” as the only acceptance?
This lesson is a shared feedback platform: if one person activates it, other nearby players can also see the effect, so use a global busy lock.
Step by step
Enabled=false does not prevent the use of Emit(20) to emit particles once. This way you can accurately control the amount of this effect instead of always turning on the Rate spray.
Skip the sound if SoundId is empty. Even if the resource does not have permission, text and particles should be effective feedback, and the mechanism cannot be stuck waiting for the audio to be loaded.
local pad = script.Parent
local prompt = pad:WaitForChild("ProximityPrompt")
local burst = pad:WaitForChild("BurstPoint"):WaitForChild("Burst")
local sound = pad:WaitForChild("SuccessSound")
local busy = false
local board = Instance.new("BillboardGui")
board.Size = UDim2.fromOffset(220, 56)
board.StudsOffset = Vector3.new(0, 4, 0)
board.AlwaysOnTop = true
board.Adornee = pad
board.Parent = pad
local label = Instance.new("TextLabel")
label.Size = UDim2.fromScale(1, 1)
label.TextSize = 24
label.Text = "准备好"
label.Parent = board
prompt.Triggered:Connect(function(player)
if busy then return end
local character = player.Character
local root = character and character:FindFirstChild("HumanoidRootPart")
local hum = character and character:FindFirstChildOfClass("Humanoid")
if not root or not hum or hum.Health <= 0 then return end
if (root.Position - pad.Position).Magnitude > 12 then return end
busy = true
label.Text = "测试成功!"
burst:Emit(20)
if sound.SoundId ~= "" then sound:Play() end
task.wait(1)
label.Text = "准备好"
busy = false
end)
Step by step
Lifetime determines how long particles can live, and Speed determines the speed. With a large number and long lifespan, more particles will exist in the picture at the same time, and the equipment will need to handle more things.
Do not use fast and intense flashes to express ordinary success. Short and soft feedback is more suitable for long-term play, and should be understandable even when the sound is turned off.
Step by step
Turn off the computer or game volume and try again. The text should still explain what happened. Press the prompts again and again to confirm that multiple rounds of effects will not be superimposed during busy periods.
If the particles are not displayed, first check the Attachment path, Texture and emission position; if only the sound fails, check the resource permissions and Output.
Homework
Describes what text, particles and voices help players to identify.
Reduce the particles to 10 and confirm the success status is still clear.
The selection of a particle colour that is consistent with the theme of the camp does not require an increase in the number of particles to be visible.
Exit questions
Yes, a specified quantity may still be sent manually after closing the continuous launch.
No, this example will skip the sound, and the text and particles will run independently.
Resources may be restricted by copyright or experience access rights.
The particles stay longer, and there may be more particles that need to be displayed at the same time.
Explore further
The text code can be copied directly. First confirm the script type, placement, and whether this code is a complete version or a small experiment; do not run multiple versions of the same script superimposed. The source of the interface reference picture has been marked. The object names in the picture may be different from those in this lesson. Please refer to the operation steps.
Download the code and placement instructions for this lesson