Pemain sudah mengambil tangkapan layar untuk memperingati momen-momen menyenangkan dalam permainan. Modul SelfieMode pengembang memungkinkan pemain untuk menangkap kenangan yang lebih bersih dari momen tersebut tanpa jendela obrolan atau daftar pemain, sambil juga mendukung efek filter, menyembunyikan karakter lain, dan berpose.
Penggunaan Modul
Instalasi
Untuk menggunakan modul SelfieMode dalam sebuah permainan:
Dari menu Window Studio atau toolbar tab Home, buka Toolbox dan pilih tab Creator Store.

Pastikan pengurutan Models dipilih, lalu klik tombol See All untuk Categories.

Temukan dan klik ubin Packages.
Temukan modul Selfie Mode dan klik, atau seret dan lepas ke dalam tampilan 3D.

Di jendela Explorer, pindahkan seluruh paket SelfieMode ke ReplicatedStorage. Setelah menjalankan permainan, modul akan mulai berjalan.
Konfigurasi
Modul ini sudah dikonfigurasi untuk bekerja pada sebagian besar kasus penggunaan, tetapi Anda dapat dengan mudah menyesuaikannya melalui fungsi configure.
Di StarterPlayerScripts, buat LocalScript baru dan ganti namanya menjadi ConfigureSelfieMode.
Tempelkan kode berikut ke dalam skrip baru.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
Gerakan Karakter
Mungkin menguntungkan untuk mencegah karakter pemain bergerak saat dalam mode selfie. Anda dapat mencapainya dengan mengatur disableCharacterMovement ke true dalam panggilan configure.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.configure({
disableCharacterMovement = true
})Aksi Mode Selfie
SelfieMode dilengkapi dengan aksi berikut, yang masing-masing dapat Anda gunakan dengan fungsi activateAction, deactivateAction, dan toggleAction, atau mendeteksi melalui acara actionActivated dan actionDeactivated.
Depth-of-Field
Secara default, SelfieMode menunjukkan efek depth‑of‑field generik (kabut halus di latar belakang) ketika seorang pemain mengaktifkan aksi.

Untuk mengubah efek depth‑of‑field default, atur depthOfFieldEffect ke instance DepthOfFieldEffect Anda sendiri dalam panggilan configure.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local customDepthOfField = Instance.new("DepthOfFieldEffect")
customDepthOfField.NearIntensity = 0
customDepthOfField.FarIntensity = 1
customDepthOfField.FocusDistance = 5
customDepthOfField.InFocusRadius = 5
SelfieMode.configure({
depthOfFieldEffect = customDepthOfField
})Kunci Pandangan
Toggel Kunci Pandangan menyebabkan karakter pemain melihat ke arah kamera saat menyiapkan pose selfie, dalam jarak realistis seberapa jauh leher mereka dapat berputar.
Sembunyikan Lainnya
Secara default, karakter lain terlihat bersamaan dengan karakter pemain. Pemain dapat mendapatkan foto solo yang sempurna dengan mengklik tombol Sembunyikan Lainnya. Ketika diaktifkan, karakter lain memudar dari pandangan dan tetap tidak terlihat sampai aksi dinonaktifkan.
Filter
Aksi Filter memungkinkan pemain menerapkan filter preset dari opsi Pop, Soft, Antique, Cute, Dramatic, dan Monochrome.

Pose
Aksi Pose memungkinkan pemain memilih pose preset dari opsi Cheer, Clapping, Dolphin, Flossing, Guitar, Jump Wave, Louder, Top Rock, Twirl, dan Wave.

