Features marked as Feature Pending are planned, but may not come out, and should not be relied on.
Walk speed with a melee out: 23.763
Walk speed varies based on weapon, but all melees have the same walk speed.
Players have a Jump Height of 18.252. The gravity is 55.52.
Players jump about 3 studs high but can jump onto objects no higher than 4 studs.
Note: If testing with Roblox's default movement system, you will be able to jump onto objects higher than 4 studs, however, you can not in Arsenal, as it uses a modified movement system.Note2: Players can crouch jump onto objects 5 studs high, but we don't recommend relying on this behavior.Arsenal characters stand at the default robloxian height: 5 studs.
Each block on the left is 1 stud high, stacked on top of each other.
The first person camera height is 4.55191 studs above the ground.
Note: Accessories don't have collision.
Structure example of Villa in the explorer window.
Using models or folders is up to the builder's preference.* = Ignored by bullet raycasting. Players can shoot through objects placed in these folders.
^ = Will automatically be set to have no collision at run time.
• Geometry - The majority of the map should be under Geometry.
• Clips* - Collides with players. Does not collide with bullets, projectiles and ragdolls.
• Ignore* - Used for objects to be ignored by bullet raycasting.
• Killers* - Used for death barriers to be supported with the kill feed.
• Regen, with subfolders: Doors, Props. Legacy feature used to respawn doors & physical props on round restart. Not currently used.
• Spawns*^ - Houses parts used for player spawning positions.
• SpawnsTwoTeam*^ - Optional, used if you want different spawn positions if there's only Two Teams. Only used on Safehouse.
• Detail*^ - Optional, objects placed in this folder will disappear on low graphics.
• Lighting*^ - Optional, used with https://www.roblox.com/library/1351801143/Lighting-to-Values If no folder is present default lighting will be used. Should not have BaseParts inside.
• Overview1 *^ - Part or CFrameValue used to determine the camera position of the deploy menu when the map is loaded. To create a camera point for your map using the current camera position in studio, execute this code in the command bar:
local p = Instance.new("Part") p.Name = "Overview1" p.CFrame = workspace.CurrentCamera.CFrame p.Parent = workspace
Unions & Meshes should have RenderFidelity set to Automatic.
CollisionFidelity should be set to Hull or Box when applicable. You can use CloneTrooper's Decomposition Geometry Plugin to see the collision mesh. In most cases, using Hull or Box is much cheaper than Default. The more different colors on one object mean the heavier the collision is on performance.
Do not union parts to reduce part count, it creates more assets & unique collisions that will be streamed to memory.
The size of the image uploaded to Roblox for use as a Decal or Texture effects its performance. Avoid using decals/textures over 512x512. Re-use decal/textures where applicable as many unique textures increase the amount of data streamed to memory.
Something to note: Roblox doesn't unload texture data from memory when a new map gets loaded, we usually avoid using large textures for our maps. Shirts & Pants on humanoids do get unloaded when removed however, but isn't very applicable to map building.
Turns off shadows on a per object basis, at graphics 7, turns off shadows on objects smaller than 7, at graphics 6 and below, turns off shadows on objects smaller than 12. Roblox automatically disables shadow map shadows at graphics 3. Shadows contribute to overall scene tris count.
Getting the magnitude size of an object:
print((workspace.Baseplate.Size).Magnitude)
Prints the size magnitude of the baseplate (if one is present) to studio's output window. If using the default baseplate, it will print 724.353515625.
When the server starts, maps are automatically scanned to sort objects. This lets the map to be messy during run-time and organized when editing.
BaseParts named Ignore will be parented to Ignore and BaseParts named Detail will be parented to Detail.
This lets builders easily micro-optimize maps.
This lets builders create easily props with objects that aren't necessary on lower graphics or to be checked by ray casting and easily keeps things organized for editing.
Add invisible boundaries to your map, "clipping", to keep players in the play space. Note: Keep in mind the various weapons in Arsenal that allow players to jump extra high.
Height Frights with clipping exposed. The ceiling is 500 studs tall.
Sandtown's ceiling is 150 studs tall.
Clipping stairs provides a smooth slope for players to move on. Clipping stairs can be done in numerous ways, such as using wedges. A quick and easy method is by using Stravant's Gap Fill Plugin as seen below.
Name any part under Geometry Glass and it will be broken when shot.
Optional, Parent an IntValue named Health to the glass part and it will subtract 25 each time shot. Once it reaches zero the glass will break.
Feature PendingName any part under Geometry PhysShootable and the BasePart will become unanchored when shot.
Adding an IntValue named Health parented to the PhysShootable part will subtract 25 everytime the part is shot. Once it reaches zero it will become unanchored.
Hurt blocks damage the player every second when stood upon or inside. The amount of damage and type of damage can be defined by the builder.
To create a hurt block, create a Folder named Hurt and parent the folder to Ignore. Place the Hurt Block into the Folder.
Damage can be a NumberValue or an IntValue, and defines the amount of damage per second.
Type is type of damage, the only current supported type is Radiation; as seen in Lunar when stood on top of the map.