iFruit Jailbreak — custom contacts, SMS and emails 3.0
976
39
976
39
A library for GTA V (ScriptHookVDotNet) that injects contacts, SMS messages and emails directly into the player's in-game cellphone via low-level global variable memory manipulation.
GTA V's cellphone controller and contacts scripts (cellphone controller, appcontacts, cellphone flashhand) keep all of their state in numbered global variable arrays: the SMS feed, the email feed, and the character sheet that backs the phonebook. iFruit Jailbreak writes directly to these arrays and flips the bit flags the native scripts poll each frame, so the game processes the injected data exactly as if it had produced it itself.
For messages the result is indistinguishable from something the game sent:
For contacts the library goes a step further: because the phonebook, the DIALING... screen and the call screen are all drawn by the native scripts from character-sheet fields that are resolved as GXT text labels, arbitrary custom text cannot be shown through those fields alone. iFruit Jailbreak therefore repaints the relevant Scaleform rows itself so a contact can carry a fully custom name and icon, and it hijacks the phone's call state machine so calling the contact behaves like a real in-game call.
Features
Messaging:
Contacts (new)
Requirements
Currently, the mod only works in the Legacy version.
Installation
1. Copy iFruit Jailbreak.dll to your GTA V scripts folder
2. Add using iFruitJailbreak in your script file.
Changelog
3.0:
2.0:
GTA V's cellphone controller and contacts scripts (cellphone controller, appcontacts, cellphone flashhand) keep all of their state in numbered global variable arrays: the SMS feed, the email feed, and the character sheet that backs the phonebook. iFruit Jailbreak writes directly to these arrays and flips the bit flags the native scripts poll each frame, so the game processes the injected data exactly as if it had produced it itself.
For messages the result is indistinguishable from something the game sent:
- Native notification styling and colors
- Proper character icon rendering
- SMS/email arrival sound
- Gamepad vibration (SMS only)
- Inbox persistence across frames
For contacts the library goes a step further: because the phonebook, the DIALING... screen and the call screen are all drawn by the native scripts from character-sheet fields that are resolved as GXT text labels, arbitrary custom text cannot be shown through those fields alone. iFruit Jailbreak therefore repaints the relevant Scaleform rows itself so a contact can carry a fully custom name and icon, and it hijacks the phone's call state machine so calling the contact behaves like a real in-game call.
Features
Messaging:
- Send SMS messages from any built-in GTA V character or company
- Send email notifications with header, body, and sender
- Inject emails into the per-character inbox (persistent)
- Delete injected SMS messages by slot ID
- Safe multi-frame message splitting for long texts (up to 3 x 63 UTF-8 bytes)
Contacts (new)
- Add phonebook contacts with a custom name (any length on screen) and a custom icon
Choose an icon from 230 built-in character textures via appContacts.ContactIcon - Control alphabetical placement with a sort key
- Detect when the player calls a custom contact, keep the call "connected", and end it from script
- Remove contacts by slot ID
- Survives ScriptHookVDotNet reloads without leaving broken "ghost" contacts behind
Requirements
- ScriptHookVDotNet Nightly Build
- GTA V Legacy 1.72 or later
Currently, the mod only works in the Legacy version.
Installation
1. Copy iFruit Jailbreak.dll to your GTA V scripts folder
2. Add using iFruitJailbreak in your script file.
Changelog
3.0:
- The globals have been updated to version 1.73
- Added automatic updates for the globals without the need to download a new version of the script
2.0:
- ADDED CUSTOM CONTACTS SUPPORT. The limit is 56 simultaneously added contacts. For usage examples, see the GitHub repository.
- Fixed a rare bug where the game sent an empty message if a previous message was sent by a script.
- Fixed incorrect display of html tags and attachment of images to messages.
- The message capacity has increased from 189 to 297 bytes (297 characters with spaces if message in English). The html tag should not exceed 99 characters.
Source code and instructions for integrating it into your scripts: https://github.com/sruckstar/iFruitJailbreak
Carregat per primera vegada: 30 de Juny de 2026
Actualització més recent: fa 5 dies
Últim descarregat: fa 20 minuts
35 Comentaris
More mods by andre500:
A library for GTA V (ScriptHookVDotNet) that injects contacts, SMS messages and emails directly into the player's in-game cellphone via low-level global variable memory manipulation.
GTA V's cellphone controller and contacts scripts (cellphone controller, appcontacts, cellphone flashhand) keep all of their state in numbered global variable arrays: the SMS feed, the email feed, and the character sheet that backs the phonebook. iFruit Jailbreak writes directly to these arrays and flips the bit flags the native scripts poll each frame, so the game processes the injected data exactly as if it had produced it itself.
For messages the result is indistinguishable from something the game sent:
For contacts the library goes a step further: because the phonebook, the DIALING... screen and the call screen are all drawn by the native scripts from character-sheet fields that are resolved as GXT text labels, arbitrary custom text cannot be shown through those fields alone. iFruit Jailbreak therefore repaints the relevant Scaleform rows itself so a contact can carry a fully custom name and icon, and it hijacks the phone's call state machine so calling the contact behaves like a real in-game call.
Features
Messaging:
Contacts (new)
Requirements
Currently, the mod only works in the Legacy version.
Installation
1. Copy iFruit Jailbreak.dll to your GTA V scripts folder
2. Add using iFruitJailbreak in your script file.
Changelog
3.0:
2.0:
GTA V's cellphone controller and contacts scripts (cellphone controller, appcontacts, cellphone flashhand) keep all of their state in numbered global variable arrays: the SMS feed, the email feed, and the character sheet that backs the phonebook. iFruit Jailbreak writes directly to these arrays and flips the bit flags the native scripts poll each frame, so the game processes the injected data exactly as if it had produced it itself.
For messages the result is indistinguishable from something the game sent:
- Native notification styling and colors
- Proper character icon rendering
- SMS/email arrival sound
- Gamepad vibration (SMS only)
- Inbox persistence across frames
For contacts the library goes a step further: because the phonebook, the DIALING... screen and the call screen are all drawn by the native scripts from character-sheet fields that are resolved as GXT text labels, arbitrary custom text cannot be shown through those fields alone. iFruit Jailbreak therefore repaints the relevant Scaleform rows itself so a contact can carry a fully custom name and icon, and it hijacks the phone's call state machine so calling the contact behaves like a real in-game call.
Features
Messaging:
- Send SMS messages from any built-in GTA V character or company
- Send email notifications with header, body, and sender
- Inject emails into the per-character inbox (persistent)
- Delete injected SMS messages by slot ID
- Safe multi-frame message splitting for long texts (up to 3 x 63 UTF-8 bytes)
Contacts (new)
- Add phonebook contacts with a custom name (any length on screen) and a custom icon
Choose an icon from 230 built-in character textures via appContacts.ContactIcon - Control alphabetical placement with a sort key
- Detect when the player calls a custom contact, keep the call "connected", and end it from script
- Remove contacts by slot ID
- Survives ScriptHookVDotNet reloads without leaving broken "ghost" contacts behind
Requirements
- ScriptHookVDotNet Nightly Build
- GTA V Legacy 1.72 or later
Currently, the mod only works in the Legacy version.
Installation
1. Copy iFruit Jailbreak.dll to your GTA V scripts folder
2. Add using iFruitJailbreak in your script file.
Changelog
3.0:
- The globals have been updated to version 1.73
- Added automatic updates for the globals without the need to download a new version of the script
2.0:
- ADDED CUSTOM CONTACTS SUPPORT. The limit is 56 simultaneously added contacts. For usage examples, see the GitHub repository.
- Fixed a rare bug where the game sent an empty message if a previous message was sent by a script.
- Fixed incorrect display of html tags and attachment of images to messages.
- The message capacity has increased from 189 to 297 bytes (297 characters with spaces if message in English). The html tag should not exceed 99 characters.
Source code and instructions for integrating it into your scripts: https://github.com/sruckstar/iFruitJailbreak
Carregat per primera vegada: 30 de Juny de 2026
Actualització més recent: fa 5 dies
Últim descarregat: fa 20 minuts








