Jump to content
Official BF Editor Forums


  • Posts

  • Joined

  • Last visited

Posts posted by Outlawz

  1. Same issue here. I have two separate installations of bf2editor and on one it simply crashes to desktop on Apply Spline and on the other does what Daniel S and others describe.

    Reading the other thread I managed to find on this:

    is it basically a GPU issue? I'm on iGPU at the moment and didn't have this issue while I was on a dedicated GPU.


    edit: i switched to dedicated gpu from integrated, using Apply Spline on vbf2 installation of bfeditor now works fine, but it still fails on my Project Reality install. I also noticed that two tbmtest.dds files get created in C:\ whenever i use Apply Spline, but they only seem to get created on using the vbf2 installation. With size 16384 its a 1Gb dds file that fails to open but with 8192, its "only" 250Mb and opens a 8192px texture.

    D:\bf2editor\Code\BF2\Geom\RoadEditable.cpp(2742): TBM: Setting up ApplySpline to use texture size 16384
    D:\bf2editor\Code\BF2\Geom\RoadEditable.cpp(2785): TBM: Failed 2 BeginScene: Out of video memory
    D:\bf2editor\Code\BF2\Geom\RoadEditable.cpp(2742): TBM: Setting up ApplySpline to use texture size 8192
    D:\bf2editor\Code\BF2\Geom\RoadEditable.cpp(2792): TBM: ApplySpline uses texture size 8192

    My PR is installed on an SSD while my BF2 install is on a HDD from old computer. That's the obvious difference between the two, both run on same GPU.

    edit2: Apply Spline works if I run bf2editor for vbf2 or PR that are installed on my HDD


    I noticed a correlation, every time I run bf2editor, if a BF2Editor.dxvk-cache is created, it'll fail the Apply Spline, otherwise not

    file is same directory as bf2editor.exe

    final edit: reinstalling PR fixed the PR problem



  2. But if you look at the 3ds Max pic, technically I've placed the texture where I want it and everything else on the blank part. It just got more messed up the the second try. I'll try with slices then.

    edit: still doesn't work, I even separated the materials and only added the mat with crack texture on faces where I want crack texture.



  3. I'm trying to tweak the Eryx missile to die at 600m, but I can't figure out the number of commands that affect the missile's speed. I've been changing the TimetoLive line a lot, but can't get even close with that. Here's the weapon and missile tweaks:

    rem *** Generated with Bf2Editor.exe [created: 2005/3/29 18:47]
    GeometryTemplate.maxSkip3pLods 0
    GeometryTemplate.setMaterialReflectionScale 0 0 0 0.35
    GeometryTemplate.setMaterialReflectionScale 0 0 1 2
    GeometryTemplate.compressVertexData 1
    GeometryTemplate.maxTextureRepeat 16
    ObjectTemplate.activeSafe GenericFireArm chat_eryx
    ObjectTemplate.creator TLO-1:tlo
    ObjectTemplate.modifiedByUser jsa
    ObjectTemplate.saveInSeparateFile 1
    ObjectTemplate.castsDynamicShadow 1
    ObjectTemplate.cullRadiusScale 10
    rem ---BeginComp:WeaponHud ---
    ObjectTemplate.createComponent WeaponHud
    ObjectTemplate.weaponHud.selectIcon Ingame\Weapons\Icons\Hud\Selection\CHAT_ERYX.tga
    ObjectTemplate.weaponHud.specialAbilityIcon Ingame\Weapons\Icons\Hud\SpecialKitIcons\antiTank.tga
    ObjectTemplate.weaponHud.hudName "killed"
    ObjectTemplate.weaponHud.GuiIndex 0
    ObjectTemplate.weaponHud.altGuiIndex 58
    ObjectTemplate.weaponHud.disableOnSprint 1
    rem ---EndComp ---
    rem ---BeginComp:SingleFireComp ---
    ObjectTemplate.createComponent SingleFireComp
    ObjectTemplate.fire.addFireRate 0
    ObjectTemplate.fire.projectileStartPosition 0.001/0.05/0
    ObjectTemplate.fire.showWeaponAfterReloadDelay 3
    ObjectTemplate.fire.dropWeaponAfterFiringDelay 1.5
    ObjectTemplate.fire.hideWeaponAfterReloadDelay 2.25
    ObjectTemplate.fire.dropWeaponAfterReloadDelay 2.21667
    ObjectTemplate.fire.dropLod 3
    ObjectTemplate.fire.hideLod 2
    ObjectTemplate.fire.busyUntilButtonRelease 1
    rem ---EndComp ---
    rem ---BeginComp:DefaultAmmoComp ---
    ObjectTemplate.createComponent DefaultAmmoComp
    ObjectTemplate.ammo.ammoType 1
    ObjectTemplate.ammo.nrOfMags 1
    ObjectTemplate.ammo.magSize 1
    ObjectTemplate.ammo.reloadTime 18.75
    ObjectTemplate.ammo.minimumTimeUntilReload 1
    ObjectTemplate.ammo.autoReload 0
    ObjectTemplate.ammo.instantReloadOnEnable 0
    ObjectTemplate.ammo.toggleWhenNoAmmo 1
    ObjectTemplate.ammo.reloadWithoutPlayer 0
    rem ---EndComp ---
    rem ---BeginComp:SoldierBasedRecoilComp ---
    ObjectTemplate.createComponent SoldierBasedRecoilComp
    rem ---EndComp ---
    rem ---BeginComp:SoldierDeviationComp ---
    ObjectTemplate.createComponent SoldierDeviationComp
    ObjectTemplate.deviation.minDev 0.1
    ObjectTemplate.deviation.setTurnDev 20 0.78 0.78 0.13
    ObjectTemplate.deviation.setSpeedDev 20 .132 .132 0.13
    ObjectTemplate.deviation.setMiscDev 20 20 0.2
    ObjectTemplate.deviation.devModStand 1
    ObjectTemplate.deviation.devModCrouch 0.8
    ObjectTemplate.deviation.devModLie 400
    ObjectTemplate.deviation.devModZoom 1
    rem ---EndComp ---
    rem ---BeginComp:DefaultSoundComp ---
    ObjectTemplate.createComponent DefaultSoundComp
    rem ---EndComp ---
    rem ---BeginComp:DefaultAnimationComp ---
    ObjectTemplate.createComponent DefaultAnimationComp
    rem ---EndComp ---
    rem ---BeginComp:DefaultZoomComp ---
    ObjectTemplate.createComponent DefaultZoomComp
    ObjectTemplate.zoom.zoomDelay 1.5
    ObjectTemplate.zoom.changeFovDelay 1.5
    ObjectTemplate.zoom.zoomLod 1
    ObjectTemplate.zoom.addZoomFactor 0
    ObjectTemplate.zoom.addZoomFactor 0.405
    ObjectTemplate.zoom.mouseSpeedMod 0.5
    rem ---EndComp ---
    rem ---BeginComp:LPTargetComp ---
    ObjectTemplate.createComponent LPTargetComp
    ObjectTemplate.target.maxDistance 9999
    ObjectTemplate.target.setTargetAtMaxDistance 1
    ObjectTemplate.target.targetSystem TSWireGuided
    ObjectTemplate.target.connectionEffect e_predatorscope
    ObjectTemplate.target.targetObjectTemplate UniqueTarget
    ObjectTemplate.target.connectionEffectOnlyWhenZoomed 1
    ObjectTemplate.target.disableGuidanceOnReload 1
    rem ---EndComp ---
    ObjectTemplate.geometry CHAT_ERYX
    ObjectTemplate.drag 20
    ObjectTemplate.mass 100
    ObjectTemplate.gravityModifier 4
    ObjectTemplate.hasMobilePhysics 0
    ObjectTemplate.aiTemplate at_heavy_ai
    rem -------------------------------------
    ObjectTemplate.addTemplate S_chat_eryx_Fire1P
    ObjectTemplate.addTemplate S_chat_eryx_Fire1P_Outdoor
    ObjectTemplate.addTemplate S_chat_eryx_Fire3P
    ObjectTemplate.setPosition 0/0.04293/0.48837
    ObjectTemplate.addTemplate S_chat_eryx_BoltClick
    ObjectTemplate.addTemplate S_chat_eryx_TriggerClick
    ObjectTemplate.addTemplate S_chat_eryx_SwitchFireRate
    ObjectTemplate.addTemplate S_chat_eryx_Reload1P
    ObjectTemplate.addTemplate S_chat_eryx_Reload3P
    ObjectTemplate.addTemplate S_chat_eryx_Deploy1P
    ObjectTemplate.addTemplate S_chat_eryx_Deploy3P
    ObjectTemplate.addTemplate S_chat_eryx_Zoom
    ObjectTemplate.addTemplate e_muzz_eryx
    ObjectTemplate.setPosition 0/0.04293/0
    rem -------------------------------------
    ObjectTemplate.animationSystem1P Objects/Weapons/Handheld/CHAT_ERYX/AnimationSystem1p.inc
    ObjectTemplate.animationSystem3P Objects/Weapons/Handheld/CHAT_ERYX/AnimationSystem3p.inc
    ObjectTemplate.projectileTemplate eryx
    ObjectTemplate.keepProjectiles 15
    ObjectTemplate.velocity 18
    ObjectTemplate.itemIndex 4
    ObjectTemplate.delayToUse 18.75

    rem *** Generated with Bf2Editor.exe [created: 2005/4/10 10:26]
    GeometryTemplate.compressVertexData 1
    GeometryTemplate.maxTextureRepeat 16
    ObjectTemplate.activeSafe GenericProjectile eryx
    ObjectTemplate.creator DSU-3:dsu
    ObjectTemplate.modifiedByUser ljo
    ObjectTemplate.setNetworkableInfo BasicInfo
    ObjectTemplate.saveInSeparateFile 1
    ObjectTemplate.createNotInGrid 1
    rem ---BeginComp:DefaultCollisionComp ---
    ObjectTemplate.createComponent DefaultCollisionComp
    ObjectTemplate.collision.hasCollisionEffect 1
    rem ---EndComp ---
    rem ---BeginComp:DefaultDetonationComp ---
    ObjectTemplate.createComponent DefaultDetonationComp
    ObjectTemplate.detonation.explosionMaterial 3706
    ObjectTemplate.detonation.explosionRadius 10
    ObjectTemplate.detonation.explosionForce 10
    ObjectTemplate.detonation.explosionDamage 200
    ObjectTemplate.detonation.endEffectTemplate e_exp_medium
    ObjectTemplate.detonation.useMMOnEndEffect 1
    rem ---EndComp ---
    rem ---BeginComp:DefaultProjSoundComp ---
    ObjectTemplate.createComponent DefaultProjSoundComp
    rem ---EndComp ---
    rem ---BeginComp:SeekClosestTargetComp ---
    ObjectTemplate.createComponent SeekClosestTargetComp
    ObjectTemplate.seek.targetType TTUnique
    ObjectTemplate.seek.trackingDelay 0.7
    ObjectTemplate.seek.maxAngleLock 90
    ObjectTemplate.seek.maxDistLock 800
    ObjectTemplate.seek.reLockTime 0
    rem ---EndComp ---
    rem ---BeginComp:DefaultFollowComp ---
    ObjectTemplate.createComponent DefaultFollowComp
    ObjectTemplate.follow.maxYaw 0.5
    ObjectTemplate.follow.maxPitch 0.5
    ObjectTemplate.follow.changePitch 0.25
    ObjectTemplate.follow.changeYaw 0.25
    ObjectTemplate.follow.minDist 10
    rem ---EndComp ---
    rem ---BeginComp:DefaultPenetrateComp ---
    ObjectTemplate.createComponent DefaultPenetrateComp
    ObjectTemplate.penetrate.allowSolidPenetration 0
    ObjectTemplate.penetrate.allowLiquidPenetration 0
    rem ---EndComp ---
    ObjectTemplate.geometry eryx
    ObjectTemplate.setCollisionMesh eryx
    ObjectTemplate.mapMaterial 0 lambert1 0
    ObjectTemplate.drag 7
    ObjectTemplate.mass 10
    ObjectTemplate.gravityModifier 0
    ObjectTemplate.floaterMod 0
    ObjectTemplate.hasMobilePhysics 1
    ObjectTemplate.hasCollisionPhysics 1
    ObjectTemplate.physicsType Point
    ObjectTemplate.collisionGroups 8
    ObjectTemplate.material 3706
    rem -------------------------------------
    ObjectTemplate.addTemplate S_eryx_Looping
    ObjectTemplate.addTemplate e_eryx_trail
    ObjectTemplate.setPosition 0/0/-0.45
    rem -------------------------------------
    ObjectTemplate.timeToLive CRD_NONE/10/0/0
    ObjectTemplate.material 3706
    ObjectTemplate.hasOnTimeEffect 1
    ObjectTemplate.damageOwner 1
    ObjectTemplate.acceleration 175
    ObjectTemplate.maxSpeed 245
    ObjectTemplate.startDelay 0.2
    ObjectTemplate.damage 800
    ObjectTemplate.armingDelay 0.63
    ObjectTemplate.activeSafe Sound S_eryx_Looping
    ObjectTemplate.modifiedByUser ljo
    ObjectTemplate.soundFilename "objects/weapons/armament/missiles/sounds/mono/rocket_engine_start_idle.wav"
    ObjectTemplate.loopCount 0
    ObjectTemplate.is3dSound 1
    ObjectTemplate.stopType 0
    ObjectTemplate.volume 1
    ObjectTemplate.pitch 1
    ObjectTemplate.reverbLevel 1
    ObjectTemplate.minDistance 6
    ObjectTemplate.halfVolumeDistance 30

  4. I've fixed a collision mesh for one of the objects I use on a map and added it along with objects_server.zip in the map's folder, with proper file hiearchy and updated .con and .tweak files for it (serverarchives.con included in map's server.zip to load it ofc).

    However it doesn't work ingame; it uses the old collision mesh loaded from the main object .zips. I'm guessing map's objects_server doesn't overwrite it somehow . Any ideas?

  5. Ignored Warning[Geom] : Object fir20m has texture coordinates outside specified range [16,16]. Largest coord was 1403.94/976.728.

    I noticed this one when I imported one of PR trees to make a cluster and out of curiosity I split the model according to materials (bark and leaves) and exported them separately and the error only popped up on the leaves. However the UV coordinates on individual leaves are within 1:1 range and there isn't 1400 leaves in the object. Which leads me to the topic title; I know textures coordinates mean how many times the texture is tiled, but how can something that's not even tiled once have such a large texture coordinate?

  6. I'm confused wrt occlusion meshes. When I took a look at BF2 occ files in bfmeshview, I'm pretty sure the position of the mesh differed from the staticmesh, for example the occ for the Karkand hotel building looks a lot slimmer than the actual building mesh. Most meshes seem to be just boxes in approximate positions to the static mesh.

    I exported an occ mesh for one of the PR statics by importing the static mesh into 3ds max and modeling the occ mesh along its boundaries and exporting it from the same position. I added the occ into the objects_client, then placed that static on a map along with its double that had no occ and identical objects behind both statics to compare FPS, but due the above I'm not sure if it actually worked, though there was a difference in FPS when looking at the object with occ and no occ. Am I doing this right or wrong?

  7. I've crudely coded a destroyable object for a static that has both geo's, I copy pasted the armor comp and compared the tweak with a tweak from a working destroyable, but when I run the map with the object on, I get these errors:

    D:\DiceCanada\BoosterPack2\Code\BF2\Game\Objects\Game\DestroyableObject.cpp(49): Assert: Game: (armorComp) DestroyableObject house_dest_1a_dest needs to have armorComponent

    D:\DiceCanada\BoosterPack2\Code\BF2\Game\Objects\Game\DestroyableObject.cpp(104): Assert: Game: (getNetworkable()) DestroyableObject house_dest_1a_dest needs to have networkable component

    Here's my tweak

    rem *** Generated with Bf2Editor.exe [created: 2006/5/15 12:52]
    GeometryTemplate.setSubGeometryLodDistance 0 0 50
    GeometryTemplate.setSubGeometryLodDistance 0 1 150
    GeometryTemplate.setSubGeometryLodDistance 0 2 300
    GeometryTemplate.setSubGeometryLodDistance 1 0 50
    GeometryTemplate.setSubGeometryLodDistance 1 1 150
    GeometryTemplate.setSubGeometryLodDistance 1 2 300
    GeometryTemplate.doNotGenerateLightmaps 0
    GeometryTemplate.lightmapOverride 0
    GeometryTemplate.compressVertexData 1
    GeometryTemplate.maxTextureRepeat 16
    GeometryTemplate.glowing 0
    GeometryTemplate.noLighting 0
    ObjectTemplate.activeSafe DestroyableObject house_dest_1a_dest
    ObjectTemplate.creator MB03:mb
    ObjectTemplate.modifiedByUser "mb"
    ObjectTemplate.setNetworkableInfo BasicInfo
    ObjectTemplate.saveInSeparateFile 1
    ObjectTemplate.isDestructable 1
    ObjectTemplate.cullRadiusScale 5
    rem ---BeginComp:Armor ---
    ObjectTemplate.createComponent Armor
    ObjectTemplate.armor.maxHitPoints 1000
    ObjectTemplate.armor.hitPoints 1000
    ObjectTemplate.armor.defaultMaterial 1001
    ObjectTemplate.armor.waterLevel -0.3
    ObjectTemplate.armor.explosionDamage 80
    ObjectTemplate.armor.explosionRadius 10
    ObjectTemplate.armor.explosionForce 5
    ObjectTemplate.armor.explosionForceMod 8
    ObjectTemplate.armor.explosionForceMax 50
    ObjectTemplate.armor.explosionMaterial 78
    ObjectTemplate.armor.wreckExplosionMaterial 78
    ObjectTemplate.armor.wreckHitPoints 100
    ObjectTemplate.armor.timeToStayAsWreck -1
    ObjectTemplate.armor.timeToStayAfterDestroyed -1
    ObjectTemplate.armor.wreckDelay 0.05
    ObjectTemplate.armor.canBeDestroyed 0
    ObjectTemplate.armor.showDamageAsDirt 500
    ObjectTemplate.armor.addArmorEffect 0 e_mexp_m_prbuilding 1.67651/1.58434/1.71837 0/0/0
    rem ---EndComp ---
    ObjectTemplate.geometry house_dest_1a
    ObjectTemplate.setCollisionMesh house_dest_1a
    ObjectTemplate.mapMaterial 0 Penetrable_plaster_wall 1001
    ObjectTemplate.mapMaterial 1 Wood_solid 78
    ObjectTemplate.mapMaterial 2 Ceramic_tiles 15
    ObjectTemplate.mapMaterial 3 concrete 82
    ObjectTemplate.mapMaterial 4 Stairs_concrete 34
    ObjectTemplate.hasMobilePhysics 0
    ObjectTemplate.hasCollisionPhysics 1
    ObjectTemplate.physicsType Mesh

  8. How to create roads from scratch.

    You'll need:

    -Photoshop CS3 with DDS plugin

    -BF2 Editor

    To begin, we need a good road texture. I won't show you how to create one of those, so Google or search websites with free textures, I recommend


    For this tutorial I picked the following texture:


    Make sure the texture is seamless, otherwise your road will look really bad when tiled. On cgtextures.com the star with 'Tiled' marks tileable, seamless textures.

    Open the texture in Photoshop. Let's start with resizing the texture to a proper size.

    In this case, the texture is 700x420, but it needs to be a power of 2 to prevent crashes with certain graphics cards.

    Right-click on the top bar of the image, go Image Size, then uncheck 'Constrain proportions' and resize to 512x256.

    All roads need to face upwards to be tiled properly, so Image>Rotate>Rotate 90° CW.

    We need to add an Alpha channel to the texture's edges, so the transition between the road mesh and the terrain won't be so noticeable.

    Switch to Channel tab, at the bottom click 'Create new channel'. Your Alpha channel has been created.

    Black color in the Alpha channel marks what will be invisible and white color what will be visible in game. Since the alpha is black by default, we need to change it.

    You can do this easily by pressing Ctrl+I to invert the picture and turning it white.

    Switch to Layer tab. Make sure your color is black.

    With the Rectangular Marquee Tool, select the grassy edge on one side and go Layer>New fill layer>Gradient.

    Rotate the gradient to 0°and click Ok. Do the same for the other side, but rotate gradient the opposite way (180°).

    Rasterize both layers, merge them together (click Apply on the prompt window that shows up), then select all (Ctrl+A), copy, hide the gradient layer, select the Background layer, go Channel tab, select Alpha channel and paste.

    Now save it as .dds to desktop for the moment. In the DDS save options window, pick DXT5 (interpolated alpha) and generate all mipmaps.

    Now, either extract the Roads directory from BF2 objects.zips or create a new directory:


    Place your texture there.

    Start BF2 Editor, load bf2, then go Level Editor (you do not need to load a level!)

    Select the Road tool, on the right side toolbar, click 'Create new template'. On the Resources tab (left side), scroll down throguh the Road templates list to the bottom where your new road template should be.

    In the tweakbar, pick a material for it, Tarmac would be best since it's a tarmac road.

    In the Primary Texture, click on the blank line next to Texture and browse the textures to find your texture. Uncheck Mirror, since we don't need to mirror this texture.

    In Secondary Texture, find a good underlying texture for your road.

    Now click Save All button and save your road.

    Inside Objects\Roads\Splines three new files will appear with the name of your template: yourroad.con, yourroad_compiled.con and yourroad_compiled.dat

    Load a level and place the road to see how it looks. You will probably need to tweak the secondary texture's tiling or change the texture to get it too look as you want. You can do that on the spot, the changes will be visible immediately.

    Your road is now complete. :)

    I apologize for no pictures, I'll try to add them when I can.

  9. Here's a question for anyone who has any insight into how BF2 loads stuff. Is it really better to have texture pallets or do single file textures also work; what are the advantages/disadvantages?

    I modeled a couple of statics using textures each in it's own file, resulting a bunch of files needed for those statics. Kinda worried, I then put them altogether into pallets in BF2 "dimensions" (1024x2048, 256x2048), and brought the number of files down to 8. Of course then I'd have to retexture all of the statics and add slices, which is when I thought of the above. :P

  • Create New...