Click the link in the email to access your dashboard.
✓
Purchase successful!
Enter the email you used at checkout to receive your login link.
No email after 2 minutes? Your account may still be setting up. Wait a moment and try again.
Dashboard
Add floors.js to your website
Copy this script tag and paste it in your site's <head> or before </body>. Your domain will be detected automatically.
★Claim ownership
Type /owner in the widget chat and enter your settings code when prompted. This gives you the owner crown and access to moderation commands (/kick, /ban, /whisper).
The name shown for your avatar in the widget. Also used for auto-replies and when replying via Telegram.
Open by defaultWidget opens on page load
Widget positionCorner of the screen
Theme toggleShow light/dark switch in widget header
Allow renameVisitors can change their name via /rename
Owner always visibleGhost avatar with crown on home page when offline
Block linksPrevent visitors from posting URLs
Block promoFilter promotional messages
Room-scoped chatMessages only visible in the room they were sent
Private modeVisitors isolated, only see owner
Users onlyOnly your authenticated users can join — requires a signed token (see Widget secret below)
Shown to non-authenticated visitors when "Users only" is on.
Shown at the top of the chat for all visitors.
When a visitor's message contains this keyword, they get an automatic whisper reply.
Single roomEveryone shares one room & chat, no doors or page detection
Comma-separated paths where the widget should NOT appear.
Merge sub-pages into a single room so visitors aren't scattered. One pattern per line: /blog/* → /blog
Pages listed here show a visible door in the 3D scene. The widget works on all pages regardless — this just controls which rooms have a door to keep the scene clean. Use as to rename: /ugly-path as Pretty Name
Paste in your <head> or before </body>. Your settings are loaded from this dashboard automatically and apply instantly to all visitors on your site.
Optional: script with all settings as fallback
These data-attributes act as a backup if the server config can't be loaded. Dashboard settings always take priority.
Scroll to zoom · R rotate · Del delete · Drag to move
Avatar customizationVisitors can change their body, skin & hair colors
Avatar style
Visual theme applied to all visitors on your site.
Owner Avatar
Customize your avatar colors. Applies to your live avatar and offline ghost.
Name Badge
Favicon badge on body
Scroll to zoom · Drag to rotate
Online now
—
Messages today
—
Total messages
—
Members — authenticated users (Users only mode)
No member data yet. Enable Users only in Widget Config and sign user tokens from your backend — authenticated members will then be tracked here (presence, activity, retention).
Members online
—
Active today
—
Active (30d)
—
Returning (30d)
—
0 new · 0 avg sessions / member (30d)
Daily active members (last 30 days)
Top members (30d)
—
Active chatters per hour (last 24h)
Active rooms
—
Top pages (last 24h)
—
Are you sure? This will permanently delete all chat logs for this site.
No chat messages yet.
Time
Room
Name
Message
Blocked words
Custom words to block in chat (one per line). Works on top of the global profanity filter.
Audit log
History of kick, ban, and timeout actions.
No moderation actions yet.
Date
Action
By
Target
Details
Account
Email
Plan
Member since
API key
Active domains
Lock to known domainsOnly allow connections from domains listed above. Prevents key theft.
Owner code
Use this code with /owner in the widget to claim ownership. Saved automatically after first use.
click to copy
Widget secret
HMAC secret used to sign user tokens for Users only mode. Sign tokens on your backend — never expose this secret to the browser.
Sign it on your backend, then pass it as data-user-token on the embed script (or call window.Floors.identify(token)). Copy-paste setup guides for Next.js, Node, PHP/Laravel, Django/Flask & Rails: floorsjs.com/docs.
Discord webhook
Get notified on Discord when visitors send messages.
Telegram bot
Log all chat messages to Telegram and reply from your phone. Create a bot with BotFather, then paste the token below.
Messages go to your private chat with the bot. Reply directly to respond.
Send a message to the bot first, then click detect.
Messages go to a specific topic in a Telegram group. Add the bot as admin in your group with Topics enabled.
Send a message to the bot in the group first, then click detect.
Open the topic in Telegram, look at the URL: ...groupid/5 or ...groupid_5