I have finished a Gauntlet-style dungeon crawler game and I am open sourcing it to anyone who is interested in developing it further or as a learning resource. The code is mostly uncommented but should be clean enough to read. The graphics are very basic but the game is working completely as far as I can tell.
Features endless levels of randomly generated dungeon and a working leaderboard.
Thank for the positive comments, they meant a lot to me
It’s nice to know others enjoyed playing the game as much as I did writing it.
And how did you know it was based off Chrythm’s RPG Kit?
Yes, it did start out as a project based on his kit. I tried to use as much of his work as possible to serve as a tribute to his contribution but as the project evolved I ended up replacing almost everything with my own. The only thing left of his are his animations and some sounds, I think.
As for improvements, the weapon and dungeon models can use a facelift using meshes. Better animations, more flash and bang special effects to make the game more attractive visually. Maybe armor, potions, daily and weekly and monthly leaderboards, more monsters, maybe bosses, special rooms like lava rooms, obby room, pit traps, chessboard room, puzzle room. These are the ideas I had or worked on but had to scrap due to lack of time.
Nice! Love what you did there, you gave the dungeon a silly theme which is great! I would love to dive down and see the funny mobs you added to the dungeon when I have time to play on the computer
This is a pretty solid game for the most part, though I would fix some of these security flaws in the game. I know this is an open-source project and so you are supposed to learn from it but these are some pretty simple/common checks. Otherwise, great game!
Thanks for taking the time to look at my source code if it is not too much to ask, could you point out the security flaws you mentioned and perhaps a quick suggestion on how the flaws could be fixed? I would like to update the game to fix these flaws.
Hello, yes. A few security flaws to fix would be for example adding a Delay on the server after using the tool, you can make a fast kill by spamming the remote on the enemy (The bow). Another flaw is the pickup range on the Treasure and tools, any simple executor has the ability to run firetouchinterest which simulates in 3 arguments, Instance(What is going to be touched), BasePart (What is going to touch the Instance), 0 or 1 (0 : Touch | 1 : Untouch) Example
then add a task.wait() then,1. A fix for the Inf range touching would be adding a Magnitude check, (TreasurePosition - PlayerPosition).Magnitude <= 6 < – I would just do 6 but you can test, Higher number = less strict.
if (Position1 - Position2).Magnitude <= 6 then
-- script
end
Another Detection is the reset remote you have, you run LoadCharacter() which is known to exploiters to be used for Server Crashers, the Roblox game Evade had this problem, it allowed exploiters to spam the respawn remote which would simply run the command player:LoadCharacter() which floods the server output and causes everyone’s ping to spike up until they hit 100000 ms and Roblox force kicks anyone over that, a detection for this would be adding a delay on the reset remote.
And last, add detection for if a BasePart or Humanoid is removed from the character, here is a quick detection I made which should be placed in a server script in ServerScriptService, it detects if a player removes ur Humanoid or HumanoidRootPart while you are still alive.
game.Players.PlayerAdded:Connect(function(player) -- This was written very quickly
player.CharacterAdded:Connect(function(character)
repeat wait() until not character:FindFirstChildOfClass("Humanoid") or not character:FindFirstChild("HumanoidRootPart") -- if any of these values cannot be found via the server then resume the script
if player.Character.Humanoid.Health > 0 then -- make sure they are not dead or else it could false pos
print(player.Name .. ' might be a probable exploiter?') -- Prints to the server console
player:Kick('Exploiter! Removed Child!') -- kick that player! Careful if you respawn the player, they can take advantage of this and create a server crasher.
end
end)
end)