Skip to content
This repository was archived by the owner on Jun 26, 2025. It is now read-only.

Commit 645768b

Browse files
authored
Update Roblox-FFlag-Editor.py
1 parent 05c9238 commit 645768b

File tree

1 file changed

+85
-6
lines changed

1 file changed

+85
-6
lines changed

Roblox-FFlag-Editor.py

Lines changed: 85 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
class RobloxFFlagEditor(QtWidgets.QWidget):
66
def __init__(self):
77
super().__init__()
8-
self.setWindowTitle("Roblox FFlag Editor - @GiFXED (Beta)")
9-
self.setFixedSize(400, 400)
8+
self.setWindowTitle("Roblox FFlag Editor - @GiFXED (Beta 2)")
9+
self.setFixedSize(400, 500)
1010
self.initUI()
1111
self.ensure_json_exists()
1212

@@ -45,6 +45,22 @@ def initUI(self):
4545
self.gravity_button.clicked.connect(lambda: self.set_flags(low_gravity_flags))
4646
self.basic_layout.addWidget(self.gravity_button)
4747

48+
self.no_animations_button = QtWidgets.QPushButton("No Animations")
49+
self.no_animations_button.clicked.connect(lambda: self.set_flags(no_animations_flags))
50+
self.basic_layout.addWidget(self.no_animations_button)
51+
52+
self.xray_button = QtWidgets.QPushButton("Xray")
53+
self.xray_button.clicked.connect(lambda: self.set_flags(xray_flags))
54+
self.basic_layout.addWidget(self.xray_button)
55+
56+
self.disable_telemetry_button = QtWidgets.QPushButton("Disable Telemetry")
57+
self.disable_telemetry_button.clicked.connect(lambda: self.set_flags(disable_telemetry_flags))
58+
self.basic_layout.addWidget(self.disable_telemetry_button)
59+
60+
self.clear_file_button = QtWidgets.QPushButton("Clear fflag File")
61+
self.clear_file_button.clicked.connect(self.clear_json)
62+
self.basic_layout.addWidget(self.clear_file_button)
63+
4864
self.log = QtWidgets.QTextEdit(self)
4965
self.log.setReadOnly(True)
5066
self.basic_layout.addWidget(self.log)
@@ -61,6 +77,14 @@ def initUI(self):
6177
self.add_custom_fflag_button.clicked.connect(self.add_custom_fflag)
6278
self.advanced_layout.addWidget(self.add_custom_fflag_button)
6379

80+
self.modify_custom_fflag_button = QtWidgets.QPushButton("Modify Custom FFlag")
81+
self.modify_custom_fflag_button.clicked.connect(self.modify_custom_fflag)
82+
self.advanced_layout.addWidget(self.modify_custom_fflag_button)
83+
84+
self.delete_custom_fflag_button = QtWidgets.QPushButton("Delete Custom FFlag")
85+
self.delete_custom_fflag_button.clicked.connect(self.delete_custom_fflag)
86+
self.advanced_layout.addWidget(self.delete_custom_fflag_button)
87+
6488
self.log_advanced = QtWidgets.QTextEdit(self)
6589
self.log_advanced.setReadOnly(True)
6690
self.advanced_layout.addWidget(self.log_advanced)
@@ -159,11 +183,45 @@ def add_custom_fflag(self):
159183
else:
160184
self.log_advanced.append("Please enter both FFlag and value.")
161185

162-
noclip_flags = [{
186+
def modify_custom_fflag(self):
187+
custom_fflag = self.custom_fflag_input.text()
188+
custom_value = self.custom_value_input.text()
189+
190+
if custom_fflag and custom_value:
191+
data = self.load_json()
192+
if custom_fflag in data:
193+
data[custom_fflag] = custom_value
194+
self.save_json(data)
195+
self.log_advanced.append(f"Modified custom FFlag: {custom_fflag} = {custom_value}")
196+
else:
197+
self.log_advanced.append(f"FFlag {custom_fflag} does not exist.")
198+
else:
199+
self.log_advanced.append("Please enter both FFlag and value.")
200+
201+
def delete_custom_fflag(self):
202+
custom_fflag = self.custom_fflag_input.text()
203+
204+
if custom_fflag:
205+
data = self.load_json()
206+
if custom_fflag in data:
207+
data.pop(custom_fflag)
208+
self.save_json(data)
209+
self.log_advanced.append(f"Deleted custom FFlag: {custom_fflag}")
210+
else:
211+
self.log_advanced.append(f"FFlag {custom_fflag} does not exist.")
212+
else:
213+
self.log_advanced.append("Please enter the FFlag to delete.")
214+
215+
def clear_json(self):
216+
data = {}
217+
self.save_json(data)
218+
self.log.append("Cleared entire ClientAppSettings.json file.")
219+
220+
noclip_flags = {
163221
"FFlagDebugSimDefaultPrimalSolver": "True",
164-
"DFIntMaximumFreefallMoveTimeInTenths": "1000",
222+
"DFIntMaximumFreefallMoveTimeInTenths": "99999",
165223
"DFIntDebugSimPrimalStiffness": "0"
166-
}]
224+
}
167225

168226
network_ownership_flags = {
169227
"DFIntMinClientSimulationRadius": "2147000000",
@@ -176,7 +234,28 @@ def add_custom_fflag(self):
176234
"DFIntDebugSimPrimalLineSearch": "3"
177235
}
178236

179-
if __name__ == "__main__":
237+
no_animations_flags = {
238+
"DFIntReplicatorAnimationTrackLimitPerAnimator": "-1"
239+
}
240+
241+
xray_flags = {
242+
"DFIntCullFactorPixelThresholdMainViewHighQuality": "10000",
243+
"DFIntCullFactorPixelThresholdMainViewLowQuality": "10000",
244+
"DFIntCullFactorPixelThresholdShadowMapHighQuality": "10000",
245+
"DFIntCullFactorPixelThresholdShadowMapLowQuality": "10000"
246+
}
247+
248+
disable_telemetry_flags = {
249+
"FFlagDebugDisableTelemetryEphemeralCounter": "True",
250+
"FFlagDebugDisableTelemetryEphemeralStat": "True",
251+
"FFlagDebugDisableTelemetryEventIngest": "True",
252+
"FFlagDebugDisableTelemetryPoint": "True",
253+
"FFlagDebugDisableTelemetryV2Counter": "True",
254+
"FFlagDebugDisableTelemetryV2Event": "True",
255+
"FFlagDebugDisableTelemetryV2Stat": "True"
256+
}
257+
258+
if __name__ == '__main__':
180259
app = QtWidgets.QApplication([])
181260
window = RobloxFFlagEditor()
182261
window.show()

0 commit comments

Comments
 (0)