Paste in segments as discord messages to get formatting.
alr so here is a basic guide on how to render with 2015M rcc:
> 1. patch rcc urls from roblox.com -> yourrevivalurl
> 2. use arbiter: (lowkey not going into detail on this cause I haven't looked into it yet) handle opening rcc instances *(this lowkey probably isn't necessary. I've never had rcc crash just because of rendering)*
> Batch file:
```bat
@echo off
start "" "RCCService.exe" -console -port 400
```
> 3. use api: setup api to send soap requests to rcc when you visit a certain url
> use insomnia: for testing purposes, allows you to easily customize soap request
Soap Request Wrapper -
```xml
{% uuid 'v4' %}
1
1
43200
```
Player Render -
```lua
s=tick()
print("Render Job " .. game.JobId.." at "..s)
game:GetService("ContentProvider"):SetBaseUrl("http://hamblo.xyz/")
game:GetService("HttpService").HttpEnabled = true
game:GetService("ScriptContext").ScriptsDisabled = true
--game:GetService("StarterGui").ShowDevelopmentGui = false
if not game.Players.LocalPlayer then
game.Players:CreateLocalPlayer(0)
end
local plr = game.Players.LocalPlayer
print"got player"
local charapp = "http://hamblo.xyz/Asset/CharacterFetch.ashx?id=2"
--local charapp = "https://avatar.roblox.com/v1/users/350586858/avatar"
plr.CharacterAppearance = charapp
plr:LoadCharacter(false)
print"finished loading character"
if plr.Character then
for _, child in pairs(plr.Character:GetChildren()) do
if child:IsA("Tool") then
print(child.Name)
plr.Character.Torso["Right Shoulder"].CurrentAngle = math.rad(90)
break
end
end
end
print"fixed handheld gear"
game:GetService("ScriptContext").ScriptsDisabled = true
--game:GetService("StarterGui").ShowDevelopmentGui = false
print"returning render..."
local success, response = pcall(function()
r=game:GetService("ThumbnailGenerator"):Click("PNG", 64, 64, true)
print("Rendered in "..string.format("%.2f",(tick()-s)* 1000).." ms!")
end)
if success then
return r
else
return false
end
```
The uuid shouldn't matter? I'm not really sure how you're supposed to use it as I haven't really looked into managing jobs yet. For uuid, use a uuid generator as you can't have multiple jobs running with the same uuid *(at least on some rccs)*. Also change `hamblo.xyz` to the richard url. And the script name doesn't matter unless you want to log errors or want to know what's causing errors when you look at rcc console.
Hat/Model Render -
```lua
s=tick()
print("Render Job " .. game.JobId.." at "..s)
game:GetService("ContentProvider"):SetBaseUrl("http://hamblo.xyz")
game:GetService("InsertService"):SetBaseSetsUrl("http://www.hamblo.xyz/Game/Tools/InsertAsset.ashx?nsets=10&type=base")
game:GetService("InsertService"):SetUserSetsUrl("http://www.hamblo.xyz/Game/Tools/InsertAsset.ashx?nsets=20&type=user&userid=%d")
game:GetService("ScriptContext").ScriptsDisabled = true
local a =game:get("http://hamblo.xyz/Asset/?id=1272714");
local hat = a[1]
hat.Parent = workspace
print"returning render..."
local success, response = pcall(function()
r=game:GetService("ThumbnailGenerator"):Click("PNG", 720, 720, true)
print("Rendered in "..string.format("%.2f",(tick()-s)* 1000).." ms!")
end)
if success then
return r
else
print"render failed!"
return false
end
```
I'm honestly not sure whether or not you need to integrate the sets urls as I don't remember, but if you do, I can try and help you guys if you can't figure it out because I know I had it working before. This should work for hats and models. I haven't testing it with clothing or packages yet though, so you might have to figure that out along the way *(I also need to figure this out for hamblox.)*
> 4. profit.
And this is all I know as of now. Good luck in your rendering.
Also, forgot to mention that the format that rcc requests send back is more fun soap. Here is the format:
```xml
LUA_TSTRING
png base64
```
So you'll need to write something that can interpret this. You will also need to detect when it errors as it will look a bit different.
```xml
SOAP-ENV:Server
I just shat myself!:26: 'do' expected near 'print'
```
So make sure to keep both formats in mind when coding the backend.