From Multi Theft Auto: Wiki

This function allows you to create a videoplayer on the screen.


bool playVideo (float posX, float posY, float width, float height, string url, int duration [, bool canClose, bool postGUI])

Required Arguments

  • posX: The absolute X coordinate of the top left corner of the video
  • posY: The absolute Y coordinate of the top left corner of the video
  • width: The absolute width of the video
  • height: The absolute height of the video
  • url: The video link. This must be an youtube embed link. You can use the following codes in it:
    • /embed/ Use this on place of watch?v= normal url. This is a required code.
    • (videoID) The video ID. This is a required code.
    • autoplay=1 This will auto play the video, otherwise the player will only see the video thumbnail. This is a required code.
    • controls=0 Hide the youtube's video controls and video progress bar. This and the following codes are all optional.
    • disablekb=1 Disable keyboard video controls.
    • rel=0 Disable related videos from other channels after the reproduction. It will show only videos from the embed video's channel.
    • start=67 This will start the video on the time 1:07 instead of 0:00 by default. You can use any integer number here.
    • end=72 This will stop the video on the time 1:12 instead of their end by default. You can use any integer number here.
    • cc_load_policy=1 This will enable closed captions on the video if it have one.
    • list=(playlist ID) If you will reproduce a playlist, you use this after the video ID.
      • index=1 Only aplicable if you will reproduce a playlist. This will start the playlist on the second video. If you want to start on the third video, use 2 instead of 1 and so on. You can use any integer number here.
    • color=white this will make the video progress bar white instead of red. There are not other colors. Only aplicable if you don't use controls=0 code.

There are many other codes but they are not recommended here or simply doesn't work on MTA's browser.

Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.

  • duration: The number of milliseconds the browser will be visible before being auto disabled. If not set, the video will be on screen until the player close it using the next parameter.
  • canClose: A bool representing whether the player can close the video during the reproduction. The player can click it to close the video. This button will not show if the next parameter is true.
  • postGUI: A bool representing whether the video should be drawn on top of or behind any ingame GUI.
[[{{{image}}}|link=]] Tip: You can Use setPlayerHudComponentVisible to hide your HUD and radar while playing the video.


Returns true if successful, false otherwise.


Click to collapse [-]
function playVideo (posX, posY, width, height, url, duration, canClose, postGUI)
	if not posX or not posY or not width or not height or not url then
		return false
	local webBrowser = false
	closeButton = guiCreateButton (0.97, 0, 0.03, 0.03, "X", true)
	guiSetAlpha (closeButton, 0.5)
	guiSetVisible (closeButton, false)
	if not isElement (webBrowser) then
		webBrowser = createBrowser (width, height, false, false)
		function createVideoPlayer ()
			function webBrowserRender ()
				dxDrawImage (posX, posY, width, height, webBrowser, 0, 0, 0, tocolor(255,255,255,255), postGUI)
			loadBrowserURL (webBrowser, url)
			setTimer (function()
				addEventHandler ("onClientRender", getRootElement(), webBrowserRender)
				showChat (false)
				if canClose then
					guiSetVisible (closeButton, true)
					showCursor (true)
			end, 500, 1)
			setElementFrozen (localPlayer, true)
			if duration then
				videoTimer = setTimer (function()
					removeEventHandler ("onClientRender", getRootElement(), webBrowserRender)
					setElementFrozen (localPlayer, false)
					guiSetVisible (closeButton, false)
					showCursor (false)
					showChat (true)
					destroyElement (webBrowser)
				end, duration, 1)
			addEventHandler ("onClientGUIClick", closeButton, function (button, state)
				if button == "left" then
					if isTimer (videoTimer) then
						killTimer (videoTimer)
						videoTimer = nil
						removeEventHandler ("onClientRender", getRootElement(), webBrowserRender)
						setElementFrozen (localPlayer, false)
						guiSetVisible (closeButton, false)
						showCursor (false)
						showChat (true)
						destroyElement (webBrowser)
			end, false)
		setTimer (createVideoPlayer, 500, 1)

Author: LordHenry


Click to collapse [-]

This example plays a video in fullscreen when the player uses the /intro command.

local x, y = guiGetScreenSize()

function defaultFunction ()
	playVideo (0, 0, x, y, "", 12500, true, false)
addCommandHandler ("intro", defaultFunction)

See Also

Table functions

  • isValueInTable » This function returns true if the value exists in the table, false if the value does not exist in the table.
  • setTableToSql » This function is used to save the table in the database (sql).
  • getTableFromSql » This functionality is used to obtain saved tables using the function (SetTableToSql ).
  • rangeToTable » This function converts a string range to a table containing number values.
  • setTableProtected » This function protects a table and makes it read-only.
  • Sort_Functions » These functions are able to sort your tables by a key.
  • » This function checks whether two given tables are equal.
  • table.copy » This function copies a whole table and all the tables in that table.
  • table.empty » This function checks whether a table is empty.
  • » This function goes through a table and replaces every field with the return of the passed function, where the field's value is passed as first argument and optionally more arguments.
  • table.merge » This function merges two or more tables together.
  • table.random » This function retrieves a random value from a table.
  • table.removeValue » This function removes a specified value from a table.
  • table.size » This function returns the absolute size of a table.
  • table.getRandomRows » This function returns random rows from table.
  • table.element » This function returns a new table with only userdata content.
  • pairsByKeys » This function sort pairs table.

