Skip to main content

Friend

Official compatibility

ElementReference
TypeWriterRequired. Use the official TypeWriter release supported by the extension release.
Related extensionsInstall the related extensions listed on this page before using entries that depend on them.

The Friend Extension adds a player-to-player friend system to TypeWriter: players send and answer friend requests, browse their friend list in a GUI menu, and teleport to friends who are online.

Features

  • Friend Requests — Send, accept, and decline requests between players.
  • Friend List — A GUI menu listing friends with their online status.
  • Teleportation — Teleport to a friend directly from the menu or command.
  • Story Integration — Facts expose friendship state to your scripts, so quests and dialogue can react to who a player is friends with.

Commands

CommandDescription
/friend helpShow the command help.
/friend add <player>Send a friend request.
/friend accept <player>Accept a pending request.
/friend decline <player>Decline a pending request.
/friend remove <player>Remove an existing friend.
/friend listOpen the friend list.
/friend toggleToggle friend request notifications.
/friend tp <player>Teleport to an online friend.

Entries

User guide

  • 1. Open the menu — Trigger the friend_menu action from a command, NPC, or item to let players manage their friends. → friend_menu
  • 2. React in your story — Use the is_friend fact to gate dialogue or quests on friendship. → is_friend

Permissions

PermissionDescription
friend.useUse the friend system.
friend.tpTeleport to a friend.
friend.adminAdministrate the friend system.

Dependencies

ExtensionRequiredUsage
GUI ExtensionRequiredRenders the friend menu (layoutPool, mainLayoutId).

Troubleshooting

The extension is not visible

Check that the installed release matches the supported TypeWriter release and that the related extensions listed in the compatibility section are present.

An entry is missing

In the Typewriter Web panel, use the Search bar or the + button to find or create the entry with its exact identifier. Entry IDs and field names are case-sensitive; do not translate them.

The entry saves but nothing happens

Check that the entry is connected to the trigger, command, objective, event, or menu interaction required by its type. Test with optional permissions and criteria removed, then add them back one at a time.

An integration does not work

Verify the dependency and version shown in the extension card, then check the server log for the first error. Do not replace a missing dependency with a similarly named plugin unless the extension source explicitly supports it.