One of the best minigames plugins out there! Had this plugin for over 7 years now, decided to repurchase here to support the author. Players love the destroyable areas and we were able to connect 15 servers spinning up CoreArena and it integrated surprisingly well. Never had any issues, the author is extremely helpful and the plugin is well performing even under heavy load. Recommended!
This is my 2nd negative review for this setup its bad do not buy this trash.
Seller disputes everything you say and always blames you for using the setup incorrectly even tho its as simple as a drag and drop the ragebait is insane. I would personally start a dispute but its not worth the time for $15 but thats exactly what these cheap trashy setups pray on people who don't care or want to waste time disputing.
I've spoken with the developer multiple times about the setup which he refuses to change or acknowledge all the broken and explotive mods/plugins his setup uses with 8 of them being outdated and abandoned since the launch of hytale. Update 4 is a load of crap and doesn't fix any of the problems with the setup.
10/10 Plugin
Worth of buying
The main issue that The features we resuest barely got added
Other than that It's just must have plugin with so much customization
I am a really picky person when it comes to buying premade setup. However, when it comes to Hyronic’s setups, there is nothing that needed to worry about. I love the features that it brings, including a new version of mcmmo gui, clean ui design and a plug&play setup.
The setup is still in beta, yes, and other facilities are being made to implement into the setup. But the existed one is already playable for now. Im really excited for the next update, as the road-map sayin
Regarding support, the experienced dev solved the issue instantly, even come with a custom plugin just to solve the annoying bug that the currently using have.
I would totally recommended this setup for newcomers, as well as experienced, since it was truly a gift in this market!
Perfect, everything worked correctly. I’m setting up my dedicated Hytale server, and this plugin was a huge help. Thank you, and please bring more plugins to the community!!!
---------------------------------------------
Original Review (Before Conversation)
---------------------------------------------
After looking through the configuration, I want to start by acknowledging the amount of work that clearly went into it. This setup isn’t simple, and I do appreciate the effort behind it.
However, there are a few serious concerns that need to be addressed.
The biggest issue is the use of a plugin that isn’t publicly available and isn’t listed anywhere in the Dependencies section or out on the web.
Requiring a hidden, privately distributed plugin for almost the entire configuration to function is extremely misleading. Buyers shouldn’t discover after purchasing that the configuration depends almost entirely on a custom plugin they can’t access anywhere else to ensure its a legitimate and safe plugin.
Because of that, I’m having the included “QuestColors” dependency reviewed by someone else before I even consider running it. Any undisclosed, privately distributed plugin raises valid security concerns.
Even though the configuration itself seems to rely heavily on QuestCode placeholders, the overall setup feels unnecessarily unclear. Without transparency about the required plugin, the whole package ends up feeling unreliable and difficult to trust.
---------------------------------------------
Rewritten Review (After conversation)
---------------------------------------------
I purchased this resource under the impression that it was a standard configuration pack that I could edit and adapt to my server’s style. After installing it, I discovered that the configuration relies heavily on a separate plugin, QuestColors, which was not disclosed anywhere in the listing, the dependency section, or the README.
Because of that, the product initially felt misleading, and it raised security concerns since I had no prior knowledge of the plugin.
Once I had the jar properly checked and tested(At the time I didn't know that per the TOS "No decompiling, or editing of products is allowed unless permission is granted by the ownership team." in his discord server), the configuration worked as intended. But it still left me choosing between using an undisclosed plugin or manually reworking thousands of files.
The configuration itself is clearly well‑made and took a significant amount of time to build, and I respect the effort behind it. My concern was strictly about transparency.
After speaking with the creator of the configuration, they were receptive to the feedback and agreed that the undisclosed plugin should have been disclosed, he then further explained that he would provide a blank white version of it, but I explained that there is no need for it, as I will take the initiative to reconfigure all 15.000k file. He further stated that " i will make my advertisement different and will provide a white one for everyone that wants to change the files manual" I explained that "if you wanna implement the white variant version into your actual product, you definitely can" I appreciate that response and the willingness to improve clarity for future buyers.
My re-review reflects the experience: the product is solid and trust worthy, but full disclosure of all dependencies is essential so customers know exactly what they’re purchasing.
Not a Low Quality map by Any means, There are Some Bad meshes, I believe its likely a bad mesh collision hull Where the player Stands Knee Deep in some areas of the Map. You should Be able to Fix this with this Command in Command prompt: -- ZC_FULL_MAP_COLLISION_REPAIR_V1.command.lua
-- Run in Roblox Studio Command Bar while NOT in Play mode.
--
-- Purpose:
-- Full repair pass for imported city/map meshes where players stand inside / through the visible ground.
--
-- What it does:
-- 1. Targets likely walkable MeshParts and UnionOperations by name.
-- 2. Sets collision settings safely over time.
-- 3. Uses PreciseConvexDecomposition where possible.
-- 4. Creates invisible collision filler plates for flat walkable map pieces.
-- 5. Shows ETA/progress in Output and a viewport BillboardGui marker.
--
-- IMPORTANT:
-- If your map is inside a specific folder/model, set ROOT below to that model.
-- Example:
-- local ROOT = workspace:WaitForChild("Streetz")
--
-- Default scans workspace.
local Workspace = game:GetService("Workspace")
local RunService = game:GetService("RunService")
if RunService:IsRunning() then
warn("[ZC Collision Repair] Stop Play Mode first. Run this from Studio Command Bar in Edit Mode.")
return
end
local REPAIR_TAG_ATTRIBUTE = "ZC_CollisionRepaired"
local FILLER_TAG_ATTRIBUTE = "ZC_GeneratedCollisionFiller"
local AUTO_CREATE_FILLERS = true
-- If true, existing generated filler folder is deleted first.
local CLEAR_OLD_FILLERS_FIRST = true
-- Keep this true. Forcing RenderFidelity Precise on thousands of meshes can freeze Studio.
local KEEP_RENDER_FIDELITY_AUTOMATIC = true
-- Smaller batch = safer/slower.
-- Bigger batch = faster/more likely to lag.
local BATCH_SIZE = 10
local WAIT_BETWEEN_BATCHES = 0.07
-- Filler generation rules.
local MIN_FILLER_AREA = 18
local MIN_FILLER_XZ = 3
local MAX_FLATNESS_RATIO = 0.42
-- Slightly above mesh top.
local FILLER_Y_OFFSET = 0.12
local FILLER_THICKNESS = 0.35
-- Make generated plates visible for debugging?
-- false = invisible final collision.
-- true = green transparent plates so you can inspect them.
local DEBUG_SHOW_FILLERS = false
local repairFolder = Workspace:FindFirstChild("ZC_Map_Collision_Repair")
if not repairFolder then
repairFolder = Instance.new("Folder")
repairFolder.Name = "ZC_Map_Collision_Repair"
repairFolder.Parent = Workspace
end
local fillerFolder = repairFolder:FindFirstChild("Invisible_Walk_Collision_Fillers")
if CLEAR_OLD_FILLERS_FIRST and fillerFolder then
fillerFolder:Destroy()
fillerFolder = nil
end
if not fillerFolder then
fillerFolder = Instance.new("Folder")
fillerFolder.Name = "Invisible_Walk_Collision_Fillers"
fillerFolder.Parent = repairFolder
end
local function lowerName(obj)
return string.lower(obj.Name or "")
end
local function containsAny(text, patterns)
for _, pattern in ipairs(patterns) do
if string.find(text, pattern, 1, true) then
return true
end
end
return false
end
local function isCollisionTarget(obj)
if not obj:IsA("MeshPart") and not obj:IsA("UnionOperation") then
return false
end
local n = lowerName(obj)
if containsAny(n, EXCLUDE_NAME_PATTERNS) then
return false
end
if containsAny(n, WALKABLE_NAME_PATTERNS) then
return true
end
return false
end
local function isFlatWalkableShape(obj)
local size = obj.Size
local x = math.abs(size.X)
local y = math.abs(size.Y)
local z = math.abs(size.Z)
if x < MIN_FILLER_XZ or z < MIN_FILLER_XZ then
return false
end
local area = x * z
if area < MIN_FILLER_AREA then
return false
end
local largestXZ = math.max(x, z)
if largestXZ <= 0 then
return false
end
local flatnessRatio = y / largestXZ
if flatnessRatio > MAX_FLATNESS_RATIO then
return false
end
-- Avoid vertical walls/rotated upright objects.
local upDot = math.abs(obj.CFrame.UpVector:Dot(Vector3.new(0, 1, 0)))
if upDot < 0.5 then
return false
end
return true
end
local function safeSetAttribute(obj, name, value)
pcall(function()
obj:SetAttribute(name, value)
end)
end
local function formatTime(seconds)
seconds = math.max(0, math.floor(seconds))
local mins = math.floor(seconds / 60)
local secs = seconds % 60
if mins > 0 then
return string.format("%dm %02ds", mins, secs)
end
return string.format("%ds", secs)
end
local function getApproxCenter(parts)
if #parts == 0 then
return Vector3.new(0, 25, 0)
end
local total = Vector3.new(0, 0, 0)
for _, part in ipairs(parts) do
total += part.Position
end
if totalCollisionTargets == 0 then
updateProgressText("[ZC Collision Repair]\nNo matching walkable meshes found.\nRename ROOT or adjust patterns.")
warn("[ZC Collision Repair] No collision targets found.")
return
end
local startTime = os.clock()
local fixed = 0
local failed = 0
for i, obj in ipairs(collisionTargets) do
local ok, err = pcall(function()
safeSetAttribute(obj, "ZC_OriginalCanCollide", obj.CanCollide)
safeSetAttribute(obj, "ZC_OriginalCanTouch", obj.CanTouch)
safeSetAttribute(obj, "ZC_OriginalCanQuery", obj.CanQuery)
if obj:IsA("MeshPart") then
safeSetAttribute(obj, "ZC_OriginalCollisionFidelity", obj.CollisionFidelity.Name)
safeSetAttribute(obj, "ZC_OriginalRenderFidelity", obj.RenderFidelity.Name)
end
if ok then
fixed += 1
else
failed += 1
warn("[ZC Collision Repair] Failed collision repair:", obj:GetFullName(), err)
end
if i % BATCH_SIZE == 0 or i == totalCollisionTargets then
local elapsed = os.clock() - startTime
local progress = i / math.max(totalCollisionTargets, 1)
local estimatedTotal = elapsed / math.max(progress, 0.001)
local remaining = estimatedTotal - elapsed
if AUTO_CREATE_FILLERS then
local fillerStart = os.clock()
for i, obj in ipairs(fillerTargets) do
local ok, err = pcall(function()
local plate = Instance.new("Part")
plate.Name = "COLLISION_FILLER_" .. obj.Name
plate.Anchored = true
plate.CanCollide = true
plate.CanQuery = true
plate.CanTouch = false
plate.CastShadow = false
plate.Material = Enum.Material.SmoothPlastic
plate.Color = Color3.fromRGB(0, 255, 120)
if DEBUG_SHOW_FILLERS then
plate.Transparency = 0.55
else
plate.Transparency = 1
end
-- Keep filler simple and stable.
-- It uses the mesh's X/Z footprint and sits just above the visible top.
plate.Size = Vector3.new(
math.max(obj.Size.X, MIN_FILLER_XZ),
FILLER_THICKNESS,
math.max(obj.Size.Z, MIN_FILLER_XZ)
)
if not ok then
fillersFailed += 1
warn("[ZC Collision Repair] Failed filler creation:", obj:GetFullName(), err)
end
if i % BATCH_SIZE == 0 or i == totalFillerTargets then
local elapsed = os.clock() - fillerStart
local progress = i / math.max(totalFillerTargets, 1)
local estimatedTotal = elapsed / math.max(progress, 0.001)
local remaining = estimatedTotal - elapsed
And then You can Also Undo that With this Script in the Command Bar:-- ZC_CLEAN_GENERATED_COLLISION_FILLERS.command.lua
-- Run in Command Bar if you want to remove the generated invisible collision plates.
local folder = workspace:FindFirstChild("ZC_Map_Collision_Repair")
if folder then
local fillers = folder:FindFirstChild("Invisible_Walk_Collision_Fillers")
if fillers then
fillers:Destroy()
print("[ZC Cleanup] Removed generated collision fillers.")
else
print("[ZC Cleanup] No filler folder found.")
end
else
print("[ZC Cleanup] No ZC_Map_Collision_Repair folder found.")
end
the Second script Removes the Plates Added. After this, the Players Shouldnt Encounter Many Mesh Roads that Allow the player to Sink into them.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.