New Bad.City forum!

With new advanced scripting functionality it’s about time we have a forum to have some structured information that is otherwise not easily searchable on Discord.

There it is. A brand new forum!


Current game mode is very crude and it’s basically a constant team deathmatch where both sides shoot each other. There are many more interesting things that are possible in BC engine and it’s time to give players an opportunity to harness them.

That’s why we implemented scripting language that is using the same events, hooks and functions like massively popular SA-MP. It’s just the beginning and there is partial coverage of basic functionalities. At the bottom there will be a checklist of which callbacks are already available.

How to use scripting?

It would be extremely impractical to explain such complex and advanced topic as scripting in just one post. So there it is:

  1. Open the editor
  2. Open a map or save your map - it must MUST be saved for scripting to work
  3. Click on Scripting button at the top and an editor will open
  4. Click on Open game in dev mode that will open the game in a new tab/window
  • Now you can position the editor on the left and game on the right like on the screenshot
  1. Start writing scripts! Press Ctrl+Enter to instantly see the changes happening in-game on the right

Here are the callbacks explained on OpenMP website:

Here’s a checklist of all SA-MP events, what is implemented and what isn’t.
Initially only basic functions are available but still we have almost half of SA-MP events spec! (V Yes and - Not yet)
OnActorStreamIn -
OnActorStreamOut -
OnClientMessage V
OnClientCheckResponse -
OnDialogResponse -
OnEnterExitModShop -
OnFilterScriptExit -
OnFilterScriptInit -
OnGameModeExit V
OnGameModeInit V
OnIncomingConnection V
OnObjectMoved V
OnPlayerClickMap -
OnPlayerClickPlayerTextDraw -
OnPlayerClickPlayer -
OnPlayerClickTextDraw -
OnPlayerCommandText V
OnPlayerConnect V
OnPlayerDeath V
OnPlayerDisconnect V
OnPlayerEditAttachedObject -
OnPlayerEditObject -
OnPlayerEnterCheckpoint V
OnPlayerEnterRaceCheckpoint V
OnPlayerEnterVehicle V
OnPlayerExitVehicle V
OnPlayerExitedMenu -
OnPlayerFinishedDownloading -
OnPlayerGiveDamageActor V
OnPlayerGiveDamage V
OnPlayerInteriorChange -
OnPlayerKeyStateChange -
OnPlayerLeaveCheckpoint V
OnPlayerLeaveRaceCheckpoint V
OnPlayerObjectMoved -
OnPlayerPickUpPickup -
OnPlayerRequestClass -
OnPlayerRequestDownload -
OnPlayerRequestSpawn -
OnPlayerSelectObject -
OnPlayerSelectedMenuRow -
OnPlayerSpawn V
OnPlayerStateChange V
OnPlayerStreamIn -
OnPlayerStreamOut -
OnPlayerTakeDamage V
OnPlayerText V
OnPlayerUpdate V
OnPlayerWeaponShot V
OnRconCommand -
OnRconLoginAttempt -
OnRecordingPlaybackEnd -
OnScriptCash do not add
OnTrailerUpdate -
OnUnoccupiedVehicleUpdate V
OnVehicleDamageStatusUpdate V
OnVehicleDeath V
OnVehicleMod -
OnVehiclePaintjob -
OnVehicleRespray -
OnVehicleSirenStateChange -
OnVehicleSpawn V
OnVehicleStreamIn -
OnVehicleStreamOut -