Guides & Tutorials API Reference Examples & Demos

Functional List of V-Play Components

The V-Play Gaming Components are available with the following import statement in your QML file:

import VPlay 2.0

This is a list of all the V-Play components grouped into functional groups.

Note: You can quickly test and explore most of the components in the Examples Section of the V-Play Sample Launcher.

V-Play Qt 5 Plugins

The V-Play Qt 5 Plugins add platform-specific features and 3rd party SDK integration available from QML.

The V-Play plugins are available as standalone Qt 5 plugins and also work independently from the core V-Play engine. As a V-Play customer, you receive valid license keys for the plugins. To retrieve a license key to use the plugins in your game(s), go to

AdMob The Qt 5 AdMob plugin enables you to monetize your game by embedding AdMob ads on Android and iOS.
ChartBoost The Chartboost plugin allows you to add interstitial ads from the Chartboost ad network to your game on Android and iOS. You can also reward your users with virtual currency or in-game items for watching video overlays advertising other games.
In-App Purchase Soomla Store The Soomla Plugin fully supports in-app purchases for iOS App Store and Android in-app products on Google Play Store & Amazon AppStore. Monetize your game with in-app purchases and a virtual economy model with this plugin.
Facebook The Facebook plugin allows you to let your users connect with Facebook on Android and iOS.
Google Analytics The Google Analytics plugin gives you valuable insights on how often mobile and Desktop users open your app, how long they use it and how often they return (retention). It also gives you insights into your app's audience. This plugin is available for all supported platforms by V-Play, both mobile and Desktop.
Flurry Analytics The Flurry plugin gives you valuable insights on how often users open your app, how long they use it and how often they return (retention). It also gives you insights into your app's audience. This includes information about the mobile phone and OS version used or from which countries your users come from. This plugin is available for Android and iOS.
Infinario Analytics The Infinario plugin provides game analytics for game designers to improve your game. This plugin is available for all supported platforms by V-Play, both mobile and Desktop.
Local Push Notifications Schedule native local push notifications for iOS & Android in your app to increase user retention. This allows to bring back your users into your game after a certain time of inactivity, even if your app is in the background or already quit.
Parse Push Notifications Schedule remote push notifications for iOS & Android from a web server to increase user retention. This allows to bring back your users into your game after a certain time of inactivity, even if your app is in the background or already quit.
HockeyApp Beta Distribution & Crash Reports With HockeyApp you can upload new versions of your iOS & Android builds and automatically notify your testers about new the new version when they open your app the next time. HockeyApp also collects and uploads crash reports from you apps or games for you, so you know where your app needs improvement.

Note: For running the plugin examples or for testing the V-Play demos which use the plugins, no V-Play license is required. However, when you develop your own game and use your own app idendtifier, this requires a V-Play license. Also see the V-Play Plugins Installation Guide how to install the V-Play plugins.

V-Play Game Network Components

V-Play Game Network components for using leaderboards, achievements and challenges in your game.


Reward your players with achievements for reaching certain goals in your game and to give them more incentive to keep playing your game.


The root V-Play Game Network component for using leaderboards, achievements and challenges in your game.


The WebStorage item syncs key-value-data with the cloud across devices and platforms with the VPlayGameNetwork.


Default UI for VPlayGameNetwork leaderboards, achievements and player profile.

Level Editor Components

The Level Editor Components provide level creation directly in the game.


The EditableComponent allows you to edit selected properties of a specific target with an ItemEditor.


The ItemEditor allows to modify properties at runtime that were marked with the EditableComponent.


A drag and drop button for placing game entities with the LevelEditor.


The base class for game entities that should be used with the LevelEditor.


The base class for custom QML levels that are loaded in a game with LevelLoader.


The data stored in a dynamically created level with LevelEditor available from LevelBase.


Allows to create, share & monetize user-generated levels with an in-game level editor.


Loads qml level files derived from LevelBase dynamically.


Displays a list of available levels from the LevelEditor.


Allows to monetize user-generated levels with in-app purchases.

V-Play Core Components

These components every game will contain. Most important are GameWindow, Scene, EntityBase and EntityManager.


The base class for custom game entities.


The base class for custom game entities.


Manages all entities derived from the EntityBase component.


The default root V-Play Window containing all other components and Scenes.


The root V-Play ApplicationWindow containing all other components and Scenes.


The root V-Play element usable with existing Qt 5 applications.


The root element for a single game view.


The storage item provides a persistent and offline storage for arbitrary key-value pair data.


Provides often-needed functionality like generating a random number between 2 values.


The WebStorage item syncs key-value-data with the cloud across devices and platforms with the VPlayGameNetwork.

Context Components

The Context Components are global properties that are available in all QML files. They can be used to open native dialogs and browsers, network requests, dynamic QML component creation and provide system information.

Qt Context Objects

The Qt Context Objects page contains information about often-used functionality of the Qt element, for network requests and useful JavaScript elements.


The nativeUtils context property allows opening native message boxes, input dialogs and browsers.

Visual Components

These components are used for efficient rendering in games and to handle multiple screen sizes. Most important is MultiResolutionImage for handling different screen sizes and aspect ratios. And SpriteSequenceVPlay or AnimatedSpriteVPlay for animated sprites.


Plays a single sprite animation stored as a series of frames.


The BackgroundImage improves performance of background image rendering.


The LineItem can be used to display colored single and segmented lines.


