Skip to content

DoomWare API

Buu342 edited this page May 13, 2021 · 32 revisions

Table of Contents

Scripts and Functions

The following contains a list of scripts and functions which you can use to assist you during the development of new minigames for DoomWare

Minigame Functions The following scripts are to be used to handle basic minigame logic.
Name Type Arguments Return Description
DoomWare_Server_GameWait Script int time - Sets the minigame timer to time.
DoomWare_Server_TeleportPlayers Script int tid
bool telesector
bool fog
- Teleports all the players to tid.
If telesector is enabled, the TeleportInSector method will be used. Otherwise, players will be teleported to individual TID's.
Enabling fog will enable the teleport effect+sound
DoomWare_Server_TeleportSingle Script int plynum
int destination
- Teleports a player with PlayerNumber plynum to the destination with ThingID destination
DoomWare_Server_ReturnPlayers Script bool fog - Returns all teleported players back to the main lobby.
If fog is enabled, then a teleport effect+sound will be emitted.
Player Manipulation The following functions are used to manipulate player states and abilities.
Name Type Arguments Return Description
Player_Win Function int plynum - Makes the player with PlayerNumber plynum win the current minigame.
Player_Lose Function int plynum
bool silent
- Makes the player with PlayerNumber plynum lose the current minigame.
Player_SavePosition Function int plynum - Saves the position of the player with PlayerNumber plynum (Used internally by DoomWare_Server_TeleportPlayers).
Player_InvalidatePosition Function int plynum - Clears the stored position of the player with PlayerNumber plynum.
Player_Morph Function int plynum
str class
- Morphs the player with PlayerNumber plynum into the actor class.
Player_FreezeTotally Function int who - Freezes the player totally. Set who to 1 to affect all players, or 0 to affect the activator.
Player_UnFreezeTotally Function int who - Unfreezes the player totally. Set who to 1 to affect all players, or 0 to affect the activator.
Give_Achievement Function int plynum
int achievement
- Gives the player with PlayerNumber plynum the achievement with id achievement.
Player Information The following functions are used to retrieve information about players.
Name Type Arguments Return Description
Check_LMS Function - - Iterates through all players and checks if there is only one last man standing. If so, automtically calls Player_Win on them.
Check_WonRoundItem Function - - Iterates through all players and calls Player_Win on the ones who have "WonRoundItem" in their inventory.
Check_FailRoundItem Function - - Iterates through all players and calls Player_Lose on the ones who have "FailRoundItem" in their inventory.
Check_Player_Won Function int plynum bool Checks if the player with PlayerNumber plynum has won this round.
Check_Player_Lost Function int plynum bool Checks if the player with PlayerNumber plynum has lost this round.
Observer System The following functions relate to the observer system
Name Type Arguments Return Description
Add_Observer Function int TID - Adds a camera with ThingID TID to the observers list.
Force_Observe Function int plynum - Forces the player with PlayerNumber plynum to use the observers camera. At least one camera needs to be in the observers list for this to work!
Miscellaneous The following functions don't fit in any other category, but can otherwise prove useful.
Name Type Arguments Return Description
Calc_Speed Function int xvel
int yvel
int Returns the speed from the given x and y velocities xvel & yvel. The returned value is in Fixed Point format.
Distance Function int tid1
int tid2
int Returns the distance between the actor with tid1 and tid2 in Fixed Point format.
Max Function int a
int b
int Returns the largest number between a and b
AToI Function str s int Converts the string s to an integer.
DECORATE The following scripts are solely used in DECORATE.
Name Type Arguments Return Description
DoomWare_Entity_MarkCleanup Script - - Changes the calling entity's ThingID to TID_REMOVE
DoomWare_Entity_CheckCleanup Script - - Checks if a minigame is ocurring, and if it isn't, it removes this entity. This is needed because sometimes the initial TID_REMOVE cleanup fails.

Global Variables

The following contains a list of global variables which you can modify during the execution of your minigame.

TODO

Internal Functions and Scripts

This section contains a list of internal functions and scripts used by DoomWare. You should have very little reason to use them, but they're here for documentation's sake.

Server Logic The following scripts and functions relate to the initialization of the gamemode, as well as the main gamemode logic.
Name Type Arguments Return Description
DoomWare_Server_Boot Script -
DoomWare_Server_Initialize Script -
DoomWare_Server_InitMap Script -
DoomWare_Server_InitHints Script -
SoloBanList Function
DoomWare_Server_InitRounds Script -
DoomWare_Server_InitHighscores Script -
DoomWare_Server_InitGlobals Script -
DoomWare_Server_GameLogic Script -
DoomWare_Server_SyncGlobals Script -
Client Logic The following scripts relate to the initialization of the player, as well as the main player gamemode logic.
Name Type Arguments Return Description
DoomWare_Client_Join Script
DoomWare_Client_Initialize Script
DoomWare_Client_Death Script
DoomWare_Client_Disconnect Script
DoomWare_Client_Respawn Script
DoomWare_Client_GameLogic Script
DoomWare_Client_DrawHUD Script
Checking Functions The following functions are used for checking various gamemode states
Name Type Arguments Return Description
Should_Speedup Function
ShouldTieBreak Function
Is_1v1_TieBreaker Function
No_MidRound_Array Function
Wackymods The following scripts and functions handle wacky modifier logic.
Name Type Arguments Return Description
DoomWare_Server_Wackymod Script
Player_SetWackymod Function
DoomWare_WackyMod_DoubleJump Script
Data Networking The following functions relate to the networking of global variables to CLIENTSIDE scripts.
Name Type Arguments Return Description
Player_SetCVar Function
Player_SetCVarString Function
Player_SetCVarStringPacked Function
Pack_Global_Array Function
Unpack_CVar_Array Function
Unpack_CVar_Array_String Function
Database Handling The following scripts and functions relate to [player stat tracking](Player-Stats).
Name Type Arguments Return Description
DoomWare_Server_UpdateDB Script -
DB_NetworkStats Function
Load_PlayerDB Function
Highscore Table The following scripts handle the highscore table.
Name Type Arguments Return Description
257 Script -
DoomWare_Server_CalcHighscore Script -
DoomWare_Client_DrawHighscore Script -
Observer System The following scripts handle the observer system.
Name Type Arguments Return Description
988 Script -
DoomWare_Server_ClearObservers Script -
DoomWare Menu The following scripts are related to the DoomWare menu.
Name Type Arguments Return Description
999 Script -
DoomWare_Client_DrawMenu Script -
Handle_Menu_Option Function
Handle_Menu_Achievement Function
Player Hats The following scripts and functions handle player hats.
Name Type Arguments Return Description
IsBetaTester Function
DoomWare_Server_Hats Script -
Miscellaneous The following scripts did not fit into any other category, but are used in some way by the gamemode.
Name Type Arguments Return Description
DoomWare_Entity_Cleanup Script -
DoomWare_Entity_SetPlayerTranslation Script -
DoomWare_DoLightning Script -
DoomWare_AchievementLog Script -

Internal Global Variables

This section contains a list of internal global variables used by DoomWare. Modifying these variables during gameplay can cause problems with the gamemode, therefore they should be treated as READ ONLY.

TODO

Clone this wiki locally