๐Ÿ–ผ๏ธ Avatar Photo Hosting

When a player picks up a license, the script captures their character portrait in-game and needs somewhere permanent to store that image so it can be shown on the license, in the MDT, and in player profiles. The License System hands this off to an image host that you choose in configs/s.imagehost.lua.

There are two hosting paths:

  • webhook (recommended, default) โ€” the photo is uploaded to a Discord-format webhook URL. Use an uploadhub.gg webhook (see below) so the links never expire.
  • custom โ€” you host the image yourself (Imgur, S3, your own CDN, โ€ฆ) via the UploadAvatarImage hook. See s.imagehost.lua.

Do not paste a raw Discord webhook here. Discord's CDN links now expire after a while, so every license photo will eventually turn into a broken image. Use an uploadhub.gg webhook instead โ€” it gives you a Discord-format URL but hosts the images permanently.

uploadhub.gg hands you a Discord-format webhook URL while hosting every uploaded image permanently (links never expire). Set it up in a few minutes:

1

Create a new project

Visit https://uploadhub.gg, log in, and create a new project.

2

Generate a Discord-format webhook

Open the Webhook tab and generate a new webhook with the format set to Discord.

3

Copy the webhook URL

Copy the generated webhook URL.

4

Paste it into the config

Open configs/s.imagehost.lua, keep provider = "webhook", and paste the URL into the webhook field.

Lua
Config.AvatarUpload = {
    provider = "webhook",
    webhook = "YOUR_UPLOADHUB_WEBHOOK_URL",
}
5

Restart the resource

Restart devhub_licenses. New license photos will now upload to your uploadhub.gg project and stay online permanently.

Prefer to host images on your own infrastructure (Imgur, S3, a private CDN)? Set provider = "custom" and implement the UploadAvatarImage hook instead โ€” see the config page below.

S.Imagehost.Lua