Ownership sheet
The Ownership registry is one Google Sheet per Discord server that records the custom assets you have imported for players and the businesses players own. FiveUnity writes the rows; the spreadsheet is yours.
Where: Dashboard โ Roleplay โ Ownership ยท In Discord: /importasset, /importbusiness
#The spreadsheet is the registry
FiveUnity does not keep a second copy of your assets or businesses. It stores the link to your sheet and nothing else, and every command reads and writes that sheet live. Open it whenever you like, sort it, filter it, share it with your dev team.
Two consequences worth knowing:
- If the sheet is deleted, or FiveUnity loses access to it, logging stops until you reconnect or run setup again.
- Editing rows by hand is fine, but never rename the Active Assets, Repoed Assets, Active Businesses, Repoed Businesses, Business Activity or Business Strikes tabs. FiveUnity finds them by name.
#Connect your Google account
Under Google account, press Connect Google and approve the consent screen. Three fields then tell you where you stand:
| Field | What it means |
|---|---|
| Connection | Connected or Not connected. |
| Account | The Google account the sheet is created with. |
| Sheet owned by | Your Google account when connected, otherwise The bot host. |
Connecting means the spreadsheet is created in, and owned by, your Drive. FiveUnity can only see the one file it creates for this server; it has no access to anything else in your Drive.
Without connecting, the sheet is created by the bot host's shared account and lives in the host's Drive. That still works, but connecting your own account keeps the data in your hands.
Disconnect stops FiveUnity writing to the sheet. The sheet itself stays in your Google account and nothing is deleted; reconnect any time.
#Status
| Field | What it means |
|---|---|
| Registry | Not configured, Needs upgrade, or Configured. |
| Share email | The Google account that was given edit access, or Not shared. |
| Asset tabs | Ready or Missing. |
| Business tabs | Ready, Needs upgrade for an older asset-only sheet, or Not created yet. |
Once a sheet exists, Open spreadsheet and the link underneath take you straight to it.
#Setup
Enter a Google share email (the staff Google account that should get edit access) and press Create ownership spreadsheet.
FiveUnity creates a sheet named after your server (Your Server Ownership Registry) builds the tabs with headers and filters, writes a README tab explaining every column, and shares edit access with that address.
If your server already has an older asset-only sheet, the button reads Upgrade sheet instead: the business tabs are added and your existing asset rows are left untouched.
The same flow runs in Discord with /importasset setup share_email: or /importbusiness setup share_email:; it is one registry either way.
Logging from the web is only available once the registry exists. Before setup, the logging panel says so and points you back to the Setup section.
#Custom assets
Rows land on Active Assets and move to Repoed Assets when you reclaim a slot. Nothing is ever deleted: a repossession moves the row and adds an audit trail.
#Log an asset
In Discord: /importasset add user: email: file_name: type: [notes:]. Type is Clothing, Weapon, Vehicle, MLO or Other. For email, pick N/A from the autocomplete list when there is no purchase email.
On the dashboard, Log an asset takes the same details:
| Field | What it is |
|---|---|
| Customer id | The buyer's Discord user ID. Required. |
| Customer name | Display name at the time of import. Defaults to the ID. |
| Purchase email | Email used for the purchase. Required, and must be a real address. |
| File name | Resource or file name assigned by the developer. Required. |
| Asset type | clothing, weapon, vehicle, MLO or other. |
| Notes | Optional free text. |
#Repossess an asset
/importasset repo file_name: [user:] [repo_tag:] [notes:], or Repossess an asset on the dashboard. The row moves to Repoed Assets carrying a repo tag (generated for you if you do not supply one) plus who repossessed it and when it was originally added.
If more than one active asset matches the file name, FiveUnity refuses and asks you to narrow it down with the owner.
/importasset link prints the sheet URL for anyone who needs it.
#Player-owned businesses
Businesses live on Active Businesses and move to Repoed Businesses. Every event and weekly hour quota check is appended to Business Activity, and strikes are kept on Business Strikes.
| Command | What it does |
|---|---|
/importbusiness add user: [additional_owners:] email: business_name: type: [notes:] | Logs a business with one primary owner and up to nine co-owners. Type autocompletes with suggestions such as Restaurant, Mechanic, Dealership, or type your own. |
/importbusiness activity business_name: [event:] [hours_quota:] [week:] [user:] [notes:] | Records a weekly event, whether the business met its weekly hour quota (Met or Not met), or both. Give at least one of event and hours_quota. week is This week (the default) or Last week. The business name autocompletes from the active list. |
/importbusiness due | Lists who missed last week's requirement, who has not met this week's yet and what is missing, and who has, with strike counts. |
/importbusiness strike business_name: reason: [user:] | Gives a business a strike. A business can hold at most 3. |
/importbusiness remove-strike business_name: [strike:] [reason:] [user:] | Removes a strike. Pick it from the list, or leave strike empty to remove the most recent one. |
/importbusiness strikes [business_name:] | Lists the active strikes of one business, or of every business that has any. |
/importbusiness repo business_name: [user:] [repo_tag:] [notes:] | Closes or repossesses a business. |
/importbusiness link | Prints the sheet URL. |
The dashboard mirrors all of it: Add a business, Log weekly activity (with the Weekly hour quota and Week pickers), Repossess a business, and a table of every active business with its owners, last event, this week's and last week's status, and strike count. The Strikes button on a row lists that business's strikes, removes one, or issues a new one. Refresh re-reads the sheet.
#Weekly requirements
Every business has to do two things each week, Monday to Sunday in UTC:
- meet its weekly hour quota, and
- run at least 1 event.
Log both with /importbusiness activity or Log weekly activity, in one entry or two. Each entry becomes a row on Business Activity carrying the UTC Monday of its week. When you review a week that has just ended, pick Last week so the entry counts toward that week and not the new one. If you log the hour quota twice for the same week, the latest entry counts, so a correction is just another entry.
A week shows as:
| Status | Meaning |
|---|---|
| Met | The hour quota was met and at least one event was logged. |
| In progress | The week is still running and something is missing. |
| Missed | The week ended without both, or the hour quota was logged as not met. |
| New | The business was added during that week, so it is not held to it. |
/importbusiness due and the banner above the Businesses table list who missed last week, which is where you would decide on strikes.
Logging an event also stamps the business's Last Activity At. An hours-only entry does not, so the daily business digest, which reminds owners when no event has been logged for 7 days, is not fooled by it.
#Strikes
/importbusiness strike (or Issue strike on the dashboard) adds a row to Business Strikes with a reason, who issued it and a strike ID. A business can hold at most 3 active strikes; a fourth is refused until one is removed. Reaching 3 does not repossess anything by itself: staff with the importbusiness permission decide, and run /importbusiness repo.
/importbusiness remove-strike never deletes the row. It stamps Removed At, Removed By and the reason you give, and the strike stops counting. Issued and removed strikes are also posted to your Staff actions log channel, where gang strikes go.
Strikes stay with the business they were issued to. If a business is repossessed and later bought again, the new business starts with none, and a different business with the same name never picks up another owner's strikes.
#Who can repossess
| Route | Who |
|---|---|
/importbusiness repo in Discord | Same as every other /importbusiness subcommand: the importbusiness permission group node. |
| Dashboard โ Ownership | Anyone who can open the server in the dashboard: Administrator or Manage Server. |
Repossessing always asks for confirmation on the dashboard first, and never deletes: the row moves with a repo tag and an audit trail. If two active businesses share a name, supply the Owner id to pick between them.
#Tips
Share the sheet with a staff Google account rather than a personal one. Edit access is granted to whatever address you type at setup, and that is the address shown under Share email afterwards.
A spreadsheet belongs to one server at a time. If you try to link a sheet that another server is already using as its registry, FiveUnity refuses and says so: the other server has to Reset registry first, which forgets the sheet without touching the file.
The header row on every tab has filters turned on. Filter Active Assets by Discord ID to see everything one player owns before you decide what to repossess.
/importasset and /importbusiness write to a live Google Sheet. If Google is unreachable the command reports the failure rather than pretending it worked. Run it again once the sheet opens normally in your browser.