ACL functions

  • aclGroupClone » This function clone a group to another group with/without ACLs and/or objects.
  • getPlayersInACLGroup » This function returns all players in an ACL group.
  • getPlayerAcls » This function returns a table of all ACL groups on a player.
  • isPlayerInACL » This function checks if a player element is in an ACL group.
  • renameAclGroup » This function gives an existing ACL group a new name.
  • getAccountsRanks » This function is used to detect the account name groups and put them in the chat.

Account functions

Camera functions

  • smoothMoveCamera » This function allows you to create a cinematic camera flight.

Cursor functions

  • getCursorMovedOn » This function checks in which way the cursor is currently moving.

Drawing functions

Effects functions

  • attachEffect » This function allows you attach an effect to an element.

Element functions

  • getElementSpeed » This function returns the specified element's speed in m/s, km/h or mph.
  • getElementsInDimension » This function returns a table of elements that are in the specified dimension.
  • getElementsWithinMarker » This function returns a table of elements that are within a marker's collision shape.
  • getNearestElement » This function returns the nearest element (of a specific type) to a player.
  • isElementInPhotograph » This function checks if an element is in the player's camera picture area.
  • isElementInRange » This function allows you to check if an element's range to a main point is within the maximum range.
  • isElementMoving» This function checks if an element is moving.
  • isElementWithinAColShape» This function checks if an element is within a collision shape element.
  • multi_check » This function checks one element to many, handy and clean.
  • setElementSpeed » This function allows you to set the speed of an element in kph or mph units.


  • onVehicleWeaponFire » This code implements an event that is triggered when a player in a vehicle fires a vehicle's weapon.

Input functions

  • bindControlKeys » This function allows you to bind each key bound to a control individually. Doing this bypasses a little MTA restriction.
  • getBoundControls » This function returns a table of control names that are bound to the specified key.
  • unbindControlKeys » This function allows you to unbind each key bound to a control individually. Use this function with bindControlKeys.
  • getClipboard » This event returns the contents of the clipboard by pressing ctrl + v / ctrl + V. Event triggered ONLY if cursor is showing.

Data functions

  • byte2human » This function converts an integer (number of bytes) into a human-readable unit.
  • capitalize » This function capitalizes a given string.
  • convertServerTickToTimeStamp » This function converts server ticks to a unix timestamp.
  • convertTextToSpeech » This function converts the provided text to a speech in the provided language which players can hear.
  • findRotation » This function takes two points and returns the direction from point A to point B.
  • findRotation3D » This function takes two sets of XYZ coordinates. It returns the 3D direction from point A to point B.
  • formatDate » This function formats a date on the basis of a format string and returns it.
  • formatNumber » This function formats large numbers by adding commas.
  • generateString » This function generates a random string with any characters.
  • generateRandomASCIIString » This function returns a random string which uses ASCII characters.
  • getDistance » Returns the distance between two elements.
  • getAge » This function calculates the age of a given birthday.
  • getDistanceBetweenPointAndSegment2D » This function takes point coordinates and line (a segment) starting and ending coordinates. It returns the shortest distance between the point and the line.
  • getEasterDate » This function returns easter date monthday and month for a given year.
  • getKeyFromValueInTable » This function returns the key of the specified value in a table.
  • getOffsetFromXYZ » This function allows you to take an entity and a position and calculate the relative offset between them accounting for rotations.
  • getPointFromDistanceRotation » This function finds a point based on a starting point, direction and distance.
  • getRealMonthH » This function convert english months to arabic months
  • getRealMonthM » This function gives you the real months name
  • getRGColorFromPercentage »This function returns two integers representing red and green colors according to the specified percentage.
  • getScreenRotationFromWorldPosition » This function returns a screen relative rotation to a world position.
  • getTimestamp » This function returns the UNIX timestamp of a specified date and time.
  • isLeapYear » This function returns a boolean representing if a given year is a leap year.
  • isValidMail » This function checks whether a provided e-mail string is valid.
  • removeHex » This function is used to remove hexadecimal numbers (colors, for example) from strings.
  • RGBToHex » This function returns a string representing the color in hexadecimal.
  • secondsToTimeDesc » This function converts a plain seconds-integer into a user-friendly time description.
  • string.count » This function counts the amount of occurences of a string in a string.
  • string.insert » This function inserts a string within another string at a given position.
  • string.explode » This function splits a string at a given separator pattern and returns a table with the pieces.
  • switch » This function allows the value of a variable or expression to control the flow of program execution via a multiway branch.
  • toHex » This function converts a decimal number to a hexadecimal number, as a fix to be used client-side.
  • var dump » This function outputs information about one or more variables using outputConsole.
  • wavelengthToRGBA » This function converts a physical wavelength of light to a RGBA color.
  • getDistanceBetweenElements » Esta funcion sirve para obtener la distancia entre dos elementos.
  • getFreeDimension » This function get free dimension.

