Configuration
Every Hookr option in shared/config.lua and its default — the app icon and id, profiles, discovery and distances, daily limits, request pacing, reports and notifications.
Everything is in shared/config.lua. Restart oxide-hookr 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 | 'hookr' | The app's id on the phone, and the id to use in the phone's preinstalled apps. Leave it as 'hookr': the phone only serves the id declared in fxmanifest.lua |
Config.App.color | '#D6286B' | 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 |
Config.App.order | 62 | Where the app sorts in the Store and on a new home screen; lower comes first |
Profile
| Option | Default | Meaning |
|---|---|---|
Config.Profile.minAge | 18 | Youngest age allowed. The server never accepts an age under 18, whatever this says |
Config.Profile.maxAge | 80 | Oldest age allowed |
Config.Profile.nameMax | 24 | Longest name, in characters |
Config.Profile.bioMax | 300 | Longest bio |
Config.Profile.maxPhotos | 6 | Photos per profile |
Config.Profile.maxInterests | 5 | Interests a player can pick |
Config.Profile.maxPrompts | 3 | Prompts a player can answer |
Config.Profile.promptAnswerMax | 120 | Longest prompt answer |
Config.Profile.interests | 24 ids | The interests on offer. Each id needs an interest.<id> line in the locale file |
Config.Profile.prompts | 8 ids | The prompts on offer. Each id needs a prompt.<id> line in the locale file |
Discovery
| Option | Default | Meaning |
|---|---|---|
Config.Discovery.deckSize | 20 | Cards sent to the phone at a time |
Config.Discovery.candidatePool | 250 | Profiles read per deck before distance and ranking. Raise it on very large servers |
Config.Discovery.unit | 'km' | 'km' or 'mi' for distances |
Config.Discovery.maxDistance | 15 | The top of the distance slider. Its last step means anywhere |
Config.Discovery.zoneSize | 400 | Metres. Locations are stored and compared by area of this size, never exactly |
Config.Discovery.locationDays | 7 | A location older than this is treated as unknown |
Everyone with a profile is in the deck, online or not, so small servers are never empty. A player without a location is never filtered out by distance.
Limits
| Option | Default | Meaning |
|---|---|---|
Config.Limits.likesPerDay | 100 | Likes per day; 0 for no limit |
Config.Limits.superLikesPerDay | 1 | Super Likes per day; 0 for no limit |
Config.Limits.rewindsPerDay | 3 | Rewinds per day; 0 for no limit |
Config.Limits.messageMax | 500 | Longest chat message |
Config.Limits.reportNoteMax | 300 | Longest note on a report |
Config.Limits.pageSize | 40 | Chat messages loaded at a time |
The day resets at midnight, server time.
Request pacing
Config.RateLimits sets how many requests a player may make: { burst, per milliseconds } for reading (read, 40 per 10 s), building the deck (deck, 10 per 30 s), swiping (swipe, 15 per 10 s), messaging (message, 10 per 15 s), profile edits (profile, 12 per 60 s), safety actions such as unmatch, block and report (safety, 6 per 60 s), moderation (admin, 40 per 10 s) and taking a phone out, when Hookr checks which account that phone is on (opened, 3 per 10 s). The defaults suit normal play; raise them only if players hit "Slow down".
Reports and notifications
| Option | Default | Meaning |
|---|---|---|
Config.Report.reasons | 6 ids | Report reasons. Each needs a reason.<id> line in the locale file |
Config.Notifications.matches | true | Phone notifications for new matches and Super Likes |
Config.Notifications.messages | true | Phone notifications for new messages |
Installation
Setting up Hookr on top of Oxide Phone — requirements, start order, database tables, getting the app on phones, photo storage, checking it works and updating.
Admin
Moderating Hookr — who counts as an admin, the Moderation screen in the app, the /hookr command and where every action is logged.