Price
UnknownA script by TheMadCap
Price
Unknown
notifications into
narratives.A thought bubble notification system designed for immersive roleplay.
In traditional FiveM servers, notifications often break immersion with meta-gaming information: “Not enough police online” or “You don’t have the required skill level.” These messages force players to acknowledge game mechanics rather than staying in character.
mad-thoughts transforms this experience by displaying notifications as the character’s inner thoughts. When a player encounters a locked door they can’t pick, instead of seeing “Lockpicking skill too low,” they’ll think: “This lock looks too complex for me…”
Purchase on Tebex
https://madcap-scripts.tebex.io/package/mad-thoughts
Watch the preview video to see mad-thoughts in action, or view the screenshots below.
Read the docs for more details.
Immersive Thought Bubbles: Displays character thoughts above the player’s head
Rich Customization: Icons, colors, and timing options
Scenario System: Automatic thoughts based on gameplay situations
Message Variety: Random selection prevents repetition
Location Awareness: Thoughts trigger in specific areas
Sequential Thoughts: Create story-driven thought chains
Server-Wide Thoughts: Send thoughts to all connected players
Developer-Friendly: Simple exports for easy implementation
Perfect For:
Transform your server’s notification system from immersion-breaking text to character-driven thoughts . Your players will feel more connected to their characters , and your world will feel more authentic and alive.
The real power of mad-thoughts comes from creating your own custom scenarios and locations. While the resource includes several pre-built examples, you’re encouraged to create ones tailored to your server.
Scenarios automatically trigger thoughts based on specific conditions that you define. The included examples cover:
Each scenario uses a check function to determine when to trigger, plus the same customization options as regular thoughts (message, icon, color, duration, etc.).
Location thoughts appear when players enter areas you’ve defined. The resource includes examples for:
You simply define coordinates and a trigger radius, along with the thought customization (message, icon, color, duration, etc.).
Both scenario and location-based features can be completely customized through the config.lua file or disabled entirely if you prefer to trigger thoughts only through direct exports.
-- Basic notification
exports['mad-thoughts']:thought("I can't do this right now...")
-- With duration (10 seconds)
exports['mad-thoughts']:thought("I wonder what that means...", 10)
-- With icon
exports['mad-thoughts']:thought("Something doesn't feel right about this...", 5, "fas fa-question-circle")
-- With icon and color
exports['mad-thoughts']:thought("I need to get out of here!", 8, "fas fa-exclamation", "#e74c3c")
exports['mad-thoughts']:info("I just remembered where I left my keys...", 5)
exports['mad-thoughts']:success("I finally figured it out!", 5)
exports['mad-thoughts']:warning("This doesn't look safe...", 5)
exports['mad-thoughts']:error("I've made a terrible mistake...", 5)
Display multiple thoughts in sequence:
exports['mad-thoughts']:thoughtChain({
{message = "That's strange...", duration = 3},
{message = "I wonder if anyone is here...", duration = 4, icon = "fas fa-question"},
{message = "Better be careful.", duration = 3, color = "#e74c3c"}
}, 4000)
The system allows you to dynamically create and remove thought triggers. This is especially useful for:
exports['mad-thoughts']:registerScenario('myResourceScenario', {
check = function(ped)
return IsPedAimingFromCover(ped)
end,
message = "Ready, aim, fire...",
duration = 6,
icon = "fas fa-crosshairs",
color = "#FF0000",
cooldown = 30
})
exports['mad-thoughts']:registerLocation('myResourceLocation', {
coords = vector3(176.52, -954.48, 30.09),
distance = 20.0,
message = "This place looks familiar...",
duration = 5,
icon = "fas fa-building",
color = "#3498db",
cooldown = 300
})
-- Remove a scenario you previously registered
exports['mad-thoughts']:removeScenario('myResourceScenario')
-- Remove a location you previously registered
exports['mad-thoughts']:removeLocation('myResourceLocation')
You can send thoughts to all connected players:
-- Send a thought to all players on the server
exports['mad-thoughts']:sendThoughtToAll(
"Everyone should see this message!", -- message
5, -- duration in seconds
"fas fa-bullhorn", -- icon
"#E67E22" -- color (orange)
)
-- Send a thought directly from a server script
exports['mad-thoughts']:sendThoughtToAll(
"Server announcement as a thought", -- message
5, -- duration in seconds
"fas fa-server", -- icon
"#3498db" -- color (blue)
)
-- Basic usage
/globalthought "This is a global announcement"
-- With custom duration (in seconds)
/globalthought "This is a global announcement" "10"
-- With custom icon
/globalthought "This is a global announcement" "10" "fa-solid fa-bell"
-- With custom color
/globalthought "This is a global announcement" "10" "fa-solid fa-bell" "#FF5733"
This command requires the group.admin permission
-- When player approaches a mission NPC
exports['mad-thoughts']:thought("I wonder if I should talk to this stranger...", 5)
-- Instead of "Lockpicking failed"
exports['mad-thoughts']:error("I can't seem to get these tumblers right...", 4)
-- When entering an abandoned building
exports['mad-thoughts']:thoughtChain({
{message = "This place gives me the creeps...", duration = 4},
{message = "Feels like someone's watching me...", duration = 3, icon = "fas fa-eye"}
}, 3000)
The resource comes with a comprehensive config.lua file that includes:
The resource includes debug visualizations to help you set up and test your location triggers:
Enable debug mode in your config.lua:
Debug = true, -- boolean (true/false | default: false)
When debug mode is enabled, you’ll see:
This is particularly useful when:
Join our Discord community for support, regular updates and to request new features.
| Code is accessible | No |
| Subscription-based | No |
| Lines (approximately) | 1,249 |
| Requirements | ox_lib |
| Support | Yes |
mad-drugruns - Drug Manufacturing & Trafficking
mad-perform - Dynamic Street Performance System
mad-magic8ball - Realistic Magic 8-Ball
mad-vendrob v2 - Ultimate Vending Machine Robbery
mad-musicgame - Rhythm-based Mini-game [FREE]
minimal-hud - Minimalistic & Standalone HUD [FREE]
mad-restyles - Restyled Community Resources [FREE]
mad-loot - Advanced Loot Table Generation System [FREE]
mad-cipherheist - Immersive Signal Decryption Heist [FREE]
mad-ccat-heist - Federal Software Heist [FREE]
mad-vendrob v1 - Vending Machine Robbery [FREE]
See what others are saying about this script.
Share your experience and help others.