GUI functions

  • centerWindow » This function centers a CEGUI window element responsively in any resolution.
  • guiMoveElement » This function moves guiElement by/like using moveObject.
  • isMouseOnGUICloseButton » This function allows you to check whether the mouse cursor/pointer is within a gui-window's native close button.
  • guiSetStaticImageMovable » This function allows you to move a static image like a gui window.
  • guiLabelAddEffect » This function add an effects to the gui-label like (shadow, outline).

Marker functions

Math functions

  • mathNumber » This function is a workaround for the client-side floating-point precision of 24-bits.
  • math.hypot » This function returns the Hypotenuse of the triangle given by sides x and y.
  • math.percent » This function returns a percentage from two number values.
  • math.round » Rounds a number whereas the number of decimals to keep and the method may be set.
  • reMap » Re-maps a number from one range to another.
  • math.isPointInPolygon » Check if point is inside polygon or not.
  • math.polygonArea » Compute area of any polygon.
  • math.randomDiff » Generates a pseudo-random integer that's always different from the last random number generated.

Map functions

  • assignLod » This function lets you conveniently generate and apply a LOD model to a mapping object

Ped functions

  • getAlivePlayers » This function returns a table of the alive players client-side.
  • getAlivePlayersInTeam » This function returns a table of the alive players in a team.
  • getPlayersInVehicles » This function returns a table of the players insides vehicles from a specified dimension.
  • getGuestPlayers » This function gets a players not login or players Guest .
  • getOnlineAdmins » This function returns a table of all logged-in administrators.
  • getPedEyesPosition » This function allows you to get peds eyes position.
  • getPedMaxHealth » This function returns a pedestrians's maximum health by converting it from their maximum health stat.
  • getPedMaxOxygenLevel » This function returns a ped's maximum oxygen level by converting it from their maximum underwater stamina stat.
  • getPedWeaponSkill » This function returns a ped's corresponding weapon skill level name.
  • getPlayerFromNamePart » This function returns a player from partial name.
  • getPlayerFromSerial » This function returns a player from their serial.
  • getPlayersByData » This function returns a table of players that have the specified data name.
  • getPlayersInPhotograph » This function returns a table of all players in photograph.
  • isPedAiming» This function checks if a pedestrian is aiming their weapon.
  • isPedAimingNearPed » This is similar to isPedAiming but uses a colshape to be more precise.
  • isPedDrivingVehicle » This function checks if a specified pedestrian is driving a vehicle.
  • isPlayerInTeam » This function checks if a player is in a specified team.

Player functions

  • countPlayersInRange » This function returns the number of players that are within a certain range of the specified coordinates.
  • isPlayerHitByVehicle» This function cancels event when a element is hit by a vehicle.
  • warpToPlayer» This function make player warp to another player.
  • getPlayersInRange» This function make a table of players within certain range.

Resource functions

Sound functions

Browser functions

  • playVideo » This function plays a video on the screen.

Team functions

Vehicle functions

Weapon functions

XML functions

  • getXMLNodes » This function returns all children of a XML node.


  • animate » This function allows you to use interpolateBetween without render event and easily used.
  • callClientFunction » This function allows you to call any client-side function from the server's side.
  • callServerFunction » This function allows you to call any server-side function from the client's side.
  • check » This function checks if its arguments are of the right type and calls the error-function if one is not.
  • checkPassiveTimer » This function allows you to use passive timers in your conditions. For example you want to prevent players repeatedly using a command.
  • coroutine.resume » This function applies a fix for hidden coroutine error messages.
  • getBanFromName » This functions returns the ban of the given playername.
  • getCurrentFPS » This function returns the frames per second at which GTA: SA is running.
  • IfElse » This function returns one of two values based on a boolean expression.
  • isMouseInCircle » This function checks if a cursor position is in circular area or not.
  • isMouseInPosition » This function allows you to check whether the mouse cursor/pointer is within a rectangular position.
  • isCharInString » This shared function allows you to check if a char specified is in a string value.
  • iterElements » This function returns a time-saving iterator for your for-loops.
  • vector3:compare » This method checks whether two vectors match, with optional precision.
  • preprocessor » This function allow you to use gcc macros.
  • PlotTrajectoryAtTime » Calculate projectile/water trajectory.
  • getSkinNameFromID » This function returns the name of the skin from the given id.