Sacul
Introducing Player Upload Portals for FiveM Communities
Player Upload Portals are now included in every FiveMesh plan, giving communities a Discord-gated way to upload images and videos directly to FiveMesh CDN.
Introducing Player Upload Portals for FiveM Communities
Player Upload Portals are now available to every FiveMesh customer.
A portal gives your community a simple page for uploading images and videos to your FiveMesh CDN workspace. Players verify through Discord, upload from their browser, and receive a shareable media URL that can be used across your FiveM server and community.
They do not need to create a FiveMesh customer account, join your FiveMesh organization, or receive access to the rest of your infrastructure.
This began with a familiar use case: a player takes a photo through an in-game phone, edits it outside the game, and needs a new URL to publish the result in a social post or message. But community media is much broader than phone photos. Roleplay servers regularly need screenshots, videos, character images, event media, evidence, promotional material, and other files that need a stable public URL.
Player Upload Portals turn that informal workflow into a controlled part of your FiveMesh infrastructure.
The problem with external upload websites
When a player needs to bring an edited image back into a FiveM server, the usual solution is to upload it to a general-purpose image host and paste the resulting URL into the relevant script.
It works, but the server owner has almost no control over the result.
The file lives outside the community's infrastructure. Retention policies may change. The host may compress the image, reject a format, remove the file, show advertising, or block the request pattern used by a game interface. Staff cannot easily trace an abusive upload back to the responsible Discord member, and files are scattered across accounts and services that the server team does not manage.
Requiring every player to become a full FiveMesh organization member would solve the ownership problem while creating a much larger access problem. Players should not need dashboard permissions, billing visibility, or a customer account just to upload a roleplay image.
The upload portal sits between those two extremes:
- The community owns the portal and its uploaded media.
- Discord determines who may use it.
- Players receive a focused upload page instead of dashboard access.
- Server owners keep control over limits, retention, files, and abuse handling.
A public page with private access
Every portal receives a memorable FiveMesh URL:
https://fivemesh.io/upload-portal/your-community
The page can be shared in Discord, community documentation, or a staff guide. Opening the link does not automatically grant upload access.
Players continue with Discord, and FiveMesh checks that they belong to the Discord server connected to the portal. If the owner has configured role restrictions, those roles are checked as well. This verification creates a dedicated portal session, not a FiveMesh customer account.
The session allows the player to return to the portal without authenticating again after every refresh. It remains separate from the account and organization authentication used by the FiveMesh dashboard.
This keeps the public workflow small: verify, choose files, upload, and copy the resulting URLs.
Choose exactly who can upload
Portal access can follow one of three Discord rules.
Any server member
Every member of the connected Discord server can upload, regardless of their roles.
This is the simplest option for communities that want the portal to be generally available while still preventing uploads from people outside their Discord server.
Any selected role
A member can upload when they have at least one of the roles selected by the portal owner.
For example, selecting Verified, Customer, and Staff means that a player with any one of those roles is allowed through. This works well when several different groups should have the same upload access.
All selected roles
A member can upload only when they have every selected role.
For example, selecting Verified and Whitelisted requires both roles. This is useful when access should follow a combination of community requirements rather than a single role.
Membership and role access are checked again when an upload begins. Removing a role in Discord therefore affects future uploads without requiring the server owner to maintain a second permission list in FiveMesh.
Built for community media, not one specific script
Player Upload Portals support the media formats commonly needed by FiveM communities:
- PNG
- JPEG and JPG
- WebP
- GIF
- WebM
- MP4
That covers edited phone photos, short videos, animated media, character pictures, event screenshots, police or staff evidence, social posts, promotional artwork, and many other roleplay workflows.
The portal does not require a particular phone, inventory, or framework. It returns a normal public URL, so the file can be used anywhere a FiveM script or community tool accepts media by URL.
Each portal can accept files up to 256 MB. The owner chooses the actual limit from 1 MB to 256 MB, allowing a portal intended for small screenshots to be much stricter than one intended for video.
The owner can also set a rolling allowance of between 1 and 100 uploads per player every 24 hours. Limits are applied per Discord user, which prevents one active uploader from consuming the entire portal's intended capacity.
Direct uploads without routing media through the dashboard
Large community files should not need to pass through the FiveMesh dashboard application before reaching storage.
When a player starts an upload, FiveMesh first verifies the portal, Discord access, file type, declared size, rolling allowance, and block status. It then prepares a short-lived upload request restricted to that file. The player's browser sends the media directly to the storage and delivery layer.
After the transfer completes, FiveMesh confirms the upload and returns its public CDN URL.
This keeps the application API out of the media data path. It avoids receiving and relaying every image or video through the dashboard, reduces unnecessary overhead, and gives large uploads a cleaner path to storage.
The prepared request is bound to the expected content type and length. FiveMesh also validates the file's media signature instead of relying only on its filename extension. Public filenames are generated randomly, so original local filenames are not exposed as predictable URLs.
Decide where files belong
Each portal writes into a folder selected by the workspace owner. The default is:
uploads/community
Files are placed directly in that folder without automatically adding player-ID or date subfolders. Owners can edit the destination to match the way their CDN workspace is organized, such as:
uploads/phone-edits
uploads/events
uploads/roleplay-media
Randomized filenames keep the resulting URLs difficult to predict, while upload metadata and audit logs retain the operational context needed by the owner.
Different portals can use different folders. This lets a network separate media by server or community without creating another storage service.
Keep media permanently or apply retention
By default, files uploaded through a portal never expire.
That default is appropriate for media intended to remain part of a character profile, community history, permanent gallery, or long-lived roleplay record. A portal can instead apply a retention period between one hour and 365 days.
Temporary retention is useful for workflows where old files have little long-term value:
- Short-lived event submissions
- Temporary staff review material
- One-time transfer pages
- Media that is copied into another managed system
- High-volume content that should clean itself up
The public portal clearly tells players whether their URL is permanent or how long it will remain available. Retention is applied to the portal's destination, so portals writing to overlapping folders must use compatible policies.
Upload audit logs are separate from media retention. They always expire after 30 days and cannot be configured to remain longer.
Recent uploads for players
After signing in, a player can see their latest successful uploads for that portal.
The list makes it easy to recover a URL after closing a tab, copy a recent upload again, or confirm that a file completed successfully. It only shows uploads belonging to the signed-in Discord user.
Recent-upload history is available for up to 30 days and shows at most the latest 25 successful uploads. It is a convenience view backed by the same limited audit period, not a permanent media library.
The media itself follows the retention selected by the portal owner. A permanent file can therefore continue to work after its entry disappears from the player's recent list.
Moderation and abuse controls
Making uploads convenient also means preparing for misuse.
The FiveMesh dashboard keeps a 30-day operational log of completed, pending, rejected, and deleted uploads. Owners and authorized organization members can search recent activity, identify the Discord user responsible for a file, inspect relevant request and file information, and open or remove an uploaded object.
If someone abuses the portal, an operator can:
- Find the upload in the portal logs.
- Identify the responsible Discord account.
- Delete the CDN file so its public URL stops working.
- Block that uploader from making further uploads.
- Remove the block later if access should be restored.
Deleting a file does not immediately erase its audit entry. The record remains for the rest of the fixed 30-day log period, preserving enough context for the server owner to review what happened.
Owners can also pause an entire portal. Existing files remain available according to their retention rules, but no new uploads are accepted until the portal is enabled again.
Multiple servers, multiple portals
FiveMesh subscriptions are designed around server capacity, so upload portal capacity follows the same model.
| Plan | Upload portals |
|---|---|
| Starter | 1 |
| Growth | Up to 3 |
| Pro | Up to 5 |
| Business | Custom |
A portal can represent one FiveM server, one Discord community, or a distinct upload workflow. A Growth customer might use separate portals for a main roleplay server, a development community, and an event server. A larger network can keep access rules, storage folders, and logs separated between communities.
The dashboard presents portals as a compact list. Selecting one opens its overview, public URL, access settings, storage rules, and upload activity.
Organization permissions stay consistent
Upload Portals are part of FiveMesh CDN, so organization access uses the existing CDN permissions.
Organization members with CDN read access can view portal information and logs. Members with write access can manage the applicable portal configuration. File deletion follows the corresponding delete permission.
Only the workspace owner can create or reset portals. Organization members work with the owner's portals rather than accidentally creating isolated portal infrastructure under their personal account.
This keeps the same ownership model across CDN files, portal settings, subscription limits, and organizations.
How to create a Player Upload Portal
The setup flow is available from the Upload Portal section of the FiveMesh CDN dashboard.
1. Connect Discord
Link Discord from your FiveMesh account settings if it is not already connected. Install the FiveMesh bot in the Discord server that will control portal access, then enter and verify that server's ID.
FiveMesh uses the bot to confirm the server and retrieve the roles available for access rules.
2. Choose who can upload
Allow every Discord server member, require any one of a set of roles, or require every selected role.
Choose the rule that matches permissions already maintained by your community team. There is no need to reproduce your entire Discord role structure.
3. Configure the page and storage
Choose the public portal name, CDN destination folder, file retention, maximum file size, and per-player 24-hour allowance.
Portal names use lowercase letters, numbers, and hyphens. Once created, the public page is available under the corresponding fivemesh.io/upload-portal/ URL.
4. Review and activate
Confirm the Discord server, role rule, storage destination, and limits. Activate the portal when it is ready to share.
The public page includes metadata and an OpenGraph image based on the community name, making the link clear when shared and allowing the page to be indexed under the community's chosen portal identity.
Available in every plan
Player Upload Portals are included in Starter, Growth, Pro, and Business. There is no separate upload-portal subscription or feature flag to request.
Uploaded files use the same CDN storage, requests, and bandwidth included with the workspace's plan. The portal is another controlled way to place media into FiveMesh CDN, not a separate storage allowance.
An active subscription and a configured CDN workspace are required. The number of portals that can be created follows the plan's registered-server capacity.
Existing customers can open the FiveMesh CDN dashboard, select Upload Portal, and create their first page now.
Community uploads as infrastructure
Player-created media has become a normal part of modern FiveM roleplay.
It deserves a workflow that is as deliberate as the systems that display it: authenticated access, controlled storage, stable URLs, clear limits, useful retention, and enough logging to respond when something goes wrong.
Player Upload Portals give communities that workflow without turning every player into a dashboard user and without sending them to an unrelated upload service.
Create a portal, connect it to the Discord roles your community already uses, and give players one trusted place to upload the media that belongs in your server.
Continue reading