Tilted Online
  • Overview
  • Guides
    • Getting Started
    • Client setup
      • Initial setup
        • Removing the old setup
        • Installing the game
        • Launching the game
      • Overview
      • Using ModOrganizer2 (MO2)
        • Installing ModOrganizer2
          • Installating the MO2 mod manager
          • Initial MO2 setup
          • Creating a MO2 profile
          • Creating a separator in MO2
        • Disabling the included Creation Club content
        • Utilities
          • Address Library for SKSE
        • Skyrim Together Reborn
          • Downloading Skyrim Together Reborn
          • Installing Skyrim Together Reborn
          • Locating Skyrim Together Reborn through MO2
          • Making a custom launch option in MO2
          • Launching SkyrimTogether through MO2
        • Playing Skyrim Together Reborn
          • Before we begin
          • First time launch
          • Connecting to a server
      • Using Vortex Mod Manager (VMM)
        • Installing Vortex Mod Manager
          • Installing the Vortex Mod Manager
          • Initial VMM setup
          • Creating a profile in VMM
        • Disabling the included Creation Club content
        • Utilities
          • Address Library for SKSE
        • Skyrim Together Reborn
          • Download Skyrim Together Reborn
          • Making a custom launch option in VMM
          • Launching SkyrimTogether through VMM
        • Playing Skyrim Together Reborn
          • Before we begin
          • First time launch
          • Connecting to a server
    • Server setup
      • ReadMe first
      • Terminology
      • Overview
      • Windows setup
        • Regular setup
          • Locating the STServer.ini
          • Editing STServer.ini
          • Explaining bEnableModcheck
          • Locating IP addresses
          • Port forwarding
          • Launching your server
        • ZeroTier setup
          • Locating the STServer.ini
          • Editing STServer.ini
          • Explaining bEnableModcheck
          • Initial ZeroTier setup
          • Configuring ZeroTier network
          • Authorizing users in ZeroTier network
          • Connecting to your server
        • Local setup
          • Locating the STServer.ini
          • Editing STServer.ini
      • Linux setup
        • Docker setup
        • Locating your IP address
        • Locating the STServer.ini
        • Editing STServer.ini
        • Explaining bEnableModcheck
        • Port forwarding
      • Pterodactyl
      • Server configuration parameters
    • Troubleshooting
      • Address Library error
      • Closing the SkyrimTogether UI (STR UI) makes it reopen
      • Disabling the included Creation Club content
        • Using ModOrganizer2
        • Using Vortex Mod Manager
      • During server setup, my firewall didn't ask for network permission!
      • Hostile NPCs only target my friends, not me
      • How do I uninstall the mod?
        • Using ModOrganizer2
        • Using Vortex Mod Manager
      • I need help updating the Skyrim Together Reborn mod
      • I selected the wrong .exe, when first launching SkyrimTogether
      • I want to install Skyrim Script Extender (SKSE)
        • Using ModOrganizer2
        • Using Vortex Mod Manager
      • My game crashes when I open it or connect to a server
      • My game runs with very low FPS
        • Using ModOrganizer2
        • Using Vortex Mod Manager (VMM)
      • Naked NPCs / players
      • The STR UI doesn't appear when I press RIGHT CTRL or F2
      • The server list is not appearing
      • My game opens to a black screen for 2-10 seconds and then closes
      • STR UI shows my filesystem
      • Resource folder does not exist
    • Scripting
      • Core Math functions
      • Player functions
      • GameServer
      • Components
      • Services
      • World
      • Event Handlers
  • General information
    • Features
    • Playguide
    • FAQ
    • Supported games
    • Helpful Links
    • Admin
    • Commands
      • Server Console
      • In-Game Chat
    • Command line arguments
  • Technical documentation
    • Build guide
      • Build Docker server image
      • Troubleshooting
    • Overview
    • Contributing to translations
Powered by GitBook
On this page

Was this helpful?

  1. Guides
  2. Scripting

Event Handlers

Name
Description
Usage

onCharacterMove(int)

Called any time a character moves

addEventHandler("onCharacterMove", function(entityId)

onCharacterSpawn(int)

Called when any character spawns in

addEventHandler("onCharacterSpawn", function(entityId)

onCharacterDestroy(int)

Called when any character is destroyed

addEventHandler("onCharacterDestroy", function(entityId)

onPlayerJoin(int)

Called when a player joins the server

addEventHandler("onPlayerJoin", function(connectionId)

onChatMessage(int, string)

Called when a player sends a chat message

addEventHandler("onChatMessage", function(entityId)

onPlayerQuit(int, string)

Called when a player leaves the server

addEventHandler("onPlayerLeave", function(connectionId, reason)

onUpdate(float)

Called every server tick

addEventHandler("onUpdate", function(delta)

Example

local playerMgr = PlayerManager:get()
local gameServer = GameServer:get()

function getPlayer(entityId)
  local players = playerMgr:GetAllPlayers()
  for k, player in pairs(players) do
    if player:GetCharacter() == entityId then
      return player
    end
  end
  return nil
end

addEventHandler("onUpdate", function(delta)
  print("This is called every tick")
end)

addEventHandler("onPlayerJoin", function (connId)
  local player = getPlayer(connId)
  if not player then
    return
  end
  gameServer:SendGlobalChatMessage(player:GetUsername() .. " joined the server")
end)

addEventHandler("onPlayerQuit", function(connId, reason)
  local player = getPlayer(connId)
  if not player then
    return
  end
  gameServer:SendGlobalChatMessage(player:GetUsername() .. " left the server")
end)

addEventHandler("onChatMessage", function(entityId, message)
  local player = getPlayer(entityId)
  if not player then
    return
  end
  print(player:GetUsername() .. ": " .. message)
end)

addEventHandler("onCharacterSpawn", function(entityId)
  local player = getPlayer(entityId)
  if player then
    return
  end
  gameServer:SendGlobalChatMessage("Non-player with ID " .. entityId .. " spawned")
end)

addEventHandler("onCharacterDestroy", function(entityId)
  local player = getPlayer(entityId)
  if player then
    return
  end
  gameServer:SendGlobalChatMessage("Non-player with ID " .. entityId .. " destroyed")
end)

addEventHandler("onSetTime", function(hours, minutes, timeScale)
  gameServer:SendGlobalChatMessage("Time set to " .. hours .. ":" .. minutes .. " at time scale of " .. timeScale)
end)
PreviousWorldNextFeatures

Last updated 6 months ago

Was this helpful?