robloxmemoryapi 0.2.6__tar.gz → 0.2.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {robloxmemoryapi-0.2.6/src/robloxmemoryapi.egg-info → robloxmemoryapi-0.2.7}/PKG-INFO +4 -2
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/README.md +3 -1
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/pyproject.toml +1 -1
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/rbx/instance.py +124 -7
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7/src/robloxmemoryapi.egg-info}/PKG-INFO +4 -2
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/LICENSE.md +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/setup.cfg +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/__init__.py +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/__init__.py +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/luau/__init__.py +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/luau/parser.py +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/memory.py +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/offsets.py +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/rbx/__init__.py +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/rbx/bytecode/decryptor.py +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/rbx/bytecode/encryptor.py +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/rbx/datastructures.py +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/rbx/fflags.py +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi.egg-info/SOURCES.txt +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi.egg-info/dependency_links.txt +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi.egg-info/requires.txt +0 -0
- {robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: robloxmemoryapi
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.7
|
|
4
4
|
Summary: Python Library that abstracts reading and writing data from the Roblox DataModel
|
|
5
5
|
Author-email: upio <notpoiu@users.noreply.github.com>, mstudio45 <mstudio45@users.noreply.github.com>, ActualMasterOogway <ActualMasterOogway@users.noreply.github.com>
|
|
6
6
|
License: Copyright 2025 upio, mstudio45, master oogway
|
|
@@ -35,7 +35,9 @@ Dynamic: license-file
|
|
|
35
35
|
|
|
36
36
|
This was made by [upio](https://github.com/notpoiu), [mstudio45](https://github.com/mstudio45), and [Master Oogway](https://github.com/ActualMasterOogway) and created for the [Dig Macro](https://github.com/mstudio45/digmacro) project (external mode and not the computer vision mode).
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
Join our [Discord](https://discord.gg/FJcJMuze7S) for support and updates.
|
|
39
|
+
|
|
40
|
+
Offsets are sourced from [imtheo.lol](https://imtheo.lol/Offsets). This project is not affiliated with imtheo.lol in any way.
|
|
39
41
|
|
|
40
42
|
## Installation
|
|
41
43
|
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
This was made by [upio](https://github.com/notpoiu), [mstudio45](https://github.com/mstudio45), and [Master Oogway](https://github.com/ActualMasterOogway) and created for the [Dig Macro](https://github.com/mstudio45/digmacro) project (external mode and not the computer vision mode).
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Join our [Discord](https://discord.gg/FJcJMuze7S) for support and updates.
|
|
8
|
+
|
|
9
|
+
Offsets are sourced from [imtheo.lol](https://imtheo.lol/Offsets). This project is not affiliated with imtheo.lol in any way.
|
|
8
10
|
|
|
9
11
|
## Installation
|
|
10
12
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "robloxmemoryapi"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.7"
|
|
8
8
|
description = "Python Library that abstracts reading and writing data from the Roblox DataModel"
|
|
9
9
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
10
10
|
requires-python = ">=3.9"
|
|
@@ -29,6 +29,8 @@ charactermesh_offsets = Offsets["CharacterMesh"]
|
|
|
29
29
|
attachment_offsets = Offsets["Attachment"]
|
|
30
30
|
air_properties_offsets = Offsets["AirProperties"]
|
|
31
31
|
seat_offsets = Offsets["Seat"]
|
|
32
|
+
meshpart_offsets = Offsets["MeshPart"]
|
|
33
|
+
textures_offsets = Offsets["Textures"]
|
|
32
34
|
|
|
33
35
|
ROTATION_MATRIX_FLOATS = 9
|
|
34
36
|
|
|
@@ -612,6 +614,69 @@ class RBXInstance:
|
|
|
612
614
|
bytes([r & 0xFF, g & 0xFF, b & 0xFF])
|
|
613
615
|
)
|
|
614
616
|
|
|
617
|
+
@property
|
|
618
|
+
def Reflectance(self):
|
|
619
|
+
if "part" not in self.ClassName.lower():
|
|
620
|
+
return None
|
|
621
|
+
|
|
622
|
+
return self.memory_module.read_float(
|
|
623
|
+
self.raw_address,
|
|
624
|
+
basepart_offsets["Reflectance"]
|
|
625
|
+
)
|
|
626
|
+
|
|
627
|
+
@Reflectance.setter
|
|
628
|
+
def Reflectance(self, value: float):
|
|
629
|
+
if "part" not in self.ClassName.lower():
|
|
630
|
+
raise AttributeError("Reflectance is only available on BasePart-derived instances.")
|
|
631
|
+
self._ensure_writable()
|
|
632
|
+
|
|
633
|
+
self.memory_module.write_float(
|
|
634
|
+
self.raw_address + basepart_offsets["Reflectance"],
|
|
635
|
+
float(value)
|
|
636
|
+
)
|
|
637
|
+
|
|
638
|
+
@property
|
|
639
|
+
def Locked(self):
|
|
640
|
+
if "part" not in self.ClassName.lower():
|
|
641
|
+
return None
|
|
642
|
+
|
|
643
|
+
return self.memory_module.read_bool(
|
|
644
|
+
self.raw_address,
|
|
645
|
+
basepart_offsets["Locked"]
|
|
646
|
+
)
|
|
647
|
+
|
|
648
|
+
@Locked.setter
|
|
649
|
+
def Locked(self, value: bool):
|
|
650
|
+
if "part" not in self.ClassName.lower():
|
|
651
|
+
raise AttributeError("Locked is only available on BasePart-derived instances.")
|
|
652
|
+
self._ensure_writable()
|
|
653
|
+
|
|
654
|
+
self.memory_module.write_bool(
|
|
655
|
+
self.raw_address + basepart_offsets["Locked"],
|
|
656
|
+
bool(value)
|
|
657
|
+
)
|
|
658
|
+
|
|
659
|
+
@property
|
|
660
|
+
def Massless(self):
|
|
661
|
+
if "part" not in self.ClassName.lower():
|
|
662
|
+
return None
|
|
663
|
+
|
|
664
|
+
return self.memory_module.read_bool(
|
|
665
|
+
self.raw_address,
|
|
666
|
+
basepart_offsets["Massless"]
|
|
667
|
+
)
|
|
668
|
+
|
|
669
|
+
@Massless.setter
|
|
670
|
+
def Massless(self, value: bool):
|
|
671
|
+
if "part" not in self.ClassName.lower():
|
|
672
|
+
raise AttributeError("Massless is only available on BasePart-derived instances.")
|
|
673
|
+
self._ensure_writable()
|
|
674
|
+
|
|
675
|
+
self.memory_module.write_bool(
|
|
676
|
+
self.raw_address + basepart_offsets["Massless"],
|
|
677
|
+
bool(value)
|
|
678
|
+
)
|
|
679
|
+
|
|
615
680
|
def _read_primitive_flags(self):
|
|
616
681
|
data = self.memory_module.read(
|
|
617
682
|
self.primitive_address + primitive_offsets["Flags"],
|
|
@@ -1132,20 +1197,72 @@ class RBXInstance:
|
|
|
1132
1197
|
|
|
1133
1198
|
@property
|
|
1134
1199
|
def TextureId(self):
|
|
1135
|
-
|
|
1200
|
+
className = self.ClassName
|
|
1201
|
+
if className == "Tool":
|
|
1202
|
+
return self.memory_module.read_string(
|
|
1203
|
+
self.raw_address,
|
|
1204
|
+
tool_offsets["TextureId"]
|
|
1205
|
+
)
|
|
1206
|
+
elif className == "MeshPart":
|
|
1207
|
+
return self.memory_module.read_string(
|
|
1208
|
+
self.raw_address,
|
|
1209
|
+
meshpart_offsets["Texture"]
|
|
1210
|
+
)
|
|
1211
|
+
elif className == "Decal":
|
|
1212
|
+
return self.memory_module.read_string(
|
|
1213
|
+
self.raw_address,
|
|
1214
|
+
textures_offsets["Decal_Texture"]
|
|
1215
|
+
)
|
|
1216
|
+
elif className == "Texture":
|
|
1217
|
+
return self.memory_module.read_string(
|
|
1218
|
+
self.raw_address,
|
|
1219
|
+
textures_offsets["Texture_Texture"]
|
|
1220
|
+
)
|
|
1221
|
+
return None
|
|
1222
|
+
|
|
1223
|
+
@TextureId.setter
|
|
1224
|
+
def TextureId(self, value: str):
|
|
1225
|
+
className = self.ClassName
|
|
1226
|
+
self._ensure_writable()
|
|
1227
|
+
if className == "Tool":
|
|
1228
|
+
self.memory_module.write_string(
|
|
1229
|
+
self.raw_address + tool_offsets["TextureId"],
|
|
1230
|
+
str(value)
|
|
1231
|
+
)
|
|
1232
|
+
elif className == "MeshPart":
|
|
1233
|
+
self.memory_module.write_string(
|
|
1234
|
+
self.raw_address + meshpart_offsets["Texture"],
|
|
1235
|
+
str(value)
|
|
1236
|
+
)
|
|
1237
|
+
elif className == "Decal":
|
|
1238
|
+
self.memory_module.write_string(
|
|
1239
|
+
self.raw_address + textures_offsets["Decal_Texture"],
|
|
1240
|
+
str(value)
|
|
1241
|
+
)
|
|
1242
|
+
elif className == "Texture":
|
|
1243
|
+
self.memory_module.write_string(
|
|
1244
|
+
self.raw_address + textures_offsets["Texture_Texture"],
|
|
1245
|
+
str(value)
|
|
1246
|
+
)
|
|
1247
|
+
else:
|
|
1248
|
+
raise AttributeError("TextureId is only available on Tool, MeshPart, Decal, or Texture instances.")
|
|
1249
|
+
|
|
1250
|
+
@property
|
|
1251
|
+
def MeshId(self):
|
|
1252
|
+
if self.ClassName != "MeshPart":
|
|
1136
1253
|
return None
|
|
1137
1254
|
return self.memory_module.read_string(
|
|
1138
1255
|
self.raw_address,
|
|
1139
|
-
|
|
1256
|
+
meshpart_offsets["MeshId"]
|
|
1140
1257
|
)
|
|
1141
1258
|
|
|
1142
|
-
@
|
|
1143
|
-
def
|
|
1144
|
-
if self.ClassName != "
|
|
1145
|
-
raise AttributeError("
|
|
1259
|
+
@MeshId.setter
|
|
1260
|
+
def MeshId(self, value: str):
|
|
1261
|
+
if self.ClassName != "MeshPart":
|
|
1262
|
+
raise AttributeError("MeshId is only available on MeshPart instances.")
|
|
1146
1263
|
self._ensure_writable()
|
|
1147
1264
|
self.memory_module.write_string(
|
|
1148
|
-
self.raw_address +
|
|
1265
|
+
self.raw_address + meshpart_offsets["MeshId"],
|
|
1149
1266
|
str(value)
|
|
1150
1267
|
)
|
|
1151
1268
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: robloxmemoryapi
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.7
|
|
4
4
|
Summary: Python Library that abstracts reading and writing data from the Roblox DataModel
|
|
5
5
|
Author-email: upio <notpoiu@users.noreply.github.com>, mstudio45 <mstudio45@users.noreply.github.com>, ActualMasterOogway <ActualMasterOogway@users.noreply.github.com>
|
|
6
6
|
License: Copyright 2025 upio, mstudio45, master oogway
|
|
@@ -35,7 +35,9 @@ Dynamic: license-file
|
|
|
35
35
|
|
|
36
36
|
This was made by [upio](https://github.com/notpoiu), [mstudio45](https://github.com/mstudio45), and [Master Oogway](https://github.com/ActualMasterOogway) and created for the [Dig Macro](https://github.com/mstudio45/digmacro) project (external mode and not the computer vision mode).
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
Join our [Discord](https://discord.gg/FJcJMuze7S) for support and updates.
|
|
39
|
+
|
|
40
|
+
Offsets are sourced from [imtheo.lol](https://imtheo.lol/Offsets). This project is not affiliated with imtheo.lol in any way.
|
|
39
41
|
|
|
40
42
|
## Installation
|
|
41
43
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/rbx/bytecode/decryptor.py
RENAMED
|
File without changes
|
{robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/rbx/bytecode/encryptor.py
RENAMED
|
File without changes
|
{robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi/utils/rbx/datastructures.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{robloxmemoryapi-0.2.6 → robloxmemoryapi-0.2.7}/src/robloxmemoryapi.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|