Как сделать скример в Роблокс Студио

Что бы сделать скримера в Роблокс Студио, нужно подготовить страшное изображение и звук, загрузить их в Роблокс Студио через Asset Manager и написать простой скрипт который будет показывать изображение скримера через определенное время или при касании какого то блока.

Пошаговая инструкция

1. Найдите в интернете картинку скримера или создайте ее сами. Желательно что бы изображение было либо квадратным, либо прямоугольным (можете взять одно из этих).

2. Найдите и скачайте короткий пугающий звук для скримера (например этот).
3. Перейдите в Asset Manager (активировать это окно можно во вкладке VIEW)

Как сделать скримера в Роблокс Студио

4. Загрузите картинку и звук через Asset Manager

5. В Explorer щёлкните правой кнопкой мыши на StarterGui и выберите Insert ObjectScreenGui. Внутри ScreenGui создайте ImageLabel и назовите его, например, ScreamerImage .

  • Установите Size (например, {1, 0}, {1, 0} ), чтобы изображение занимало весь экран
  • Установите Image на ваше загруженное изображение
  • Поставьте Visible в false, чтобы скрыть его по умолчанию.

6. Внутри ImageLabel создайте объект Sound и переименуйте его в ScreamerSound . Нажмите ПКМ по загруженному через Asset Manager звуку и скопируйте его ID. Вставьте этот ID в строку SoundId для ScreamerSound .

Активация скримера через случайный промежуток времени

7. Внутри ScreenGui создайте LocalScript и назовите его ScreamerScript после чего вставьте в него следующий код (этот код будет показывать скримера в случайный промежуток времени от 5 до 10 секунд)

local screamerImage = script.Parent:WaitForChild("ScreamerImage")
-- Функция для показа скримера
local function showScreamer()
screamerImage.Visible = true
-- Воспроизведение звука (если вы его добавили)
if screamerImage:FindFirstChild("ScreamerSound") then
screamerImage.ScreamerSound:Play()
end
-- Скрыть скример через 2 секунды
wait(2)
screamerImage.Visible = false
end
-- Ждём случайное время от 5 до 10 секунд и запускаем скример
while true do
wait(math.random(5, 10))
showScreamer()
end

Активация скримера при соприкосновении с блоком

Более интересный вариант, так как вы сможете самостоятельно выбирать места где будет показываться скример. Для этого нужно будет:

1. Создать блок Part и переименовать его например в ScreamerTrigger
2. Установить Anchored в true, чтобы блок оставался на месте, сделать блок прозрачным, изменив Transparency на 1, и отключить CanCollide, чтобы игрок мог проходить сквозь него.
3. Внутри ScreamerTrigger создать Script и вставить в него следующий код:

local screamerTrigger = script.Parent
local Players = game:GetService("Players")
-- Функция, которая активирует скример у игрока
local function activateScreamer(player)
-- Получаем GUI игрока
local playerGui = player:WaitForChild("PlayerGui")
local screamerGui = playerGui:WaitForChild("ScreenGui")
local screamerImage = screamerGui:WaitForChild("ScreamerImage")
-- Показываем скример
screamerImage.Visible = true
-- Воспроизведение звука (если добавлен)
if screamerImage:FindFirstChild("ScreamerSound") then
screamerImage.ScreamerSound:Play()
end
-- Скрываем скример через 2 секунды
wait(2)
screamerImage.Visible = false
end
-- Подключаем событие касания
screamerTrigger.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player then
-- Если это игрок, активируем скример
activateScreamer(player)
end
end)