Flarial

Packet-based module blocking.

Server-driven feature restrictions for Flarial. Use this when a server needs to block modules without shipping a new client-side hardcoded IP check.

01

How it works

Flarial listens for an inbound Bedrock ScriptMessagePacket. If the packet has the expected Flarial header, the client parses the JSON payload and applies temporary server restrictions to matching modules.

  1. 1PacketHooks hooks inbound ScriptMessagePacket receive callbacks.
  2. 2The packet is wrapped in PacketEvent and dispatched through eventMgr.
  3. 3ServerModuleControlListener accepts only the flarial_client_event:restrict_features header.
  4. 4The JSON payload resolves module names through display names, aliases, and manual aliases.
  5. 5Matching modules receive Module::applyServerRestriction and are disabled by ModuleManager::syncState.
  6. 6Restrictions are cleared on Disconnect, Transfer, StartGame, or by sending an empty restriction set.
02

Packet format

Send a ScriptMessagePacket with this exact message id:

flarial_client_event:restrict_features

The message body is a JSON object. Each entry under flarial_client_modules describes one blocked module.

{
  "server_name": "Example Server",
  "notification_message": "This feature is disabled on this server.",
  "flarial_client_modules": {
    "module.freelook.name": {
      "block": true,
      "restriction_reason": "Freelook is disabled on this server."
    },
    "module.full_bright.name": {
      "block": true,
      "restriction_reason": "Fullbright is disabled on this server."
    },
    "module.crystal_optimizer.name": {
      "block": true,
      "restriction_reason": "Crystal Optimizer is disabled on this server."
    }
  }
}
03

Examples

Block one module

{
  "server_name": "Example Server",
  "notification_message": "Disabled by this server.",
  "flarial_client_modules": {
    "module.zoom.name": { "block": true }
  }
}

Clear packet restrictions

{
  "server_name": "Example Server",
  "flarial_client_modules": {}
}

Any payload replaces the current packet-driven restriction set. Sending an empty flarial_client_modules object clears existing packet restrictions.

04

Every blockable module

This list is synced from the dll-css module registry on origin/main. Any registered module can be blocked because the listener resolves against ModuleManager::moduleMap.

