A comprehensive smartphone system for FiveM servers featuring multiple applications, modern UI, and extensive functionality.
Preview YouTube
- Modern React-based UI with smooth animations and responsive design
- Multiple Phone Applications including messaging, calls, social media, banking, and more
- Real-time Notifications System with action notifications and regular alerts
- Advanced Camera System with portrait/landscape modes and selfie functionality
- Voice Call Integration with PMA-Voice support and conference calling
- Comprehensive Contact Management with sharing capabilities
- Banking & Wallet System with invoicing and transaction history
- Social Media Integration (Pigeon - Twitter clone, BluePage, HeartSync dating)
- Real Estate Management through housing app
- Business Directory & Services
- Group Management System
- Dark Web Integration (DarkChat)
- Photo Gallery with cloud storage
- Framework: React with TypeScript
- Build Tool: Vite
- Styling: SCSS with Mantine components
- State Management: Zustand
- 3D Rendering: Three.js for camera functionality
- Client-side: TypeScript with CitizenFX natives
- Server-side: TypeScript with ox_lib callbacks
- Database: MongoDB with MySQL support
- Framework Integration: QB-Core | QBox
| Dependency | Description |
|---|---|
| QBCore Framework or QBox | Primary framework |
| ox_lib | Used for ox things |
| qb-inventory or lj-inventory or ox_inventory | Inventory handling |
| Soundhandler | Soundhandler - Used for ringtones and notification sounds |
| summit_phone_props | Phone Props - Custom props used to display the phones colour as the model |
| mongoDB | mongoDB - Used for database intergration |
| Dependency | Description |
|---|---|
| ignis_groups | Manages groups, stages, and notifications |
- Clone or download the resource to your
resourcesfolder - Install dependencies by running
pnpm installin both root andwebdirectories - Configure database connections in your server configuration
- Add to server.cfg:
ensure summit_phone - Configure webhooks and external services as needed
- Configure Core Read either the QBCoreInstall.md or QBoxInstall.md depending on your framework.
- Build the resource:
pnpm build
- Open Phone:
F1key (default) or use item - Emergency Call: Special jail phone integration
- Share Contact: Target another player and select "Share Number"
testNoti- Test notification system
-- Force close the phone interface
exports['summit_phone']:ForceClosePhone()
-- Toggle phone availability
exports['summit_phone']:ToggleDisablePhone(boolean)
-- Close phone and disable it
exports['summit_phone']:CloseAndToggleDisablePhone(boolean)
-- Send a notification
exports['summit_phone']:sendNotification({
id = 'unique_id',
title = 'Notification Title',
description = 'Notification Description',
app = 'app_name',
timeout = 5000
})
-- Send action notification with buttons
jsonString = ({
id: _id,
title: "Incoming Call",
description: `${sourceName} is calling you`,
app: "phone",
icons: {
"0": {
icon: "https://ignis-rp.com/uploads/server/phone/cross-circle.svg",
isServer: true,
event: "phone:server:declineCall",
args: JSON.stringify({
callId,
targetSource,
sourceName,
targetName,
callerSource: source,
databaseTableId: _id,
}),
},
"1": {
icon: "https://ignis-rp.com/uploads/server/phone/accept.svg",
isServer: true,
event: "phone:server:acceptCall",
args: JSON.stringify({
callId,
targetSource,
sourceName: targetName,
targetName: sourceName,
callerSource: source,
databaseTableId: _id,
}),
},
},
})
exports['summit_phone']:sendActionNotification(jsonString)-- Get player's phone number by source ID
local phoneNumber = exports['summit_phone']:GetCurrentPhoneNumber(source)
-- Get phone number by citizen ID
local phoneNumber = exports['summit_phone']:GetCurrentPhoneNumberByCitizenId(citizenId)
-- Get email ID by citizen ID
local emailId = exports['summit_phone']:GetEmailIdByCitizenId(citizenId)
-- Get email ID by source
local emailId = exports['summit_phone']:GetEmailIdBySource(source)-- Send notification to player
exports['summit_phone']:SendNotification(source, title, description, app, timeout)-- Send email
local result = exports['summit_phone']:SendMail({
email = 'sender@email.com',
to = 'recipient@email.com',
subject = 'Subject',
message = 'Message content',
images = {'image_url1', 'image_url2'},
source = sourceId
})
-- Send email to all players
local result = exports['summit_phone']:SendMailToAll({
subject = 'Subject',
sender = 'sender@email.com',
message = 'Message content',
images = {'image_url1', 'image_url2'}
})-- Phone setup
'phone:client:setupPhone' -- Triggered when player spawns
'phone:client:removeActionNotification' -- Remove action notification
-- Call system
'summit_phone:server:addCallingNotification' -- Incoming call notification
'phone:client:acceptCall' -- Call accepted
'phone:client:startCallAnimation' -- Start call animation
'phone:client:endCallAnimation' -- End call animation
'phone:client:callEnded' -- Call ended
'phone:client:updateCallerInterface' -- Update call interface
'phone:client:upDateInterFaceName' -- Update interface name
-- Notifications
'phone:addnotiFication' -- Add regular notification
'phone:addActionNotification' -- Add action notification
-- Groups
'groups:toggleDuty' -- Toggle job duty status
-- Jail system
'summit_phone:client:jailPhoneCall' -- Jail phone call-- Contact sharing
'phone:server:shareNumber' -- Share phone number between players
'phone:server:addContact' -- Add contact to phone book
-- System events
'summit_phone:server:CronTrigger' -- Recurring payments and maintenance
'QBCore:Server:OnPlayerUnload' -- Player disconnect handling
'playerDropped' -- Player dropped from server
-- Housing integration
'summit_phone:server:toggleDoorlock' -- Toggle door lock
'ps-housing:server:addAccess' -- Add housing accesshideFrame- Close phone interfacedisableControls- Toggle control disablingactionNotiButtonOne/Two- Action notification buttonsshowNoti- Show notificationupdatePersonalCard- Update player cardphone:contextMenu:click/close- Context menu actions
cameraAppOpen- Open/close cameracameraMode- Switch camera mode (portrait/landscape)selfiMode- Toggle selfie mode
Contacts
getContacts- Retrieve contact listsaveContact- Save contact changesaddContact- Add new contactdeleteContact- Remove contactfavContact- Toggle favorite status
Phone/Calls
phoneCall- Initiate phone calldeclineCall- Decline incoming callendCall- End active calladdPlayerToCall- Add player to conferencegetCallRecentData- Get call historycallFromDialPad- Call from dialpadblockNumber- Block phone numberjailPhoneCall- Emergency jail call
Messages
- Various message-related callbacks for sending, receiving, and managing conversations
Wallet
wallet:login- Login to walletgetDetailsXS- Get account detailstransXAdqasddasdferMoney- Transfer moneygetTransactions- Get transaction historycreateInvoice- Create payment invoicegetInvoices- Get invoice listacceptInvoicePayment- Accept invoicedeclineInvoicePayment- Decline invoice
Services
getAllBusinessData- Get business directorysetWayPoint- Set GPS waypointcallBusiness- Call business numbergetJobData- Get job informationtoggleDuty- Toggle duty status- Various employee management callbacks
Settings
getSettings- Retrieve phone settingssetSettings- Update phone settingsregisterNewMailAccount- Register email accountsearchEmail- Search for emailloginMailAccount- Login to emailunLockorLockPhone- Lock/unlock phonegetCitizenId- Get player citizen IDgetPhonePlayerCard- Get player card infogetStreamerMode/setStreamerMode- Streamer mode settings
Social Media (Pigeon)
searchPigeonEmail- Search Pigeon accountsloginPegionEmail/signupPegionEmail- Account managementgetAllTweets- Get tweet feedlikeTweet- Like tweetretweetTweet- RetweetpostTweet- Create tweetfollowUser- Follow user- Various other social media interactions
Photos
saveimageToPhotos- Save image to gallerygetPhotos- Get photo galleryselectPhoto- Select photo for actions
BluePage
bluepage:createPost- Create BluePage postbluepage:getPosts- Get BluePage feedbluepage:deletePost- Delete post
Housing
getOwnedHouses- Get owned propertiesgetKeyHolderNames- Get key holdersremoveAccess/giveAccess- Manage property accesssetLocationOfHouse- Set house location
Groups
- Various group management callbacks for creating, joining, and managing groups
HeartSync (Dating)
- Dating app functionality callbacks
DarkChat
searchDarkChatEmail- Search dark web emailsregisterNewDarkMailAccount- Register dark accountloginDarkMailAccount- Login to dark account- Various secure messaging callbacks
- Phone frames available: blue, gold, green, purple, red
- Wallpapers and lock screen customization
- Ringtone customization
- Dark mode support
types/types.ts- TypeScript interfaces and typesweb/src/- React components and styling- Individual app folders contain specific configurations
# Development mode with hot reload
pnpm dev
# Production build
pnpm build
# Build specific components
pnpm build:client # Build client-side code
pnpm build:server # Build server-side code
pnpm build:web # Build web interfacesummit_phone/
βββ game/
β βββ client/ # Client-side TypeScript
β βββ server/ # Server-side TypeScript
β βββ shared/ # Shared utilities
βββ web/ # React web interface
βββ types/ # TypeScript definitions
βββ scripts/ # Build scripts
βββ package.json # Dependencies
- Phone - Voice calls, contact management, call history
- Messages - Text messaging with groups and private chats
- Contacts - Contact book with favorites and sharing
- Camera - Photo capture with different modes
- Photos - Gallery with cloud storage integration
- Wallet - Banking, transfers, invoices, transactions
- Mail - Email system with attachments
- Services - Business directory, job management, banking
- Settings - Phone configuration, accounts, security
- Pigeon - Social media (Twitter-like)
- BluePage - Community posts and announcements
- Groups - Team management and coordination
- Housing - Property management and access control
- HeartSync - Dating application
- DarkChat - Secure/anonymous messaging
- Garage - Vehicle management integration
- Phone not opening: Check if phone is disabled via exports
- Notifications not showing: Verify phone item in inventory
- Database errors: Check MongoDB/MySQL connection
- UI not loading: Ensure web build is complete
- Voice calls not working: Verify pma-voice integration
- Use browser developer tools for UI debugging
- Server console shows backend errors
- Check resource logs for detailed error messages
This resource is licensed for use with FiveM servers. Please check the LICENSE file for specific terms and conditions.
For support and updates, please contact the Summit RP development team or check the official documentation.
Version: 1.0.0
Compatible: FiveM
Framework: QB-Core
Language: TypeScript/React
NOTE: This phone was being used at Summit Roleplay server, Now we have decided to make it open source and not maintaining it anymore. You guys are open to do Whatever you want with this phone, Just Don't Resell it With your names XD
Summit RP Discord: https://discord.gg/summitrp