EWTOOLS-MAPUTIL(1)

πŸ“¦ version 2.0.0~alpha11, in ubuntu stonking

πŸ’– EWTOOLS-MAPUTIL(1) πŸ’–

okay bestie, listen up β€” this is ewtools-maputil, and you can also just call it maputil if you're feeling casual. either way it's the utility for working with Quake MAP files. yes, that's the whole job. and it slays at it. 🌸

β€” ericw-tools era, no cap, she's giving "I make maps, you make vibes". πŸ‘‘


✨ SYNOPSIS ✨

maputil MAPFILE [OPTION]...

one map file, as many options as your heart desires. periodt. πŸ’…


πŸŽ€ OPTIONS πŸŽ€

  • --script <path to Lua script file> β€” runs the Lua script you point it at. go off, script. 🧚
  • --query "<Lua expression>" β€” runs a query on your entities and prints out everything that matches. the docs have the full tea on globals, so go check those for the details. ngl, query has the exact same access as script does, it's just way more suited to lil read-only operations. lowkey the polite option. 🫢
  • --strip_extended_info β€” yeets the extended Quake II/III information off your faces. gone. deleted. πŸ’€
  • --convert <quake | valve | etp | bp> β€” converts the current map to the format you picked. choose wisely bestie. 🌈
  • --save "<output path>" β€” saves the current map to the output path you typed. your work? protected. ⭐
  • --game <quake | quake2 | hexen2 | halflife> β€” sets the current game. certain conversions or operations need to know which one, so don't skip this if you're doing those. it's giving context, and context is everything. πŸ‘‘

πŸ¦‹ LUA LAYOUT πŸ¦‹

here's the whole shape of the data, bestie. every field, exactly where it lives. iykyk:

entities = table[]
 [E].dict = array
     [D] = [ key, value ]
 [E].brushes = table[]
  [S].texture = string
  [S].plane_points = [ [ x, y, z ] [ x, y, z ] [ x, y, z ] ]
  [S].raw = table (can only contain ONE member:)
      .quaked = table
       .shift = [ x, y ]
       .rotate = number
       .scale = [ x, y ]
      .valve = table
       .axis = [ [ x, y, z ] [ x, y, z ] ]
       .shift = [ x, y ]
       .rotate = number
       .scale = [ x, y ]
      .bp = table
       .axis = [ [ x, y, z ] [ x, y, z ] ]
      .etp = table
       .shift = [ x, y ]
       .rotate = number
       .scale = [ x, y ]
       .tx2 = boolean
  [S].info = table or nil
      .contents = number
      .value = number
      .flags = number
  [S].plane = [ x, y, z, d ] (read-only)
  [S].vecs = [ [ x, y, z, d ] [ x, y, z, d ] ] (read-only)
⚠️ heads up: [S].raw can only contain ONE member (.quaked, .valve, .bp or .etp β€” pick one, bestie, you can't have all four, it's not that kind of party πŸ™ˆ), and [S].plane and [S].vecs are read-only, so no touching. also [S].info is table or nil, so vibe check it before you reach in. πŸ“

and that's the whole page, no crumbs left. πŸŽ€ this iconic lil manual comes to you from ericw-tools, dated Jul 29, 2026 β€” main character energy from start to finish. ily, go make something beautiful. πŸ’œβœ¨

πŸ“¦ where this page comes from