Configuration
Every Leakd option in shared/config.lua and its default — the app icon and id, posts and comments, the home feed, explore and reels, stories, Direct, lives, search, request limits, reports and notifications.
Everything is in shared/config.lua. Restart oxide-leakd after a change. The text players see is in locales/en.json.
App
| Option | Default | Meaning |
|---|---|---|
Config.Debug | false | Has no effect in this version; leave it false |
Config.App.id | 'leakd' | The app's id on the phone, and the id to use in the phone's preinstalled apps. Leave it as 'leakd': the phone only serves the id declared in fxmanifest.lua |
Config.App.color | '#0E9BD8' | The icon's colour where the phone cannot show the icon picture |
Config.App.iconBackground | 3 colours | 1 to 3 hex colours of the gradient behind the icon picture (web/dist/icon.svg) |
Config.App.order | 60 | Where the app sorts in the Store and on a new home screen; lower comes first |
Posts and comments
| Option | Default | Meaning |
|---|---|---|
Config.Profile.bioMax | 150 | Longest bio, in characters |
Config.Posts.captionMax | 2200 | Longest caption |
Config.Posts.maxMedia | 10 | Photos in one post. A video post holds one video |
Config.Comments.max | 500 | Longest comment |
Config.Comments.pageSize | 30 | Comments loaded at a time |
Home
Posts from the people a player follows, newest first. Likes and comments move a post up a little: each step of engagement is worth boostSeconds of time, never more than maxBoostSeconds.
| Option | Default | Meaning |
|---|---|---|
Config.Feed.pageSize | 12 | Posts loaded at a time |
Config.Feed.boostSeconds | 1800 | How far engagement moves a post up |
Config.Feed.maxBoostSeconds | 14400 | The most it can move up (4 hours) |
Config.Feed.sameAuthorRun | 2 | Most posts in a row from one person, when others can come between |
Explore and Reels
| Option | Default | Meaning |
|---|---|---|
Config.Explore.days | 3 | How recent a post must be to count as popular. A quiet server shows the newest posts instead |
Config.Explore.candidates | 300 | Posts read before ranking |
Config.Explore.pageSize | 30 | Tiles loaded at a time |
Stories
| Option | Default | Meaning |
|---|---|---|
Config.Stories.hours | 24 | How long a story shows |
Config.Stories.photoSeconds | 5 | How long a photo story stays on screen |
Config.Stories.keepDays | 2 | Days an expired story is kept (for viewer lists and reports) before it is deleted |
Direct
| Option | Default | Meaning |
|---|---|---|
Config.Direct.messageMax | 1000 | Longest message |
Config.Direct.pageSize | 40 | Messages loaded at a time |
Live
How many can watch, how many lives run at once and the longest live are the phone's live stream settings (/phone settings → Media → Live streams).
| Option | Default | Meaning |
|---|---|---|
Config.Live.titleMax | 60 | Longest live title |
Config.Live.commentMax | 150 | Longest live comment |
Config.Live.maxMinutes | 120 | Leakd ends a live after this long. The phone's own Longest stream (60 minutes by default) also applies; the shorter one wins |
Config.Live.notifyFollowers | true | Tell followers when someone goes live |
Config.Live.notifyMax | 200 | Most followers told, newest followers first |
Config.Live.heartbeatSeconds | 60 | A live whose host's page goes quiet this long ends |
Search
| Option | Default | Meaning |
|---|---|---|
Config.Search.results | 20 | Accounts shown for a search |
Request limits
Config.RateLimits sets how many requests of each kind one player can make: { burst, per milliseconds }. The server refuses anything over, and the player sees "Slow down".
| Kind | Default | Covers |
|---|---|---|
read | 60 per 10 s | Loading screens |
post | 6 per 60 s | Posts, stories, edits and deletes |
engage | 40 per 10 s | Likes, saves, story views, hearts |
comment | 8 per 15 s | Comments |
follow | 20 per 60 s | Follows, unfollows and requests |
message | 12 per 15 s | Direct messages |
profile | 8 per 60 s | Profile changes |
live | 6 per 60 s | Starting and ending lives |
liveChat | 10 per 10 s | Live comments |
safety | 6 per 60 s | Reports |
admin | 40 per 10 s | Moderation |
opened | 3 per 10 s | Taking a phone out: Leakd checks which account that phone is on |
Reports
| Option | Default | Meaning |
|---|---|---|
Config.Report.reasons | 7 ids | The reasons on offer. Each id needs a reason.<id> line in the locale file |
Config.Report.noteMax | 300 | Longest note on a report |
Notifications
Config.Notifications turns each kind of phone notification on or off: likes, comments, follows, mentions, messages and live. Activity is kept either way.
Installation
Setting up Leakd on top of Oxide Phone — requirements, start order, database tables, getting the app on phones, photo storage and live video, checking it works and updating.
Admin
Moderating Leakd — who counts as an admin, the Moderation screen and verified badge in the app, the /leakd command and where every action is logged.