125 blockable module keys
Motion Blurmodule.motion_blur.namemotion_blur, module.motion_blur.name, motionblur
Deepfrymodule.deepfry.namedeepfry, module.deepfry.name
Saturationmodule.saturation.namesaturation, module.saturation.name
PatarHDmodule.patarhd.namepatarhd, module.patarhd.name
DVD Screenmodule.dvd_screen.namedvd_screen, module.dvd_screen.name, dvdscreen
FOV Changermodule.fov_changer.namefov_changer, module.fov_changer.name, fovchanger
Zoommodule.zoom.namezoom, module.zoom.name
Upside Downmodule.upside_down.nameupside_down, module.upside_down.name, upsidedown
ClickGUImodule.clickgui.nameclickgui, module.clickgui.name
Medsmodule.meds.namemeds, module.meds.name
FPSmodule.fps.namefps, module.fps.name
CPSmodule.cps.namecps, module.cps.name
IP Displaymodule.ip_display.nameip_display, module.ip_display.name, ipdisplay
Reach Countermodule.reach_counter.namereach_counter, module.reach_counter.name, reachcounter
Combomodule.combo.namecombo, module.combo.name
Ping Countermodule.ping_counter.nameping_counter, module.ping_counter.name, pingcounter
Pot Countermodule.pot_counter.namepot_counter, module.pot_counter.name, potcounter
Arrow Countermodule.arrow_counter.namearrow_counter, module.arrow_counter.name, arrowcounter
Item Trackermodule.item_tracker.nameitem_tracker, module.item_tracker.name, itemtracker
Entity Countermodule.entity_counter.nameentity_counter, module.entity_counter.name, entitycounter
Clockmodule.clock.nameclock, module.clock.name
Memorymodule.memory.namememory, module.memory.name
Fullbrightmodule.fullbright.namefullbright, module.fullbright.name, full_bright
Keystrokesmodule.keystrokes.namekeystrokes, module.keystrokes.name
Toggle Sneakmodule.toggle_sneak.nametoggle_sneak, module.toggle_sneak.name, togglesneak
Toggle Sprintmodule.toggle_sprint.nametoggle_sprint, module.toggle_sprint.name, togglesprint
Hitboxmodule.hitbox.namehitbox, module.hitbox.name, hitboxes
Hurt Colormodule.hurt_color.namehurt_color, module.hurt_color.name, hurtcolor
Block Hitmodule.block_hit.nameblock_hit, module.block_hit.name, blockhit
Fire Heightmodule.fire_height.namefire_height, module.fire_height.name, fireheight
Better Inventorymodule.better_inventory.namebetter_inventory, module.better_inventory.name, betterinventory
Dynamic Lightingmodule.dynamic_lighting.namedynamic_lighting, module.dynamic_lighting.name, dynamiclighting
Nametagmodule.nametag.namenametag, module.nametag.name
Java Dynamic FOVmodule.java_dynamic_fov.namejava_dynamic_fov, module.java_dynamic_fov.name, javadynamicfov
SnapLookmodule.snaplook.namesnaplook, module.snaplook.name
Fog Colormodule.fog_color.namefog_color, module.fog_color.name, fogcolor
ArmorHUDmodule.armorhud.namearmorhud, module.armorhud.name
Time Changermodule.time_changer.nametime_changer, module.time_changer.name, timechanger
Movable Paperdollmodule.movable_paperdoll.namemovable_paperdoll, module.movable_paperdoll.name, movablepaperdoll
MC GUI Scalemodule.mc_gui_scale.namemc_gui_scale, module.mc_gui_scale.name, mcguiscale
Render Optionmodule.render_option.namerender_option, module.render_option.name, renderoption
Glint Colormodule.glint_color.nameglint_color, module.glint_color.name, glintcolor
Item Physicsmodule.item_physics.nameitem_physics, module.item_physics.name, itemphysics
Tab Listmodule.tab_list.nametab_list, module.tab_list.name, tablist
Weather Changermodule.weather_changer.nameweather_changer, module.weather_changer.name, weatherchanger
Nickmodule.nick.namenick, module.nick.name
FreeLookmodule.freelook.namefreelook, module.freelook.name, free_look
Auto Perspectivemodule.auto_perspective.nameauto_perspective, module.auto_perspective.name, autoperspective
Auto GGmodule.auto_gg.nameauto_gg, module.auto_gg.name, autogg
Text Hotkeymodule.text_hotkey.nametext_hotkey, module.text_hotkey.name, texthotkey
Speed Displaymodule.speed_display.namespeed_display, module.speed_display.name, speeddisplay
CPS Limitermodule.cps_limiter.namecps_limiter, module.cps_limiter.name, cpslimiter
Break Progressmodule.break_progress.namebreak_progress, module.break_progress.name, breakprogress
Animationsmodule.animations.nameanimations, module.animations.name
Block Outlinemodule.block_outline.nameblock_outline, module.block_outline.name, blockoutline
Command Hotkeymodule.command_hotkey.namecommand_hotkey, module.command_hotkey.name, commandhotkey
No Hurt Cammodule.no_hurt_cam.nameno_hurt_cam, module.no_hurt_cam.name, nohurtcam
Inventory HUDmodule.inventory_hud.nameinventory_hud, module.inventory_hud.name, inventoryhud
Hive Utilsmodule.hive_utils.namehive_utils, module.hive_utils.name, hiveutils
Hit Pingmodule.hit_ping.namehit_ping, module.hit_ping.name, hitping
Opponent Reachmodule.opponent_reach.nameopponent_reach, module.opponent_reach.name, opponentreach
View Modelmodule.view_model.nameview_model, module.view_model.name, viewmodel
Faster Inventorymodule.faster_inventory.namefaster_inventory, module.faster_inventory.name, fasterinventory
PotionHUDmodule.potionhud.namepotionhud, module.potionhud.name
Movable Scoreboardmodule.movable_scoreboard.namemovable_scoreboard, module.movable_scoreboard.name, movablescoreboard
Movable Titlemodule.movable_title.namemovable_title, module.movable_title.name, movabletitle
Movable Bossbarmodule.movable_bossbar.namemovable_bossbar, module.movable_bossbar.name, movablebossbar
Movable Chatmodule.movable_chat.namemovable_chat, module.movable_chat.name, movablechat
Clear Scoreboardmodule.clear_scoreboard.nameclear_scoreboard, module.clear_scoreboard.name, clearscoreboard
Clear Chatmodule.clear_chat.nameclear_chat, module.clear_chat.name, clearchat
Movable Coordinatesmodule.movable_coordinates.namemovable_coordinates, module.movable_coordinates.name, movablecoordinates
Movable Hotbarmodule.movable_hotbar.namemovable_hotbar, module.movable_hotbar.name, movablehotbar
Movable Day Countermodule.movable_day_counter.namemovable_day_counter, module.movable_day_counter.name, movabledaycounter
Mouse Strokesmodule.mouse_strokes.namemouse_strokes, module.mouse_strokes.name, mousestrokes
Java Hotkeys Fixmodule.java_hotkeys_fix.namejava_hotkeys_fix, module.java_hotkeys_fix.name, javahotkeysfix, java_hotkeys, module.java_hotkeys.name
Inventory Offhand Hotkeymodule.inventory_offhand_hotkey.nameinventory_offhand_hotkey, module.inventory_offhand_hotkey.name, inventoryoffhandhotkey
Hive Statisticsmodule.hive_statistics.namehive_statistics, module.hive_statistics.name, hivestatistics
Waypointsmodule.waypoints.namewaypoints, module.waypoints.name
Null Movementmodule.null_movement.namenull_movement, module.null_movement.name, nullmovement
Modern Handlingmodule.modern_handling.namemodern_handling, module.modern_handling.name, modernhandling
Custom Crosshairmodule.custom_crosshair.namecustom_crosshair, module.custom_crosshair.name, customcrosshair
Wailamodule.waila.namewaila, module.waila.name
Skin Stealermodule.skin_stealer.nameskin_stealer, module.skin_stealer.name, skinstealer
Raw Input Buffermodule.raw_input_buffer.nameraw_input_buffer, module.raw_input_buffer.name, rawinputbuffer
Low Healthmodule.low_health.namelow_health, module.low_health.name, lowhealth
Player Notifiermodule.player_notifier.nameplayer_notifier, module.player_notifier.name, playernotifier
Zeqa Utilsmodule.zeqa_utils.namezeqa_utils, module.zeqa_utils.name, zeqautils
Mumble Linkmodule.mumble_link.namemumble_link, module.mumble_link.name, mumblelink
Shader Loadermodule.shader_loader.nameshader_loader, module.shader_loader.name, shaderloader
Minimal View Bobbingmodule.minimal_view_bobbing.nameminimal_view_bobbing, module.minimal_view_bobbing.name, minimalviewbobbing
Lewismodule.lewis.namelewis, module.lewis.name
Coordinatesmodule.coordinates.namecoordinates, module.coordinates.name
Experience Infomodule.experience_info.nameexperience_info, module.experience_info.name, experienceinfo
Disable Mouse Wheelmodule.disable_mouse_wheel.namedisable_mouse_wheel, module.disable_mouse_wheel.name, disablemousewheel
Java Debug Menumodule.java_debug_menu.namejava_debug_menu, module.java_debug_menu.name, javadebugmenu
DirectionHUDmodule.directionhud.namedirectionhud, module.directionhud.name
Locator Barmodule.locator_bar.namelocator_bar, module.locator_bar.name, locatorbar
Java View Bobbingmodule.java_view_bobbing.namejava_view_bobbing, module.java_view_bobbing.name, javaviewbobbing
Death Loggermodule.death_logger.namedeath_logger, module.death_logger.name, deathlogger
Twerkmodule.twerk.nametwerk, module.twerk.name
Cinematic Cameramodule.cinematic_camera.namecinematic_camera, module.cinematic_camera.name, cinematiccamera
Chunk Bordermodule.chunk_border.namechunk_border, module.chunk_border.name, chunkborder
Compact Chatmodule.compact_chat.namecompact_chat, module.compact_chat.name, compactchat
Message Loggermodule.message_logger.namemessage_logger, module.message_logger.name, messagelogger
Totem Countermodule.totem_counter.nametotem_counter, module.totem_counter.name, totemcounter
Item Countermodule.item_counter.nameitem_counter, module.item_counter.name, itemcounter
Delux Overlaymodule.delux_overlay.namedelux_overlay, module.delux_overlay.name, deluxoverlay
Better Hunger Barmodule.better_hunger_bar.namebetter_hunger_bar, module.better_hunger_bar.name, betterhungerbar
Particle Multipliermodule.particle_multiplier.nameparticle_multiplier, module.particle_multiplier.name, particlemultiplier
Bow Sensitivitymodule.bow_sensitivity.namebow_sensitivity, module.bow_sensitivity.name, bowsensitivity
Subtitlesmodule.subtitles.namesubtitles, module.subtitles.name
Sens Multipliermodule.sens_multiplier.namesens_multiplier, module.sens_multiplier.name, sensmultiplier
Stopwatchmodule.stopwatch.namestopwatch, module.stopwatch.name
Depth Of Fieldmodule.depth_of_field.namedepth_of_field, module.depth_of_field.name, depthoffield
Crystal Optimizermodule.crystal_optimizer.namecrystal_optimizer, module.crystal_optimizer.name, crystaloptimizer
TNT Timermodule.tnt_timer.nametnt_timer, module.tnt_timer.name, tnttimer
Inventory Lockmodule.inventory_lock.nameinventory_lock, module.inventory_lock.name, inventorylock
Audio Controllermodule.audio_controller.nameaudio_controller, module.audio_controller.name, audiocontroller
Pitch Displaymodule.pitch_display.namepitch_display, module.pitch_display.name, pitchdisplay
Durability Warningmodule.durability_warning.namedurability_warning, module.durability_warning.name, durabilitywarning
Camera Testmodule.camera_test.namecamera_test, module.camera_test.name, cameratest
Notebotmodule.notebot.namenotebot, module.notebot.name
Minimapmodule.minimap.nameminimap, module.minimap.name
Doommodule.doom.namedoom, module.doom.name
Discord RPCmodule.discord_rpc.namediscord_rpc, module.discord_rpc.name, discordrpc
05

Client behavior

When blocked

The module is marked server-restricted, disabled if currently active, and cannot be toggled back on while the restriction is active.

When cleared

Restrictions clear on disconnect, transfer, start-game, or when a replacement payload omits/clears a module. If the module was previously enabled in settings, it can be queued to re-enable.

06

Server implementation notes

  • Send the packet with the exact message id: flarial_client_event:restrict_features.
  • Keep payloads small; avoid resending the same policy every tick.
  • Send valid JSON only. If you generate payloads dynamically, validate them before sending.
  • Use documented module keys/aliases instead of copying UI labels from the client.
  • Re-send or clear restrictions when players switch servers, worlds, or sessions.
  • To clear all restrictions, send an empty module list/object for the same header.

Packet-based restrictions are the preferred way to define server policy. They let server owners update restrictions without waiting for hardcoded client-side server checks or a new client release.