About Player Event States

Player Event States
For plugin developers and admins using Dialogs. Store true/false values for individual players or the whole server, then read them from another plugin to change later interactions.
For example: meeting Bob sets a player state. Alice can check that state before offering the next conversation.
A previous choice changes the next conversation


Dialogs already reads and writes these states. Create dialogue conditions and state changes in its PimpMyRust editor, without writing your own integration plugin.

Player Event States is a storage/API plugin: no standalone configurator, player interface, quests or rewards. Dialogs requires it; it does not require Dialogs.
Connect your own gameplay plugin

Install PlayerEventStates.cs in oxide/plugins, reference it with [PluginReference], then use its API.
| Method | Purpose |
|---|---|
GetEventStatePlayer_API(ulong, string)
|
Read a player's state; an absent key returns false |
SetEventStatePlayer_API(ulong, string, bool)
|
Set or create a player's state |
GetEventStateGlobal_API(string)
|
Read or create a global state |
SetEventStateGlobal_API(string, bool)
|
Set an existing global state |
PlayerHasRecquiredStates_API(ulong, Dictionary<string, bool>)
|
Check a set of expected player states |
Keep the published spelling Recquired. For a new global key, call its getter before the setter.
Keep the progress files

States live in oxide/data/PlayerEventStates/: user_<steamid>.json and global_events.json. They are saved on server saves and plugin unload, not immediately after every API call.
There is no automatic expiry or wipe reset. Back up this directory and do not replace live progress with example files.
API examples and persistence guide →
