Repository navigation
Maps and Viewport
This is where most map work happens: the 3D view of the map you are modding, and the tools around it for selecting, editing and placing things in it. A .mapgeo is the file League stores a map's geometry in; its materials and placed content live in the materials.bin beside it. Opening one loads the whole map into the 3D viewport, with materials, lightmaps, placed content, the mobs and props the map places (animated and lit where they stand), and the critters and decorations it places by itself.
Maps open from the Content Browser, the tab under the viewport. A map's tile shows a rendered picture of the map rather than an icon: its start state (a TFT board at its first stage, no event switched on), with its placed props and decorations. Particles, the sky and dynamic lights are left out. Pictures are drawn in the background, one map at a time and only for the tiles on screen, and kept on disk under %LocalAppData%\ReyEngine\Cache\map-thumbnails, so a map is drawn once until it, its materials or the game's shaders change. Right-click a tile ▸ Refresh Thumbnail to redraw one. Drawing needs the Direct3D 11 renderer; on OpenGL you see the pictures that were already drawn.
A map opens framed the way its picture is: the visible map, from the same angle, filling the viewport. Frame on the toolbar puts the camera back there. Each map tab keeps its own camera while another tab has the viewport, and reloading the same map keeps yours.
The viewport draws with Direct3D 11 by default: Riot's own compiled shaders, which is the faithful look — every material draws exactly as the game draws it. It needs the game's shader cache scanned once: Tools ▸ Shaders ▸ Scan Riot Shaders.
OpenGL, ReyEngine's older approximation, is kept for a machine where Direct3D 11 will not start: View ▸ Use OpenGL renderer (compatibility), remembered between sessions. If Direct3D 11 fails to start, the viewport falls back to OpenGL by itself for that session. Both renderers show the same scene state, and edits apply live to both. Play shader + particle animation, Bloom, Sun shadows and Game depth rules need Direct3D 11; the View menu greys them out on OpenGL.
The shading picker on the toolbar offers Lit (the normal look), thirteen Debug views (base colour, alpha, normals, mask, emissive, matcap, UV checker, specular, vertex colour, lightmap, face orientation, two-sided, mirrored) and Basic (OpenGL). On Direct3D 11 every Debug view looks at the same real render, and Basic is not offered. On OpenGL, Lit is Basic plus rim, matcap, emissive and specular, each gated per material; only a small fraction of shipped map materials enable any of them, so the two look identical on most maps, and that is correct.
On a map that has fog, View ▸ Fog shows its height fog and screen fog the way the game draws them. Both are edited in the Lighting window — see Lighting and Baking.
Two short strips sit over the viewport.
On the left, what the mouse does: Move, Rotate and Scale, World / Local axes, Snap, Faces (see Face editing; its buttons appear on a second row while it is on) and Paint.
On the right, how the view looks:
| Control | What it holds |
|---|---|
| Undo / Redo | The two arrows at the start of the strip. |
| Shading | Lit, the Debug views, and Basic on OpenGL (see above). |
| Dynamic / Baked / Combined | The lighting mode: live lights, lightmaps only, or both for comparison. See Lighting and Baking. |
| View ▾ | Renderer (Use OpenGL renderer), Shading (Play shader + particle animation, Bloom, Sun shadows, Fog, Game depth rules), Geometry (Wireframe overlay, Respect material culling, Render-region meshes) and Sky — League ships hundreds of skyboxes; pick one or use your own image. |
| Show ▾ | Game view hides every editor overlay at once; lighting, fog and bloom stay as you set them. Then the overlays: audio placements, mobs and animated props, particle systems, point-light markers, probes and placeables, point-light range (a wire ball at each light showing how far it actually reaches, with the global radius multiplier folded in), icons through geometry, bounding boxes, skeleton bones, the culling bucket grid and the bake volume. Last, the NavGrid: the map's navigation grid on its 50-unit lattice, with the flags it carries. The flags are not named by the file — the editor reports each mask and how many cells carry it, and you decide what it is by looking at where it lands. The gameplay bush is one of them. The badge on the button counts the overlays that are on. |
| Map ▾ | Add Mesh…, Workshop…, Reload Map, and Rebuild Bucket Grids with a height filter and bucket size for what gets baked into the culling grid. |
| Frame | Put the camera back on the whole map, the way it opened. |
- Orbit with the left mouse button, pan with Shift + left button, zoom with the wheel. Sensitivity, inversion and movement speed are under Preferences ▸ Camera; the keys under Preferences ▸ Controls.
- The outliner (left) is one hierarchy: Meshes (grouped by visibility layer), Particles, Mobs / Props, Reflection Probes, Sounds, Lights, Added Meshes and the Bucket Grid. Multi-selection, batch delete, temporary hide and persistent disable all work from there; a row marked OFF is disabled, DEL is marked for deletion. Its toggles switch the particle markers, Play All, Props (the placed props' meshes) and Anim (their animation), the bucket grid and Hear (positional ambience).
- Selecting anything shows it in the right-hand inspector, which has three tabs: Object (the selected thing), Map (visibility layers, map graphics features, the gameplay texture) and Asset (the file behind it).
- Focus in the inspector moves the camera to the selected thing — a particle, sound, light, added mesh, prop, probe or the selected meshes — every time you press it. F (Focus Selected under Preferences ▸ Controls) does the same from the keyboard, and frames the whole map when nothing is selected.
- Placements — particles, sounds, props, lights, probes — get the transform gizmo: solid arrows, rings and boxes drawn at the same size on screen from every camera, always on top. A rotate ring turns the object about exactly the axis it draws, in World and Local mode, and follows the cursor round the ring. Several placed particles or materials can be selected together and edited in one shared inspector; mixed values read as "—", and the whole edit is one undo step.
- Viewport icons are depth-tested by default, so a marker says where something is. Show ▸ Icons through geometry shows every icon regardless of what covers it.
Faces on the left strip switches the viewport to face mode: click a face of the map to select it, Ctrl+click to add or remove, Esc to clear. Delete, Flip, Extrude and Inset act on the selected faces from the strip's second row; on the keyboard Delete removes them and F flips them (while faces are selected, F flips rather than focuses). The gizmo moves faces; Rotate and Scale do not act in face mode. Nothing reaches the file until you save; a deleted face is collapsed to zero area rather than cut out, so the mapgeo keeps its layout.
Map meshes carry visibility flags — which team side, which dragon-soul variant of terrain, which game state shows them. The viewport follows the same rules the game uses, so what you see for a given layer is what players get. On Summoner's Rift, content set to every layer or to Base stays on under every dragon, content that names dragons shows under those dragons only, and an object driven by one of the map's visibility controllers (the Baron pit, for one) follows its controller instead. The layer pickers sit at the top of the outliner, under VISIBILITY LAYERS; meshes can be reassigned to layers from the Map tab.
A TFT board stages itself: getting the board ready and each level-up switch layers, effects and lighting on and off. On those boards a Board stage picker appears under VISIBILITY LAYERS. It shows the board exactly as its own stage data leaves it at that stage: the layers that stage shows, the effects it switches on or off, the lighting volume it turns on, and the placed props that belong to it. Start is the map as it loads and changes nothing. The picker never changes the project. Not played: the lighting and fog fades, the props' stage animations, sounds, and the masks the transitions use.
Summoner's Rift ships content for single game events: the Hall of Legends, the MSI trophies and the esports sponsor banners. A normal game has no event on, so this content starts hidden. On a map with such content, an Events block under VISIBILITY LAYERS has a box per event; ticking one shows what it gates — meshes, particles, sounds and picking. It is a view setting only and is never saved.
A placed mob or animated prop draws through the character pipeline: Riot's skinned shaders in D3D11, the character materials in OpenGL, at the scale its skin .bin sets, and lit by the map's lightgrid where it stands. It plays its idle by default; the Object tab offers every clip its skin's animation graph names, and Open in Character Editor takes the prop to the Character Editor. Riot's own animated props — the Summoner's Rift ducks, the TFT board pieces — load and animate in the viewport too, up to 144 per map. A prop can be moved, turned and scaled with the gizmo like any other placement, in one undo step; a prop you never touch keeps the transform it shipped with.
A prop placed by Add prop to map or the Character Creator is, by default, a client-side prop: the game client spawns it itself, the same way it spawns particles, instead of relying on the server to create a gameplay character. The Object tab for a selected client-side prop shows its Appear after time in seconds — edit it and press Save Map Content Edits; 0 removes the delay. A prop placed before this existed is an ordinary character placement; its inspector offers Convert to client-side prop, which rewrites it in place (same position, rotation, skin, idle). Conversion is refused, with a reason, for gameplay units (turrets, inhibitors, the nexus, camps), placements on a special character record, and Riot's own placements — since the server spawns those anyway, a converted copy would just appear on top of the original.
Every map also places characters by itself: Summoner's Rift's snails, birds, lizards, antler mice, duck, stags and its gromp and dragon props, Bilgewater's boats and sharks, the Howling Abyss's poros and shopkeepers, the TFT Freljord poro. They draw and play their idle with the placed props whenever Props is on, and follow the board stage on TFT. The esports sponsor banners appear when their event is ticked, whether Props is on or not, showing the default "RIOT GAMES" flags their materials name, because the game picks the sponsor art per league while it runs. They are read-only: not listed in the outliner and not pickable. The esports banner walls and platforms show whenever Props is on; whether the game places them outside tournaments is not in the data.
The outliner's Particles toggle shows a marker at each placed particle system, and Play All simulates every placed system near the camera. A system stays active until the whole of it has left the view, not just its centre. Play All leaves out two kinds of placement: those the game switches on only later in a match, and those fixed to the camera (screen overlays on a few TFT boards, which the editor does not draw); selecting one still previews it. Edit a system in the Particle Editor.
- Materials: every mesh's material is editable — see Materials.
- Add Mesh and the Workshop: bring in your own geometry, or anything Riot ships — see Workshop and Add Mesh.
- Map Skin Switcher (Tools ▸ Map Skin Switcher…): reroute the map to a different map skin safely, and optionally carry the turret, minion and nexus skins that skin forces — see Tools and Mod Health.
- Recolor Textures (Tools ▸ Recolor Textures…): batch hue / saturation / levels over many textures at once, with per-texture records the project remembers.
- Map graphics features (inspector, Map tab): the per-map feature flags, filled from a map Riot ships with them, with a guard for the five features Riot never ships.
- Fix Jade Champion Projections (inspector, Map tab): on maps where every champion plays its jade variant (the Harrowing among them), those old effects lay flat, hard-edged glows across the ground. This button switches off the ground-projection sprites for every champion in your installed game and stages the result into the project as its own switchable layer (see Projects for content layers). Riot rewrites these files every patch, so run it again after each one.
- Lift Decals (inspector, Map tab): raises a ported decal overlay a set distance off the ground it was welded to, as one undoable edit — useful when a decal z-fights with the terrain under it.
Every change stays in the project until you export — the installed game is never touched. A saved or built map never carries vertex buffers that no mesh uses, which LTK Manager refuses to load.
Point lights: both renderers read up to 1,024 lights per map.
Tools ▸ Cinematic Capture… flies a camera through the map on keyframes and exports the move as a numbered PNG sequence. Add keyframes from the current camera, go to and re-record them, space them evenly, set per-move timing and blending, preview the move in the viewport, then Capture Sequence. Every frame renders at a fixed time step, so the result is smooth whatever the viewport is doing and identical on every run. The editor stays usable while it exports: frames render between the editor's own work, PNGs are encoded on other cores, and the live viewport keeps flying the shot as it is captured. Cancelling finishes the frames already rendered rather than leaving a truncated sequence.
The viewport's status line breaks the frame time down by cost — particles (camera gate, simulation, mesh/ribbon build, upload), animated props, and how many particle systems or prop meshes are still warming in under their time budget — instead of one combined number. A camera swing that brings a lot of new content into view no longer stalls the frame: particle systems and prop meshes stream in a few at a time over several frames rather than loading all at once.
ReyEngine by TheKillerey — Repository · Releases · Report an issue. This wiki describes v0.5.1.
New here
First mods
Basics
Editors
Advanced
Showcase
Help