Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OPEN77_CDN_BASENoBase URL for the CDN used to refresh the dev-index (default is https://cdn.open2077.net/dev-index).
OPEN77_INDEX_DIRNoServe this index directory.
OPEN77_MCP_CACHENoCache directory (default is ~/.open77/mcp).
OPEN77_MCP_OFFLINENoSet to 1 to enable offline mode, using the cached or snapshot index without refreshing from the CDN.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
open77_searchA

Lexical search over the Open77 Lua natives, guides, open77:* events, manifest permissions and FiveM equivalents. Use it first; then open77_api / open77_guide for the full text. Returns the build it answers for. Pass runtime=server (or client) when writing one side: several names (RegisterCommand, TriggerEvent, Open77.vehicles.get) exist on both with different contracts; a query containing the word server or client applies that filter itself.

open77_apiA

The full card of one Lua native: signature, description, permissions the manifest must declare, reasons it can return, the first build that has it, example, related guides. Accepts a qualified name (Open77.map.getWaypoint, TriggerClientEvent) or a side-pinned name (server:Open77.vehicles.spawn, client:Open77.camera.attach).

open77_namespaceA

Every native under a namespace (Open77.vehicles, Open77.players, _G for globals), one line each with permissions and since. Omit the namespace to list the namespaces.

open77_guideA

A guide or one of its sections, as Markdown. Slugs come from open77_search (guide results) or the list returned when slug is omitted.

open77_eventsA

Events by prefix (open77:map, open77:chat) or all of them; each with its sides, documented payload and guide. Host lifecycle and bus events without a prefix are included: onResourceStart, onPlayerReady, onPlayerDisconnected, playerDropped, chat:ready... (pass prefix=lifecycle for just those). Also lists the reserved prefixes a resource may not raise.

open77_permissionsA

One permission (what it gates, which natives, which guides declare it) or the whole list. These are the strings a manifest's permissions { } block declares.

open77_dataA

Look up game-data names; animation inventories are discovery data, not playback allowlists. Arguments: catalogue (one of vehicles, weapons, items (clothing), npc-templates, props, vfx, sfx, animations, animsets) and an optional query. Query matches the record/path/name; returns the fields the server itself answers Open77.data.* from. Vehicle records a player may spawn end in _player (the others are quest/scene vehicles).

open77_fivem_equivalentA

What an Open77 resource uses in place of a FiveM native or Citizen call, and what is deliberately absent. Falls back to a search when the name is not in the alias table.

open77_manifest_schemaA

Every directive of the resource manifest with its form, default and rule, plus a complete example.

open77_server_config_schemaA

The JSON schema the dedicated server validates server.jsonc with. Pass a top-level key (network, resources, warden, voice...) for that section only.

open77_changesA

Which natives a newer server build adds compared to an older one, from the since field. Useful to answer 'what do I gain by updating' or 'why does this work on my dev box and not on the owner's server'.

open77_buildA

The index build, where it came from (CDN cache, embedded snapshot), the newest published server build, and the package version.

open77_workspaceA

Where the Open77 server next to this session is, its build, its config, its resources root and the resources in it. Re-detects when called.

open77_validateA

Static checks of one resource directory against the served build: manifest grammar, script files, Lua syntax (5.3-compatible parser; exact 5.4 via the server's --lint when present), unknown Open77.* natives, client natives in server scripts and the reverse, permissions used but not declared, natives newer than the build or unreleased, and command names another resource of this server already registers (a warning; literal RegisterCommand names only). Argument resource: a resource name from open77_workspace or an absolute path.

open77_new_resourceA

Creates a resource that is correct by construction: manifest, lifecycle handlers, and for kinds that need it a WebUI page or the export ownership guard. Kinds: blank, gamemode, hud, service. Writes under the resources root (or directory) and never overwrites an existing resource.

open77_server_statusA

Warden's dashboard for the server next to this session: build, uptime, players, resources, load. Needs a Warden session (open77-mcp warden-login).

open77_resourcesA

The resources the running server discovered, with their state, as Warden reports them.

open77_resourceA

Runs one resource action on the live server through Warden. reload republishes an edited resource to the running session (the usual step after an edit); validate runs the server's own parser and Lua compiler over the resource's files without running them. Read the log afterwards with open77_console_tail.

open77_console_tailA

Recent server log entries, optionally filtered by a regex and a resource name. Use after a reload to read what the server said; errors carry the resource in brackets.

open77_console_commandA

Runs one line at the server console with operator authority (e.g. resources, ensure my_res, help, or a command a resource registered). Output comes back inline; resource-claimed commands answer in the log a tick later.

open77_tunablesA

Read the live tunables every resource declared, or set one (resource + key + value). A set is applied live when the resource accepts it; the server answers whether it is pending a restart.

open77_workshop_searchA

Browse the OPEN//77 Workshop (community resources, gamemodes, maps, UI, tools) through this server's Warden, or resolve a pasted link (https://open2077.net/workshop/ or workshop:).

open77_workshop_releaseB

Every release of a project with its state, files, tested builds and declared dependencies; the release id is what a plan needs.

open77_workshop_planA

Creates an installation plan for one release (Warden inspects the package and lists permissions, dependencies, files it would replace and blockers), or reads an existing plan by id. SHOW THE PLAN TO THE HUMAN; the plan's sha256 is what open77_workshop_install needs, together with their consent.

open77_workshop_installA

Installs a plan the human has read and accepted. Requires consent=true and the plan's sha256 exactly as open77_workshop_plan returned it; Warden refuses anything else. Returns the job id; follow it with open77_workshop_job. Never call this without the human's explicit yes.

open77_workshop_jobA

Follows an installation job by id (done when it reports committed), or lists the packages installed through the Workshop when no id is given.

open77_workshop_statusA

Whether this server can browse, install and publish through the Workshop (masterServer and warden.hubFileGatewayOrigin settings).

Prompts

Interactive templates invoked by user choice

NameDescription
new_resourceWalks the agent through designing a resource for a described feature: which runtime does what, which natives, which permissions, the manifest, the test plan.
port_fivem_resourceMaps a FiveM resource onto Open77: aliases that work as-is, natives to replace, and the parts Open77 deliberately does without.
explain_reasonWhy a native returned nil, <reason> or false, <reason>, and what to change.

Resources

Contextual data attached and managed by the client

NameDescription
skillHow to build Open77 resources with this MCP: the method, the rules, the loop.
Open77 resource documentationBuild multiplayer gameplay and interfaces as resources: directories containing a manifest, Lua scripts, declared permissions, dependencies and optional web assets.
Ability activation leasesActivation leases let clients start an ability without waiting for a network round trip. The server grants a small, expiring activation budget and validates each use against authoritative state and mo
Autonomous agent testingUse the agent testing toolkit to launch the local stack, connect a game client, run actions and inspect results from an external automation harness.
Armed vehicle spawn catalogueSpawn weapon-equipped vehicles with the `Vehicle.*` records listed below. The catalogue covers Cyberpunk 2077 **2.31 / build 23100**, including Phantom Liberty.
Synchronized attachmentsAttach a server-owned prop to a player or vehicle, optionally at a skeletal slot. Clients follow their rendered parent and animated slot; the server replicates the attachment binding and its revisions
Vanilla blips and mappins`Open77.blips` creates native mappins for the HUD, minimap and world map. Visibility depends on the sprite's native profile. Client resources require `ui.vanilla.map`:
Network callbacks: asking the other side a questionNetwork callbacks provide asynchronous request/response communication between client and server. A call returns an `Open77.Promise` that resolves with the response or rejects with an error.
Scripted camerasUse `camera.script` to control cinematic cameras. For the playable F7 view, shoulder framing, movement FOV and camera shake, use [Third-person camera styles](third-person-camera.md) with `camera.style
Chat, slash commands, and completion`open77_chat` provides chat, authenticated slash commands, command suggestions, history and keyboard completion. Its interface text is in English.
Client persistent KVP`Open77.kvp` persists small values on the client. Data is isolated by connection address, resource name and key:
Players around you (client)`Open77.players` reads the identities, positions and distances of players rendered by the client. These client-side queries require no permission.
Clipboard API and transform commandsCopy text to the operating-system clipboard with a client resource. The API is write-only and is intended for explicit actions such as copying coordinates, IDs or configuration snippets.
Manage Workshop resources with WardenUse Warden to install, update, remove or roll back resources from the OPEN//77 Workshop. Warden displays a plan before applying changes, including dependencies, permissions and affected files.
Connection control: connect events, whitelists and bansControl server admission with connection events, deferred checks, whitelists and bans. Resources can reject a connection with a player-facing message or remove an active player. See the [server Lua AP
Generic context menu — open77_contextmenu`open77_contextmenu` provides a resource-extensible ALT/click menu. It has no Freeroam dependency, built-in admin permissions or default gameplay actions; consumer resources register the available act
Cordon — battle royaleCordon is a 64-slot battle royale with staging, equipment collection and a moving exclusion zone. Solo, Duo and Squad formats share the same match rules.
CyberwareDefine and install persistent cyberware through the server-owned implant framework. Supported slots include Gorilla Arms (`arms`), double jump (`legs`) and the [hacking](hacking.md) implants (`operati
Native Dash and Air DashGrant native ground or air dashes for a player session. The server controls stamina, charges, cooldowns and the one-Air-Dash-per-airtime limit. Dash grants do not replace installed cyberware.
Game data catalogues — Open77.data`Open77.data` resolves TweakDB IDs such as `Items.Preset_Lexington_Default` and `Vehicle.v_sport1_rayfield_caliburn_player` into display names and structured metadata for inventories, shops and garage
Game data referenceFind identifiers for Open77 APIs: NPCs, vehicles, seats, damage indexes, weapons, appearances, effects, sounds, animations and map sprites. Catalogues target Cyberpunk 2077 **2.31** unless stated othe
Deathmatch — running the Kabuki Arena PvP modeConfigure and run the Kabuki Arena PvP mode. This guide covers installation, match settings, dependencies and troubleshooting.
Privileged in-game Lua laboratoryThe bundled `open77_debug` resource provides ACL-controlled tools for client Lua, native diagnostics and the REDscript polling bridge.
Overriding a vanilla device promptDisable a native device prompt before replacing it with a resource-owned interaction. Supported targets include vending machines, ATMs, terminals, computers and door panels.
Networked world doors`open77_doors` synchronizes native doors through a server-owned registry. Automatic doors use routing-bucket proximity; elevator landing doors follow the cabin. Native animations, sound and collision
Visual and audio effectsPlay world VFX, entity effects and spatial audio from client Lua with `world.effects`. Handles belong to the calling resource and are released on stop, reload, world exit or plugin unload.
Network elevatorsSynchronize elevators through the dedicated server while retaining native platform movement, sounds, collision and floor markers.
FiveM compatibility aliasesPort FiveM resources using Open77's compatibility aliases for threads, timers, events, commands, key mappings, exports and promises. This guide lists supported aliases and the APIs needed where engine
The gamemode kernel and shared server servicesOrganize gamemode rules in server resources and expose reusable services through [server exports](server-exports.md). Open77 does not ship a universal `open77_gamemode` resource.
Gorilla ArmsInstall native Gorilla Arms through the [Cyberware framework](cyberware.md). The server stores the implant, validates normal and charged punches, and controls damage and knockback.
Ground Slam / QuakeGrant Ground Slam to players using blunt melee weapons. Players can activate it on the ground or in the air; the server validates each impact and controls damage, knockback and ability costs.
Hacking and counterplayBuild multiplayer hacking abilities with server-owned definitions, grants and target validation. The following sections describe the supported implants, upload rules and Lua interfaces.
Blue holocall eyesApply the native blue eye-glow effect to multiplayer players, including the local third-person body. The server owns this cosmetic state; clients display it on streamed bodies.
Vanilla HUD visibilityUse `Open77.hud` to hide selected native HUD modules and replace them with resource-owned interfaces. Client resources require `ui.vanilla.hud`:
Player identity and usernameEach installation has a persistent cryptographic identity. The Master verifies the username used by chat, nameplates, presence events and server scripts.
Blocking player inputBlock individual input actions or the complete control stream from a client resource. Use resource-owned claims for menus, cutscenes, progress bars and gameplay restrictions.
Contextual world interactions`open77_interactions` attaches client-side action prompts to world positions or streamed entities. A transparent WebUI displays the marker, distance and action card; an allowlisted input key triggers
Key mappingsRegister a named action, default key and Lua callback with `RegisterKeyMapping`. Players can rebind it under **Pause → Settings → KEY BINDINGS**. Bindings persist across servers and launcher restarts.
Server loot and ground dropsGround loot is server-authoritative. Native containers and drops display the server's items; Take and Take All send pickup requests checked against the drop, routing bucket and player distance. The lo
Lua modules and requireSplit resource code into modules with `require`. A module returns its public value, typically a function table. Libraries such as [PolyZone](polyzone.md) execute inside the importing resource.
3D world markersUse `Open77.markers` in a client resource to place checkpoints, rental locations, objectives and other indicators in the world. Markers are native REDengine meshes with depth testing and a translucent
Mods: the complete guideConfigure the mods required by a server and understand how the launcher installs them. For trust and review rules, see [Server-required mods](server-mods.md); for Lua packages, see [Server resources](
Native map and player waypoints`Open77.map` is a **client-side** API for the native world map: read player waypoints, pick destinations, control the map camera and add resource-owned WebUI tabs. Pair it with [vehicle AI](vehicle-ai
WebUI notifications`open77_notifications` displays resource-owned WebUI toasts. Client resources can create notifications directly; server resources can request them through the package's server interface.
NPC AI, combat and voice controlControl individual spawned NPCs from server Lua with `Open77.npcs`. Behavior settings apply to the selected NPC, not its gang, other NPCs using the same record, player characters or global audio.
NPC record catalogueBrowse **6,582 `Character.*` records** from Cyberpunk 2077 **2.31**, including Phantom Liberty. The index describes game data, not guaranteed multiplayer compatibility. The downloadable CSV also inclu
Server-owned NPCsCreate server-owned NPCs and control their identity, routing bucket, health, tasks and simulation authority. Clients project nearby NPCs into the world but cannot create or mutate their canonical stat
Package audio: 2D and spatial soundsPlay `.mp3` and PCM `.wav` files bundled with a resource, without a WebUI surface. Decoding is asynchronous. For named engine/Wwise events, see [Visual and audio effects](effects.md).
Third personOpen77's third-person view renders a local character body using the replication system. The player entity retains gameplay authority: aiming, hit detection and network state are unchanged.
Photo modeControl native photo mode through the client-only `Open77.photoMode` API. Vanilla keyboard and controller shortcuts are disabled; resources explicitly open and close the mode.
Freezing a playerFreeze a player's position with a server-authoritative state or a client-local claim. Use this for restraints, cutscenes and interfaces that require the player to remain stationary.
Player interactions`Open77.playerInteractions` coordinates two-player actions with participant reservations, consent, presentation readiness, a shared start and cleanup. Gameplay effects such as item transfer, healing o
Player morph catalogueBrowse **6,582 `Character.*` records** extracted from Cyberpunk 2077 **2.31** with Phantom Liberty. Each ID can be passed to the player-model API; this catalogue is a discovery index, **not a guarante
Player models: NPC impersonationSelect an NPC model as a player's visible body while retaining player identity and gameplay state. Find 6,582 `Character.*` IDs in the [morph catalogue](player-model-catalogue.md).
Player health and staminaThe server owns player health, stamina, regeneration and maximum values. One versioned state per connected player is replicated to clients; resources do not need a separate synchronization service.
Player checks and controlsRead native player state and apply client-local controls. Player IDs are network IDs, not entity handles. Omit the ID to target the local player. Failed reads return `nil, reason`; failed controls ret
PolyZoneUse the PolyZone API in an Open77 client resource with ordinary `{x, y, z}` coordinates. Queries and watchers run inside the importing resource. Names follow [PolyZone 2.6.2](https://github.com/mkafri
Server-owned world propsCreate server-owned props, lights and effects that stream to nearby players. The server controls identity, transform, routing bucket and lifetime. Client resources can query projections or create loca
Reflex overdriveReflex overdrive increases the owner's movement, attack and reload speeds through temporary stat modifiers. It does not slow other players, bullets or the simulation clock.
Remote cameras and world screensRender another viewpoint without replacing the player's camera. Use remote cameras for a security monitor, a picture-in-picture HUD, a world-space screen or a feed behind a transparent WebUI.
Official resource exportsUse official resource exports for shared services such as interfaces, lifecycle management and gameplay helpers. These exports are separate from runtime-native methods such as `Open77.vehicles.get`.
RP animation catalogue<!-- Generated by scripts/animations/build_profiles.py. -->
Role-play animationsPlay server-authoritative RP actions for inventory use, jobs and social gestures. Use upper-body profiles such as `smoke_walk`, `drink_walk` and `wave` while moving, or full-body workspots such as `sm
The role-play kit`open77_rp_basics` is a sample role-play resource combining player freeze, input blocking, synchronized animations, weapon queries and placement. It exposes cuff, escort and search actions:
Screen picking and cursor utilitiesUse client-side screen-picking and cursor APIs to select a world point or entity from a 2D interface. Check API availability when supporting clients without these helpers.
Native screen transitionsNative screen transitions require client **2.31.13+op77.56** or later. They are client-local and do not require a matching server feature.
Screenshots and mugshotsCapture the rendered game frame, upload an image or create a player mugshot. Client and server entry points have separate permissions:
Public identity, server commands, and ACLRegister server commands with `RegisterCommand` and control access through ACL rules. Commands entered in the in-game developer terminal (`²`) are forwarded over the authenticated session when they ar
Complete server Lua APIReference for the dedicated server's Lua runtime. These methods are available in `server_script` files and the server half of `shared_script` files. Client APIs are listed separately in the [API refer
Cross-resource server exportsPublish and call cross-resource server functions synchronously with `exports.resource:name(...)` or asynchronously with `Open77.exports.call(...)`. Each resource retains its own Lua VM; calls do not s
Mods your server requiresDeclare, host and manage the mods required by your server. This guide covers Warden, trust levels and review. For installation flow and troubleshooting, see [Mods](mods.md).
Lua resources loaded by the serverPackage server and client Lua scripts, permissions, dependencies and web assets in an Open77 resource. The server loads the declared resources and distributes their client files to joining players.
Sky hologram advertisementsReplace supported sky-advertising textures with a custom resource pack. The following sections describe the asset layout, build process and deployment requirements.
Resource audio`open77_sound` plays audio files bundled with a resource, with controls for volume and pitch. Use it for custom interface sounds, ambient audio, radios and positional emitters.
Replicated state bagsReplicate structured state with server-authoritative state bags. Resources can read snapshots and subscribe to changes instead of defining separate synchronization events for each value.
Third-person camera stylesConfigure the playable third-person camera through `Open77.camera`: framing, movement response and resource-owned styles. Cinematic camera ownership is documented separately in [Scripted cameras](came
TravelMove players with the server-owned travel APIs. Use teleportation and placement operations that coordinate client streaming instead of writing transforms directly.
The UI kit`open77_uikit` provides shared dialogs and HUD widgets: progress bars, hints, confirmations, input forms, context and keyboard menus, radial wheels, world text and letterboxing.
Vectors and quaternions`vector2`, `vector3`, `vector4`, `vec` and `quat` are global constructors in both Lua runtimes. They provide arithmetic, magnitude (`#`), swizzles, distance helpers and quaternion operations:
Networked vehicle AI`Open77.vehicles.ai` is a server API requiring `world.vehicles`. The server owns destinations, seat reservations and task lifecycle. One nearby ready client executes native driving; observers receive
Authoritative vehicle paintSet vehicle paint through the server's canonical state. The selected color is replicated to current viewers, late joiners and clients that stream the vehicle back in.
Armed vehicles and weapon Lua APIRead mounted armament from client Lua for vehicle HUDs and diagnostics. The API distinguishes declared model mounts, attached weapon objects and the driver's selected weapons. Find model IDs in the [s
Network vehiclesCreate and manage network vehicles on the server. Resources with `world.vehicles` control canonical state and lifecycle; clients render nearby projections.
Voice lipsyncOpen77's native voice renderer can drive a small mouth-only animation on player heads. Lua controls the policy; no Lua loop, custom animation bank or Redscript resource is needed. The existing body lo
Integrated voice chatOpen77 voice captures 48 kHz mono audio and encodes it as 20 ms Opus frames. A frame can be routed through proximity and up to four selected channels without duplicating microphone bandwidth. PCM and
The Players tab in WardenManage connected players in Warden's **Players** tab. The live roster refreshes automatically and provides warnings, kicks, bans, in-game permissions, healing, freezing and movement controls.
Weapon Lua APIManage the local player's three `EquipmentArea.Weapon` slots with the asynchronous client API. Use `open77_weapons` for authenticated server-to-owner requests and exact TweakDB IDs such as `Items.Pres
Synchronised time and weather`open77_weather` synchronizes the session's clock and weather. The server owns the canonical state; clients apply it locally.
WebUI selective keyboard captureUse `page:setConsumedKeys(keys)` to reserve selected keyboard keys for a WebUI while keeping movement and mouse look active. Key consumption is client-local, per surface, and requires `webui.keep_inpu
World queries: raycast, ground height, objects around the player, entity axes, districtQuery raycasts, ground height, nearby objects and district data with client-side `world.query` methods. Calls execute synchronously on the game thread.
Time scale: slow motion for a scripted beatUse `Open77.world.setTimeScale` for local cinematic slow motion. Server-side time scale is replicated per routing bucket. It affects the client's simulation, including the local body, and is not suita
World-anchored POIs`open77_worldui` combines a native ground marker and an [interaction prompt](interactions.md) under one resource-owned handle. Creation and cleanup cover both elements.
ZonesDefine world-space areas for shops, safe zones, checkpoints and other gameplay rules. Zone queries determine whether a position is inside a shape.
client _GEvery native of one namespace on one runtime
client CitizenEvery native of one namespace on one runtime
client Open77.PromiseEvery native of one namespace on one runtime
client Open77.abilitiesEvery native of one namespace on one runtime
client Open77.anchorsEvery native of one namespace on one runtime
client Open77.animationsEvery native of one namespace on one runtime
client Open77.appearanceEvery native of one namespace on one runtime
client Open77.assetsEvery native of one namespace on one runtime
client Open77.audioEvery native of one namespace on one runtime
client Open77.blipsEvery native of one namespace on one runtime
client Open77.callbacksEvery native of one namespace on one runtime
client Open77.cameraEvery native of one namespace on one runtime
client Open77.characterEvery native of one namespace on one runtime
client Open77.chuteEvery native of one namespace on one runtime
client Open77.clipboardEvery native of one namespace on one runtime
client Open77.cyberwareEvery native of one namespace on one runtime
client Open77.dashEvery native of one namespace on one runtime
client Open77.dataEvery native of one namespace on one runtime
client Open77.debugEvery native of one namespace on one runtime
client Open77.debugDrawEvery native of one namespace on one runtime
client Open77.doorsEvery native of one namespace on one runtime
client Open77.elevatorsEvery native of one namespace on one runtime
client Open77.environmentEvery native of one namespace on one runtime
client Open77.equipmentEvery native of one namespace on one runtime
client Open77.eventsEvery native of one namespace on one runtime
client Open77.exportsEvery native of one namespace on one runtime
client Open77.hackingEvery native of one namespace on one runtime
client Open77.hudEvery native of one namespace on one runtime
client Open77.inputEvery native of one namespace on one runtime
client Open77.inspectorEvery native of one namespace on one runtime
client Open77.jsonEvery native of one namespace on one runtime
client Open77.kvpEvery native of one namespace on one runtime
client Open77.logEvery native of one namespace on one runtime
client Open77.lootEvery native of one namespace on one runtime
client Open77.mapEvery native of one namespace on one runtime
client Open77.markersEvery native of one namespace on one runtime
client Open77.motionEvery native of one namespace on one runtime
client Open77.movementEvery native of one namespace on one runtime
client Open77.nameplatesEvery native of one namespace on one runtime
client Open77.netEvery native of one namespace on one runtime
client Open77.networkEvery native of one namespace on one runtime
client Open77.npcsEvery native of one namespace on one runtime
client Open77.perspectiveEvery native of one namespace on one runtime
client Open77.photoModeEvery native of one namespace on one runtime
client Open77.playerInteractionsEvery native of one namespace on one runtime
client Open77.playersEvery native of one namespace on one runtime
client Open77.preventionEvery native of one namespace on one runtime
client Open77.propsEvery native of one namespace on one runtime
client Open77.puppetsEvery native of one namespace on one runtime
client Open77.reflexEvery native of one namespace on one runtime
client Open77.resourceEvery native of one namespace on one runtime
client Open77.runtimeEvery native of one namespace on one runtime
client Open77.screenEvery native of one namespace on one runtime
client Open77.sessionEvery native of one namespace on one runtime
client Open77.settingsEvery native of one namespace on one runtime
client Open77.sfxEvery native of one namespace on one runtime
client Open77.stateEvery native of one namespace on one runtime
client Open77.statsEvery native of one namespace on one runtime
client Open77.timeEvery native of one namespace on one runtime
client Open77.travelEvery native of one namespace on one runtime
client Open77.vehiclesEvery native of one namespace on one runtime
client Open77.vfxEvery native of one namespace on one runtime
client Open77.voiceEvery native of one namespace on one runtime
client Open77.wardrobeEvery native of one namespace on one runtime
client Open77.weaponsEvery native of one namespace on one runtime
client Open77.webuiEvery native of one namespace on one runtime
client Open77.worldEvery native of one namespace on one runtime
client Open77.zonesEvery native of one namespace on one runtime
client WebUI.PageEvery native of one namespace on one runtime
client promiseEvery native of one namespace on one runtime
server _GEvery native of one namespace on one runtime
server CitizenEvery native of one namespace on one runtime
server Open77.EventVerdictEvery native of one namespace on one runtime
server Open77.PromiseEvery native of one namespace on one runtime
server Open77.abilitiesEvery native of one namespace on one runtime
server Open77.accessEvery native of one namespace on one runtime
server Open77.aclEvery native of one namespace on one runtime
server Open77.animationsEvery native of one namespace on one runtime
server Open77.appearanceEvery native of one namespace on one runtime
server Open77.audioEvery native of one namespace on one runtime
server Open77.callbacksEvery native of one namespace on one runtime
server Open77.chatEvery native of one namespace on one runtime
server Open77.clothingEvery native of one namespace on one runtime
server Open77.combatEvery native of one namespace on one runtime
server Open77.convarsEvery native of one namespace on one runtime
server Open77.cyberwareEvery native of one namespace on one runtime
server Open77.dashEvery native of one namespace on one runtime
server Open77.dataEvery native of one namespace on one runtime
server Open77.databaseEvery native of one namespace on one runtime
server Open77.effectsEvery native of one namespace on one runtime
server Open77.elevatorsEvery native of one namespace on one runtime
server Open77.environmentEvery native of one namespace on one runtime
server Open77.eventsEvery native of one namespace on one runtime
server Open77.exportsEvery native of one namespace on one runtime
server Open77.hackingEvery native of one namespace on one runtime
server Open77.heldItemsEvery native of one namespace on one runtime
server Open77.httpEvery native of one namespace on one runtime
server Open77.ioEvery native of one namespace on one runtime
server Open77.kvpEvery native of one namespace on one runtime
server Open77.logEvery native of one namespace on one runtime
server Open77.lootEvery native of one namespace on one runtime
server Open77.motionEvery native of one namespace on one runtime
server Open77.netEvery native of one namespace on one runtime
server Open77.notificationsEvery native of one namespace on one runtime
server Open77.npcsEvery native of one namespace on one runtime
server Open77.npcs.tasksEvery native of one namespace on one runtime
server Open77.perspectiveEvery native of one namespace on one runtime
server Open77.playerInteractionsEvery native of one namespace on one runtime
server Open77.playersEvery native of one namespace on one runtime
server Open77.propsEvery native of one namespace on one runtime
server Open77.readyEvery native of one namespace on one runtime
server Open77.reflexEvery native of one namespace on one runtime
server Open77.resourceEvery native of one namespace on one runtime
server Open77.routingBucketsEvery native of one namespace on one runtime
server Open77.runtimeEvery native of one namespace on one runtime
server Open77.soundEvery native of one namespace on one runtime
server Open77.stateEvery native of one namespace on one runtime
server Open77.statsEvery native of one namespace on one runtime
server Open77.statusesEvery native of one namespace on one runtime
server Open77.timeEvery native of one namespace on one runtime
server Open77.tunablesEvery native of one namespace on one runtime
server Open77.vehiclesEvery native of one namespace on one runtime
server Open77.vehicles.aiEvery native of one namespace on one runtime
server Open77.voiceEvery native of one namespace on one runtime
server Open77.weaponsEvery native of one namespace on one runtime
server Open77.worldEvery native of one namespace on one runtime
server Open77.zonesEvery native of one namespace on one runtime
server jsonEvery native of one namespace on one runtime
server promiseEvery native of one namespace on one runtime
client Open77.remoteCameraEvery native of one namespace on one runtime
open77-client.d.lua---@meta stubs generated from the catalogue
open77-server.d.lua---@meta stubs generated from the catalogue

TDQS

A3.6/5.0

Scored across 27 tools

Disambiguation4/5

Tools fall into clear families: Workshop lifecycle, documentation/reference, and live-server operations. The main ambiguity is between open77_validate and the validate action of open77_resource, and between open77_search, open77_api, and open77_guide, though the descriptions do enough to point an agent to the right tool.

Naming Consistency3/5

All names share the open77_ prefix and snake_case, but the pattern after the prefix is mixed: workshop tools consistently use open77_workshop_<action>, while documentation tools are mostly bare nouns and operational tools mix verbs with noun phrases. This is readable and grouped, but not a uniform verb_noun convention.

Tool Count2/5

With 27 tools, the server exceeds the 25-tool threshold and feels heavy for a single MCP surface. Several lookups overlap or could be consolidated, such as open77_build, open77_workspace, and open77_server_status, making the full list harder for an agent to scan efficiently.

Completeness4/5

The main workflows are covered: documentation search, API/event/permission reference, resource creation and validation, reloading resources, viewing logs, and the full Workshop plan/install/job flow. Gaps like no uninstall or publish action for Workshop and no direct file-editing tool exist, but they are workable around with console commands or external edits.

Maintenance

ActivityMaintained
ResponsivenessNo issues