<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.doc.boardgamearena.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benoit314</id>
	<title>Board Game Arena - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.doc.boardgamearena.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Benoit314"/>
	<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/Special:Contributions/Benoit314"/>
	<updated>2026-09-24T15:26:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>https://en.doc.boardgamearena.com/index.php?title=Table&amp;diff=8129</id>
		<title>Table</title>
		<link rel="alternate" type="text/html" href="https://en.doc.boardgamearena.com/index.php?title=Table&amp;diff=8129"/>
		<updated>2021-05-01T01:04:28Z</updated>

		<summary type="html">&lt;p&gt;Benoit314: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is reference for public and protected method defined in Table and its ancestors, this information obtained by using php reflection.&lt;br /&gt;
&lt;br /&gt;
Most of these methods documented on various other wikis, this is just refeference for completeness and in case you run into accidental overloading of undocumented functions...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
Its a long list please help with editing this wiki&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you need these method for IDE autocompletion and validation there is unofficial project that has stubs to documented methods: &lt;br /&gt;
https://github.com/danielholmes/bga-workbench/tree/master/src/BGAWorkbench/Stubs&lt;br /&gt;
&lt;br /&gt;
== Class hierarchy ==&lt;br /&gt;
&lt;br /&gt;
* APP_Object&lt;br /&gt;
** APP_DbObject&lt;br /&gt;
***  APP_GameClass&lt;br /&gt;
****    Table - this is a class all games inherit&lt;br /&gt;
****    [[Deck]] - db handling component for specific schema (deck)&lt;br /&gt;
&lt;br /&gt;
== Methods in the Table class ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Table.getGameName&lt;br /&gt;
:part of template, return game name, not to be modified by developer, not document on wiki&lt;br /&gt;
;Table._&lt;br /&gt;
:translation wrapper function, see [[Translations]]&lt;br /&gt;
;Table.setTable&lt;br /&gt;
:undocumented&lt;br /&gt;
;Table.initTable&lt;br /&gt;
:undocumented&lt;br /&gt;
;Table.getAllTableDatas&lt;br /&gt;
:undocumented&lt;br /&gt;
;Table.getAllDatas&lt;br /&gt;
:part of template, override, see [[Main game logic: yourgamename.game.php]]&lt;br /&gt;
;Table.setupNewGameTable&lt;br /&gt;
:undocumented&lt;br /&gt;
;Table.setupNewGame&lt;br /&gt;
:part of template, override, see [[Main game logic: yourgamename.game.php]]&lt;br /&gt;
;Table.getTableOptionsForGame&lt;br /&gt;
:undocumented&lt;br /&gt;
;Table.getTableOptions&lt;br /&gt;
:undocumented, likely return gameoptions (i.e. variants of the games)&lt;br /&gt;
;Table.getTablePreferencesForGame&lt;br /&gt;
:undocumented&lt;br /&gt;
;Table.getTablePreferences&lt;br /&gt;
:undocumented, likely return UI preferences (i.e. display tooltips or not) &lt;br /&gt;
;Table.getGameInfosForGame&lt;br /&gt;
:undocuments, likely return $gameinfos from gameinfos.inc.php&lt;br /&gt;
;Table.getGameOptionsInfos&lt;br /&gt;
:undocumented&lt;br /&gt;
;Table.start&lt;br /&gt;
:undocumented, likely starts the game, do not call&lt;br /&gt;
;Table.loadPlayersBasicInfos&lt;br /&gt;
:very usefull function get players table, see [[Main game logic: yourgamename.game.php]]&lt;br /&gt;
;Table.reloadPlayersBasicInfos&lt;br /&gt;
:reload players info, see [[Main game logic: yourgamename.game.php]]&lt;br /&gt;
;Table.reattributeColorsBasedOnPreferences&lt;br /&gt;
:change players colors, see [[Main game logic: yourgamename.game.php]]&lt;br /&gt;
;Table.getBestColorFromColorPrefs&lt;br /&gt;
:undocumented, do not call, use to pick a color based on preference&lt;br /&gt;
;Table.initSetupPlayersInfos&lt;br /&gt;
:undocumented&lt;br /&gt;
;Table.getPlayersNumber&lt;br /&gt;
:returns number of players, see [[Main game logic: yourgamename.game.php]]&lt;br /&gt;
;Table.checkAction&lt;br /&gt;
:check action on server, see [[Main game logic: yourgamename.game.php]]&lt;br /&gt;
;Table.checkGameStart&lt;br /&gt;
;Table.color_to_color_back&lt;br /&gt;
:@deprecated, undocumented&lt;br /&gt;
;Table.initGameStateLabels&lt;br /&gt;
;Table.setGameStateInitialValue&lt;br /&gt;
:Set initial state of global, technically same as setGameStateValue see [[Main_game_logic:_yourgamename.game.php#Use_globals]]&lt;br /&gt;
;Table.getGameStateValue&lt;br /&gt;
:get value of global see [[Main_game_logic:_yourgamename.game.php#Use_globals]]&lt;br /&gt;
;Table.setGameStateValue&lt;br /&gt;
:set value of global see [[Main_game_logic:_yourgamename.game.php#Use_globals]]&lt;br /&gt;
;Table.incGameStateValue&lt;br /&gt;
:increment value of global see [[Main_game_logic:_yourgamename.game.php#Use_globals]]&lt;br /&gt;
;Table.is_testmode&lt;br /&gt;
:@deprecated&lt;br /&gt;
;Table.testmodedatas&lt;br /&gt;
:@deprecated&lt;br /&gt;
;Table.applyTestModeDbFixture&lt;br /&gt;
;Table.getActivePlayerId&lt;br /&gt;
:get active player id, see [[Main_game_logic:_yourgamename.game.php#Game_states_and_active_players]]&lt;br /&gt;
;Table.getActivePlayerName&lt;br /&gt;
:get active player name, see [[Main_game_logic:_yourgamename.game.php#Game_states_and_active_players]]&lt;br /&gt;
;Table.getCurrentPlayerId&lt;br /&gt;
:get current player id, see [[Main_game_logic:_yourgamename.game.php#Game_states_and_active_players]]&lt;br /&gt;
;Table.getCurrentPlayerName&lt;br /&gt;
:get currrent player name, see [[Main_game_logic:_yourgamename.game.php#Game_states_and_active_players]]&lt;br /&gt;
;Table.getCurrentPlayerColor&lt;br /&gt;
:get current player color, see [[Main_game_logic:_yourgamename.game.php#Game_states_and_active_players]]&lt;br /&gt;
;Table.isCurrentPlayerZombie&lt;br /&gt;
;Table.getPlayerCount&lt;br /&gt;
:@deprecated, use getPlayersNumber, &lt;br /&gt;
;Table.createNextPlayerTable&lt;br /&gt;
;Table.getNextPlayerTable&lt;br /&gt;
;Table.createPrevPlayerTable&lt;br /&gt;
;Table.getPrevPlayerTable&lt;br /&gt;
;Table.getPlayerAfter&lt;br /&gt;
;Table.getPlayerBefore&lt;br /&gt;
;Table.activeNextPlayer&lt;br /&gt;
;Table.activePrevPlayer&lt;br /&gt;
;Table.forceEndOfGame&lt;br /&gt;
:force to abandon game, normally its called when all players agree, but can be called to force people out when testing alpha or beta games and don&#039;t want to deal with update db and such ($this-&amp;gt;forceEndOfGame( $reason ))&lt;br /&gt;
;Table.giveExtraTime&lt;br /&gt;
;Table.checkZombieTurn&lt;br /&gt;
;Table.skipPlayersOutOfTime&lt;br /&gt;
;Table.onPlayerHasBeenZombified&lt;br /&gt;
;Table.forceAbandon&lt;br /&gt;
;Table.zombieBack&lt;br /&gt;
;Table.aiPlayer&lt;br /&gt;
;Table.aiNotPlaying&lt;br /&gt;
;Table.aiError&lt;br /&gt;
;Table.say&lt;br /&gt;
;Table.getGameProgression&lt;br /&gt;
;Table.getStatTypesForGame&lt;br /&gt;
;Table.getStatTypes&lt;br /&gt;
:get the $stats_type array defined in stats.inc.php&lt;br /&gt;
;Table.stat_type_id_to_name&lt;br /&gt;
;Table.initStat&lt;br /&gt;
:initialize statistic https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Game_statistics&lt;br /&gt;
;Table.getStat&lt;br /&gt;
:get statistic https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Game_statistics&lt;br /&gt;
;Table.setStat&lt;br /&gt;
:set statistic https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Game_statistics&lt;br /&gt;
;Table.setStatForAllPlayers&lt;br /&gt;
:set player statistics for all players, not document, does not check params, have some bad side effects&lt;br /&gt;
;Table.incStat&lt;br /&gt;
:inc statistic https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Game_statistics&lt;br /&gt;
;Table.getStatFromResult&lt;br /&gt;
:helper function, do not use, should have been private for table class&lt;br /&gt;
;Table.setStatOnResult&lt;br /&gt;
:helper function, do not use, should have been private for table class&lt;br /&gt;
;Table.setStatOnResultForPlayer&lt;br /&gt;
:helper function, do not use, should have been private for table class&lt;br /&gt;
;Table.getStandardGameResultObject&lt;br /&gt;
:helper function, do not use, should have been private for table class&lt;br /&gt;
;Table.getGameRankInfos&lt;br /&gt;
;Table.argGameEnd&lt;br /&gt;
:framework end game function, do not call or override&lt;br /&gt;
;Table.stGameEnd&lt;br /&gt;
:framework end game function, do not call or override&lt;br /&gt;
;Table.stTutorialStart&lt;br /&gt;
;Table.isSoloGame&lt;br /&gt;
:return true if game is 1 player game or all other players are AI&lt;br /&gt;
;Table.notifyAllPlayers&lt;br /&gt;
:notification function, see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php&lt;br /&gt;
;Table.notifyPlayer&lt;br /&gt;
:notification function, see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php&lt;br /&gt;
;Table.onEndAjaxAction&lt;br /&gt;
:can be overriden to be executed before end of ajax action, unclear why would anybody need that&lt;br /&gt;
;Table.checkReturnState&lt;br /&gt;
:framework internal check action, do not call or override&lt;br /&gt;
;Table.sendNotifications&lt;br /&gt;
:framework internal function, do not call or override&lt;br /&gt;
;Table.getCurrentNotificationNextNo&lt;br /&gt;
;Table.getNotificationHistory&lt;br /&gt;
;Table.debugChat&lt;br /&gt;
:studio only - execute php code from chat, overriding won&#039;t work as it is called statically from table class&lt;br /&gt;
;Table.timeout&lt;br /&gt;
:studio only - can call from chat console to zombify current player&lt;br /&gt;
;Table.eliminatePlayer&lt;br /&gt;
:eliminate player, https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php&lt;br /&gt;
;Table.isAsync&lt;br /&gt;
:return true if game is turn based, false if realtime, undocumented (why?)&lt;br /&gt;
;Table.getTimeLimits&lt;br /&gt;
:internal framework function, do not call or override&lt;br /&gt;
;Table.getAsyncTimeLimits&lt;br /&gt;
:return time limits for turn based games&lt;br /&gt;
;Table.checkAsyncActivePlayersChange&lt;br /&gt;
:framework internal check action, do not call or override&lt;br /&gt;
;Table.upgradeTableDb&lt;br /&gt;
:override to perform db upgrade, see game template, also some notes in https://en.doc.boardgamearena.com/Post-release_phase&lt;br /&gt;
;Table.getReplayPoints&lt;br /&gt;
;Table.saveReplayPoint&lt;br /&gt;
;Table.undoAndReplayInit&lt;br /&gt;
;Table.removeAutoIncrementFromTable&lt;br /&gt;
:@deprecated&lt;br /&gt;
;Table.getFieldsListOfTable&lt;br /&gt;
;Table.undoInit&lt;br /&gt;
;Table.undoSavepoint&lt;br /&gt;
:Instruction to save database state after current transaction is complete [[Main game logic: yourgamename.game.php]]&lt;br /&gt;
;Table.doUndoSavePoint&lt;br /&gt;
:do not call directly&lt;br /&gt;
;Table.undoRestorePoint&lt;br /&gt;
:Restore database from save point&lt;br /&gt;
;Table.showTutorial&lt;br /&gt;
:do not call directly&lt;br /&gt;
;Table.seenTutorial&lt;br /&gt;
:do not call directly&lt;br /&gt;
;Table.activeTutorial&lt;br /&gt;
:do not call directly&lt;br /&gt;
;Table.forceGameTournamendEnd&lt;br /&gt;
:do not call directly&lt;br /&gt;
;Table.showCursor&lt;br /&gt;
&lt;br /&gt;
== Methods in the APP_GameClass class ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;APP_GameClass.getNewUnique&lt;br /&gt;
;APP_GameClass.getNew&lt;br /&gt;
;APP_GameClass.notifyNow&lt;br /&gt;
&lt;br /&gt;
== Methods in the APP_DbObject class ==&lt;br /&gt;
&lt;br /&gt;
;APP_DbObject.ConnectDb&lt;br /&gt;
;APP_DbObject.DbQuery&lt;br /&gt;
:main query method, see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database&lt;br /&gt;
;APP_DbObject.DbTraceTimeBefore&lt;br /&gt;
;APP_DbObject.DbTraceTimeAfter&lt;br /&gt;
;APP_DbObject.DbGetLastId&lt;br /&gt;
;APP_DbObject.DbDumpQueryHistory&lt;br /&gt;
;APP_DbObject.DbAffectedRow&lt;br /&gt;
;APP_DbObject.DbStartTransaction&lt;br /&gt;
;APP_DbObject.DbCommit&lt;br /&gt;
;APP_DbObject.DbRollback&lt;br /&gt;
;APP_DbObject.DbRestartTransaction&lt;br /&gt;
;APP_DbObject.DbSelect&lt;br /&gt;
;APP_DbObject.CommitAllAndRestart&lt;br /&gt;
;APP_DbObject.setDeadlockMode&lt;br /&gt;
;APP_DbObject.isDeadlockModeRetry&lt;br /&gt;
;APP_DbObject.enableMultiQueries&lt;br /&gt;
;APP_DbObject.sendMultiQueries&lt;br /&gt;
;APP_DbObject.escapeStringForDB&lt;br /&gt;
;APP_DbObject.getCollectionFromDB&lt;br /&gt;
:see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database&lt;br /&gt;
;APP_DbObject.getNonEmptyCollectionFromDB&lt;br /&gt;
;APP_DbObject.getDoubleKeyCollectionFromDB&lt;br /&gt;
:see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database&lt;br /&gt;
;APP_DbObject.getUniqueValueFromDB&lt;br /&gt;
;APP_DbObject.mysql_fetch_row&lt;br /&gt;
;APP_DbObject.mysql_fetch_assoc&lt;br /&gt;
;APP_DbObject.mysql_query&lt;br /&gt;
;APP_DbObject.getObjectFromDB&lt;br /&gt;
:see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database&lt;br /&gt;
;APP_DbObject.getNonEmptyObjectFromDB&lt;br /&gt;
:see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database&lt;br /&gt;
;APP_DbObject.getObjectListFromDB&lt;br /&gt;
:see https://en.doc.boardgamearena.com/Main_game_logic:_yourgamename.game.php#Accessing_the_database&lt;br /&gt;
;APP_DbObject.getSelectedDb&lt;br /&gt;
;APP_DbObject.sqlParsing&lt;br /&gt;
;APP_DbObject.DbUsePrefix&lt;br /&gt;
;APP_DbObject.applyPrefix&lt;br /&gt;
;APP_DbObject.cache_store&lt;br /&gt;
;APP_DbObject.cache_add&lt;br /&gt;
;APP_DbObject.cache_exists&lt;br /&gt;
;APP_DbObject.cache_fetch&lt;br /&gt;
;APP_DbObject.cache_delete&lt;br /&gt;
;APP_DbObject.cache_rollback&lt;br /&gt;
;APP_DbObject.cache_commit&lt;br /&gt;
;APP_DbObject.ensure_enough_time_since_last_action&lt;br /&gt;
;APP_DbObject.getMasterNodeDomain&lt;br /&gt;
;APP_DbObject.getMasterNodeUrl&lt;br /&gt;
;APP_DbObject.masterNodeRequest&lt;br /&gt;
;APP_DbObject.gameserverNodeRequest&lt;br /&gt;
;APP_DbObject.gameserverNodeRequestNoTable&lt;br /&gt;
;APP_DbObject.bgaCallUrl&lt;br /&gt;
&lt;br /&gt;
== Methods in the APP_Object class ==&lt;br /&gt;
;APP_Object.watch&lt;br /&gt;
:@deprecated, do not use&lt;br /&gt;
;APP_Object.debug&lt;br /&gt;
:see https://en.doc.boardgamearena.com/Practical_debugging&lt;br /&gt;
;APP_Object.trace&lt;br /&gt;
:see https://en.doc.boardgamearena.com/Practical_debugging&lt;br /&gt;
;APP_Object.warn&lt;br /&gt;
:see https://en.doc.boardgamearena.com/Practical_debugging&lt;br /&gt;
;APP_Object.error&lt;br /&gt;
:see https://en.doc.boardgamearena.com/Practical_debugging&lt;br /&gt;
;APP_Object.dump&lt;br /&gt;
:see https://en.doc.boardgamearena.com/Practical_debugging&lt;/div&gt;</summary>
		<author><name>Benoit314</name></author>
	</entry>
</feed>