@andre500 How universal is this? do you think any game update could break it? I got a looot of mods I want to adapt to this, but I'm treading lightly.
@thalilmythos Updates will change the global variables, but I'll be releasing a patch soon that will automatically load the latest variables, so users won't have to update the library every time a patch is released on MP.
@andre500 which command, sorry for disturbing
great job!
good mod but how can i use it? sorry for disturbing
@andre500 This mod could potentially replace ifruit addon. pretty exciting!
@PenguinoGT @William Halverd There are code examples on GitHub. But in short:
appTextMessage.Send("Hey, what's up?", MessageSender.FranklinSp);
appMail.SendStrID(33, 33, MailSender.EpsilonStore);
int slot = appContacts.AddContact("Custom Contact", ContactIcon.SocialClub);
@andre500 Excellent! Gonna try
@andre500 oh ok thx
Maybe im dumb but I install everything and on the phone nothing changed like I cannot add contacts or send anything ? Whats the keybinds for that ?
@Pilou This is a framework. To send messages and add contacts, you need to create a C# script and integrate iFruitJailbreak with it.
Sample code is available on GitHub: https://github.com/sruckstar/iFruitJailbreak/blob/main/Example.cs
Thank you but damn ... that's not for me there is coding
@andre500 Hey man, i use a version of the game from december (before rockstar messed loads of scripts up) but i get instant errors using this. Anyway to make this compatible with all versions of the game?
@mitto_backup It's possible, but you'll need to check the global variable numbers for each game version.
Currently, the mod retrieves the indices from here: https://github.com/sruckstar/iFruitJailbreak/blob/main/ifruit_globals.ini
There are only two versions listed there: 1.72 and 1.73. You can add any version you want, even 1.00. But unfortunately, I won’t be able to handle this task on my own.
@andre500 how can i find global variables for my game version? if it's simple i can find the values myself & submit them
@andre500 So, no future patch?
@andre500 so the mod doesn't load a local ini file? i've got the variables for 1.71 how do i test?
If anyone could help me I have this error on my f4
[ ERROR ] Failed to compile Example.cs using API version 3.7.0 with_1 error(s):
[ ERROR ] at line 5: The type or namespace name 'iFruitJailbreak' could not be found
-Basically, what I did (I don't even know if that's what I was supposed to do) was copy and paste the example from GitHub into Notepad, renamed and save it as Example.cs , and put it in my scripts folder along with the DLL.
[1.71]
; SMS feed (cellphone_controller text-message array)
SavedGlobalsBase=114344
TextMessageArrayOffset=14145
PhoneOwnerIndex=21222
CharSheetBase=2241
PedHeadshotArray=23655
DirectorModeGlobal=79744
PrologueGlobal=21165
TxtMsgFreeIndexGlobal=23653
TxtMsgHeadshotIdGlobal=23646
LastTxtMsgSenderGlobal=9779
CellphoneFlagsGlobal=9075
CustomSenderNameGlobal=9780
; Email feed / inbox (appEmail)
EmailFeedArrayBase=4543041
EmailFeedFreeIndexGlobal=4546594
CellphoneTuBitsetGlobal=4546610
EmailUnreadCountBase=45601
EmailData=45609
EmailCampaigns=48934
EmailInbox=54547
; Call / phone state (cellphone_controller, appContacts)
ContactInvolvedInCallGlobal=8390
ConversationStatusGlobal=22595
ConversationRepeatTimerGlobal=23606
PhoneScaleformHandleGlobal=21203
ContactListRowMapBase=21228
CallViewIndexGlobal=21202
CallAnswerTimeGlobal=23615
CallBusyTimeoutGlobal=23614
but i need to test to see if they work, the ini doesn't load & if i create an ini from the file on your github it doesn't read it
turns out my values are wrong. please disregard my comment - abandoning ship