okokPhone

YouTube Video

Installation Guide

Requirements:

Execute the following SQL code in your database:

CREATE TABLE IF NOT EXISTS `okokphone_backups` (
  `imei` varchar(36) NOT NULL,
  `owner` varchar(100) NOT NULL,
  `avatar` mediumtext NOT NULL,
  `name` varchar(255) NOT NULL,
  `phone_number` varchar(10) NOT NULL,
  `pincode` varchar(10) NOT NULL,
  `wallpaper` varchar(255) NOT NULL,
  `ringtone` varchar(255) NOT NULL,
  `notification_sound` varchar(255) NOT NULL,
  `notifications` longtext NOT NULL,
  `lockscreen` varchar(255) NOT NULL,
  `homescreen` longtext NOT NULL,
  `gallery` longtext NOT NULL,
  `albums` longtext NOT NULL,
  `contacts` longtext NOT NULL,
  `chats` longtext NOT NULL,
  `notes` longtext NOT NULL,
  `settings` longtext NOT NULL,
  `flashlight_color` mediumtext NOT NULL,
  `last_location` mediumtext DEFAULT NULL,
  `created_at` datetime NOT NULL,
  PRIMARY KEY (`imei`) USING BTREE,
  KEY `imei` (`imei`) USING BTREE,
  KEY `owner` (`owner`) USING BTREE,
  KEY `phone_number` (`phone_number`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;

CREATE TABLE IF NOT EXISTS `okokphone_call_logs` (
  `id` varchar(36) NOT NULL DEFAULT '0',
  `caller` varchar(36) NOT NULL,
  `caller_imei` varchar(36) NOT NULL,
  `receiver` varchar(36) NOT NULL,
  `receiver_imei` varchar(36) DEFAULT NULL,
  `type` varchar(50) NOT NULL DEFAULT '0',
  `duration` int(11) NOT NULL DEFAULT 0,
  `timestamp` datetime(3) NOT NULL,
  `caller_history` tinyint(4) NOT NULL,
  `receiver_history` tinyint(4) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`),
  KEY `caller` (`caller`),
  KEY `receiver` (`receiver`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okokphone_chats` (
  `app` varchar(100) NOT NULL,
  `id` varchar(36) NOT NULL,
  `author` longtext NOT NULL,
  `participants` longtext NOT NULL,
  `last_message` text NOT NULL,
  `timestamp` datetime(3) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`),
  KEY `app` (`app`),
  KEY `author` (`author`(768))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okokphone_chat_messages` (
  `app` varchar(50) NOT NULL DEFAULT '',
  `id` varchar(36) NOT NULL,
  `chat_id` varchar(36) NOT NULL,
  `author` longtext NOT NULL,
  `text` text NOT NULL,
  `media_src` varchar(512) DEFAULT NULL,
  `media_type` varchar(10) DEFAULT NULL,
  `audio` varchar(512) DEFAULT NULL,
  `gps` text DEFAULT NULL,
  `timestamp` datetime(3) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `app` (`app`),
  KEY `id` (`id`),
  KEY `chat_id` (`chat_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okokphone_media` (
  `id` varchar(36) NOT NULL,
  `creator` varchar(100) DEFAULT NULL,
  `type` enum('image','video') NOT NULL,
  `src` varchar(512) NOT NULL DEFAULT '',
  `width` int(11) NOT NULL DEFAULT 0,
  `height` int(11) NOT NULL DEFAULT 0,
  `timestamp` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`),
  KEY `type` (`type`),
  KEY `owner` (`creator`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okokphone_phones` (
  `imei` varchar(36) NOT NULL,
  `owner` varchar(100) NOT NULL,
  `avatar` mediumtext NOT NULL,
  `name` varchar(255) NOT NULL,
  `phone_number` varchar(10) NOT NULL,
  `pincode` varchar(10) NOT NULL,
  `wallpaper` varchar(255) NOT NULL,
  `ringtone` varchar(255) NOT NULL,
  `notification_sound` varchar(255) NOT NULL,
  `notifications` longtext NOT NULL,
  `lockscreen` varchar(255) NOT NULL,
  `homescreen` longtext NOT NULL,
  `gallery` longtext NOT NULL,
  `albums` longtext NOT NULL,
  `contacts` longtext NOT NULL,
  `chats` longtext NOT NULL,
  `notes` longtext NOT NULL,
  `settings` longtext NOT NULL,
  `flashlight_color` mediumtext NOT NULL,
  `last_location` mediumtext DEFAULT NULL,
  `created_at` datetime NOT NULL,
  `clock` longtext DEFAULT NULL,
  PRIMARY KEY (`imei`),
  KEY `imei` (`imei`),
  KEY `owner` (`owner`),
  KEY `phone_number` (`phone_number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okp_darknet_accounts` (
  `id` varchar(36) NOT NULL,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `avatar` varchar(255) NOT NULL,
  `chats` longtext NOT NULL,
  `created_at` datetime(3) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`),
  KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okp_darknet_chats` (
  `id` varchar(36) NOT NULL,
  `author` varchar(255) NOT NULL,
  `partner` varchar(255) NOT NULL,
  `created_at` datetime(3) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`),
  KEY `partner` (`partner`),
  KEY `creator` (`author`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okp_darknet_listings` (
  `id` varchar(36) NOT NULL,
  `author` varchar(255) NOT NULL,
  `title` varchar(255) NOT NULL,
  `description` varchar(255) NOT NULL,
  `thumbnail` mediumtext NOT NULL,
  `created_at` datetime(3) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okp_marketplace_ads` (
  `id` varchar(36) NOT NULL,
  `title` varchar(100) NOT NULL,
  `description` varchar(100) NOT NULL,
  `price` int(11) NOT NULL DEFAULT 0,
  `img` varchar(255) NOT NULL DEFAULT '0',
  `phone_number` int(11) NOT NULL DEFAULT 0,
  `creator` varchar(50) NOT NULL DEFAULT '',
  `expiration` datetime(3) NOT NULL,
  `created_at` datetime(3) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`),
  KEY `creator` (`creator`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okp_news_articles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `featured` tinyint(1) NOT NULL,
  `important` tinyint(1) NOT NULL,
  `title` varchar(500) NOT NULL,
  `body` text NOT NULL,
  `author` varchar(255) NOT NULL DEFAULT '',
  `created_at` datetime NOT NULL DEFAULT curtime(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okp_racing_history` (
  `id` varchar(36) NOT NULL,
  `type` varchar(50) NOT NULL,
  `location` varchar(255) NOT NULL,
  `winner` varchar(255) NOT NULL DEFAULT '',
  `entry_fee` int(11) unsigned NOT NULL,
  `prize` int(10) unsigned NOT NULL,
  `participants` longtext NOT NULL,
  `created_at` datetime(3) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okp_racing_leaderboard` (
  `identifier` varchar(50) NOT NULL DEFAULT '',
  `name` varchar(255) NOT NULL DEFAULT '',
  `elo` int(10) unsigned NOT NULL,
  `earnings` int(10) unsigned NOT NULL,
  `wins` int(10) unsigned NOT NULL,
  `losses` int(10) unsigned NOT NULL,
  `race_history` longtext NOT NULL,
  PRIMARY KEY (`identifier`),
  KEY `identifier` (`identifier`),
  KEY `elo` (`elo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okp_racing_routes` (
  `id` varchar(36) NOT NULL,
  `name` varchar(255) NOT NULL,
  `location` varchar(255) NOT NULL,
  `creator` varchar(50) NOT NULL,
  `checkpoints` longtext NOT NULL,
  `timestamp` datetime(3) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okp_v_accounts` (
  `username` varchar(50) NOT NULL,
  `password` varchar(255) NOT NULL,
  `verified` tinyint(1) DEFAULT 0,
  `moderator` tinyint(1) DEFAULT 0,
  `avatar` varchar(255) NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `bio` varchar(150) DEFAULT NULL,
  `background` varchar(255) DEFAULT NULL,
  `following` longtext NOT NULL,
  `followers` longtext NOT NULL,
  `created_at` datetime(3) NOT NULL,
  PRIMARY KEY (`username`),
  KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okp_v_chats` (
  `id` varchar(36) NOT NULL,
  `author` varchar(255) NOT NULL,
  `partner` varchar(255) NOT NULL,
  `created_at` datetime(3) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okp_v_comments` (
  `id` varchar(36) NOT NULL,
  `post_id` varchar(36) NOT NULL,
  `author` varchar(50) NOT NULL,
  `text` varchar(255) NOT NULL,
  `likes` longtext NOT NULL,
  `media` longtext DEFAULT NULL,
  `created_at` datetime(3) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`),
  KEY `post_id` (`post_id`),
  KEY `author` (`author`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okp_v_posts` (
  `id` varchar(36) NOT NULL DEFAULT '',
  `author` varchar(50) NOT NULL,
  `text` varchar(255) NOT NULL,
  `likes` longtext NOT NULL,
  `comments` int(10) unsigned NOT NULL,
  `tags` longtext NOT NULL,
  `media` longtext DEFAULT NULL,
  `timestamp` datetime(3) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`),
  KEY `author` (`author`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okp_v_shorts` (
  `id` varchar(36) NOT NULL,
  `author` varchar(255) NOT NULL,
  `title` varchar(255) NOT NULL,
  `description` varchar(255) DEFAULT NULL,
  `likes` longtext NOT NULL,
  `comments` int(11) NOT NULL,
  `src` mediumtext NOT NULL,
  `created_at` datetime(3) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okp_work_emails` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `parent_id` int(11) DEFAULT NULL,
  `job` varchar(100) NOT NULL,
  `type` enum('job_application','news','personal') NOT NULL,
  `sender` varchar(255) NOT NULL,
  `sender_name` varchar(255) DEFAULT NULL,
  `receiver` varchar(255) NOT NULL,
  `receiver_name` varchar(255) DEFAULT NULL,
  `subject` varchar(255) NOT NULL,
  `body` text NOT NULL,
  `created_at` datetime NOT NULL DEFAULT curtime(),
  PRIMARY KEY (`id`) USING BTREE,
  KEY `type` (`type`),
  KEY `job` (`job`),
  KEY `replyId` (`parent_id`) USING BTREE,
  KEY `from` (`sender`) USING BTREE,
  KEY `to` (`receiver`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `luxucex_market_transactions` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `identifier` varchar(100) NOT NULL,
  `type` enum('buy','sell') NOT NULL,
  `coin` varchar(50) NOT NULL,
  `amount` decimal(20,8) unsigned NOT NULL,
  `price` decimal(20,8) unsigned NOT NULL,
  `created_at` datetime NOT NULL DEFAULT curtime(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `luxucex_transfers` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `sender` varchar(100) NOT NULL,
  `receiver` int(100) unsigned NOT NULL,
  `coin` int(10) unsigned NOT NULL,
  `amount` decimal(20,8) unsigned NOT NULL,
  `created_at` datetime NOT NULL DEFAULT curtime(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `okp_news_articles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `featured` tinyint(1) NOT NULL,
  `important` tinyint(1) NOT NULL,
  `title` varchar(500) NOT NULL,
  `body` text NOT NULL,
  `author` varchar(255) NOT NULL DEFAULT '',
  `created_at` datetime NOT NULL DEFAULT curtime(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TRIGGER okp_v_comments_increment
AFTER INSERT ON okp_v_comments
FOR EACH ROW
BEGIN
   UPDATE okp_v_posts SET comments = comments + 1 WHERE id = NEW.post_id;
END;

CREATE TRIGGER okp_v_comments_decrement
AFTER DELETE ON okp_v_comments
FOR EACH ROW
BEGIN
   UPDATE okp_v_posts SET comments = comments - 1 WHERE id = OLD.post_id;
END;

DELIMITER;

ALTER TABLE `users` ADD COLUMN `luxucryptoaddress` longtext;
ALTER TABLE `users` ADD COLUMN `luxucexassets` longtext NOT NULL DEFAULT '{}';
ALTER TABLE `users` ADD COLUMN `luxucwbalance` float NOT NULL DEFAULT '0';

Add the phone item to your database:

OX Inventory

 ['okokphone'] = {
        label = 'Phone',
        weight = 190,
        stack = false,
        consume = 0,
        server = {
                export = "okokPhone.oxOpenPhone"
        }
},

ESX

Execute the following SQL code in your database:

INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('okokphone', 'Phone', 1, 0, 1);

QBCore

Navigate to qb-core/shared/items.lua and add the following code to it:

['okokphone'] = {
       ['name'] = 'okokphone',
       ["label"] = "Smartphone",
       weight = 50,
       type = 'item',
       description = "A smartphone",
       image = "smartphone.png",
       unique = "true",
       useable = true,
       shouldClose = true,
       combinable = nil
},

Setting the Discord Webhook URL (for media uploads/camera)

Navigate to the config/webhooks.lua file and paste the webhook URL.

How to create a Discord Webhook URL

Custom frameworks

If your QBCore or ESX is modified, you can edit the core on the shared/framework.lua file.

Exports

exports['okokPhone']:getSourceFromEquippedImei(imei)
exports['okokPhone']:getSourceFromPhoneNumber(phoneNumber)
exports['okokPhone']:getImeiFromSource(source)
exports['okokPhone']:getPhoneNumberFromSource(source)
exports['okokPhone']:getPhoneDataFromImei(imei)
exports['okokPhone']:deletePhone(imei)
exports['okokPhone']:toggleVAccountVerification(username, state)

Server artifacts

Make sure your server artifacts version is up to date.

Last updated