This repository was archived by the owner on Jun 26, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStudioRPC.rbxmx
More file actions
130 lines (120 loc) · 4.02 KB
/
Copy pathStudioRPC.rbxmx
File metadata and controls
130 lines (120 loc) · 4.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
<External>null</External>
<External>nil</External>
<Item class="Script" referent="RBXF0F92481F1754E5CB90EA2A859F312F0">
<Properties>
<ProtectedString name="Source"><![CDATA[--[[
Roblox Studio RPC Plugin
Author: PrayoadMii
--]]
local HttpService = game:GetService("HttpService")
local Players = game:GetService("Players")
local ServerURL = "http://127.0.0.1:1234/StudioRPC/Update"
local toolbar = plugin:CreateToolbar("Studio RPC (Client)")
local ToggleButton = toolbar:CreateButton(
"Studio RPC (Client)",
"Check Did You're Running Server Or Not If Icon Is Red",
"rbxassetid://132676871546283"
)
local Status = "Plugin Is Starting..."
local function GetThumbnailsFromId(Id:number)
local url = ("https://thumbnails.roproxy.com/v1/users/avatar-headshot?userIds=%d&size=100x100&format=Png&isCircular=true"):format(Id)
local success, response = pcall(function()
return HttpService:GetAsync(url)
end)
if success then
local data = HttpService:JSONDecode(response)
return data.data[1].imageUrl
else
return nil
end
end
local function GetPlaceThumbnail(placeId:number)
local url = ("https://thumbnails.roproxy.com/v1/places/gameicons?placeIds=%d&size=150x150&format=Png"):format(placeId)
local success, response = pcall(function()
return HttpService:GetAsync(url)
end)
if success then
local data = HttpService:JSONDecode(response)
if data and data.data and data.data[1] then
return data.data[1].imageUrl
end
end
return nil
end
local function GetGameName() :string
local susess, resault = pcall(function()
return game:GetService("MarketplaceService"):GetProductInfo(game.PlaceId)
end)
if susess then
return resault.Name
else
return game.Name
end
end
local function SendRPCToServerAsync(Line1, Line2, BigImage, BigImageTip, SmallImage, SmallImageTip)
local DataToSendToServer = {
Details = Line1 or nil,
State = Line2 or nil,
LargeImage = BigImage or nil,
SmallImage = SmallImage or nil,
BigImageToolHover = BigImageTip or "Roblox Studio Places",
SmallImageHover = SmallImageTip or "Editing As: Guest"
}
local success, err = pcall(function()
HttpService:PostAsync(ServerURL, HttpService:JSONEncode(DataToSendToServer), Enum.HttpContentType.ApplicationJson)
end)
if not success then
ToggleButton.Icon = "rbxassetid://117554232976059"
Status = "Cannot Sonnect To Server! Check Is Server Is Running Or Not Or Download It At https://prayoadmii.neocities.org/Creations/RobloxStudioRPC"
else
ToggleButton.Icon = "rbxassetid://117636057142584"
Status = "Server Was Connected!"
end
end
local function GetItem()
if game:GetService("RunService"):IsEdit() == false then
return "Nothing"
else
local selected = game:GetService("Selection"):Get()
if #selected > 1 then
return selected[1].ClassName .. " With Others " .. #selected .. " Instances"
elseif #selected > 0 then
return selected[1].ClassName
else
return "Nothing"
end
end
end
ToggleButton.Click:Connect(function()
print("[Studio RPC]: " .. Status)
end)
task.spawn(function()
while task.wait(2.5) do
local player = Players.LocalPlayer
if player then
local avatarUrl = GetThumbnailsFromId(player.UserId)
SendRPCToServerAsync(
GetGameName(),
GetItem(),
GetPlaceThumbnail(game.PlaceId),
GetGameName(),
avatarUrl,
"Editing As: " .. player.DisplayName
)
end
end
end)]]></ProtectedString>
<bool name="Disabled">false</bool>
<Content name="LinkedSource"><null></null></Content>
<token name="RunContext">3</token>
<string name="ScriptGuid">{D2DDE299-88D2-47D8-A25E-C92EA5773C17}</string>
<BinaryString name="AttributesSerialize"></BinaryString>
<SecurityCapabilities name="Capabilities">0</SecurityCapabilities>
<bool name="DefinesCapabilities">false</bool>
<string name="Name">Main</string>
<int64 name="SourceAssetId">-1</int64>
<BinaryString name="Tags"></BinaryString>
</Properties>
</Item>
</roblox>