Skip to content

Floating Licencing

Congratulations on your purchase of a floating licence for Ragdoll Dynamics!


This page will help you get set-up with a licence server, on-premise, and instruct Ragdoll to "lease" a licence from it. The server itself can run on any machine and any platform, including Windows, Linux and MacOS, so long as it is accessible from the machine running Ragdoll.

Windows, Linux and MacOS

The server can run on a different operating system than your workstations. For example, a common scenario is having the server running on Linux and workstations run on a combination of Windows, MacOS and Linux.

On each platform, the procedure is the same.

  1. Download the server software
  2. Optionally edit the configuration file
  3. Activate the server with your Product Key
  4. Start it up

The server will need to remain running in order for Ragdoll to lease licences.


Here's a typical series of commands for an x64 system, look inside the .zip for alternative Linux-based platforms.


Make sure you have unzip and wget at the ready, or use alternatives like curl and tar at your own leisure.

mkdir turbofloat
cd turbofloat
mv bin-linux/x64/turbofloatserver ./
chmod +x turbofloatserver
./turbofloatserver -a="YOUR-SERIAL-NUMBER"
./turbofloatserver -x
# Floating license server for Ragdoll Dynamics (TFS v4.4.4.0)

You can optionally pass -silent after -x for less verbosity.

No internet?

The licence server can be activated offline.

From here, you'll likely want turbofloatserver -x called automatically on reboot, such that Ragdoll and Maya can lease licences from it. The exact procedure varies between Linux distributions and company preferences, see the systemd section for tips on the most common approach.

More Details


Here's what you need to do in order to run the licence server on the Windows platform.


Inside of this file you will find this.


Edit the .xml file with a port you would like to use.

Port number

Make note of this port number as you will need it later when connecting to it from Maya.

64-bit Server

If you need a 32-bit version of the server, find the appropriate TurboFloat binaries here.


Next we'll need to activate the server. Open a cmd.exe or PowerShell prompt and type in the following.

TurboFloatServer.exe -a="YOUR-SERIAL-NUMBER"

There should be no output from the command, unless there's a problem.

No internet?

The licence server can be activated offline.

Now you're ready to launch the server!


This next command will launch the server.

TurboFloatServer.exe -x
# Floating license server for Ragdoll Dynamics (TFS v4.4.3.0)


This is a good place to test Ragdoll from within Maya, so scroll to the Maya section, test it out and then come back here to finish things up.

All good? Great.


At this point, you can optionally have the server restart itself and run in the background by installing it as a "service".

TurboFloatServer.exe -i
# 2021-05-12, 07:47:26 <error>: OpenSCManager failed (5)

To do that, you'll need to launch PowerShell/cmd as Administrator.

# As Administrator
TurboFloatServer.exe -i
# 2021-05-12, 07:48:40 <notification>: Service installed successfully.

From here you can try launching Ragdoll Dynamics in Maya to see whether it manages to successfully lease a licence.

More Details


With a licence server running, your next step is having Ragdoll connect to it.

On each platform, the procedure is the same.

  • Load plug-in


# From Python
os.environ["RAGDOLL_FLOATING"] = ""
# From an environment like bash

The format of RAGDOLL_FLOATING is <ip-address>:<port-number>.

Everything ok?

Failed to initialise floating licence

If this message appears in your Script Editor upon loading the plug-in, take a closer look at your Output Window on Windows or terminal on Unix.

# Error: ragdoll._install_floating() - Failed to initialise floating licence, error code '1' #
Could not load ragdollfloat.dll

Windows users may experience this issue, which indicates a broken install. In your distribution, you should have seen both a ragdoll.mll and ragdollfloat.dll. Make sure this file exists, else contact us and we'll help you sort it.


Just like with a node-locked licence, you can control the leasing of licences via Python.

from ragdoll import licence

# Activate this machine

# Deactivate this machine


Let's have a look at a few common errors and how to solve them.

Failed to Save Activation Request

This can happen when attempting to generate an activation request for offline activation.

./turbofloatserver -a="KWVT-U5RS-..." -areq="/bad/path/request.xml"
# <error>: Failed to save the activation request file.
# <error>: Error code 0x1. Contact support or your system administrator.

The path given, in this case /bad/path/request.xml might not be writable. Try a different path.

Failed to Load Product Details

This can happen when attempting to activate a floating licence

./turbofloatserver -a="KWVT-U5RS-..."
# <error>: Failed to load the product details file.
# <error>: Failed to load the settings.

The turbofloatserver executable wasn't able to find the TurboActivate.dat file. This file should reside in the same folder as turbofloatserver and can be downloaded from here.


Let's cover some common scenarios.

How can I test connectivity between my machines?

To test whether machine A is accessible from machine B, try ping.

# Reply from bytes=32 time=1ms TTL=117

