---
title: "How far the first version got"
description: "Before the restart, the first Evil Engine got to 838 commits. It read Garry's Mod's content into Godot and had a sandbox you could actually stand in. Here's what it could do."
url: "https://evil-engine.com/devlogs/how-far-the-first-version-got"
published: "2026-10-29T20:30:00.000Z"
modified: "2026-10-29T20:30:00.000Z"
---

Devlogs

2026-10-29 13:30 MST

# How far the first version got

Before the restart, the first Evil Engine got to 838 commits. It read Garry's Mod's content into Godot and had a sandbox you could actually stand in. Here's what it could do.

---

The first version of Evil Engine ran from October 24 to October 29, and it’s the build you saw in the [“Evil Engine v0.1” video](https://youtu.be/Jv-PRu8LnUY). It ended at 838 commits, about 96,000 lines of C#, 1,288 tests and 816 logged builds.

![The first version’s main menu over gm_construct, running in the Godot editor](https://evil-engine.com/_astro/first-version-main-menu.DHs-I3Vh_ZMSb9G.webp)

## Reading Garry’s Mod

Written in C#, it learned to read Garry’s Mod’s files from a real install: KeyValues, VPKs, GMA addons, textures, materials, models, and maps with their lightmaps, skyboxes and collision. Its depot table came from what Garry’s Mod’s `filesystem_stdio` actually does, so Half-Life 2 and Counter-Strike: Source content mount the same way the game mounts them.

![The Game Mount Manager listing Garry’s Mod’s mounts, with Half-Life 2 and its episodes in the game library](https://evil-engine.com/_astro/first-version-mount-manager.DFTqnKau_1AaOCn.webp)

![gm_construct loaded in the first Evil Engine, with the mount log underneath](https://evil-engine.com/_astro/first-version-gm-construct.CMjFOBNH_y05Gf.webp)

## A world to exist in at all

- Source’s player movement, ported over: walking, air control, stepping, ducking, water, ladders and noclip
- Half-Life 2’s weapons, with tracers, impact decals and brass flying out of the view model
- the weapon wheel, plus classic bucket selection
- the physgun with its beam and burn sears, and a gravity gun that picks up props up to 250 kg
- a spawn menu on Q, with spawn icons rendered from the models themselves
- soundscapes with room reverb, surface footsteps and proper Garry’s Mod style deaths
- water you can see under, and props that float by their material’s density, so wood rides 70% under while concrete and metal sink

![Half-Life 2 girders, a column and a gravestone spawned as props on gm_construct](https://evil-engine.com/_astro/first-version-props.oaDtceZK_Z1eXrHo.webp)

![Half-Life 2 NPCs spawned on gm_construct’s grass, with Dog towering over the rest](https://evil-engine.com/_astro/first-version-npcs.Dc9WTLBU_1pmTtn.webp)

## Modes and addons in Lua

Game modes loaded from Lua, filling a `GM` table the same way Garry’s Mod does, and they reloaded while the map was still running. There were two, Sandbox and Survival, and Survival’s description reads “You created this Hell. Now it’s time to survive it.”

Two small addons ran on it as well, and if you’ve seen my Evil Fungus stuff these will look a little familiar…

- **creep** grows a mat across the nearest surface, climbing walls and wrapping over edges, and grows faster toward whoever’s standing on it
- **sleep** needs creep’s exports. Stand on the creep for 3 seconds and you get drowsy, then go limp and watch your own body from above

![creep’s purple mat spreading across gm_construct’s grass and pavement, gravity gun in hand](https://evil-engine.com/_astro/first-version-creep.PufS1tTj_1Qt0no.webp)

## Fixes

- Godot’s reverb let gunshot sub-bass build up into a wash louder than the shots themselves in big rooms, so the room reverb is high-passed at 120 Hz now
- Ragdolls flopped around like wet noodles, so every joint got muscle tone, a friction torque at 30% of the weight of the limbs it carries
- The physgun beam was drawing underneath its own burn marks, which darkened it, and it turned out to be render priority, 0 against 1 and 2
- `sv_enablebunnyhopping` drops Half-Life 2’s jump speed cap, same as CS:S

## What it never had

There was no networking. The host and join windows existed, but nothing ever went over the wire. It also ran Evil Engine’s own Lua, not Garry’s Mod addons.

The bigger problem was that everything it read only lived in memory, in Source’s shape. It proved Garry’s Mod’s content could live in Godot, but it had no formats of its own.

![The Game Mount Manager’s list of legacy, floating and workshop addons, each with its priority and path count](https://evil-engine.com/_astro/first-version-mount-list.DJdb6y2R_ZymNK3.webp)

So today, October 29, I cleared it all out to start again on rules of its own.

Somewhere in there I nuked my PC because I will take any excuse to get away from Windows when I no longer need it acutely, so development started over on Linux (Arch btw) XD

Older

### [It started as a creature creator](https://evil-engine.com/devlogs/day-one-was-a-crawler)

Newer

### [Four games, one mount core](https://evil-engine.com/devlogs/four-games-one-mount-core)

## Details

- **Written**: 2026-10-29 13:30 MST
- **Edited**: 2026-10-29 13:30 MST

## Contents

- [Reading Garry’s Mod](https://evil-engine.com/devlogs/how-far-the-first-version-got#reading-garrys-mod)
- [A world to exist in at all](https://evil-engine.com/devlogs/how-far-the-first-version-got#a-world-to-exist-in-at-all)
- [Modes and addons in Lua](https://evil-engine.com/devlogs/how-far-the-first-version-got#modes-and-addons-in-lua)
- [Fixes](https://evil-engine.com/devlogs/how-far-the-first-version-got#fixes)
- [What it never had](https://evil-engine.com/devlogs/how-far-the-first-version-got#what-it-never-had)

## Stay up-to-date

- [RSS](https://evil-engine.com/rss.xml)
- Mailing list
- [Steam](https://store.steampowered.com/app/3731310/Evil_Engine)