The MultiResolutionImage changes the used image based on the display size to improve performance and memory usage.


The ParallaxItem allows to create parallax movement effects.


The ParallaxScrollingBackground allows to create an endlessly scrollable background, usable by SideScroller games for example.


The PolygonItem allows to display polygonal primitives with color.


The SpriteSequence contains a list of Sprite elements and allows switching between them with only one active at a time.


The Sprite element defines a series of sprite frames within an image for a SpriteSequenceVPlay.

In addition to the above list, also these Qt Quick Components are useful.

Image The Image element is used to display image files.
BorderImage Useful for resolution-independent buttons, similar to Android's 9-patch images.
Text The Text element allows displaying text on screen.
Rectangle The Rectangle item provides a filled rectangle.

Visual 3D Components

These components are used for 3D rendering.


A 3D model with a texture and material to be rendered in a Scene3DVPlay.


The root element for rendering 3D objects within a 2D GameWindow.


Provides the position when rotating towards a direction usable for follow or target cameras.

Input Components

These components allow entity movement with a keyboard or a virtual controller for touchscreens.


The JoystickControllerHUD element provides an input controller for a virtual joystick for moving entities, also called a virtual D-pad.


The SimpleButton represents a basic rectangular button with a clicked handler that can be used during development.


The StyledButton has a gradient, radius and border and an optional flatStyle, ready to be published in games & apps.


Input controller with keyboard support for moving entities.

In addition to the above list, also these Qt Quick Components are useful:

MouseArea Allows mouse and touch input handling.
MultiPointTouchArea Allows multi-touch input handling.
Flickable Provides a surface that can be swiped.
Keys Allows key handling, including the Android soft keys like Back.
TextInput Displays a single editable line of text.
TextEdit Displays multiple lines of editable formatted text.

The Qt Quick Controls contain more input elements like native-looking Buttons, CheckBoxes and view components like TableView or StackView. See the Qt Quick Controls QML Types for more details.

Physics Components

These components add physics behavior to a game. They can either be used for collision detection, or for moving entities based on physics. The physics engine used by V-Play is Box2D.


The BoxCollider is a physics body with a rectangular shape.


The CircleCollider is a physics body with a round shape.


Simulates a physics world and contains all physics bodies.


The PolygonCollider is a physics body with a polygonal shape set up with at least 3 vertices.

The above components will be used most of the time. These components are for advanced use:


A physics body which consists of one or more Fixture elements.


The DistanceJoint keeps the distance between 2 bodies constant.


A physics shape either rectangular (Box), round (Circle) or polygonal (Polygon).


A rectangular physics shape.


A circular physics shape.


A polygonal physics shape.


The Joint is the base class of all joints.


The MouseJoint is used to manipulate bodies with the mouse or touch input.


The PrismaticJoint allows relative translation of two bodies along a specified axis and prevents rotation.


A RayCast object that reports when a ray hits a Fixture.


The RevoluteJoint forces two bodies to share a common anchor point around which the bodies rotate.


The RopeJoint restricts the maximum distance between two points.


The WeldJoint glues two bodies together keeping a referenceAngle.


Represents a Box2D physics world including bodies and joints.


The Base component for BoxCollider, CircleCollider and PolygonCollider. All physics colliders including BoxCollider, CircleCollider and PolygonCollider inherit from ColliderBase.

V-Play & Qt Multimedia Components

These components allow to play audio and video files.


The BackgroundMusic element allows playing long-lasting and looping background sound in wav, mp3 or ogg file format.


The SoundEffectVPlay element allows playing short-lasting and looping sound effects in wav file format.

In addition to the above list, also these Qt Quick Components are useful:

Audio Add audio playback to a scene
SoundEffect Provides a way to play sound effects in QML
MediaPlayer Add media playback to a scene
Video A convenience type for showing a specified video
VideoOutput Render video or camera viewfinder
Camera Access viewfinder frames, and take photos and movies
Radio Access radio functionality from a QML application
Torch Simple control over torch functionality
QtMultimedia Provides a global object with useful functions from Qt Multimedia

Networking Components

These components handle network activities.

In addition to the above list, also these Qt Quick Components are useful:

XMLHttpRequest Allows asynchronous HTTP(S) requests

AI Components

The AI components move entities towards a target point, with a constant velocity or along a path.


Interpolates an entity along a path and rotates it towards the target points.


Provides information for a MovementAnimation or a ColliderBase about the direction and rotation when moving towards a target.


Modifies a property with a constant velocity and acceleration.

Slot Machine Components

The slot machine components allow to create slot games with V-Play.


The SlotMachine component allows to easily implement a slot machine with multiple reels and rows. It also provides methods to spin or stop the slot machine and lets you access the visible items in each reel and row.


The SlotMachineModel allows to easily generate reels with randomly shuffled items for a SlotMachine.


The SlotMachineReel element describes a reel to be displayed within the SlotMachine component.

Particles Components

The Particles components provide particle effect rendering.


The ParticleVPlay component allows visual effects like fire, explosions, smoke or rain.

Most useful QML Components

Item The Item is the most basic of all visual items in QML.
Animation The Animation element is the base of all QML animations lasting for a fixed time.
Timer The Timer item triggers a handler at a specified interval.
Loader The Loader item allows dynamically loading an Item-based subtree from a URL or Component.

Click here to see a full list of all QML components