Can I limit the internet access of my licence server?

If you're in a secure network, you may want to limit the licence server to the least amount of external access. You can do so by "whitelisting" it in your firewall, using this URL and port number.

  • url:
  • port: 443

More details here:

Can I activate my server offline?

Lifetime licences, yes. Monthly licences, no.

Like node-locked licences, the floating licence server can be activated without an internet connection to the machine running the server.

The procedure is the same on each platform.

  1. Generate an activation request from the computer running the licence server
  2. Go to
  3. Activate using the response from the same computer

Here's how to generate the request.

./turbofloatserver -areq="/path/to/ActivationRequest.xml" -a="YOUR-SERIAL-NUMBER"

And here's how to apply the response.

./turbofloatserver -aresp="/path/to/ActivationResponse.xml" -a

Absolute Path

Take care to replace the path in the above commands, and use an absolute path rather than anything relative or special such as ~/. The turbofloatserver command can get a little cranky about those things.

How do I reactivate my licence offline?

If you are offline and changes has been made to your licence on our end, such as the number of seats changing or a new expiry date has been set, here is what you need to do.

1. Deactivate locally and remotely

Run the following command, replacing the path with one that can be written to.

./turbofloatserver -deact="/path/to/DeactivationRequest.xml"

This should generate the file DeactivationRequest.xml that should look something like this.


Now paste the contents of this file into to along with your serial and press Deactivate.

Your licence is now deactivated both on locally and remotely.


If you forget to pass the DeactivationRequest.xml into the offline deactivation page, Ragdoll will not know about your deactivation. It will continue to believe that your licence remains activated, and may prevent you from activating it twice.

If this happens, contact us such that we can manually deactivate your licence on our end.

2. Activate

Next, follow the steps in Can I activate my server offline as usual.

How do I reactivate my licence online?

If your licence has been activated online and has been updated on our end, you may need to reactivate your licence.

./turbofloatserver -deact
./turbofloatserver -a="KWVT-U5RS-..."

This will refresh your local licence with whatever changes occured on our end.

Failed to Deactivate Old Product Key

Can happen during offline activation if your local machine is activated twice.

./turbofloatserver -areq="/path/to/ActivationRequest.xml" -a="XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX"
./turbofloatserver -areq="/path/to/ActivationRequest.xml" -a="XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX"
# Failed to deactivate old product key.

If this happens, locally deactivate your machine and try again.

./turbofloatserver -deact
./turbofloatserver -areq="/path/to/ActivationRequest.xml" -a="XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX"

Failed to Parse the Configuration XML File

Can happen if the activation request is passed in as a response.

./turbofloatserver -areq="/path/to/ActivationRequest.xml" -a="XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX"

Should instead be:

./turbofloatserver -areq="/path/to/ActivationResponse.xml" -a="XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX"

Note the "Response" and not "Request"

What happens when my server is offline?

Leasing will attempt to connect for about 2 seconds until giving up. During that time, Maya may appear frozen.

What happens when my server goes offline?

Leasing is re-done once every 30 minutes.

30 minutes is the default value (see below), which means that if the server goes down whilst an artist is using it, the solver will be disabled within 30 minutes.

The duration can be adjusted, however it is a balance since the time is also how long it takes for the server to free a lease as a result of a Maya crash.

Can I change the port used by the server?


The default port is 13 and can be edited via the TurboFloatServer-config.xml file residing in the same directory as the server executable.

<?xml version="1.0" encoding="utf-8"?>
    <bind port="13"/>

Can I move my licence server to a different machine?


To move a licence, you can deactivate it and then activate it again someplace else.

TurboFloatServer -deact

This will deactivate the server. The same can be done if your licence server is offline, by passing a filename to the command.

TurboFloatServer -deact="deactivation_request.xml"

Open this file and paste the contents of it into the offline deactivation wizard here.

What if I have multiple serial numbers?

Complete, Unlimited and Batch have their own serial numbers and each serial number needs its own server.

  • Each server needs to be a physical machine, but can under certain circumstances be allowed to run within a virtual machine; contact us if this is you.
  • Each server needs their own unique address; they cannot run on the same machine.

From there, provide each of your clients with the full server address to the pool it should lease licences from.

For example.

# Render farm

# Artist workstations

Can I disable the splash screen?


Consumers of floating licences generally won't need to manage licenses themselves, and so the startup dialog can be avoided altogether for a smoother experience when inside of Maya.


Can I use Ragdoll with cloud workstations like AWS and GCP?


Cloud workstations can pick up licences from your locally hosted licence server. It is not recommended nor supported to run your licence server on a virtual machine.

# Cloud workstation example
export RAGDOLL_FLOATING=local.server:8001

In this example, the cloud workstation is referencing your locally hosted licence server via an IP on your VPN.

What happens to a lease when Maya crashes?

