.dev

Server owners3 min read

Configuration

Every key in config.yml, with what it turns on for your players.

plugins/TehoAPI/config.yml is written on first start with every feature on and every preset off. Edit it and run /tehoapi reload; you do not need to restart. Fabric, NeoForge and Sponge use the same keys in JSON, as described in Other platforms.

Identity

YAML
server-name: "Skyline"
debug: false
KeyWhat it does
server-nameThe label players see on every toast, screen, lock and keybind from your server. Set it; it is how players tell your server apart from Teho itself.
debugLogs every frame in both directions. Leave it off in production.

Features

Each switch turns one capability off server-wide. A switched-off feature is never offered in Welcome, and sends for it return false.

YAML
features:
  notifications: true
  waypoints: true
  modules: true
  staff: true
  hud: true
  suspect: true
  world: true
  players: true
  keybinds: true
  camera: true
  audio: true
  social: true
  ui: true
  info: true
  identity: true
  integrity: true
  pack: true
  clips: true
  broadcast: true
  assets: true
  npcs: true
  statues: true
  branding: true
  showcase: true

Welcome toast and death waypoint

YAML
welcome:
  enabled: true
  title: "&bWelcome, {player}"
  body: "This server supports Teho"

death-waypoint: true

{player} is replaced with the player's name and & colour codes work. With death-waypoint on, every Teho player who dies gets a red "Last death" waypoint at the spot.

Rules

Rules follow the world the player is in. global applies everywhere, and each entry under worlds builds on it.

YAML
rules:
  global:
    disable: [hitbox]
    disable-categories: []
    caps:
      - {module: zoom, key: factor, max: 4}
  worlds:
    arena:
      competitive: true
      allow: [fps_display, keystrokes, cps_counter, ping, armor_status]
      reason: "Ranked arena"
KeyWhat it does
disableModule ids to turn off. See the module id list.
disable-categoriesWhole categories: HUD, COMBAT, VISUAL, QOL, CLIENT.
capsPer-setting limits: {module, key, min, max} for a range, or {module, key, value} to pin a value.
competitiveTurns off every module except those listed in allow.
reasonShown on every lock in the player's mods panel.
YAML
combat:
  legacy-pvp: true

legacy-pvp sends the 1.8 combat feel to modern clients: old swing animation, block-hit visuals, no hit-delay visual and the legacy red hit colour. See Module rules.

Staff tools

Grants are given by permission when a player joins. Each moderator accepts them once per server.

YAML
staff:
  reason: "Staff tools"
  radius: 48
  xray-blocks:
    - "minecraft:diamond_ore #5FE0DC"
    - "minecraft:ancient_debris #B07CFF"
    - "minecraft:spawner #FF5555"
  grants:
    - permission: tehoapi.staff.xray
      tools: [xray, storage_esp]
    - permission: tehoapi.staff.esp
      tools: [player_esp, nametags, entity_esp, tracers, highlights, trails]
    - permission: tehoapi.staff.freecam
      tools: [freecam, spectate]
    - permission: tehoapi.staff.moderate
      tools: [inspector, action_wheel, alerts, click_teleport, combat_overlay]
    - permission: tehoapi.staff.admin
      tools: [lag_map, fullbright]
  storage-blocks: []
  entity-types: []
  inspector: true
  combat-overlay: true
  trail-seconds: 300
  freeze:
    title: "&bYou are frozen"
    body: "Do not log out. A staff member will speak to you."
KeyWhat it does
reasonShown in the consent prompt.
radiusHow far, in blocks, X-Ray and storage ESP scan around the moderator.
xray-blocks, storage-blocks, entity-types"<id> #RRGGBB" entries. Empty lists use Teho's defaults.
grantsMaps a permission to a list of tool ids.
inspector, combat-overlayTurn the built-in inspector cards and combat stats on or off.
trail-secondsHow much movement history is kept per player, at one point per second.
freezeThe text on the suspect's full-screen freeze overlay.

Action wheel

YAML
staff:
  action-wheel:
    title: "Staff"
    actions:
      - {id: freeze, label: "Freeze", item: ice, target: player, builtin: freeze}
      - {id: spectate, label: "Spectate", item: ender_eye, target: player, builtin: spectate}
      - {id: invsee, label: "Inventory", item: chest, target: player, builtin: invsee}
      - {id: lagmap, label: "Lag map", item: hopper, target: none, builtin: lagmap}
      - {id: ban, label: "Ban", item: barrier, target: player, command: "ban {target} Cheating", as: staff}

Built-in actions are freeze, spectate, teleport, invsee, screenshot, modlist, trail and lagmap. Anything else runs command, with {target}, {uuid} and {staff} replaced, as the moderator (as: staff) or otherwise as the console.

NPCs and private features

YAML
private:
  grant: ""

npcs:
  - uuid: "1f5c2b3a-0000-2000-8000-000000000001"
    look: [cape:founder_cape, wings:founder_wings]
    emote: wave
    loop: true

These only work with a private grant from Teho. See Private modules.

Backend and verification

YAML
backend:
  url: ""
  key: ""

verified:
  certificate: ""
KeyWhat it does
backend.url, backend.keyThe Teho backend and your tsk_ server key. Needed for rewards and the verified-server certificate. Keep the key out of version control.
verified.certificateA certificate set by hand. When empty, it is fetched with your key.
YAML
presence:
  game: "Skyline"
  state: "In the lobby"

links:
  Discord: "https://discord.gg/skyline"
  Store: "https://store.skyline.gg"

resource-pack:
  url: "https://cdn.skyline.gg/pack.zip"
  sha1: "0123456789abcdef0123456789abcdef01234567"
  required: false
KeyWhat it does
presenceRich presence shown in Discord and the Teho friends list.
linksUp to three buttons in the pause menu. They open behind vanilla's link confirmation.
resource-packTells Teho to prefetch your pack before the join. See Resource packs.

Proxy

YAML
proxy:
  secret: ""

Set this to the same 16+ character secret as your proxy plugin. Leave it empty on standalone servers. See Networks & proxies.