Magical Post

Magical Post

Syra_MagicalPost - Fantasy Mail, Voice Messages and Flying Companions

Syra_MagicalPost is an immersive fantasy postal system for FiveM that combines physical letters, recorded voice messages and collectible flying companions in one complete roleplay experience.

Players can visit a configurable postal NPC to purchase their own messenger bird, build a contact list with nearby players and exchange deliveries through a fully themed magical interface. Letters and Magiwords are collected as inventory items, allowing recipients to keep and replay their correspondence whenever they want.

Every companion can be placed on the player's shoulder, sent flying into a configurable orbit and followed through a third-person spectator camera. Particle effects accompany its arrival and departure for a polished magical presentation.

Key Features

Technical Information

Installation guide

  1. Download the resource

    After purchase, sign in to portal.cfx.re (Granted Assets) with the Cfx account linked to your Tebex order and download Syra_MagicalPost.

  2. Add it to your resources

    Extract the archive and place Syra_MagicalPost in your server resources folder. Keep the folder name unchanged: other resources and item exports call it by name.

  3. Database

    Tables are created automatically. sql/install.sql is provided for a manual install (syra_magicalpost_pets, syra_magicalpost_contacts, syra_magicalpost_messages).

  4. Add the items

    Copy the four definitions from install/ox_inventory_items.lua into ox_inventory/data/items.lua (or install/qb_items.lua into qb-core/shared/items.lua):

    ['paper'] = {
        label = 'Papier à lettres',
        weight = 5,
        stack = true,
        close = true,
        description = 'Une feuille prête à recevoir quelques mots.',
        image = 'paper.svg',
    },
    
    ['magiword'] = {
        label = 'Magiword vierge',
        weight = 20,
        stack = true,
        close = true,
        description = 'Un réceptacle magique capable de conserver une voix.',
        image = 'magiword.svg',
    },
    
    ['magical_letter'] = {
        label = 'Vieille lettre',
        weight = 10,
        stack = false,
        close = true,
        consume = 0,
        description = 'Une lettre confiée à la Poste Magique.',
        client = {
            image = 'magical_letter.svg',
            export = 'Syra_MagicalPost.useMessageItem',
        },
    },
    
    ['magical_magiword'] = {
        label = 'Magiword scellé',
        weight = 30,
        stack = false,
        close = true,
        consume = 0,
        description = 'Une voix est scellée à l’intérieur.',
        client = {
            image = 'magical_magiword.svg',
            export = 'Syra_MagicalPost.useMessageItem',
        },
    },

    Copy the four files from install/images/ into your inventory image folder.

  5. Start order in server.cfg

    ensure oxmysql
    ensure ox_inventory # or qb-inventory
    ensure Syra_MagicalPost

    Restart the inventory, then Syra_MagicalPost.

  6. Voice storage

    Magiwords are saved as WebM/Opus files in storage/voice/; only metadata goes to the database. Keep this folder writable by FXServer and include it in your backups.