Referensi API
Tipe
Aksi
Setiap aksi diwakili oleh sebuah kamus dengan pasangan kunci-nilai berikut:
| Kunci | Tipe | Deskripsi |
|---|---|---|
| name | string | Nama aksi, ditampilkan pertama dalam tooltip. |
| description | string | Deskripsi aksi, ditampilkan setelah name dalam tooltip. |
| icon | string | ID aset untuk ikon aksi. |
| activeIcon | string | ID aset untuk ikon aksi dalam keadaan "aktif". Hanya dapat digunakan pada aksi induk, bukan sub-aksi. |
| actions | table | Daftar opsional sub-aksi. Ini memungkinkan Anda untuk membuat submenu dari berbagai aksi lainnya. |
| parent | Action | Aksi induk dari aksi; ini hanya berlaku untuk sub-aksi dan menunjuk ke aksi yang mengandungnya. |
| onActivated | function | Fungsi callback opsional yang dijalankan ketika seorang pemain mengaktifkan aksi atau sub-aksi. Biasanya, jika sebuah aksi mengandung sub-aksi, hanya sub-aksi yang perlu mendefinisikan callback sebagai cara untuk mengetahui bahwa pemain mengaktifkan sub-aksi dan tidak hanya "memperluas" aksi induk. |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "diaktifkan")
end)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "dinonaktifkan")
end)Enums
SelfieMode.Action
SelfieMode dilengkapi dengan beberapa aksi. Anda dapat menggunakan enum ini dengan fungsi activateAction, deactivateAction, dan toggleAction.
| Nama | Ringkasan |
|---|---|
| DepthOfField | Referensi ke aksi Depth‑of‑Field. |
| LockGaze | Referensi ke aksi Kunci Pandangan. |
| HideOthers | Referensi ke aksi Sembunyikan Lainnya. |
| Filter | Referensi ke aksi Filter. |
| Pose | Referensi ke aksi Pose. |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
-- Aktifkan aksi "Filter"
SelfieMode.activateAction(SelfieMode.Action.Filter)Fungsi
configure
configure(config: table)
Mengganti opsi konfigurasi default melalui kunci/nilai berikut dalam tabel config. Fungsi ini hanya dapat dipanggil dari LocalScript.
| Kunci | Deskripsi | Default |
|---|---|---|
| disableCharacterMovement | Jika true, mencegah karakter bergerak saat mode selfie terbuka. | false |
| depthOfFieldEffect | Instance DepthOfFieldEffect kustom opsional yang muncul ketika pemain mengaktifkan aksi Depth of Field. |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.configure({
disableCharacterMovement = true
})openSelfieMode
openSelfieMode()
Seorang pemain biasanya akan membuka mode selfie dengan tombol "kamera" di sisi kanan layar, tetapi fungsi ini memungkinkan Anda membukanya melalui kode. Saat menerapkan tombol kustom seperti yang ditunjukkan di bawah ini, Anda harus menonaktifkan tombol default melalui setHudButtonEnabled. Fungsi ini hanya dapat dipanggil dari LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- Hapus tombol default
SelfieMode.setHudButtonEnabled(false)
-- Hubungkan tombol kustom
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)closeSelfieMode
closeSelfieMode()
Seorang pemain biasanya akan menutup mode selfie dengan tombol ⊗ di bagian bawah layar, tetapi fungsi ini memungkinkan Anda menutupnya melalui kode. Hanya dapat dipanggil dari LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.closeSelfieMode()isSelfieModeOpen
isSelfieModeOpen(): boolean
Mengembalikan true jika mode selfie terbuka sebagai hasil dari tindakan pemain atau melalui openSelfieMode. Fungsi ini hanya dapat dipanggil dari LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.openSelfieMode()
print(SelfieMode.isSelfieModeOpen())setHudButtonEnabled
setHudButtonEnabled()
Mengatur apakah tombol default untuk masuk ke mode selfie ditampilkan. Berguna saat menerapkan openSelfieMode melalui tombol UI kustom. Fungsi ini hanya dapat dipanggil dari LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- Hapus tombol default
SelfieMode.setHudButtonEnabled(false)
-- Hubungkan tombol kustom
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)getAction
getAction(action: SelfieMode.Action): Action
Mendapatkan tipe Action melalui enum SelfieMode.Action.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)activateAction
activateAction(action: SelfieMode.Action)
Mengaktifkan secara programatis salah satu aksi default. Ini sama seperti ketika seorang pemain mengaktifkan aksi dari bilah aksi. Hanya dapat dipanggil dari LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
-- Aktifkan aksi "Filter"
SelfieMode.activateAction(SelfieMode.Action.Filter)deactivateAction
deactivateAction(action: SelfieMode.Action)
Menonaktifkan secara programatis salah satu aksi default. Ini sama seperti ketika seorang pemain menonaktifkan aksi dari bilah aksi. Hanya dapat dipanggil dari LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
-- Nonaktifkan aksi "Filter"
SelfieMode.deactivateAction(SelfieMode.Action.Filter)toggleAction
toggleAction(action: SelfieMode.Action): boolean
Mengaktifkan aksi jika dimatikan, atau menonaktifkannya jika diaktifkan. Ini sama seperti ketika seorang pemain mengklik aksi dari bilah aksi. Mengembalikan status baru "di aktifkan" sebagai boolean. Hanya dapat dipanggil dari LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)
local isEnabled = SelfieMode.toggleAction(lockGazeAction)
if isEnabled then
print("Diaktifkan", lockGazeAction.name)
else
print("Dinonaktifkan", lockGazeAction.name)
endsetTheme
setTheme(theme: table)
Mengonfigurasi tema mode selfie, termasuk ukuran teks, font, warna tombol/tooltip, dan lainnya. Fungsi ini hanya dapat dipanggil dari LocalScript.
| Kunci | Deskripsi | Default |
|---|---|---|
| textSize | Ukuran semua teks. | 16 |
| font | Font yang digunakan di seluruh UI (Enum.Font). | GothamMedium |
| padding | Padding utama yang digunakan untuk menyusun elemen UI (UDim). | (0, 12) |
| paddingSmall | Padding lebih kecil yang digunakan untuk menerapkan margin halus antara elemen (UDim). | (0, 6) |
| paddingScreen | Padding yang digunakan di sekitar tepi layar untuk memberikan ruang bernapas pada mode selfie (UDim). | (0, 24) |
| backgroundColor | Warna latar belakang yang digunakan untuk bilah yang menampilkan aksi (Color3). | [0, 0, 0] |
| scrollBarColor | Warna scrollbar yang digunakan dalam elemen ScrollingFrame modul (Color3). | [255, 255, 255] |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.setTheme({
textSize = 20,
font = Enum.Font.Michroma,
backgroundColor = Color3.fromRGB(0, 40, 75),
})setEnabled
setEnabled(isEnabled: boolean)
Mengatur apakah mode selfie diaktifkan atau tidak. Ketika dinonaktifkan, semua UI untuk modul dihapus dan semua acara terputus. Fungsi ini hanya dapat dipanggil dari LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.setEnabled(false)Acara
selfieModeOpened
Ditembakkan ketika pemain membuka mode selfie atau ketika openSelfieMode dipanggil. Acara ini hanya dapat dihubungkan dalam LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeOpened:Connect(function()
print("Mode selfie terbuka")
end)selfieModeClosed
Ditembakkan ketika pemain menutup mode selfie atau ketika closeSelfieMode dipanggil. Acara ini hanya dapat dihubungkan dalam LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeClosed:Connect(function()
print("Mode selfie ditutup")
end)actionActivated
| Parameter | |
|---|---|
| action: SelfieMode.Action | Aksi yang diaktifkan Action. |
Ditembakkan ketika sebuah aksi diaktifkan; ini bisa menjadi salah satu aksi utama seperti Depth of Field, Lock Gaze, atau Hide Others; atau bisa juga menjadi sub-aksi seperti filter atau pose. Fungsi yang terhubung menerima Action yang diaktifkan. Acara ini hanya dapat dihubungkan dalam LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "diaktifkan")
end)actionDeactivated
| Parameter | |
|---|---|
| action: SelfieMode.Action | Aksi yang dinonaktifkan Action. |
Ditembakkan ketika sebuah aksi utama atau sub-aksi dinonaktifkan. Fungsi yang terhubung menerima Action yang dinonaktifkan. Acara ini hanya dapat dihubungkan dalam LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "dinonaktifkan")
end)filterChanged
Ditembakkan ketika sebuah filter diterapkan atau dihapus. Fungsi yang terhubung menerima nama filter baru dan nama filter lama. Acara ini hanya dapat dihubungkan dalam LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("Filter berubah dari", oldFilter, "ke", newFilter)
end)poseChanged
Ditembakkan ketika sebuah pose diterapkan atau dihapus. Fungsi yang terhubung menerima nama pose baru dan nama pose lama. Acara ini hanya dapat dihubungkan dalam LocalScript.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("Pose berubah dari", oldPose, "ke", newPose)
end)