A lease is automatically dropped upon unloading the plug-in or shutting down Maya. In the event of a Maya crash, a lease will automatically drop after 30 minutes per default.

The time can be edited via the configuration file; a lower time means more compute and file resources are consumed on the server, the lowest value is 30 seconds.

<?xml version="1.0" encoding="utf-8"?>
    <lease length="30"/><!-- seconds -->

Can I fall back to a node-locked licence?


Remove the RAGDOLL_FLOATING environment variable and reload the plug-in or restart Maya to attempt activation of a node-locked licence.

Can I activate my server on a Virtual Machine?


The server cannot distinguish between two virtual machines which would make it possible to activate an endless amount of them with their own duplicate pools of licences.

Although the server cannot run on a VM, clients can. E.g. running Docker for testing in a continous-integration environment or automation for simulation baking or rendering etc.

Can I monitor my licence server?


With a logging level set to "notification", you'll get real-time output from the server whenever a lease is requested and dropped, including..

  1. Time of event
  2. Expiry time
  3. IP
  4. Username
  5. PID (Process ID)

The expiry is when the lease will be renewed. Normally not something you need to worry about, unless Maya crashes. This is then the time it'll take the server to realise the lease has been freed.

<?xml version="1.0" encoding="utf-8"?>
    <log file="tfs-log.txt" level="notification"/>
2021-05-12, 11:58:47 <notification>: New connection from IP: ::ffff:
2021-05-12, 11:58:47 <notification>: New lease assigned (marcus, 1, IP=::ffff:, PID=14328). Expires: 2021-05-12 11:28:47 (in UTC). Used / Total leases: 1 / 1
2021-05-12, 11:58:51 <notification>: New connection from IP: ::ffff:
2021-05-12, 11:58:51 <notification>: Lease was released by client (marcus, 1, IP=::ffff:, PID=14328). Used / Total leases: 0 / 1

The tfs-log.txt file is dynamically updated as users lease and drop licences, and includes mention of how many licences are in use and remaining. You can monitor the tail of this file for real-time updates, and use any tooling to parse these notifications into your own infrastructure.

See Also

What does the server say when a lease request is rejected?

With level="notification" it'll say this.

2021-05-16, 14:52:50 <notification>: License lease request rejected because no more free slots, numTotalLics=9, pkey=YOUR-SERIAL-NUMBER

How do I run my server in the background using systemd?

systemd is a common option for running background processes on Linux. Here's a quick run-down how to get turbofloatserver running with it.


  1. Make sure you can run turbofloatserver -x already
  2. Make note of the full path to your turbofloatserver, here we will assume /turbofloat

Ok, with that out of the way, create a new file called /etc/systemd/system/turbofloat.service with the content below.


Description=TurboFloat server for CI

ExecStart=/turbofloat/turbofloatserver -x -s


Replace with your Path

Here we use /turbofloat/turbofloatserver -x -s but your path will likely be different!

Now let's start it.

systemctl start turbofloat

You may need sudo

Unless you are logged in as a root/administrator user, you may need to use sudo with this command. E.g. sudo systemctl

If there are no complaints, we're set to have this automatically run in the background whenever the computer restarts.

systemctl enable turbofloat

And that's it. You should now have access to this server in the exact same way as you did when calling turbofloatserver -x manually.

To check the status of your server, try this.

~/turbofloat$ systemctl status turbofloat
● turbofloat.service - TurboFloat server for CI
     Loaded: loaded (/etc/systemd/system/turbofloat.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-10-18 13:31:21 BST; 37s ago
   Main PID: 81594 (turbofloatserve)
      Tasks: 17 (limit: 35692)
     Memory: 1.1M
        CPU: 18ms
     CGroup: /system.slice/turbofloat.service
             └─81594 /home/marcus/turbofloat/turbofloatserver -x -s

Oct 18 13:31:21 minilinux systemd[1]: Started TurboFloat server for CI.
Oct 18 13:31:21 minilinux turbofloatserver[81594]: 2023-10-18, 13:31:21 <notification>: Auto-detected 16 CPU cores; creating a thread pool that large.
Oct 18 13:31:21 minilinux turbofloatserver[81594]: Floating license server for Ragdoll Dynamics (TFS v4.4.4.0)

You can also use journalctl to follow the log interactively, as though it was running in the local terminal.

~/turbofloat$ journalctl --follow --unit turbofloat
Oct 18 13:31:21 minilinux systemd[1]: Started TurboFloat server for CI.
Oct 18 13:31:21 minilinux turbofloatserver[81594]: 2023-10-18, 13:31:21 <notification>: Auto-detected 16 CPU cores; creating a thread pool that large.
Oct 18 13:31:21 minilinux turbofloatserver[81594]: Floating license server for Ragdoll Dynamics (TFS v4.4.4.0)